피드로 돌아가기
Understanding Object-Oriented Programming in JavaScript
Dev.toDev.to
Backend

JavaScript에서 ES6 class 문법을 도입해 프로토타입 기반 상속을 추상화하여 OOP 구현 방식 표준화

Understanding Object-Oriented Programming in JavaScript

Ritam Saha2026년 3월 28일6beginner

Context

JavaScript의 기존 프로토타입 기반 상속과 생성자 함수 방식은 OOP 패러다임을 직관적으로 표현하기 어려웠다. 개발자들이 Java나 Python과 같은 클래스 기반 언어에서 익숙한 OOP 개념을 JavaScript에서 동일하게 적용하기 위해 문법 단순화가 필요했다.

Technical Solution

  • ES6 class 키워드를 도입해 프로토타입 기반 상속을 class 문법으로 추상화
  • constructor 메서드를 통해 객체 초기화 시 자동으로 실행되는 생성자 함수 정의
  • new 키워드 실행 시 빈 객체 {} 생성 → [[Prototype]] 설정 → this 바인딩 → constructor 실행 → 객체 반환의 5단계 프로세스 표준화
  • 클래스 내 메서드를 prototype 메모리에 공유하여 각 인스턴스마다 메서드 복사 방지
  • Abstraction, Encapsulation, Inheritance, Polymorphism 4가지 OOP 원칙을 class 문법으로 구현 가능하도록 구조화

Key Takeaway

ES6 class 문법은 JavaScript의 프로토타입 기반 상속을 유지하면서 OOP 초학자가 클래스 기반 언어와 동일한 직관으로 코드를 작성할 수 있게 했다. 단일 클래스에서 여러 인스턴스를 생성할 때 메서드 재사용으로 메모리 효율성을 확보하고 코드 중복을 제거한다.


JavaScript 프로젝트를 시작할 때 데이터와 동작을 class로 모델링하면 constructor에서 this를 통해 속성을 초기화하고, 클래스 메서드로 동작을 정의해 코드 재사용성을 높일 수 있다. 예를 들어 Student 클래스 하나로 여러 학생 객체를 new 키워드로 생성하되, printDetails() 같은 메서드는 prototype 메모리에 한 번만 저장되어 모든 인스턴스가 공유한다.

원문 읽기