Page 86

4장을 읽었다면 소프트웨어를 제대로 디자인하는 방법을 어느 정도 감 잡았을 것이다. 이번에는 객체 개념을 디자인에 적용하는 방법을 알아보자. 코드를 작성할 때 객체를 단순히 이용할 줄만 아는 프로그래머와 객체지향 프로그래밍의 개념을 제대로 이해하는 프로그래머의 차이는 객체 사이의 관계를 설정하는 방식뿐만 아니라 프로그램의 전반적인 디자인에서 뚜렷하게 드러난다. 이 장에서는 먼저 C 언어에서 따르던 절차형 프로그래밍 procedural programming 부터 간략히 살펴보 고 나서 객체지향 프로그래밍을 자세히 살펴본다. 지금껏 객체를 사용했더라도 이 장을 읽고 객 체를 바라보는 새로운 관점을 갖길 바란다. 객체지향 프로그램을 개발할 때 흔히 저지르는 실 수와 객체 사이의 다양한 관계를 자세히 설명할 것이다. 또한 객체와 관련된 추상화 원칙도 살 펴본다. 절차형 프로그래밍과 객체지향 프로그래밍은 프로그램의 실행 과정을 표현하는 방식만 다르다 는 점을 명심한다. 흔히 프로그래머들은 객체가 무엇인지 제대로 이해하지 않은 채 객체지향 프 로그래밍의 용어나 문법에만 집착하는 경향이 많다. 이 장에서는 코드보다는 개념을 중심으로 소개한다. C++ 객체 관련 문법은 8, 9, 10장에서 자세히 다룬다.

5.1 절차형 사고방식 C와 같은 절차형 언어는 하나의 작업만 담당하는 프로시저라 부르는 작은 단위로 코드를 구성 한다. C 언어에 프로시저 기능이 없다면 코드 전체를 main ( ) 함수 안에 넣어야 한다. 그러면 가독성이 떨어져 동료와 협업하기 힘들다. 컴퓨터는 코드가 모두 main ( )에 있든 아니면 작업에 맞게 이름과 주석을 붙인 프로시저로 나 뉘어 있든 전혀 신경 쓰지 않는다. 프로시저 procedure 는 일종의 추상화 기법으로서 프로그래머를 비롯한 여러 사람이 코드를 읽기 쉽게 해준다. 프로시저는 ‘이 프로그램이 무슨 일을 하는가?’ 라는 기본 질문을 바탕으로 발전된 개념이다. 이 질문에 대한 답을 자연어로 표현하다 보면 자 연스레 절차적으로 생각하게 된다. 예를 들어 주식종목을 선정하는 프로그램을 디자인하는 과 정에서 이러한 질문에 답해보자. 먼저 이 프로그램은 인터넷에서 주식시세 정보를 가져와서 일정한 기준으로 정렬한 뒤 데이터를 분석한다. 마지막으로 매수 또는 매도할 종목을 출력한 다. 코드를 작성할 때 이렇게 머릿속에서 구상한 과정을 retrieveQuotes ( ), sortQuotes ( ), analyzeQuotes ( ), outputRecommendation ( )와 같은 C 함수로 곧바로 표현할 수 있을 것

이다.

210 2부 전문가답게 C++ 소프트웨어 디자인하기

Profile for 한빛미디어

전문가를 위한 C++ (개정4판) - 맛보기  

『전문가를 위한 C++』(개정4판)은 새로 추가된 기능과 관련 도구를 비롯해 C++에 대한 모든 내용을 코드와 솔루션 위주로 소개한다. 저자는 실전 프로그래밍에 적용할 수 있는 현실적인 기법을 다양하게 소개하였으며, 본 교재는 C++를 더 깊이 이해하...

전문가를 위한 C++ (개정4판) - 맛보기  

『전문가를 위한 C++』(개정4판)은 새로 추가된 기능과 관련 도구를 비롯해 C++에 대한 모든 내용을 코드와 솔루션 위주로 소개한다. 저자는 실전 프로그래밍에 적용할 수 있는 현실적인 기법을 다양하게 소개하였으며, 본 교재는 C++를 더 깊이 이해하...

Advertisement