객체 지향 프로그래밍(OOP)
- 객체 지향 프로그래밍은 하나의 모델이 되는 청사진(blueprint)을 만들고(class), 그 청사진을 바탕으로 한 객체(instance)를 만드는 프로그래밍 패턴입니다.
- 객체 지향 프로그래밍에는 크게 네 가지 기본적인 개념이 있습니다.
Encapsulation (캡슐화)
- 데이터와 기능을 하나의 단위로 묶는 것
- 은닉(hiding): 구현은 숨기고, 동작은 노출시킴
- 느슨한 결합(Loose Coupling)에 유리: 언제든 구현을 수정할 수 있음
Inheritance (상속)
- 상속은 기존 클래스를 바탕으로 새롭게 클래스를 정의할 수 있게 도와주는 것
Abstraction (추상화)
- 내부 구현은 아주 복잡한데, 실제로 노출되는 부분은 단순하게 만든다는 개념
- 인터페이스: 클래스 정의 시 메서드와 속성만 정의한 것
Polymorphism (다형성)
- 하나의 객체에 여러 가지 타입을 대입할 수 있다는 것