객체지향 설계에 등장하는 개념
- 클래스: 공통되는 것들을 묶어서 대표적인 이름을 붙인 것이며 추상화의 결과이다.
- 인스턴스: 클래스가 메모리 공간에 할당된 실체이다.
- 객체: 명확한 의미를 담고 있는 대상으로 설계자의 관점에서는 구체적인 대상을 말하며, 개발자의 관점에서는 클래스에서 생성된 변수를 의미한다. 유익한 식별자와 상태(state)를 가지고 있으며, 연산을 수행할 수 있는 메서드(method)를 포함한다.
SOLID 원칙
- 단일 책임 원칙(Single Responsibility Principle, SRP): 클래스는 하나의 책임만을 가져야 한다. 바리스타는 커피만 만들고, 캐셔는 계산만 하는 것처럼, 클래스도 하나의 기능만을 수행해야 한다.
- 개방-폐쇄 원칙(Open-Closed Principle, OCP): 클래스는 확장에는 열려 있어야 하지만, 변경에는 닫혀 있어야 한다. 레고 블록을 추가할 때 기존 구조를 변경하지 않고 새로운 블록을 추가할 수 있는 것처럼, 소프트웨어도 새로운 기능을 쉽게 추가할 수 있어야 한다.
- 리스코프 치환 원칙(Liskov Substitution Principle, LSP): 하위 클래스는 상위 클래스를 대체할 수 있어야 한다. 레이싱카를 일반 자동차로 바꿔도 기본적인 운전 기능이 유지되어야 하듯이, 서브 클래스는 베이스 클래스의 역할을 충실히 수행할 수 있어야 한다.
- 인터페이스 분리 원칙(Interface Segregation Principle, ISP): 하나의 일반적인 인터페이스보다는 구체적인 여러 개의 인터페이스가 낫다. 멀티펑션 프린터가 복사, 스캔, 팩스 기능을 모두 가지고 있지만, 사용자가 필요한 기능만을 사용할 수 있도록 인터페이스를 분리해야 한다.
- 의존 관계 역전 원칙(Dependency Inversion Principle, DIP): 클라이언트는 구체 클래스가 아닌 추상 클래스(인터페이스)에 의존해야 한다. 전구는 특정 전등에만 맞는 것이 아니라 다양한 전등에 설치될 수 있듯이, 소프트웨어 컴포넌트도 세부 구현이 아닌 추상화에 의존해야 한다.
반응형
'개발 > 기타' 카테고리의 다른 글
SOLID 원칙 (3) - 개방 폐쇄 원칙(OCP) (0) | 2024.02.26 |
---|---|
SOLID 원칙 (2) - 단일 책임 원칙(SRP) (0) | 2024.02.22 |
Let's Encrypt 작동 방식과 장점 및 단점 (0) | 2024.02.19 |
HTTPS와 SSL/TLS 암호 통신의 이해 (0) | 2024.02.16 |
혼합 콘텐츠 정리 (0) | 2024.02.15 |
댓글