[JavaScript] 객체지향의 개념

객체 지향 프로그래밍 (Object Oriented Programming) :

코드의 복잡성을 낮추기 위해 연관된 함수들을 묶어 정리, 사용하는 것

 

 

객체 지향 프로그래밍 주요 개념

  • 캡슐화
  • 추상화 
  • 상속
  • 다형성

캡슐화 : 데이터와 기능을 하나로 묶어 정리하는 것. 하나의 속성이 가지는 다양한 기능을 하나로 모아 이 속성이 어떤 것인지 전체적으로 파악할 수 있게끔 함. 재사용성 높음.

    -은닉화: 내부 데이터, 구현 등은 숨기고 외부에서 사용하는 메서드만 노출. 

 

추상화 : 지하철 노선도처럼 현실의 복잡성을 단순화시켜 소프트웨어적으로 표현하는 것. 즉 조금 더 단순한 상위 분류로 올라가 틀을 만들고 그 아래 필요에 따라 사용할 수 있도록 하는 것. (강아지 -> 말티즈/닥스훈트...). 사용자의 입장에서 꼭 필요한 메서드만 노출시키는 것. 변화에 대한 영향을 적게 받음.

 

상속 : 부모자식의 형태로 연결되어있는 것. (Class 와 instance는 상속관계. 강아지와 말티즈는 상속관계). 부모의 공통된 프로퍼티(속성)와 메서드를 상속받을 수 있고, 자식의 개별 프로퍼티와 메서드를 추가할 수 있음. 

 

다형성 : '강아지'가 추상화된 부분이라 한다면 '말티즈', '닥스훈트' 는 다형성 부분. 부모로부터 받은 공통된 부분이 있지만, 각 객체의 고유의 성질을 가지고 있음.

 

 


이 글은 코드스테이츠 블로깅 과제로, 배운 것을 정리한 글입니다.

 

참고자료