Skip to content

syk25/OOP-Study

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

94 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

📔 OOP 스터디 1차 (객체지향의 사실과 오해)

🎯 목표

객체지향이란 무엇인가 고민해본다.

객체 지향이 무엇인지 이해한다.

책 마무리에서 나만의 OOP를 정의 할 수 있다.

🙋 진행 방식

매주 1장을 읽어온다!

학습한 내용을 정리해서 공유한다!(블로그/ 깃헙 마크다운)

이야깃거리 생각해와서 동료와 함께 토론하는 시간을 가진다!

💬 요약 및 이야깃거리

1장 : 협력하는 객체들의 공동체(7.30)

질문거리

  1. (객체지향설계를 할 때)클래스가 없으면 어디에다가 넣어서 생각할 수 있을까요?
  2. 객체가 '자율성'을 가진다는 진짜 의미는 무엇일까요?

2장 : 이상한 나라의 객체

질문거리

  1. 객체지향에서 객체는 행동에 의해 상태가 결정되는 것이 중요합니다. 하지만 우리가 백엔드 개발 시 자주 사용하는 POJO 객체는 이 원칙을 따르지 않습니다. 그렇다면 자바의 모든 클래스가 좋은 객체지향의 원리를 따라야만 하는것은 아닙니다. 하지만 POJO를 적극적으로 사용하는 스프링 프레임워크는 좋은 객체지향 설계의 예로 정평이 나 있습니다. 그렇다면 1장에서 언급되었던 것과 같이 클래스는 객체들의 협력 관계를 코드로 옮기는 도구에 불과할 뿐이고 어떤 클래스는 객체가 아닌 단순한 C의 struct 같은 복합 자료형으로 보는것이 자바를 더욱 객체지향적으로 이해하는데 도움이 될 수 있을까요?(임용태)

  2. 책에서 설명하는 캡슐화의 의미가 와닿지 않습니다. 특히, 캡슐화가 결과적으로 객체의 자율성을 높이고 스스로 판단, 결정을 하게 하고 지능을 높인다는 말이 이해되질 않습니다.(김세연)

  3. 실제 세계와 객체지향의 차이가 뭘까?

  4. 캡슐화란 뭘까. 그리고 캡슐화란 객체의 자율성은 어떤 관계가 있는걸까?

  5. 설계를 할 때 행동이 상태를 결정한다는 말의 의미가 무엇일까?(데이터 주도 설계와 책임 주도 설계)

  6. 내 코드는 캡슐화가 잘 지켜지고 있는 것일까?

3장 : 협력하는 객체들의 공동체

질문거리

  1. 일반화의 수준은 어느 정도까지 하는 것이 적절할까요? 극단적인 예시이지만 Object외에 어떠한 클래스도 없다고 가정하고 일반화를 과도하게 해서 Object와 한 끗 차이만 나는 개념을 만들어도 부합하는 객체들의 집합, 즉 외연은 일반화된 개념을 적용했을 때 그 집합이 다른 개념의 객체를 포함하지 않으므로(아직 다른 개념으로 분류의 대상이 되는 객체들이 존재하지 않는다고 가정) Object와 다른 단 한가지 행동만으로 개념을 정의할 수 있게 됩니다.(임용태)

박지수

질문1) 일반화 특수화에서 행동이 더 일반적이면 상태도 당연히 더 일반적이지 않을까? 반대로 상태가 더 일반적이면, 행동도 더 일반적이지 않을까? 왜 상태가 아닌 행동에 따른 일반화, 특수화 구분을 강조한 걸까? (헉헉 아닐수도 있나?)

질문2) 타입은 행동에 따라 변하는 객체를 정적인 관점에서 볼 수 있도록 해준다는 말이 잘 이해가 안된다!

질문3) 다형성!!? 넌 뭐니

4장 : 역할, 책임, 협력

[요약]( "4장 요약") [이야깃거리]( "4장 요약")

5장 : 책임과 메시지

[요약]( "5장 요약") [이야깃거리]( "5장 요약")

6장 : 객체 지도

[요약]( "6장 요약") [이야깃거리]( "6장 요약")

7장 : 함께 모으기

[요약]( "7장 요약") [이야깃거리]( "7장 요약")

🗓️ 타임라인

About

[진행중] OOP 스터디 (객체지향의 사실과 오해)

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published