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

  • 객체(Object)는 연관성이 있는 데이터함수(객체 안에 있을 때는 보통 프로퍼티메소드라고 부릅니다)의 집합입니다.

  • 객체 지향 프로그래밍 (Object-oriented programming)

    컴퓨터 프로그래밍 패러다임 중 하나로, 프로그래밍에서 필요한 데이터를 '추상화'시켜 데이터함수를 가진 객체를 만들고, 그 객체들 간의 상호작용을 통해 로직을 구성하는 프로그래밍 방법입니다.

    // 객체 리터럴(object literal)
    var person = {
      //* 프로퍼티(속성)(properties, attributes)
      name: ["Bob", "Smith"],
      age: 32,
      gender: "male",
      //* 메소드(methods)
      greeting: function () {
        alert("Hi! I'm " + this.name[0] + ".");
      },
    };
    
    person.name; // ["Bob", "Smith"]
    person.name[0]; // "Bob"
    person.age; // 32
    person.gender; // 'male'
    person.greeting(); // alert 창: Hi! I'm Bob.

    OOP (객체 지향적 프로그래밍) 는 데이터가 객체 내에 '캡슐화'되고 구성 요소 부분이 아닌 객체 자체가 운용되는 프로그래밍 방식이다. 자바스크립트는 클래스 기반이 아닌 프로토타입(prototype)에 기초한 객체 기반 언어다. [MDN]

  • 객체 지향 프로그래밍은 코드 재사용성이 높습니다.(상속) 또한 객체 단위로 코드가 나눠져 작성되기 때문에 디버깅이 쉽고 유지 보수에 용이해서 대규모 소프트웨어 개발에 많이 사용됩니다.

  • 반면에 처리속도가 상대적으로 느리고, 객체의 증가에 따라 용량이 증가할 수 있으며, 초기 설계 시 많은 시간과 노력이 필요하다는 단점이 있습니다.

Last updated