객체 지향 프로그래밍 (Object Oriented Programming) :
코드의 복잡성을 낮추기 위해 연관된 함수들을 묶어 정리, 사용하는 것
객체 지향 프로그래밍 주요 개념
- 캡슐화
- 추상화
- 상속
- 다형성
캡슐화 : 데이터와 기능을 하나로 묶어 정리하는 것. 하나의 속성이 가지는 다양한 기능을 하나로 모아 이 속성이 어떤 것인지 전체적으로 파악할 수 있게끔 함. 재사용성 높음.
-은닉화: 내부 데이터, 구현 등은 숨기고 외부에서 사용하는 메서드만 노출.
추상화 : 지하철 노선도처럼 현실의 복잡성을 단순화시켜 소프트웨어적으로 표현하는 것. 즉 조금 더 단순한 상위 분류로 올라가 틀을 만들고 그 아래 필요에 따라 사용할 수 있도록 하는 것. (강아지 -> 말티즈/닥스훈트...). 사용자의 입장에서 꼭 필요한 메서드만 노출시키는 것. 변화에 대한 영향을 적게 받음.
상속 : 부모자식의 형태로 연결되어있는 것. (Class 와 instance는 상속관계. 강아지와 말티즈는 상속관계). 부모의 공통된 프로퍼티(속성)와 메서드를 상속받을 수 있고, 자식의 개별 프로퍼티와 메서드를 추가할 수 있음.
다형성 : '강아지'가 추상화된 부분이라 한다면 '말티즈', '닥스훈트' 는 다형성 부분. 부모로부터 받은 공통된 부분이 있지만, 각 객체의 고유의 성질을 가지고 있음.
이 글은 코드스테이츠 블로깅 과제로, 배운 것을 정리한 글입니다.
참고자료
- https://www.youtube.com/watch?v=M3zlc6jiB5o
- 코드스테이츠 강의 자료
'SW공부 > JavaScript' 카테고리의 다른 글
[JavaScript] 프로토타입 체인, extends와 super (0) | 2023.03.16 |
---|---|
[JavaScript] .prototype(프로토타입)과 클래스 (0) | 2023.03.15 |
[JavaScript] Class(클래스)와 Instance(인스턴스) (0) | 2023.03.15 |
[JavaScript] 랜덤 숫자 생성하기 (Math.random()) (0) | 2023.03.07 |
[JavaScript] 요소의 객체화 (rest parameter) (0) | 2023.03.06 |