본문 바로가기
Knowledge/CS

[CS] 객체지향 프로그래밍이란?

by YoonJong 2022. 12. 3.
728x90

객체지향 프로그래밍은 프로그래밍에서 필요한 데이터와 동작을 객체로 만들어 구현하는 기법이다.

클래스와 객체를 기반으로, 객체지향의 주요 특징인 캡슐화, 상속, 추상화, 다형성 등의 기법을 사용해 프로그래밍을 한다.

 

클래스 : 속성과 행위를 변수와 메서드로 정의한 것.

객체 : 클래스에서 정의한것을 토대로 실제 메모리에 할당 된 것.

ex) 레고(객체) 를 조합해서 프로그래밍을 하는 것을 객체지향 프로그래밍

 

객체지향의 장점

1. 상속을 통한 코드 재사용성이 용이하다.

2. 유지보수가 비교적 쉽다

 

객체지향의 단점

1. 처리속도가 상대적으로 느리다.

2. 설계시 많은 시간과 노력이 필요하다.

 

  • 캡슐화 : 변수와 메서드를 하나로 묶는 것 ( 낮은 결합도 유지 )
  • 상속 : 속성과 행위를 하위클래스에게 물려주는 것 ( 기존의 클래스의 메소드를 이용 )
  • 추상화 : 객체에서 공통된 속성과 행위를 추출하는 것 ( 불필요한 정보를 숨기고 중요한 정보만 표현 )
  • 다형성 : 한개의 변수명, 메소드명에 상황에 따라 다른의미로 해석 ( 오버라이딩 : 상위클래스 메소드 재정의 / 오버로딩 : 같은 이름의 메서드에 인자의 개수 또는 자료형을 다르게 설정 )

 

좋은 객체지향을 위한 설계 방법 SOLID 관련 포스팅

  • SRP : 단일 책임 원칙 ( Single Responsibility Principle) 
    - 하나의 클래스는 하나의 책임만 가져야 한다.
  • OCP : 개방-폐쇄 원칙 ( Open/Closed Principle)
    - 확장에는 열려있으나 변경에는 닫혀 있어야 한다.
  • LSP : 리스코프 치환 원칙 ( Liskov Substitution Principle )
    - 정확성을 깨뜨리지 않으면서 하위 타입의 인스턴스로 바꿀 수 있어야 한다.
  • ISP : 인터페이스 분리원칙 ( Interface Segregation Principle )
    - 인터페이스를 클라이언트에 특화되도록 분리
  • DIP : 의존관계 역전 원칙 ( Dependency inversion priciple )
    - 구체화에 의존하지 말고 추상화에 의존해야 한다.

https://josteady.tistory.com/653

 

좋은 객체 지향 설계의 5가지 원칙(SOLID)

SRP : 단일 책임 원칙 ( Single Responsibility Principle) OCP : 개방-폐쇄 원칙 ( Open/Closed Principle) LSP : 리스코프 치환 원칙 ( Liskov Substitution Principle ) ISP : 인터페이스 분리원칙 ( Interface Segregation Principle ) DIP

josteady.tistory.com

 

728x90

'Knowledge > CS' 카테고리의 다른 글

[CS] 프로세스의 구조  (0) 2022.12.06
[CS] 인덱스(Index) 란?  (0) 2022.12.04
[CS] 뮤텍스(Mutex) 세마포어(Semaphore) 란?  (0) 2022.12.02
[CS] HTTP1.1 의 keep alive 란?  (0) 2022.12.01
[CS] 프로세스와 스레드 개념, 차이  (0) 2022.11.30

댓글