Canvas of Bliss

 C#은 마이크로소프트에서 개발된 객체 지향 프로그래밍 언어로서 Java 나 C++와 비슷한 면들을 많이 가지고 있다.

(같은 객체지향 프로그래밍 언어이다.)

(객체지향 프로그래밍(Object-Oriented Programming)은 좀 더 나은 프로그램을 만들기 위한 프로그래밍 패러다임으로 로직을 상태(state)와 행위(behave)로 이루어진 객체로 만드는 것이다. 이 객체들을 마치 레고 블럭처럼 조립해서 하나의 프로그램을 만드는 것이 객체지향 프로그래밍이라고 할 수 있다. 다시 말해서 객체지향 프로그래밍은 객체를 만드는 것이다. 따라서 객체지향 프로그래밍의 시작은 객체란 무엇인가를 이해하는 것이라고 할 수 있다.)

 

 

객체지향의 특징

 

1) 추상화

추상화는 목적과 관련이 없는 부분을 제거하여 필요한 부분만을 표현하기 위한 개념

추상화는 객체들의 공통된 특징을 파악해 정의해 놓은 설계 기법이라 할 수 있다.

 

2) 캡슐화

캡슐화에서 캡슐은 알약이라고 생각하면 된다.

 

클래스 입장에서 캡슐화를 살펴보면 자바에서 접근 제어자( public, protected... )가 있는데

private으로 정의된 속성은 외부에 노출 시키지 않고 자신의 클래스에서만 사용하기 위해 정의한다.

private으로 정의된 속성은 외부에 알려줄 필요가 없다.즉, 정보은닉을 할 수 있다는 장점있다.

 

참고로 캡슐화와 정보은닉은 동일한 개념이 아니다.

캡슐화를 하면 불필요한 정보를 감출 수 있기 때문에, 정보은닉을 할 수 있다는 특징이 있다.

 

3) 상속

실제 세계에서 부모로부터 여러 가지를 상속을 받는데, OOP에서도 가능하다.

OOP에서 이를 부모 클래스, 자식 클래스라고 표현한다.

 

즉, 포유류라는 클래스는 고양이와 강아지 클래스에 속성들을 물려줍니다.

이것을 상속이라고 하고, 포유류와 고양이, 포유류와 강아지 클래스는 상속관계에 있다고 합니다.

 

상속이 필요한 이유는 코드의 중복을 없애기 위함이다.

코드의 중복이 많아지면 개발 단계에서도 피곤하지만, 유지 보수에서도 많은 비용이 들게된다. ( => 코드의 이원화 문제 )그래서 개발을 할 때 코드의 중복은 반드시 피해야 한다.

 

OOP에서는 상속을 통해 코드의 중복 문제를 일부 해결할 수 있다.

같은 클래스에 여러 속성들을 정의해 놓고 클래스에 해당하는 자식 클래스와 상속 관계를 맺는다.

상속관계를 맺으면 자식 객체를 생성할 때 부모 클래스의 속성들을 자동으로 물려받기 때문에 자식 클래스에서 또 정의할 필요가 없다. 이것이 상속이 필요한 이유이다.

 

4) 다형성

다형성은 형태가 같은데 다른 기능을 하는 것을 의미합니다.

 

예를 들면, 자동차 클래스에는 "연비"이라는 속성이 정의되어 있다한다면,

모든 자동차는 연비가 다르다.

같은 "연비" 속성임에도 연비가 각기 각색이다. 이것이 다형성이다.

 

부모 클래스로부터 상속을 받은 속성에 대해, 자식 클래스에서 물려받은 속성을 재정의 할 수 있다.

이것을 오버라이딩이라고하는데

즉, 소나타 클래스는 부모클래스인 자동차 클래스의 "연비" 속성을 상속 받았지만, 소나타는 SM3와 연비가 다르므로 "연비" 속성을 오버라이딩 해서 소나타 연비에 맞게 재정의 할 수 있다.

OOP에서는 이러한 다형성을 허용하는 것이다.

 

그럼 다형성을 사용하면 좋은 점은 무엇일까?

같은 이름의 속성을 유지함으로서, 속성을 사용하기 위한 인터페이스를 유지하고, 메서드 이름을 낭비하지 않는다는 것이다.

예를 들어, 소나타와 SM3 연비를 호출하기 위해서 각 개체에서 GasMaileage() 메서드를 호출하면 된다.

소나타연비와 SM3연비로 각각을 정의할 필요가 없다.

API가 많아질수록 복잡성은 증가하기 때문에 다형성은 유용하다.

 

C#을 이야기 하면 자연스럽게 .NET Framework을 함께 이야기 해야할 정도로 C#은 .NET Framework을 이용하여 프로그래밍하는 대표적인 언어이다. C#은 윈도우 프로그래밍, 웹 프로그래밍, 게임 및 모바일 프로그래밍 등 모든 영역에서 사용되는 범용 프로그래밍 언어이다.

 

C# 개발도구 Visual Studio

C# 프로그래밍을 위한 개발도구로 일반적으로 Visual Studio (VS)를 사용한다. VS는 IDE (Integrated Development Environment)로서 소스 편집기, 빌드, 디버깅, 인텔리센스 등 편리한 개발 기능을 제공하는 통합 개발도구이며, C# 이외의 다양한 프로그래밍 언어들을 지원한다.

Visual Studio는 유료와 무료 버전이 있는데, 무료 버전인 Visual Studio Community Edition은 www.visualstudio.com (MS 사이트) 에서 다운받을 수 있다.

 

홈페이지에서 클릭 하나로 손쉽게 Visual Studio를 설치하고 실행하면 아래와 같은 로고가 보이며 실행이 된다.

실행을 시키면 아래와 같은 창이 뜨는데 여기서 '새 프로젝트 만들기'를 클릭하여 새로운 프로젝트를 만든다.

그 다음 C#이라고 되어있는 콘솔 앱(.NET Core)를 선택하고

새 프로젝트 이름을 'HelloWorld'라고 해보자.

그러면 아래와 같은 창이 나타나는데 1번은 코드 편집기이고 2번은 솔루션 탐색기이다.

이제 코드를 살펴보자.

 

using System;

namespace HelloWorld
{
    class Program
    {
        static void Main(string[] args)
        {
            Console.WriteLine("Hello World!");
        }
    }
}

여기서 using System; 을 살펴보면 한 덩어리 같지만 사실은 세 가지 요소로 이루어져 있다.

using, System, ;(세미콜론)이 각각 개별적인 요소이다. 이들이 결합해서 한 문장을 이루어야지만 비로소 의미를 만들어 낸다.  

이 글을 공유합시다

facebook twitter kakaoTalk kakaostory naver band