2022. 7. 22. 15:40ㆍ코드스테이츠/Section02 - TIL
객체 지향 프로그래밍
데이터의 처리 과정에 대한 모형을 만들어 내는 방식
JavaScript 언어는 객체 지향 패턴으로 작성 할 수 있다.
OOP : Object Oriented Programming
- 프로그램 설계 철학 중 하나
- 객체로 그룹화된 것
- 메모리상에서 반환되기 전까지 객체 내의 모든 것이 유지된다.
OOP 특징
1. 캡슐화 (Encapsulation)
- 데이터와 기능을 하나의 단위로 묶은 것
- 은닉(hiding) : 구현은 숨기고, 동작은 노출 시킴 / 은닉에 포커스가 맞추어져 있음
> 디테일한 구현이나 데이터는 숨기고, 객체 외부에서 필요한 동작(메서드)만 노출
- 느슨한 결함(Loose Coupling)에 유리 : 언제든지 구현을 수정할 수 있음
2. 추상화(Abstraction)
- 내부 구현(전화기의 마이크, 서킷 보드 등)은 아주 복잡하지만
실제로 노출되는 부분(전화기의 수화기, 버튼)은 단순하게 만든다는 개념
- 클래스를 사용하는 사람이 필요하지 않은 매서드 등을 노출시키지 않고,
단순한 이름으로 정의하는 것에 포커스 맞춤
- 클래스 정의 시, 메서드와 속성만 정의한 것을 "인터페이스" 부르며 추상화의 본질이다.
3. 상속성(Inheritance)
- 기본 클래스 (base class)의 특징은 파생 클래스(derived class)가 상속받는다
- 부모클래스의 특징은 자식 클래스가 물려 받는다.
4. 다형성(Polymorphism)
- Poly많은 + morph형태
- "말하다"라는 동작의 본질은 "입으로 소리를 내다"를 의미 하지만 각 다른 동물들은 제각기 소리를 낸다.
이처럼 똑같은 매서드이지만 다른 방식으로 구현할 수 있다.
- 상속을 통해 기능을 확장하거나 변경하는 것을 가능하게 해 준다.
- 코드의 재사용을 가능하게 한다.
OOP 장점
1. 재사용성을 높이고 유지보수가 용이하다.
2. 어떻게 동작하는지 몰라도 여러 기능을 사용할 수 있다.
3. 객체 단위로 데이터를 모델링하여 요구사항을 보다 명확하게 파악할 수 있다.
OOP 단점
1. 객체 간의 정보 교환이 메시지 교환을 통해 일어나 실행 시간의 오버헤드가 크다. 즉, 실행이 느리다.
2. 객체의 설계가 쉽지 않다.
OOP의 장점과 단점 - 출처: https://code-lab1.tistory.com/72 [코드 연구소:티스토리]
'코드스테이츠 > Section02 - TIL' 카테고리의 다른 글
Unit2 - [JS] Prototype 프로토타입 (0) | 2022.07.22 |
---|---|
Unit2 - [JS] Class 와 Instance (2) | 2022.07.22 |