객체지향이란 무엇인가 고민해본다.
객체 지향이 무엇인지 이해한다.
책 마무리에서 나만의 OOP를 정의 할 수 있다.
매주 1장을 읽어온다!
학습한 내용을 정리해서 공유한다!(블로그/ 깃헙 마크다운)
이야깃거리 생각해와서 동료와 함께 토론하는 시간을 가진다!
질문거리
- (객체지향설계를 할 때)클래스가 없으면 어디에다가 넣어서 생각할 수 있을까요?
- 객체가 '자율성'을 가진다는 진짜 의미는 무엇일까요?
질문거리
-
객체지향에서 객체는 행동에 의해 상태가 결정되는 것이 중요합니다. 하지만 우리가 백엔드 개발 시 자주 사용하는 POJO 객체는 이 원칙을 따르지 않습니다. 그렇다면 자바의 모든 클래스가 좋은 객체지향의 원리를 따라야만 하는것은 아닙니다. 하지만 POJO를 적극적으로 사용하는 스프링 프레임워크는 좋은 객체지향 설계의 예로 정평이 나 있습니다. 그렇다면 1장에서 언급되었던 것과 같이 클래스는 객체들의 협력 관계를 코드로 옮기는 도구에 불과할 뿐이고 어떤 클래스는 객체가 아닌 단순한 C의 struct 같은 복합 자료형으로 보는것이 자바를 더욱 객체지향적으로 이해하는데 도움이 될 수 있을까요?(임용태)
-
책에서 설명하는 캡슐화의 의미가 와닿지 않습니다. 특히, 캡슐화가 결과적으로 객체의 자율성을 높이고 스스로 판단, 결정을 하게 하고 지능을 높인다는 말이 이해되질 않습니다.(김세연)
-
실제 세계와 객체지향의 차이가 뭘까?
-
캡슐화란 뭘까. 그리고 캡슐화란 객체의 자율성은 어떤 관계가 있는걸까?
-
설계를 할 때 행동이 상태를 결정한다는 말의 의미가 무엇일까?(데이터 주도 설계와 책임 주도 설계)
-
내 코드는 캡슐화가 잘 지켜지고 있는 것일까?
질문거리
- 일반화의 수준은 어느 정도까지 하는 것이 적절할까요? 극단적인 예시이지만 Object외에 어떠한 클래스도 없다고 가정하고 일반화를 과도하게 해서 Object와 한 끗 차이만 나는 개념을 만들어도 부합하는 객체들의 집합, 즉 외연은 일반화된 개념을 적용했을 때 그 집합이 다른 개념의 객체를 포함하지 않으므로(아직 다른 개념으로 분류의 대상이 되는 객체들이 존재하지 않는다고 가정) Object와 다른 단 한가지 행동만으로 개념을 정의할 수 있게 됩니다.(임용태)
질문1) 일반화 특수화에서 행동이 더 일반적이면 상태도 당연히 더 일반적이지 않을까? 반대로 상태가 더 일반적이면, 행동도 더 일반적이지 않을까? 왜 상태가 아닌 행동에 따른 일반화, 특수화 구분을 강조한 걸까? (헉헉 아닐수도 있나?)
질문2) 타입은 행동에 따라 변하는 객체를 정적인 관점에서 볼 수 있도록 해준다는 말이 잘 이해가 안된다!
질문3) 다형성!!? 넌 뭐니
[요약]( "4장 요약") [이야깃거리]( "4장 요약")
[요약]( "5장 요약") [이야깃거리]( "5장 요약")
[요약]( "6장 요약") [이야깃거리]( "6장 요약")
[요약]( "7장 요약") [이야깃거리]( "7장 요약")