🐣 STUDY/Java Script
🌊 [javascript] 객체 지향 프로그래밍
드림오구
2023. 3. 15. 14:13
🌊 객체 지향 프로그래밍
객체 지향 vs 절차 지향
객체 지향 (OOP) | 절차 지향 (PP) | |
특징 | 캡슐화, 상속, 다형성, 추상화 | 순차적인 처리를 중요시되며, 프로그램 전체가 유기적으로 연결되도록 함 |
장점 | 재사용성, 생산성 향상, 자연적인 모델링, 유지보수의 우수성 | 빠른 실행 속도 |
단점 | 느린 개발 속도, 느린 실행 속도, 높은 난이도 | 유지보수의 어려움, 비효율적 |
언어 | JAVA, Objective-C, Swift, C++, Python, etc. | FORTRAN, C |
자바스크립트는 객체 지향 언어는 아니지만, 객체 지향 패턴으로 작성할 수 있다.
객체 지향 프로그래밍 (Object Oriented Programming)
- 사람이 세계를 보고 이해하는 방법을 흉내 낸 방법론
- OOP는 프로그램 설계 철학이다.
- OOP의 모든 것은 객체로 그룹화된다.
- OOP의 4가지 주요 개념을 통해 재사용성을 얻을 수 있다.
클래스
: 일종의 원형, 객체를 생성하기 위한 아이디어나 청사진, 객체를 만들기 위한 생성자 함수를 포함한다.
인스턴스
: 클래스의 사례
OPP의 4가지 주요 개념
1. 캡슐화 (Encapsulation)
- 하나의 객체에 대해 그 객체가 특정한 목적을 위한 필요한 변수나 메소드를 하나로 묶는 것
- 한 곳에서 변화가 일어나도 다른 곳에 미치는 사이드 이펙트를 최소화 시키는 것을 의미한다.
- 은닉 : 구현은 숨기고 동작은 노출
- 느슨한 결합에 유리 : 언제든 구현을 수정할 수 있다.
- 보호된 변수는 getter, setter 메서드로 간접적으로 접근 가능
- 코드가 복잡하지 않게 만들고 코드의 재사용성을 높인다.
2. 상속 (Inheritance)
- 부모 클래스의 특징을 자식 클래스가 물려받는다.
- 불필요한 코드를 줄여 코드의 재사용성을 높이나, 기능의 확장 관점으로 보아야한다.
3. 추상화 (Abstraction)
- 객체들이 공통적으로 필요로 하는 속성이나 동작을 하나로 추출해내는 작업.
- 세부적인 사물들의 공통적인 특징을 파악한 후 하나의 묶음으로 만들어내는 것
- 인터페이스를 단순화할 수 있다.
- 코드가 복잡하지 않게 만들고 변화에 대한 영향을 최소화한다.
4. 다형성 (Polymorphism)
- 똑같은 메서드라도 다양하고 다른 방식으로 구현할 수 있다.
- 동일한 메서드에 대한 조건문 대신 객체의 특성에 맞게 달리 작성이 가능해진다.
💡 참고
객체지향(OOP) VS 절차지향(PP) 프로그래밍
객체지향, 절차지향 프로그래밍의 정의, 특징, 장단점, 종류에 대해 알아보고 비교해보자 그전에, 🔥 간단 이해 🔥 ✔️ 절차식 방법은 프로그램을 위 그림같이 데이터와 기능(함수)으로 나누
lxxyeon.tistory.com
객체지향 프로그래밍 제대로 이해하기
캡슐화를 핵심으로 두고 보는 OOP 의 핵심 포인트
velog.io