일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |
- 혼자공부하는얄팍한코딩지식
- 혼자서공부하는네트워크
- 혼공네트
- UX
- HTTP
- HTTP메시지구조
- 사이드이펙
- 한빛미디어
- 제이콥닐슨 사용성평가기준
- 프로그래머스문자열출력하기
- column grid system
- GUI
- 혼공학습단11기
- 혼자공부하는네트워크
- 혼자공부하는
- 혼자서공부하는얄팍한코딩지식
- user flow
- 2024년회고
- 혼공얄코
- 네트워크
- https
- UI
- 혼공네트워크
- 이더넷허브
- 혼공시리즈
- 피터모빌의벌집모형
- 자바스크립트문자열출력하기
- HTTP와HTTPS차이점
- 혼공학습단
- 혼자서공부하는
- Today
- Total
호기심으로 시작한 Frontend 꾸준함으로 채워나가는 Developer
Unit2 - [JS] 객체 지향 프로그래밍 본문
객체 지향 프로그래밍
데이터의 처리 과정에 대한 모형을 만들어 내는 방식
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 [코드 연구소:티스토리]
'Codestates 부트캠프 > Section02 - TIL' 카테고리의 다른 글
Unit2 - [JS] Prototype 프로토타입 (0) | 2022.07.22 |
---|---|
Unit2 - [JS] Class 와 Instance (0) | 2022.07.22 |