• 카테고리

    질문 & 답변
  • 세부 분야

    백엔드

  • 해결 여부

    미해결

"역할과 구현의 분리" 이 한마디에 OOP 설계의 우주가 열린 기분이네요.

23.08.04 00:50 작성 23.08.04 02:09 수정 조회수 602

2

겨우 섹션1만 봤을 뿐인데 뭔가 설계에 있어서 북극성을 본 느낌. 왜 코드 몇줄보다 철학을 먼저 다루었는지 알것같다.

controller,클래스 등(사용자) - 서비스 (자동차회사) - 인터페이스 들(자동차표준협회) - 구현체(자동차 부품업체 들)

인터페이스1 (악셀,브레이크, 변속기, 오디오 등) - 업체 A -> 업체 B
인터페이스 2( 자율주행, 카엔터테인먼트) - ...
인터페이스 3(썬파노라마, 자동잠금장치 등등 ) - ...

단일상속, 다중상속 서비스(자동차회사)

답변 2

·

답변을 작성해보세요.

2

OMG님의 프로필

OMG

2023.08.06

안녕하세요. zol zimara님, 공식 서포터즈 OMG입니다.

영한님이 강의 구성에 대한 고민과 노력이 담긴 강의 구성이지 않나 싶습니다!ㅎㅎ

제가 수강생 시절 남긴 수강평에 영한님이 남겨주신 댓글내용에 영한님의 강의 구성의도를 알 수 있어 첨부합니다 ^^

이러한 의도와 구성은 영한님의 이후 강의에서도 담겨있습니다..!

혹 수강평을 남기시지 않았다면 영한님에게 힘이되는 수강평으로도 남겨주시면 감사하겠습니다 :)

image

감사합니다.

0

인프런 AI 인턴님의 프로필

인프런 AI 인턴

2023.08.06

안녕하세요, 인프런 AI 인턴이에요.
“역할과 구현의 분리”는 객체지향 프로그래밍(OOP) 설계의 핵심 개념 중 하나입니다.
이 개념을 통해 코드를 작성할 때 역할(Role)과 구현(Implementation)을 분리하여 각각의 역할에 맞는 기능을 구현할 수 있게 됩니다.

예를 들어, 자동차 회사를 예로 들면, 사용자는 컨트롤러(Controller) 역할을 담당하며, 서비스(Service)는 자동차 회사의 역할을 수행하게 됩니다. 인터페이스(Interface)는 자동차 표준협회라고 생각할 수 있고, 구현체(Implementation)는 자동차 부품 업체들로 이해할 수 있습니다.

또한, 인터페이스를 더 세분화하여 악셀, 브레이크, 변속기, 오디오 등과 같은 다양한 기능을 나눌 수 있습니다. 이러한 인터페이스들을 통해 업체 A와 업체 B와 같이 다른 구현체를 연결할 수 있습니다.

또한, 다중상속이나 단일상속의 개념도 연관될 수 있습니다. 상속을 통해 부모 클래스의 기능을 자식 클래스에서 사용할 수 있으며, 다중상속을 지원하는 언어에서는 여러 부모 클래스로부터 상속을 받을 수 있습니다.

이런 역할과 구현의 분리, 인터페이스와 구현체, 단일상속과 다중상속 등의 개념을 잘 이해하면 객체지향적인 설계를 할 수 있게 됩니다.
더 자세한 내용은 해당 강의를 참고해보시는 것을 추천드립니다.
다른 질문이 있으시면 언제든지 물어보세요. 감사합니다.