OOP(Object-Orientied Programming, 객체지향프로그래밍) 5대 원칙

    객체지향에서 꼭 지켜야 할 원칙이 총 5가지 있는데 이걸 OOP 5대 원칙이라고 한다. 물론 이걸 머리속에 집중하며 5대원칙 중 하나는 뭐... 또 하나는 뭐... 이렇게 외우면서 설계 및 코딩하는 사람들은 없기 때문에 한두번 정도 이해하고, 나머지는 경험에서 우러나오는 개발을 하게 된다. OOP 5대 원칙을 줄여서 SOLID라고도 부른다(앞글자들 모음)




    1. OOP 설계의 5대 원칙의 개요


    가. OOP 설계의 5대 원칙의 개념

    - 객체지향 소프트웨어 설계 도구들의 근본이자 목적이 되는 원칙


    나. 객체지향 설계의 필요성

    • 품질 향상 : 재사용성, 유지보수 등을 통한 생산 및 품질의 향상
    • 모형의 적합성 : 현실 세계에서의 인간 사고와 유사
    • 일관성 유지 : 공정 단계간의 전환과 변경이 자연스럽고 신속함




    2. OOP 설계의 5대 원칙 (SOLID)


    가. 단일 책임의 원칙(Single Responsibility Principle)

    - 객체는 오직 하나의 책임을 가져야 함 (무리해서 나누지는 말아야 한다)

    - DB 정규화와 유사



    나. 개방폐쇄 원칙(Open-Closed Principle)

    - 모듈은 확장에는 열려 있어야 하고, 변경에는 닫혀 있어야 한다

    - 객체 기능의 확장은 허용하고 스스로의 변경은 피해야 함



    다. 리스코프 치환원칙(Liskov Substitution Principle)

    - 자식 클래스는 언제나 자신의 부모 클래스를 대체할 수 있는 원칙

    - 기반 클래스는 파생 클래스로 대체 가능



    라. 인터페이스 분리의 법칙(Interface Segregation Principle)

    - 하나의 일반적인 인터페이스보다는 구체적인 여러 개의 인터페이스가 나음

    - 클라이언트에서 사용하지 않는 메소드는 사용해서는 안됨



    마. 의존관계 역전의 법칙(Dependency Inversion Principle)

    - 클라이언트는 구체 클래스가 아닌 인터페이스나 추상 클래스에 의존해야 함

    - 모든 클래스에 인터페이스를 생성하면 클래스가 엄청나게 증가하고 복잡해지기 때문에 필요한 것만 생성한다

    댓글

    Designed by JB FACTORY