SOLID 원칙 이해하기
1. SOLID 원칙이란 무엇인가?
SOLID 원칙은 객체 지향 프로그래밍과 설계에 있어서 중요한 5가지 원칙을 의미한다. 이 원칙들을 따르면 코드의 유지 보수성, 가독성, 재사용성을 향상시킬 수 있으며, 코드의 변경에 용이하게 대응할 수 있다.
2. SOLID 원칙의 특징
Single Responsibility Principle (SRP)
- 한 클래스는 한 가지 기능만 가져야 한다.
이 원칙을 따르면 기능별로 코드를 분리하고, 유지 보수와 코드의 이해를 용이하게 한다.
Open-Closed Principle (OCP)
- 소프트웨어 개체(클래스, 모듈, 함수 등)는 확장에는 열려 있어야 하고, 수정에는 닫혀 있어야 한다.
이를 통해 새로운 기능을 추가하더라도 기존 코드를 변경하지 않고 확장할 수 있다.
Liskov Substitution Principle (LSP)
- 부모 클래스와 자식 클래스 사이의 관계는 일관성이 있어야 한다.
이를 통해 코드의 안정성을 유지하고 예상치 못한 버그를 방지할 수 있다.
Interface Segregation Principle (ISP)
- 클라이언트는 사용하지 않는 인터페이스에 의존하지 않아야 한다.
이를 통해 필요한 기능만을 사용하도록 하여 코드의 복잡성을 줄일 수 있다.
Dependency Inversion Principle (DIP)
- 상위 모듈은 하위 모듈에 의존하지 않아야 한다.
이를 통해 모듈 간의 느슨한 결합을 유지하고, 코드의 재사용성을 높일 수 있다.
3. SOLID 원칙의 활용 사례
리팩토링
- 코드의 품질을 개선하고 유지 보수를 용이하게 하기 위해 SOLID 원칙을 활용한 리팩토링이 이루어질 수 있다.
디자인 패턴
- SOLID 원칙은 많은 디자인 패턴의 기반 원칙이다. 이를 통해 더 효율적인 코드 설계와 구현을 돕는다.
4. SOLID 원칙의 장점과 단점
장점
유지 보수의 용이성
- SOLID 원칙을 따르면 코드의 유지 보수와 확장이 용이하다.
코드의 일부분만 변경하더라도 다른 부분에 영향을 미치지 않는다.
- 코드 품질의 향상 SOLID 원칙을 따르면 코드의 품질이 향상되고, 코드의 안정성과 유연성을 높일 수 있다.
단점
시간과 노력이 필요
- SOLID 원칙을 따르는 것은 초기에 시간과 노력을 필요로 한다.
그러나 이는 장기적으로 코드의 품질 향상으로 이어진다.
5. etc
타입스크립트에 대한 지식이 좀 부족해서 그런가, 타입스크립트의 예시로 본 LSP, ISP, DIP 이 세 가지가 아직 이해가 많이 부족함. 머리 아프다.