본문 바로가기
프로그래밍/Java

[Java] OOP의 5대원칙(SOLID)

by 시간많은백수 2023. 10. 4.
반응형

📌 단일 책임 원칙 (Single Responsibility Principle - SRP)

하나의 클래스는 하나의 책임만 가져야 합니다. 즉, 클래스는 변경의 이유가 하나여야 합니다. 이를 통해 클래스를 변경할 필요가 있을 때 다른 부분에 영향을 미치지 않도록 할 수 있습니다.

 

📌 개방/폐쇄 원칙 (Open/Closed Principle - OCP)

소프트웨어 엔티티(클래스, 모듈, 함수 등)는 확장에 대해서는 개방적이어야 하지만 수정에 대해서는 폐쇄적이어야 합니다. 즉, 새로운 기능을 추가할 때 기존 코드를 수정하지 않고 확장할 수 있어야 합니다. 이를 위해 인터페이스와 추상화를 활용합니다.

 

📌 리스코프 치환 원칙 (Liskov Substitution Principle - LSP)

자식 클래스는 부모 클래스의 대체(또는 확장) 가능성을 유지해야 합니다. 즉, 자식 클래스는 부모 클래스의 모든 기능을 사용할 수 있어야 하며, 부모 클래스를 대체하여 사용할 수 있어야 합니다.

 

📌 인터페이스 분리 원칙 (Interface Segregation Principle - ISP)

클라이언트는 자신이 사용하지 않는 인터페이스에 의존하도록 강요되지 않아야 합니다. 즉, 인터페이스는 작고 관련성 있는 메서드 집합으로 분리되어야 합니다. 이를 통해 클라이언트가 필요한 메서드만 사용할 수 있게 됩니다.

 

📌 의존 역전 원칙 (Dependency Inversion Principle - DIP)

고수준 모듈은 저수준 모듈에 의존하면 안 됩니다. 두 모듈 모두 추상화(인터페이스 또는 추상 클래스)에 의존해야 합니다. 또한, 추상화는 세부 구현에 의존해서는 안 됩니다. 이를 통해 모듈 간의 결합도를 낮추고 유연한 구조를 유지할 수 있습니다.

 

반응형