JavaScript - What is Object-Oriented Programming?

신동환·2022년 5월 16일

js

목록 보기
17/18

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

  • 객체 지향 프로그래밍은 객체 개념에 기본으로 두는 프로그래밍 패러다임이다
  • 데이터 구조 또는 HTML 컴포넌트 등등 모델링 작업을 객체화하여 사용하는 특징이 있다
  • 스파게티 코드를 지양하고 코드를 보다 유연하고 쉽게 유지 관리할 수 있도록 개발되었다

JavaScript의 Object

  • 객체에는 데이터와 메소드를 포함하여 구성할 수 있다
  • 애플리케이션의 구성 요소이며 서로 상호 작용(API)한다
const user = {
	user: 'jonas',
    password: 'dk23e',
    login(password) {
    	// login logic
    },
    sendMessage(str) {
    	// sending logic
    }
}

객체 지향 프로그래밍의 4가지 기본원칙

  1. 추상(Abstraction)
    => 구체적인 객체들로부터 공통점을 취합하여 일반화하고, 불필요한 세부사항을 제거함으로써 중요 부분을 살리는 것을 말한다

  2. 캡슐화(Encapsulation)
    => 속성 및 메소드를 외부에서 접근하지 못하도록 비공개로 유지하는 것 (일부 메소드는 API로 노출될 수 있다)
    => 캡슐화를 통하여 외부의 개입으로 인한 원치 않는 내부 속성/상태가 조작되는 것을 방지하고 외부의 손상 위험 없이 내부 구현을 변경할 수 있다

  3. 상속(Inheritance)
    => 객체 간의 계층 관계를 구성하여 공통 논리를 재사용하고 실제 관계를 모델링 할 수 있다
    => 적절한 상속을 이용하여 코드의 중복을 줄일 수 있어 코드의 간결성을 더해준다

  4. 다형성(Polymorphism)
    => 상속받은 메소드를 재정의(오버라이딩)하거나 다른 타입으로 변환(오버로딩)하여 사용하는 것을 말한다
    => JavaScript에서는 함수의 매개변수를 자유롭게 사용하기 때문에 오버로딩은 JavaScript에서는 존재하지 않는 개념이다 그래서 JavaScript에서의 다형성은 오버라이딩쪽 개념과 가깝다

profile
안녕하세요! Hello, World!

0개의 댓글