2024/05 4

5. 책임과 메시지

의도는 "메시징"이다. 훌륭하고 성장 가능한 시스템을 만들기 위한 핵심은 모듈 내부의 속성과 행동이 어떤가보다는 모듈이 어떻게 커뮤니케이션하는가에 달려 있다. 자율적인 책임자율적인 객체란 스스로 정한 원칙에 따라 판단하고 스스로의 의지를 기반으로 행동하는 객체다. 타인이 정한 규칙이나 명령에 따라 판단하고 행동하는 객체는 자율적인 객체라고 부르기 어렵다.객체가 어떤 행동을 하는 유일한 이유는 다른 객체로부터 요청을 수신했기 때문이다. 요청을 처리하기 위해 객체가 수행하는 행동을 책임이라고 한다. 따라서 자율적인 객체란 스스로의 의자와 판단에 따라 각자 맡은 책임을 수행하는 객체를 의미한다.적절한 책임이 자율적인 객체를 낳고, 자율적인 객체들이 모여 유연하고 단순한 협력을 낳는다. 따라서 협력에 참여하는 ..

4. 역할, 책임, 협력

우리 모두 합친것보다 더 현명한 사람은 없다. 객체지향 설계의 전체적인 품질을 결정하는 것은 개별 객체의 품질이 아니라 여러 객체들이 모여  이뤄내는 협력의 품질이다. 훌륭한 객체 지향 설계자는 객체들간의 요청과 응답 속에서 창발하는 협력에 초점을 맞춰 애플리케이션을 설계한다. 협력이 자리를 잡으면 저절로 객체의 행동이 드러나고 뒤이어 적절한 객체의 상태가 결정된다.협력책의 파이를 훔친 하트 잭을 읽고 객체지향 관점에서 재판 자에면에 등장하는 모든 등장인물들은 객체다. 왕과 하얀 토끼, 모자 장수라고 불리는 객체들은 하트 잭을 재판하기 위해 서로 협력하고 있다. 즉, 이야기에 등장하는 객체들은 하트 잭의 재판이라는 동일한 목적을 달성하기 위해 협력하고 있다. 왕의 증인 호출 요구(요청), 증인의 입장(응..

카테고리 없음 2024.05.08

3. 타입과 추상화

일단 컴퓨터를 조작하는 것이 추상화를 구축하고, 조작하고, 추론하는것에 관한 모든것이라는 것을 깨닫고 나면 (훌륭한) 컴퓨터 프로그램을 작성하기 위한 중요한 전제 조건은  추상화를 정확하게 다루는 능력이라는 것이 명확해진다. 책의 해리백 이야기를 읽고추상화를 통한 복잡성 극복현실에 존재하는 다양한 현상 및 사물과 상호작용하기 위해서는 우선 현실을 이해해야한다. 문제는 복잡성의 총체인 현실이라는 괴물을 그대로 수용하기에는 인간이 지니고 있는 인지 능력과 저장 공간이 너무나도 보잘것 없다. 따라서 사람들은 본능적으로 이해하기 쉽고 예측 가능한 수준으로 현실을 분해하고 단순화하는 전략을 따른다. 해리백의 지하철 노선도는 불필요한 지형 정보를 제거함으로써 단순함을 달성한 추상화의 훌륭햔 예이다. 진정한 의미에서..

3년동안 방치된 증권사 폐쇄망 레거시 프로젝트 배포하기

시작하며해당 글은 제목에서 보셨듯이 3년동안 방치된 증권사 폐쇄망  레거시 프로젝트를 배포하며 필자의 우당탕탕 경험을 작성하였다. 사내에서 간단한 변경개발 건이라며 000사의 프로젝트를 받게되었다. 해당 프로젝트의 초기 개발자들은 이미 퇴사한 팀장 급 분들이 개발하셨고, 남은 우리팀의 팀장님만 해당 프로젝트의 간략한 히스토리를 알고계셨다.서버 프로젝트는 Admin, App으로 총 2개의 프로젝트로 구성되어 있으며, 환경은 아래와 같다.프로젝트 구성구분버전AdminJava1.8Spring2.3.1Apache Tomcat AppJava1.8Spring Boot2.3.1 여기서 문제는 폐쇄망이라는점과 코드의 히스토리를 아는사람이 없다 라는것이다. Admin 서버의 경우 프로젝트를 Clone 받은 후 Sprin..

Record/회고록 2024.05.02