오늘의 TIL-이론

강인구·2025년 8월 5일

하드웨어 : 물리적인것, 오래되면 고장이 잘남

소프트웨어 : 물리적이지 않은것.

과거의 소프트웨어는 칩 하나에 프로그래밍

현재의 소프트웨어는 칩도 여럿 프로그램도 여럿.

점점 다양한 기능들과 복잡한 구조 > 하나의 기능은 묶어서 관리 로 진화

객체에 필요한 속성, 기능을 Class로 관리

Object : 단위, 개념

Class : 문법

Instance : 메모리에 할당된 객체/ 클래스

클래스는 플라토닉 월드(정신계)

인스턴스는 피지컬 월드(물질계)

라 보는게 편함

즉, 문법은 코드상에만 존재하는 것이므로 인스턴스로 현실세계인 Heap에 존재하는것으로 만들어줘야 함.

객체에 필요한 속성, 기능을 Class로 묶어서 관리

객체는 기능을 제공하는 역할 - 기능을 제공하기 위해 캡슐화 한다.

캡슐화를 하기 위해서는 추상화를 해야 한다.

클래스 : 자동차 라는 개념

오브젝트 : 소형차 중형차 등의 차량이라는 물건

추상화 : 디젤차, 가솔린차, 하이브리드, 전기, 수소차 등의 분류로 나누는것

상속(다형성)을 통해서 다양한 클래스를 만든다.

상속이란? 부모 와 자식관계에서 성립하는 것. 즉, 부모 클래스에서 자식 클래스로 속성 등을 상속하는것.

클래스간에 관계가 생긴다는 말!

SOLID

SRP : 단일책임원칙 IPay라는 인터페이스로 상속 느슨한 연결

OCP : 개방폐쇄원칙

LSP : 리스코프 치환 원칙. 서브(자식)타입은 기반(부모)타입으로 교체할 수 있어야 한다. (빨간펜 CM송 참고)

ISP : 인터페이스 분리원칙

DIP : 의존성 역전 원칙

객체지향 프로그래밍의 목적 : 의존성을 낮추고 결합도를 낮춘다. 객체의 자율성을 높이고 응집도를 높인다.

결합 의존도를 낮추는 방법 : 책임의 이동. 책임 = 응집도 라고 보면 됨.
응집도를 높이는 방법 :

  • 연관성이 없는 작업은 다른 객체(클래스)에게 위임한다.
  • 객체 내부의 상태를 캡슐화 하고 오직 메세지를 통해서만 상호작용할것
  • 단일 클래스 상속보단, 다중 인터페이스 상속
profile
기획, 개발 지망

0개의 댓글