TIL 22일차

HyeRyun CHOI·2021년 6월 14일
0

Bootcamp TIL

목록 보기
19/29

객체 지향 JavaScript

객체 지향 프로그래밍(OOP) : 하나의 모델이 되는 청사진(blueprint)를 만들고 그 청사진을 바탕으로 한 객체를 만드는 객체를 만드는 프로그래밍 패턴

객체 지향 언어

• 클래스라고 부르는 데이터 모델의 청사진을 사용해 코드 작성
• 현대의 언어들은 대부분 객체 지향의 특징을 가지고 있음
• JavaScript : 객체 지향으로 작성 가능

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

• 프로그램 설계 철학
• 모든 것이 객체로 그룹화 됨
• 4가지의 주요개념을 통해 재사용성을 얻을 수 있음
• 사람이 세계를 보고 이해하는 방법을 흉내낸 방법론

객체 지향 프로그래밍 예시


Class : Car(기본 틀)
instance : Car1, Car2, Car3(기본틀을 바탕으로 만들어진 객체)

클래스를 만드는 암묵적인 규칙 : 클래스는 대문자, 일반명사로 만들기

prototypeconstructorthis
모델의 청사진을 만들 때 쓰는 원형 객체(original form)인스턴스가 초기화 될 때 실행하는 생성자 함수함수가 실행될 때, 해당 scope마다 생성되는 고유한 실행context new키워드로 인스턴스를 생성했을 때에는 해당 인스턴스가 바로 this의 값이 됨

OOP Basic Concepts

• Encapsulation(캡슐화) : 코드를 복잡하지 않게 만들고, 재사용성을 높임

  1. 데이터와 기능을 하나의 단위로 묶는것
  2. 은닉(hiding) : 구현은 숨기고 동작은 노출
  3. 느슨한 결함(Loose Coupling)에 유리 : 언제든 구현을 수정할 수 있음

• Inheritance(상속) : 불필요한 코드를 줄여 재사용성을 높임

  1. 부모 클래스의 특징을 자식 클래스가 물려 받는 것
  2. 보다 그 특징을 자세하게 설명하는 용어는 기본클래스의 특징을 파생클래스가 상속받는다 로 표현하는 것이 적절

• Abstraction(추상화) : 코드가 복잡하지 않게 만들고, 단순화된 사용으로 인해 변화에 대한 영향을 최소화 함

  1. 내부구현은 아주 복잡한데, 실제로 노출되는 부분은 단순하게 만든다는 개념
  2. 이러한 추상화를 통해 인터페이스가 단순해짐

• Polymorphism(다형성) : 동일한 메소드에 대해 if/else if와 같은 조건문 대신 객체의 특성에 맞게 달리 작성하는 것이 가능

  1. 다양한 형태를 가질 수 있음
  2. 객체가 똑같은 메소드라 하더라도 다른방식으로 구현 될 수 있음
  3. 언어 자체에서 다형성을 제공하지 않을 경우 기본 클래스에 종류별로 분기를 시켜서 하나하나 다르게 만들어야 할 것

여담 : section2가 시작되고 첫날부터 진짜 너무 어렵다....ㅠㅠ 그래도! 친절한 페어님이 잘 설명해주셔서 이해하는데 큰 도움이 되었다..!

페어님 너무 너무 감사합니다 ㅠㅠ!

profile
(˘・ᴗ・˘)

0개의 댓글