객체 지향 프로그래밍이란? - OOP

김동현·2022년 12월 30일

객체 지향 프로그래밍이란

프로그램 구현에 필요한 데이터를 추상화 시켜 상태와 행위를 가진 객체로 만들고 각체들 간의 상호작용을 통해 로직을 구성하는 프로그래밍 방법이다.

  • 장점
    • 다른 클래스를 가져와 사용할 수 있고, 상속받을 수 있기 때문에 코드의 재사용성 증가
    • 객체 단위로 코드가 나눠져 작서오디기 때문에 디버깅이 쉽고 유지보수 용아
  • 단점
    • 처리 속도가 상대적으로 느림
    • 설계시 많은 노력과 시간이 필요

객체 지향 프로그래밍의 특징

객체 지향 프로그래밍은 크게 추상화 캡슐화 상속 다형성의 네 가지 특징을 가진다.

  • 추상화
    여러가지 사물이나 개념에서 공통되는 특성이나 속성 따위를 추출하는 것으로 구체적인 것을 감추고 단순하게 표현하는 것을 의미한다.
  • 캡슐화
    객체의 필드, 메소드를 하나로 묶고, 실제 구현 내용을 외부에 감추는 것을 의미한다.

  • 상속
    자식 클래스가 부모 클래스의 멤버를 물려받는 것으로 상속받은 객체의 요소를 사용하는 것을 의미한다.

  • 다형성
    하나의 타입에 여러 객체를 대입할 수 있는 성질을 의미한다.

    객체 지향 개발 5대 원리 - SOLID

  • SRP(단일책임의 원칙: Single Responsibility Principle)
    작성된 클래스는 하나의 기능만 가지며 클래스가 제공하는 모든 서비스는 그 하나의 책임을 수행하는데 집중되야 한다는 원칙

  • OCP(개방폐쇄의 원칙: Open Closed Principle)
    소프트웨어의 구성요소는 확장에는 열려있고 변경에는 닫혀있어야 한다는 원칙이다.(요구사항의 변경이나 추가사항이 발생하더라도 기존 구성요소는 수정이 일어나면 안된다는 의미)

  • LSP(리스코브 치환의 원칙: The Liskov Substitution Principle)
    부모 객체를 호출하는 동작에서 자식 객체가 부모 객체를 완전히 대체할 수 있다는 원칙이다.

  • ISP(인터페이스 분리의 원칙: Interface Segregation Principle)
    한 클래스는 자신이 사용하지 않는 인터페이스는 구현하지 말야아 한다는 원칙으로 자신이 호출하지 않은 메소드에 의존하지 않아야한다는 것을 의미한다.
    각 행위에 대한 인터페이스는 서로 분리되어야 한다.

  • DIP(의존성 역전의 원칙: Dependency Inversion Principle)
    객체는 저수준 모듈보다 고수준 모듈에 의존을 해야한다. 저수준 모델이란 구현된 객체와 같은 것들을 의미하며 고수준 모듈이란 인터페이스와 같은 객체의 형태나 추상적 개념을 의미한다.

profile
오늘은 오늘

0개의 댓글