Lined Notebook

객체지향 프로그래밍이란 무엇인가요?

by yjym33

객체지향 프로그래밍 이전의 프로그래밍은 중심이 컴퓨터에 있어 컴퓨터가 사고하는대로 프로그래밍을 하였습니다.

하지만 객체지향 프로그래밍은 인간중심적 프로그래밍 패러다임이라고 할수 있습니다.

즉, 현실 세계를 프로그래밍으로 옮겨와 프로그래밍 하는것을 말합니다.

현실 세계의 사물들을 객체로 보고 그 객체로부터 개발하고자 하는 애플리케이션에 필요한 특징들을 뽑아와 프로그래밍 하는 것입니다.

이것을 추상화 라고 합니다.

 

OOP(객체 지향 프로그래밍)으로 코드를 작성하면 이미 작성한 코드에 대해 재사용성이 높습니다.

자주 사용되는 로직을 라이브러리로 만들어두면 계속해서 사용할수 있으며, 그 신뢰성을 확보할수 있습니다.

또한 라이브러리를 각종 예외상황에 맞게 잘 만들어두면 개발자가 사소한 실수를 하더라도 그 에러를 컴파일 단계에서 잡아낼 수 있으므로 버그 발생이 줄어듭니다.

 

개발자는 라이브러리가 제공하는 기능들을 사용할 수 있기 때문에 생산성이 높아지게 됩니다.

또한 객체 단위로 코드가 나눠져 작성되기 때문에 디버깅이 쉽고 유지보수에 용이합니다.

또 데이터 모델링을 할 때 객체와 매핑하는 것이 수월하기 때문에 요구사항을 보다 명확하게 파악하여 프로그래밍 할 수 있습니다.

 

객체 지향적 설계 원칙

  1. SRP(Single Responsibility Principle) : 단일 책임 원칙
    클래스는 단 하나의 책임을 가져야 하며 클래스를 변경하는 이유는 단 하나의 이유이어야 한다.
  2. OCP(Open-Closed Principle) : 개방-폐쇄 원칙
    확장에는 열려 있어야 하고 변경에는 닫혀 있어야 한다.
  3. LSP(Liskov Substitution Principle) : 리스코프 치환 원칙
    상위 타입의 객체를 하위 타입의 객체로 치환해도 상위 타입을 사용하는 프로그램은 정상적으로 동작해야 한다.
  4. ISP(Interface Segregation Principle) : 인터페이스 분리 원칙
    인터페이스는 그 인터페이스를 사용하는 클라이언트를 기준으로 분리해야 한다.
  5. DIP(Dependency Inversion Principle) : 의존 역전 원칙
    고수준 모듈은 저수준 모듈의 구현에 의존해서는 안된다.

 

블로그의 정보

생각보다 실천을

yjym33

활동하기