본문 바로가기

CS 공부

CS) 객체지향 설계 원칙과 OOAD

1. 객체지향 설계 원칙 ( SOLID )

 

객체지향 프로그래밍 ( OOP )에서 유지보수성과 확장성을 고려한 설계 원칙으로 SOLID 원칙이 있다.

  • S ( Single Responsibility Principle, 단일 책임 원칙 )
    • 한 클래스는 하나의 책임만 가져야 한다.
    • 책임이 많아질 경우 클래스를 분리하여 변경이 용이하도록 설계한다.
  • O ( Open/Closed Principle, 개방-폐쇄 원칙 )
    • 기존 코드를 수정하지 않고 기능을 확장할 수 있어야 한다.
    • 인터페이스 또는 추상 클래스를 활용하여 다형성을 적용한다.
  • L ( Liskov Substitution Principle, 리스코프 치환 원칙 )
    • 자식 클래스는 부모 클래스의 기능을 대체할 수 있어야 한다.
    • 상속 관계에서 부모의 동작을 보장하도록 설계한다.
  • I ( Interface Segregation Principle, 인터페이스 분리 원칙 )
    • 하나의 인터페이스가 너무 많은 기능을 가지지 않도록 한다.
    • 필요 없는 기능을 강제하지 않기 위해 인터페이스를 분리한다.
  • D ( Dependency Inversion Principle, 의존성 역전 원칙 )
    • 구체적인 구현 클래스보다 추상화 ( 인터페이스, 추상 클래스 )에 의존해야 한다.
    • 의존성을 줄이기 위해 의존성 주입 ( DI, Dependency Injection )을 활용한다.

 

2. 객체지향 분석 및 설계 (OOAD: Object-Oriented Analysis & Design)

 

소프트웨어를 개발할 때 요구사항을 분석하고 설계하는 과정에서 객체지향 개념을 적용하는 방법이다.

  • 객체지향 분석 (OOA: Object-Oriented Analysis)
    • 요구사항을 분석하여 시스템에서 필요한 객체를 식별한다.
    • 유스케이스(Use Case) 다이어그램을 통해 시스템 동작을 모델링한다.
  • 객체지향 설계 (OOD: Object-Oriented Design)
    • 분석된 객체들을 설계 패턴을 활용하여 구체화한다.
    • 클래스 다이어그램(Class Diagram)과 시퀀스 다이어그램(Sequence Diagram)을 활용한다.
  • 객체지향 구현 (OOP: Object-Oriented Programming)
    • 설계된 객체와 관계를 코드로 구현한다.
    • SOLID 원칙을 적용하여 유지보수성을 높인다.