4.4 객체 지향형 (Object-Oriented)
Last updated
Last updated
마지막으로 객체지향형(Object-Oriented) 프로그래밍 패러다임에 대해 알아보자. 이 패러다임의 등장 이전과 이후로 나뉠만큼 소프트웨어 개발에 가장 큰 영향을 끼친 혁신적 패러다임으로 간주되고 있으며, 특히나 프로그램의 크기가 크거나 여러 개발자들과 협업개발이 필요할 때, 보편적으로 활용되어지고 있으므로 잘 이해하고 알아두는 것이 필요하다. 하지만, 이 개념을 정확히 이해하고 자유자재로 활용하기에는 깊은 이해가 필요한게 사실이고, 깊히 들어가면 들어 갈수록 녹록지 않은 면도 실제 있으니, 그런 깊은 이해까지는 추후에 필요한 시점에 더 찾아서 공부하면 될 일이기 때문에, 엔트리-파이썬에서는 기본적이고 원론적인 개념이해만 확실히 해두어도, 텍스트코딩 시작에 있어서는 큰 자산이 될 수 있다.
이전 장들에서 언급된 패러다임들도 그게 무엇인지 모르게 자연스럽게 익혀온 것처럼 엔트리가 처음 만들어지면서부터 의도했는지 모르겠으나, 우리가 이 패러다임을 어렵지 않게 받아드리도록 잘 계산된 설계가 있었단 생각이 든다. 먼저, 우리가 엔트리에서 코딩을 하기 전 젤 먼저 해야할 일이 무엇이었는지 상기해보자. 그렇다 바로 오브젝트를 최소한 1개 이상을 화면 추가하는 일이었다. 여기서 오브젝트(Object)라는 용어를 도입한 것부터 사실상 이 개념을 이해시키기 위한 잘짜여진 각본이 있었단 생각이든다.
엔트리에서는 실행화면에 등장하는 모든게 오브젝트이다. 그냥 이미지냐 오브젝트냐 아니냐의 구분은 해당 개체에 독립된 코드를 붙혀 조작할수 있는지의 여부에 달려있다. 우리는 엔트리 블록코딩을 시작할 때 각양각색의 오브젝트들(각종 이미지형 오브젝트들(배경 오브젝트 포함), 글상자라고 불리는 텍스트형 오브젝트 등)을 가져다가 화면에 배치하는 일부터 시작했었다.
그리고, 그 배치된 각각의 오브젝트들에게 생명력을 주기 위해 각 오브젝트에게 역할과 활동에 적합한 해당 오브젝트 만의 독립된 코드를 작성하게 되고, 때로는 각 오브젝트들이 서로 협업을 할 필요가 있게되면, 오브젝트들 사이에 어떤 요청을 하는 메시지를 주고 받으면서, 상호 협업하는 구조를 만들면서 전체 프로그램을 만들어가는 식의 코딩을 해왔다. 지금까지 언급된 이러한 일련의 과정이 사실상 바로 객체 지향형 패러다임을 사용한 개발과정이었고, 텍스트코딩 세계에서는 이를 객체 지향형 프로그래밍(OOP: Object Oriented Programming) 이라고 하여, 마치 고유명사처럼 부르고 있다.
자 이제 예제를 통해 오브젝트들이 메시지를 상호협력을 위해 메시지를 주고받는 코드를 확인해보자.
사실 실제 텍스트코딩에 기반한 객체지향에서의 협업의 과정은 위와같은 중간매개가 존재하는 메시지전달 방식보다 각각 객체 내에 존재하는 외부 인터페이스 함수들을 외부의 다른 객체에서 직접호출을 통해 이뤄지는게 일반적이다. 지금 이러한 설명은 객체 지향형 패러다임의 깊은 이해를 요하는 내용이라, 이러한 내용을 여기서 자세히 설명하는 것은 본 서의 범위를 넘어서는 것이라 만약, 더 관심이 가는 분들이 계시다면, 객체 지향형 패러다임에 대한 전문서와 함께 특별히 파이썬에서 객체 지향형 패러다임을 어떻게 구현하는지에 대해 꼭 공부해 보기를 추천한다.
이로서 본 서의 마지막인 이곳까지 달려오신 여러분들의 수고에 박수쳐 드리고 싶고, 텍스트코딩 세계(world)에 본격 입문하신 것도 다시한번 축하드린다. 저자는 여러분들의 텍스트코딩 세계 안에서의 재미있는 여정을 돕기 위해 계속해서 을 저술 중에 있다. 그 책도 세상에서 많은 이들의 생각과 사고의 지평을 넓히고 자유롭게 되는데 사용되고 기여할 수 있길 바라고 있다. 2023년 가을의 끝자락에서... 저자올림