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