본문 바로가기

전체 글66

[ 오브젝트] 8장. 의존성 관리하기 - 협력을 위해서는 의존성이 필요하지만 과도한 의존성은 애플리케이션을 수정하기 어렵게 만든다. 객체지향 설계의 핵심은 협력을 위해 필요한 의존성은 유지하면서도 변경을 방해하는 의존성은 제거하는 데 있다. 이런 관점에서 객체지향 설계란 의존성을 관리하는 것이고 객체가 변화를 받아들일 수 있게 의존성을 정리하는 기술이라고 할 수 있다. 1. 의존성 이해하기 - 어떤 객체가 협력하기 위해 다른 객체를 필요로 할 때 두 객체 사이에 의존성이 존재하게 된다. 의존성은 실행 시점과 구현 시점에 서로 다른 의미를 가진다. - 실행 시점 : 의존하는 객체가 정상적으로 동작하기 위해서는 실행 시에 의존 대상 객체가 반드시 존재해야 한다. - 구현 시점 : 의존 대상 객체가 변경될 경우 의존하는 객체도 함께 변경된다. -.. 2022. 4. 9.
[오브젝트] 7장. 객체 분해 7장 '객체 분해'에서는 추상화의 한 가지 방법인 분해의 역사를 다룬다. 프로시저 추상화와 데이터 추상화 사이의 갈등과 분쟁의 역사를 이해하면 기능 분해에서 시작해서 객체지향에 이르기까지 소프트웨어 패러다임의 변화를 자연스럽게 이해하게 될 것이다. - 추상화 : 불필요한 정보를 제거하고 현재의 문제 해결에 필요한 핵심만 남기는 작업. - 분해 : 큰 문제를 해결 가능한 작은 문제로 나누는 작업. - 현대적인 프로그래밍 언어를 특징짓는 중요한 두 가지 추상화 메커니즘은 '프로시저 추상화'와 '데이터 추상화'다. 1. 프로시저 추상화와 기능분해 : 소프트웨어가 무엇을 해야 하는지를 추상화한다. - 프로시저는 반복적으로 실행되거나 거의 유사하게 실행되는 작업들을 하나의 장소에 모아놓음으로써 로직을 재사용하고 .. 2022. 4. 8.
[오브젝트] 6장. 메시지와 인터페이스 용어 정리 - 메시지 : 객체가 다른 객체와 협력하기 위해 사용하는 의사소통 메커니즘. 일반적으로 객체의 오퍼레이션이 실행되도록 요청하는 것을 '메시지 전송'이라고 부른다. 메시지는 협력에 참여하는 전송자와 수신자 양쪽 모두를 포함하는 개념이다. - 오퍼레이션 : 객체가 다른 객체에게 제공하는 추상적인 서비스다. 프로그래밍 언어의 관점에서 퍼블릭 인터페이스에 포함된 메시지다. 메시지가 전송자와 수신자 사이의 협력 관계를 강조하는 데 비해 오퍼레이션은 메시지를 수신하는 객체의 인터페이스를 강조한다. 다시 말해서 메시지 전송자는 고려하지 않은 채 메시지 수신자의 관점만을 다룬다. 메시지 수신이란 메시지에 대응되는 객체의 오퍼레이션을 호출하는 것을 의미한다. - 메서드 : 메시지에 응답하기 위해 실행되는 코드.. 2022. 4. 4.
[2022.04.04] 병장이 되었다! 22년 4월 1일 부로 병장이 되었다. 복무일이 500일이 넘어선 요즘 마음이 싱숭생숭하다. 실제 전역일은 7월 10일이지만 전역 전 휴가를 포함하면 5월 말에 나간다. 2달도 안 남았다! 이젠 떨낙조(떨어지는 낙엽도 조심해라) 시기가 온 것이다! 이제 와서 느끼는 건데 시간이 참 빠른 것 같다. 무언가에 몰입하다 보니 눈 깜짝할 사이 사회에 나갈 준비를 해야 될 시기가 왔다. 나가면 정말 부지런히 살아야지. 계획한 대로 이룰 수 있게 노력하자. 남은 기간도 몸조심하면서 힘내자! 2022. 4. 4.