'객체지향'의 근원적 개념을 탐구해 볼까요?

티스토리 메뉴 펼치기 댓글수2

출간 전 책 소식

'객체지향'의 근원적 개념을 탐구해 볼까요?

0과 1이 꿈꾸는 세상 제이펍
댓글수2

안녕하세요? 푹푹 찌는 본격적인 여름에 접어들었습니다. 보통 이맘때는 장마철이라서 회색 하늘과 꿉꿉한 날씨였던 걸로 기억하는데 올해는 좀 다른 것 같습니다. 하지만 날씨가 어떻든, COVID-19가 어떻든 제이펍 멤버들의 신간을 향한 열정은 식지 않습니다. 이번에는 다소 심오한(?) 내용을 수록한 책을 소개해 드립니다.

  

객체지향 사고 프로세스(제5판): 프로그래밍보다 먼저 익혀야 하는 생각의 기술


이 책은 맷 와이스펠드 교수의 《The Object-Oriented Thought Process》의 한글 번역판으로 1999년에 출간되어 작년에 개정 5판까지 출간되면서 프로그래머들이 꾸준히 찾는 스테디셀러입니다. 우리나라에서도 이 책의 3판이 객체지향적으로 생각하라!》라는 타이틀로 출간된 바 있습니다. 이번 5판은 제이펍에서 출간합니다.


그렇다면 '객체지향'이라는 개념부터 알아볼까요? 객체지향 프로그래밍을 설명하기 위해서는 우선 절차지향 프로그래밍부터 살펴보아야 합니다. 절차지향은 어떤 문제를 해결하기 위한 과정을 순서대로 나열해 한 단계씩 해결해 나가는 방식인데, 특정 기능을 수행하는 경우 이를 프로시저(함수)로 만들어 필요할 때 호출해서 실행하여 그 결과를 받아오는 방식으로 논리적 흐름에 따라 제어하는 방식입니다대표적으로  C, Pascal, BASIC 등이 있습니다.


반면, 절차지향 프로그래밍은 크고 복잡한 프로그램을 구축하기 어렵다는 문제점이 있었습니다. 이를 보완하기 위해 등장한 개념이 바로 객체(object)라는 작은 단위로서 모든 처리를 기술하는 객체지향 프로그래밍입니다. 모든 처리는 객체에 대한 요구의 형태로 표현되며, 요구를 받은 객체는 자신 안에 기술되어 있는 처리를 실행합니다. 대표적으로 자바, C++, 비주얼베이직닷넷, Objective-C, 스위프트 등이 있습니다(그 이전에는 델파이나 FoxPro 등도 있었습니다). 객체를 활용하면 무엇보다 프로그램을 쉽고 단순하게 만들 수 있는 장점이 있습니다.  


객체지향 프로그래밍에서는 객체와 함께 클래스라는 개념이 등장하는데요. 자료와 함수를 하나로 묶은 것이 클래스이며, 클래스에서 생성되는 것을 객체라고 합니다. 가장 쉽게 설명하는 예로 붕어빵 틀과 붕어빵이 있는데요. 붕어빵 틀에 반죽을 넣어 붕어빵을 찍어내듯 클래스는 객체를 찍어내는 틀(template)에 해당합니다. 아래 그림처럼 붕어빵 틀은 붕어빵을 찍어내기만 할 뿐 먹을 수 없는 것처럼 실제 실행되는 것은 클래스가 아닌 객체입니다



여기까지는 객체지향에 관한 일반적인 개론이고요. 객체지향 사고 프로세스(제5판)에서는 이를 넘어서 객체지향에 담긴 근원적 개념과 실체까지 심층적으로 접근합니다. 


  

특히, 12장 '객체지향 설계의 SOLID 원칙'은 5판에서 저자가 중점적으로 집필한 부분으로 객체지향 설계 방법론의 핵심이라 할 수 있는 부분입니다. SOLID 원칙은 다음 5가지 원칙의 앞자리를 따서 이름 붙인 것입니다.


SRP: 단일 책임 원칙(Single Responsibility Principle)

OCP: 개방/폐쇄 원칙(Open/Close Principle)

LSP: 리스코프 대체 원칙(Liskov Substitution Principle)

ISP: 인터페이스 분리 원칙(Interface Segregation Principle)

DIP: 의존성 반전 원칙(Dependency Inversion Principle)


객체지향 개념에 깊게 접근하면 추상적인 부분이 많아서 프로그래머들이 바로 이해하긴 어려울 수도 있습니다. 하지만 개념을 확실히 알고 프로그래밍하는 것과 개념에 대한 이해 없이 스킬만 익히는 것에는 큰 차이가 있습니다. 초창기에 배우고 익히는 단계에서는 그다지 차이가 느껴지지 않겠지만, 어느 순간이 지나 고급 프로그래밍 단계로 접어들수록 객체지향의 기본적 개념을 확실히 마스터한 프로그래머와 그렇지 않은 프로그래머 간에 실력 격차는 더 벌어질 것입니다.


여러분도 사상누각처럼 기초가 약한 프로그래머에 머무르지 말고 객체지향에 대해 더 확실히 마스터하고 넘어가길 권해 드립니다.  


모래 위에 지은 집(이거 실화? 어우, 그래도 넌 쫌 멋있다!)


이 책에 관심 있는 분들을 위해 샘플 파일을 제공하니 참고하시기 바랍니다. 객체지향 사고 프로세스(제5판)》는 7월 3일 전후로 서점에서 만나 보실 수 있습니다.


■ 샘플 PDF(차례, 옮긴이 머리말, 주요 번역 용어 대조표, 감사의 말, 이 책에 대하여, 베타리더 후기, 1장 '객체지향 개념 소개' 일부, 5장 '클래스 설계 지침' 일부, 9장 '객체 구축과 객체지향 설계' 일부)

객체지향사고프로세스(제5판)_sample.pdf


■ 예약구매 사이트(가나다순)


■ 제이펍 소식 더 보기(제이펍의 소통 채널에서 더욱 다양한 소식을 확인하세요!)


맨위로

https://jpub.tistory.com/1055

신고하기