호기심으로 시작한 Frontend 꾸준함으로 채워나가는 Developer

Unit2 - [JS] 객체 지향 프로그래밍 본문

Codestates 부트캠프/Section02 - TIL

Unit2 - [JS] 객체 지향 프로그래밍

RachelLee 2022. 7. 22. 15:40

객체 지향 프로그래밍 

데이터의 처리 과정에 대한 모형을 만들어 내는 방식

JavaScript 언어는 객체 지향 패턴으로 작성 할 수 있다.

OOP : Object Oriented Programming

  • 프로그램 설계 철학 중 하나
  • 객체로 그룹화된 것
  • 메모리상에서 반환되기 전까지 객체 내의 모든 것이 유지된다.

OOP 특징   

이미지 - 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 [코드 연구소:티스토리]

'Codestates 부트캠프 > Section02 - TIL' 카테고리의 다른 글

Unit2 - [JS] Prototype 프로토타입  (0) 2022.07.22
Unit2 - [JS] Class 와 Instance  (0) 2022.07.22