534
자바에서 코틀린으로
23.4
함수형 프로그래밍과 텍스트를 통한 추론
이 책을 끝내면서 놀랍게도 아무런 소프트웨어 설계 다이어그램도 설명하지 않았다는 사실을
알았다.
솔직히 말해, 이는 부분적인 게으름 때문이다. 리팩터링을 진행하면서 예제 코드의 여러 버전
을 관리하는 동시에 코드에 대한 다른 뷰를 함께 제공하기는 어렵다. 게다가 우리가 사용하는
프로그래밍 언어를 통해서만 표현하는 습관을 들였다. 그냥 날 텍스트를 통해 충분히 서로의
생각을 이해할 수 있다면, 매일 직장에서 코드와 동기화가 되어 있을 수도 있고 그렇지 않을 수
도 있는 별도의 다이어그램을 강제로 살펴보지 않아도 된다.
객체 지향 설계에 대해 글을 쓸 때는 소프트웨어의 동작과 동적인 구조를 보여 주고 소스 코드
의 변경이 어떻게 소프트웨어의 동적 행동 방식에 영향을 미치는지 보여 주는 다이어그램에 의
존했다. 객체 지향 소프트웨어에서 이런 동적 구조 (객체 그래프와 객체 그래프에서 메시지가
어떻게 흘러가는가)는 대부분 암묵적이다. 이로 인해 소스 코드에서 보는 내용과 실행 시점에
벌어지는 일을 연관 짓기 어렵고, 때문에 시각화가 객체 지향 프로그래밍에서 필수적인 요소
다.
1980
년대와
1990
년대 내내 소프트웨어 설계 권위자들은 객체 지향 소프트웨어를 시각화
하는 다양한 다이어그램을 개발했다.
1990
년대 중반 가장 유명한 표기법의 설계자였던 그래디
부치
Grady
Booch
, 이바르 제이콥슨
Ivar
Jacobson
, 제임스 럼보
James
Rumbaugh
는 서로의