Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
Tags
- 내장고차함수
- for~in/for~of
- toString#String
- variable#function
- JS#3일차달리자#초반인데#시간금방~
- @redux-toolkit
- https://developer-talk.tistory.com/299
- https://dasima.xyz/%EC%9E%90%EB%B0%94%EC%8A%A4%ED%81%AC%EB%A6%BD%ED%8A%B8-%EC%A0%9C%EA%B3%B1-math-pow-%EA%B3%84%EC%82%B0/
- 헷갈린다~
- CSS
- js
- ㄷㅌ
- dom
- 자바스크립트#JS#var#let#const#undefined#null
- children vs childrenNodes
- User Flow
- 자바스크립트#조건문#문자열
- removeCookie
- UX
- Beesbeesbees
- redux상태유지
- https://www.daleseo.com/js-array-slice-splice/
- 자바스크립트#JS#slice#splice
- slice/splice/split
- UI
- 자바스크립트
- 노드교과서
- https://lo-victoria.com/introduction-to-redux-toolkit-for-beginners
- react
- cmarket
Archives
- Today
- Total
Daily Front_Minhhk
[OOP] 객체지향 프로그래밍 본문
객체지향 프로그래밍
Object Oriented Programming
- OOP는 프로그램 설계 철학 중 하나이다
- OOP의 모든것은 객체로 그룹화가 되어 메모리가 반환되기 전까지 개체 내의 모든 것이 유지된다.
- 객체 내에는 " 데이터와 기능이 함께 있다" 라는 원칙에 따라 메서드와 속성이 존재한다.
✂️특징
객체지향 프로그래밍에는 4가지의 개념이 있다
Encapculation (캡슐화)
Abstraction (추상화)
Inheritance (상속)
Polymorphism (다형성)
🔖 캡슐화
Encapculation
- 캡슐화는 데이터(속성)와 기능(메서드)을 따로 정의하는 것이 아닌 , 하나의 객체 안에 넣어서 묶는 것이다. 이때 데이터와 기능이느슨하게 결합된다.
- 느슨한 결합(Loose Coupling)은 코드 실행 순서에 따라 절차적으로 코드를 작성하는 것이 아니라, 코드가 상징하는 실제 모습과 닮게 코드를 모아 결합하는 것을 의미한다.
- 이에 따라 내부 구현 내용을 감추어서 외부에서 확인 할 수 없는 은닉화의 특징도 포함 하고 있다.
- 은닉화는 디테일한 구현이나 데이터를 숨기고 동작(메서드)만 노출만 시킨다.
- 코드가 복잡하지 않게 만들고 재사용성을 높인다는 장점이 있다.
🔖 추상화
Abstraction
- 추상화는 내부 구현은 아주 복잡한데, 실제로 노출되는 부분은 단순하게 만든다는 개념이다.
- 캡슐화와 많이 헷갈리는 부분이 있지만 추상화는 클래스를 사용하는 사람이 필요하지 않는 메서드 등을 노출시키지 않고, 단순한 이름으로 정의하는 것에 집중하는 것 이다.
- 즉 , 필요한 부분(속성)을 모아서 상위의 개념(객체)으로 새롭게 이름을 붙이는 것을 추상화라고 한다.
- 캡슐화 처럼 코드를 복잡하지 않게 만들고 단순화되어진 사용으로 변화에 대한 영향을 최소화 하는 장점이 있다.
🔖 상속
Inheritance
- 상속은 기본 클래스(base class)의 특징을 파생 클래스(derived class)가 상속 받는것을 말한다.
- 즉 새로 만든 인스턴스는 부모 클래스에 속성과 메서드를 그대로 물려받는다.
- 그대로 물려받아 새로 작성해야하는 코드 즉 불필요한 코드를 줄여서 재사용성을 높이는 장점이 있다.
🔖 다형성
Polymorphism
- 다형성은 같은 이름은 가진 메서드라도 조금씩 다르게 동작하는 것처럼 다양한 형태를 가질 수 있다는 것을 뜻한다.
- 상황에 따라 그리고 객체의 특성에 맞게 다르게 사용할 수 있는 것이 가능해진다.
캡슐화가 코드나 데이터의 은닉에 포커스가 맞춰져있다면, 추상화는 클래스를 사용하는 사람이 필요하지 않은 메서드 등을 노출시키지 않고, 단순한 이름으로 정의하는 것에 포커스가 맞춰져 있습니다.
🔥 클래스 정의 시, 메서드와 속성만 정의한 것을 인터페이스라고 부릅니다. 이것이 추상화의 본질입니다.
'Code개발일지' 카테고리의 다른 글
[JS] {Beesbeesbees}, super, extends, class, constructor( ),get-set (0) | 2022.11.21 |
---|---|
[JS] 프로토타입, 체인 (0) | 2022.11.18 |
[JS] 클래스와 인스턴스(ES5,ES6) (0) | 2022.11.18 |
[JS] 일급객체, 고차함수(내장)[map,filter,reduce()] (1) | 2022.11.18 |
Section1 회고 (0) | 2022.11.16 |