1. 객체지향 프로그래밍이란?

객체지향 프로그래밍 (OOP: Object-Oriented Programming) 은 컴퓨터 프로그래밍 패러다임의 한 종류 이며, 객체(Object)와 객체(Object)간의 메시지 전달을 통해 프로그래밍을 구현하는 방식이다. 특징으로는 객체지향으로 짜인 프로그램은 유연하고 변경이 쉽고 강한 응집력(Strong Cohesion)과 약한 결합력(Weak Coupling)을 지향한다.[각주:1]

 

2. 요소

객체(Object)
클래스의 인스턴스 개체(Entity) 현실 세계의 본질
속성(Attribute) 자료 저장소 (cf.변수)
메소드(Method) 호출 단위 (cf.함수)
클래스(Class) 객체를 생성하는 추상 메소드 타입
메시지(Message)  객체 간의 통신

 

3. 특징

 

자료 추상화

불필요한 정보는 숨기고 중요 정보만 표현하며 프로그램을 간단히 만드는 것.

 

상속

기존 클래스의 자료와 연산을 새로운 클래스에서 사용할 수 있게 하는 기능.

일반적으로 상속 받는 클래스를 자식 클래스(하위 클래스)라고 하며, 상속하는 클래스를 부모 클래스(상위 클래스) 라고 한다. 클래스 간의 종속 관계를 형성하여 객체를 조직화 하는 역할을 한다.

 

다중 상속

하나의 클래스가 2개 이상의 클래스로 부터 상속받을 수 있게 하는 기능.

 

다형성 
한 요소에 여러 개념을 넣어 놓은 것. [각주:2]

 

동적 바인딩

런타임 중 변경 될 수 있는 바인딩을 말한다. 

 

4. SOLID

로버트 마틴이 명명한 객체 지향 프로그래밍의 다섯 가지 기본 원칙의 앞글자를 딴 것을 말한다.

유지보수와 확장이 쉬운 프로그램을 개발하기 위한 원칙이다.

 

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

"한 클래스는 하나의 책임만 가져야 한다."

 

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

"소프트웨어 요소는 확장에는 열려있어야하나, 변경에는 닫혀있어야 한다."

 

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

"프로그램의 객체는 프로그램의 정확성을 깨트리지 않으면서 하위 타입의 인스턴스로 바꿀 수 있어야 한다."

 

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

"특정 클라이언트를 위한 인터페이스 여러 개가 범용 인터페이스 하나보다 낫다."

 

DIP 의존관계 역전 원칙 (Dependency Inversion Principle)

"프로그래머는 추상화에 의존해야지 구체화에 의존하면 안된다."

 

 

 

참조문헌

NCS 정보처리기술사 연구회,「수제비 정보처리기사 실기vol.1」,건기원,2021

위키백과 '객체 지향 프로그래밍' https://ko.wikipedia.org/wiki/%EA%B0%9D%EC%B2%B4_%EC%A7%80%ED%96%A5_%ED%94%84%EB%A1%9C%EA%B7%B8%EB%9E%98%EB%B0%8D

 

객체 지향 프로그래밍 - 위키백과, 우리 모두의 백과사전

 

ko.wikipedia.org

위키백과 'SOLID (객체 지향 설계)' https://ko.wikipedia.org/wiki/SOLID_(%EA%B0%9D%EC%B2%B4_%EC%A7%80%ED%96%A5_%EC%84%A4%EA%B3%84) 

 

SOLID (객체 지향 설계) - 위키백과, 우리 모두의 백과사전

 

ko.wikipedia.org

 

  1. 하나의 목적으로 데이터를 모아놓은 데이터형을 사용하고, 클래스간 독립적인 디자인을 하기 때문이다. [본문으로]
  2. 오버라이딩, 오버로딩이 있다 [본문으로]

+ Recent posts