20-09-08 TIL: OOP

Paul Kim·2020년 9월 8일
0

TIL

목록 보기
10/11

OOP(Object Oriented Programming)가 무엇인지?

Object-oriented programming, 는 말 그대로 객체를 사용하는 프로그래밍 패러다임을 의미한다. inheritence, hide, polymorphism 등의 일상생활 속에서 사용되는 개념이 그대로 사용된다. OOP 의 가장 큰 목적은 같은 목적을 지닌 데이터와 코드를 모아두고, 객체 외부의 변수로 접근할 수 없도록 차단함으로써, 잠재적 오류를 줄일 수 있다.

OOP에서는 다음과 같은 큰 네 가지의 개념이 존재한다.

  • Encapsulation
    • 한 프로그램 에서 여러 다른 함수나 변수들은 자동적으로 상호작용을 하려고 할 것이다. 클래스를 부여함으로써 프로그래머는 의도적으로 이러한 상호작용을 막아, 변수/함수간의 예상치 못한 오류를 막을 수 있다.
  • Abstraction
    • Encapsulation 의 연장선이라고 이해하면 된다. 외부의 코드들에 의해 특정 속성값이나 메소드등이 접근 당하는 것을 차단하고, 고립시킴으로써, 만약 문제가 발생했을 때 문제의 원인을 한정 된 공간에서 찾을 수 있다.
  • Inheritance
    • 상속이란 개념은 같은 메소드나 속성을 반복해야하는 것을 방지해준다. 예를들어 전혀 다른 클래스에서도, super 클래스를 통해 메소드와 일부 속성값을 그대로 이어받을 수 있기 때문에, 코드 작성을 최소화 해준다.
  • Polymorphism
    • 이 개념은 많은 모양들이나 형태를 의미하는데, 프로그래머들로 하여금 HTML 을 객체의 타입에 따라 변형시킬 수 있도록 만든다. 하나의 파츠가 작동 방법을 바꾸고 싶을 때 유연성을 제공한다.

JavaScript에서 Object를 생성하는 여러가지 방법들

  • ES5 에서는 Object Constructor, 즉 function 안에 this 를 이용해서 만들 수 있다. 또한 new 키워드를 통해서 instanciate 할 수 있다.
  • 또 다른 생성 방법은 Object.create 이다. 이 방법을 통해서 이미 기존에 존재하는 객체의 내용들을 새로운 객체의 prototype 로 이용할 수 있다.
  • ES6 에서는 class 라는 자료형을 이용해 아예 객체를 블루프린트하는 것이 가능하다.

JavaScript에서 Prototype은 무엇이고 왜 사용해야 하는지?

  • Prototype 를 이용하면 한 객체의 같은 함수를 다른 객체에서 이용할 수 있도록 할 수 있다.
  • 따라서 코드를 간결하고 재사용 할 수 있게 도움을 준다.

0개의 댓글