본문 바로가기
Language/JavaScript

객체 지향 프로그래밍 OOP

by 그랴 2022. 8. 4.

유튜브를 보다 보면 많은 채널에서 공통적으로 보이는 키워드가 있다.

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

나중에 봐야지 나중에 봐야지 하다가 오늘에서야 보고 정리해본다.

 

객체 지향 프로그래밍은 코드를 짜는 일종의 방법론인듯 하다.

  1. encapsulation 캡슐화
  2. inheritance 상속
  3. abstraction 추상화
  4. polymorphism 다형성

이렇게 4가지의 이론이 존재한다.

 

encapsulation

데이터와 class 안에 있는 해당 데이터를 이용하는 함수를 잘 정리하는 방법론

데이터와 데이터를 활용하는 함수를 캡슐(class) 혹은 컨테이너 안에 두는 것

캡슐을 이용하여 표시할 클래스의 속성과 숨길 속성을 선택할 수 있음

어떻게 클래스 정보에 접근 혹은 수정하는지를 결정하는 권한 제공

inheritance

코드를 더 작은 단위로 (class로) 쪼개고, 나누고, 재사용할 수 있음

클래스를 확장하면, 자식 클래스는 부모 클래스의 모든 속성과 메소드를 상속 혹은 수신하게 됨

분할 및 구성을 가능하게 함

abstraction

구현 세부 정보를 숨기는 일반 인터페이스를 지정하는 행위

더 편하게 조종할 수 있는 인터페이스를 만들자

각 메소드의 구현 세부 정보 등을 몰라도 조종 가능하게끔 (세부 실현 정보는 숨김)

구현 세부 내용이 바뀌어도 인터페이스는 그대로이기 때문에 코드 수정시 편함

polymorphism

method overriding : 특정 클래스 만의 메소드 재 정의

부모 클래스에서의 메소드를 오버라이딩 할 수 있지만 결과값의 형태가 같아야 함

 

 

잘 기억해두고

앞으로 코드 작성 시 반영하려고 노력해야겠다.