객체지향프로그래밍(OOP, Object Oriented Programming)
Real World를 프로그래밍으로 옮겨 와서 real world의 사물들을 객체로 보고, 그 객체로부터 개발하고자 하는 특징과 기능을 뽑아와 프로그래밍 하는 것.
객체 지향 프로그래밍을 이용하면 재사용성과 변형 가능성을 높일 수 있음.
OOP의 5원칙
- SRP(Single Responsibility Principle, 단일 책임 원칙): 클래스는 단 하나의 목적을 가져야 하며, 클래스를 변경하는 이유는 단 하나의 이유여야 한다.
- OCP(Open-Cloed Principle, 개방 폐쇄 원칙): 클래스는 확장에는 열려 있고, 변경에는 닫혀 있어야 한다.
- LSP(Liskov Substitution Principle, 리스코프 치환 원칙): 상위 타입의 객체를 하위 타입으로 바꾸어도 프로그램은 일관되게 동작해야 한다.
- ISP(Integface Segregation Principle, 인터페이스 분리 원칙): 클라이언트는 이용하지 않는 메소드에 의존하지 않도록 인터페이스를 분리해야 한다.
- DIP(Dependency Inversion Principle, 의존 역전 법칙): 클라이언트는 추상화(인터페이스)에 의존해야 하며, 구체화(구현된 클래스)에 의존해선 안 된다.
절차지향 프로그래밍과의 차이
절차지향 프로그래밍(Procedural Programming) | 객체지향 프로그래밍 |
순차적인 처리를 중요시하며 개발(시간 순서) | 현실 세계의 사물들을 객체로 모델링하여 개발 |
C 언어가 대표적 | Java가 대표적 |
코드의 순서가 바뀌면 동일 결과를 보장하기 힘듦. | 캡슐화, 상속, 다형성 등의 기법 사용 가능. 다형성은 동일한 키보드의 키가 다른 역할을 하는 것처럼 하나의 메소드나 클래스가 다양한 방법으로 동작하는 것을 의미 |
컴퓨터의 처리구조와 유사해 실행속도가 빠름. | 절차지향 언어보다 실행속도가 느림. |
'CS > 객체지향프로그래밍' 카테고리의 다른 글
[객체지향프로그래밍] 설계 원칙 - SOLID 원칙 (0) | 2023.03.27 |
---|