[Js] 객체 지향 프로그래밍 OOP

걸음걸음·2023년 1월 13일
0

Javascript

목록 보기
7/7

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

객체 지향 언어

  • 데이터 모델의 청사진(Class)를 사용해 코드 작성
  • 데이터와 기능을 한 번에 묶어서 처리 가능

객체 지향 프로그래밍(OOP)

프로그램 설계 철학

재사용성을 얻을 수 있음

캡슐화(Encapsulation)

데이터와 기능을 하나로 묶는 것

느슨한 결합(Loose Coupling) : 코드가 상징하는 실제 모습과 닮게 결합.

은닉(Hiding) : 내부 데이터나 구현이 외부로 노출되지 않도록 만드는 것. 외부 객체에서 필요한 동작만 노출.

코드가 복잡하지 않으며 재사용성을 높일 수 있음.

상속(Inheritance)

기본 클래스(부모 클래스, base class)의 특징을 파생 클래스(자식 클래스, derived class)가 물려받는 것.

중복되는 속성과 메서드를 다시 구현할 필요 없이, 외에 필요한 속성과 메서드만 추가 가능.

불필요한 코드를 줄여 재사용성을 높임.

추상화(Abstraction)

내부 구현은 복잡하지만, 노출되는 부분은 단순하게 만든다는 개념

인터페이스의 단순화가 목적.

코드가 복잡하지 않게 만들고, 변화에 대한 영향을 최소화 함.

다형성(Polymorphism)

똑같은 메서드여도 다른 방식으로 구현 가능.

HTML 의 Textarea, Select, Checkbox 등의 Element를 예로 들 수 있음. 각기 다른 모양과 기능을 구현하지만 공통적으로 같은 HTML Element라는 부모 클래스에서 render 메서드를 상속 받음.

동일한 메서드에 대해 객체의 특성에 맞춰 구현하는 것이 가능.

profile
꾸준히 나아가는 개발자입니다.

0개의 댓글