Skip to content
Hyunjun Jeong edited this page Sep 24, 2022 · 5 revisions

1주차 스터디 질문

  • 객체지향을 왜 하는지?
    알맞게 작동하고 예상하는대로 동작하고 확장이나 수정에 유연한 코드를 좋은 코드라고 하기 때문에 객체의 역할과 협력,책임을 잘 위임하여야 한다.
    하지만 유연성과 가독성을 고민해야한다.
  • 캡슐화를 왜 쓰는지?
    클래스의 내부,외부를 구분하여 퍼블릭 인터페이스를 최소화로 하고 구현 부분을 숨기는 것이 캡슐화이다. 캡슐화를 이용해 의존성을 적절히 관리함으로써 객체 사이의 결합도를 낮추기 위함이다. 경계의 명확성이 객체의 자율성을 보장하고 프로그래머에게 구현의 자유를 제공하기 때문이다.
  • 메시지와 메소드?
    메시지는 객체들간 협력하거나 통신 하는 것이고 메소드는 객체 내부에 있는 프로세스,구현이다.
  • 다형성이란?
    여러 관점으로 볼 수 있지만,
    동일한 메시지를 수신했을 때 객체의 타입에 따라 다르게 응답할 수 있는 능력을 의미한다.
    오버로딩,오버라이딩,구현와 인터페이스 분리도 이에 해당한다.
  • 객체지향 프로그래밍과 절차지향 프로그래밍의 근본적인 차이를 만드는 것은 무엇인가?
    데이터와 프로세스가 동일한 모듈 내부에 있는지
  • 협력? 책임? 역할? 🚩
  • 책임을 할당할 때 고려해야 하는 두 가지 요소? 🚩

2주차 스터디 질문

  • 데이터 중심의 관점은 무엇이고, 책임 중심의 관점은 무엇인가?
  • 책임 할당에서 메시지가 객체를 선택할 때 객체 선정 기준은 무엇인가?
  • 설계 관점에서 응집도와 결합도를 설명한다면?
  • 두가지 성질 (내재적 동질성 , 대체가능성)