Javascript

  • Published on
    전통적인 OOP는 Java, C++, Python 등 클래스 기반 언어에서, 설계도(Class)로부터 속성과 메서드가 복사(copy) 되어 인스턴스가 만들어지는 방식이다. 반면, JavaScript OOP는 프로토타입(prototype) 기반으로, 객체가 다른 객체(프로토타입)에 연결(link) 되어 속성과 메서드를 위임(delegate) 받아 사용하는 구조다. 즉, JS의 상속은 복사가 아닌 “위임(Delegation)”이며, class 문법 역시 기존 prototype 시스템을 보기 좋게 표현한 문법적 설탕에 불과하다. 결국 JS의 모든 OOP 방식(생성자 함수, ES6 class, Object.create)은 프로토타입 상속(prototypal inheritance) 위에서 동작하며, 추상화·캡슐화·상속·다형성의 OOP 원리를 그대로 따른다.
  • Published on
    OOP는 코드를 객체 중심으로 구조화해 복잡한 로직을 효율적으로 관리하는 프로그래밍 패러다임이다. 객체는 데이터(속성)와 메서드를 하나의 블록으로 묶어 서로 상호작용하며, 이를 통해 유지보수성과 재사용성을 높인다. OOP의 4대 핵심 원리는 추상화(Abstraction), 캡슐화(Encapsulation), 상속(Inheritance), 다형성(Polymorphism) 으로, 불필요한 세부사항을 숨기고, 데이터 보호 및 코드 재사용을 가능하게 한다.