OOP

    [Things of Go] Go언어의 객체지향 모델 - 응용편

    지난 글에서는 객체지향 프로그래밍을 하기 위한 기본적인 요소들에 대해 알아보았다. 이번 글에서는 이 요소들을 이용해 어떻게 객체지향 프로그래밍을 할 수 있는지 알아보겠다. 그 전에... 패키지 내의 함수 및 변수 호출은 인스턴스의 그것들을 호출하는 것과 유사하다. 그리고 이전 글에서 잠깐 언급했지만 Go언어의 접근제한은 패키지 단위로 이루어진다. 즉, Go언어에서의 패키지는 하나의 객체로 볼 수 있다. 그리고 캡슐화(은닉성)의 관점에서 패키지를 객체로 취급하는 것이 바람직하다 콘솔에서 패키지를 받아보자. go get github.com/simp7/pracOOPFromGo 받은 파일은 이전 글의 객체들(Dog, Cat, Animal)을 패키지로 묶은 것이다. 이후 예제에서 사용될 예쩡이다. Go언어에서의 ..

    [Things of Go] Go언어의 객체지향 모델 - 기초편

    이 글은 독자가 객체지향과 포인터에 관한 기본적인 지식이 있다는 가정 하에 작성되었다. Go언어와 객체지향 현재 인기있는 대부분의 프로그래밍 언어가 그렇듯이 Go언어는 객체지향 언어이다. 다만, 보통 객체지향에 입문하는 데에 쓰는 파이썬, 자바, 혹은 C++하고는 모습이 조금 다르다. Go언어의 설계 목표가 직관성, 단순성, 명료성, 효율성이다. 이런 목표를 달성하기 위해 다른 언어들에 비해 키워드가 적고 문법이 살짝 다르다. 클래스 정의 Go언어에는 class 키워드가 없다. Go언어는 struct, 즉 구조체를 이용해서 클래스를 정의한다. 구조체는 다음과 같이 선언한다. type Dog struct { name string } 'string형 변수 name을 가지는 구조체를 Dog라 칭한다' 정도로 ..