본문 바로가기

길게 쓰기/객체지향의 탄생 (공식)

객체지향 생각의 도구6-한두깨 객체지향 프로그래밍 미리보기

한번 읽고 두번 깨닫는 객체지향 프로그래밍 미리보기


책이 2019년 1월말에 출간 예정인데 블로그 독자들에게 미리보기를 제공합니다.


보시고 댓글과 질문 많이 남겨주시면 감사합니다. +.+



7) 패턴인식

객체지향의 관계의 의존성은 낮추고, 기능의 집중도는 높이는 구체적인 방법은 수많은 개발 경험을 통해 지속적으로 개선되었다. 특히, 객체지향은 객체 하나하나를 잘 설계하는 것을 넘어 이 객체간의 관계를 잘 연결 짓는 기술이 필요 했다. 그래서 객체와 객체를 잘 연결 짓는 기법이 발달하게 되었다. 예를 들어 상속도 객체와 객체를 연결 짓는 기법이다. 그러나 모든 상황을 상속으로 해결하기에는 상속의 단점도 존재 한다. 그래서 객체간의 관계를 다양하게 연결하는 기법이 발달하게 되었다. 그리고 이 객체와 객체를 잘 연결하는 기법은 다른 소프트웨어의 같은 상황에서 반복되어 재활용되고 있다. 코드의 재활용이 아니라 객체간의 관계를 재활용하는 기법이다. 이것이 디자인패턴이다. 이 디자인패턴은 소프트웨어 공학 분야의 선구자인 GoF(Gang of Four : 에릭 감마, 라치드 헬름, 랄프 존슨, 존 블리시디스)에 의해 만들어졌다. 우리는 개발할 때 패턴 인식을 통해 디자인패턴을 활용할 수 있다. 패턴 인식에 대한 감각이 있어야 디자인패턴을 소프트웨어 적재적소에 활용할 수 있다. 여기서 우리는 이점을 발견할 수 있다.

 

※ 디자인패턴은 점(코드, 함수, 로직)의 재활용이 아니라 선(관계)의 재활용이다.

 

‘작곡가들은 왼쪽에서 오른쪽으로 읽어나가는 음의 순서보다 음표들 사이의 관계에 관심이 더 많다.’ ‘가장 중요한 것은 특정한 조각 하나가 아니라 전체 그림을 가늠할 수 있을 만큼의 충분한 조각들과 그것들 사이의 연관성을 찾아내는 것이다.’ 패턴을 알아낸다는 것은 다음에 무슨 일이 일어날지 예상하는 것이다. 우리는 패턴에서 지각과 행위의 일반 원칙을 이끌어 내어 예상의 근거로 삼는다. 그런 다음 새로운 관찰결과와 경험을 예상의 틀 안에 끼워 넣는다. 이 관찰과 경험의 틀을 흔드는 무엇인가가 일어나게 될 때 우리는 또 다른 패턴을 만들어내며, 새로운 발견은 이런 순간에 이루어진다.

– 생각의 탄생, 패턴인식

 

객체지향 개발자는 속성, 메소드, 객체 각각의 요소보다 객체들 사이의 관계에 관심이 더 많다. 가장 중요한 것은 특정한 조각 하나가 아니라 전체 그림을 가늠할 수 있을 만큼의 충분한 조각들과 그것들 사이의 연관성을 찾아내는 것이다. 객체지향에서 패턴을 알아낸다는 것은 객체지향 개발자들이 프로그램을 설계하고 개발 할때 다음에 무슨 일이 일어날지 예상하는 것이다. 우리는 개발 중에 발견되는 공통적으로 반복되는 일반 원칙을 이끌어 내어 앞으로도 반복될 수 있는 상황을 예상하는 근거로 삼는다. 그런 다음 새로운 관찰결과와 경험을 예상의 틀 안에 끼워 넣는다. 이렇게 디자인패턴이 생긴다. 이 관찰과 경험의 틀을 흔드는 무언가가 일어나게 될 때 새로운 객체지향 고수는 또 다른 패턴을 만들어낸다.

 

– 한번 읽고 두번 깨닫는 객체지향 프로그래밍

 

패턴 인식은 패턴을 발견하는 사고이다. 우리는 객체지향 설계 또는 개발 중에 이런 디자인패턴을 적용하면 되겠구나 라는 패턴인식을 할 줄 알면 된다. 우리가 구현할 소프트웨어 어느 구간에 디자인패턴을 적용하면 될지 발견하는 것이 객체지향에서 패턴인식을 활용하는 방법이다.


 Yes24: http://bitly.kr/DAg9t
 알라딘: http://bitly.kr/aSMu2
 교보문고: http://bitly.kr/utfU7
 인터파크: http://bitly.kr/ffJjy

태그