[javascript] 객체의 상태와 동작을 포함한 설계 원칙

JavaScript에서 객체는 데이터와 동작을 포함하는데, 객체지향 프로그래밍의 설계 원칙을 적용하여 객체를 구조화하는 것이 중요합니다. 객체의 상태와 동작을 명확하게 정의하고 관리하는 것은 코드의 가독성과 유지보수성을 향상시키며, 잠재적인 버그를 줄여줍니다.

객체의 상태와 동작

객체의 상태는 객체가 가지고 있는 속성이나 데이터를 나타내며, 객체의 동작은 객체가 수행하는 행동이나 함수를 의미합니다. 객체의 상태는 주로 속성으로 표현되고, 동작은 메서드로 표현됩니다.

예를 들어, 자동차 객체의 상태는 속도, 색상, 모델 등이 될 수 있고, 동작은 주행, 정차, 경적 울리기 등이 될 수 있습니다.

단일 책임 원칙

객체지향 설계에서는 단일 책임 원칙(Single Responsibility Principle, SRP)을 따라 객체가 하나의 역할만을 가지도록 해야 합니다. 객체가 맡은 책임이 명확하면 객체를 이해하고 사용하는 것이 쉬워지며, 유지보수가 용이해집니다.

정보 은폐

객체의 상태를 외부로부터 은폐하고, 캡슐화하여 외부에서는 객체 상태를 변경할 수 없도록 만들어야 합니다. 이를 통해 객체의 무결성을 보장하고, 상태 변경에 대한 제어를 강화할 수 있습니다.

코드 예시

class Car {
  constructor(color, model) {
    this.color = color;  // 객체의 상태
    this.model = model;  // 객체의 상태
    this.speed = 0;      // 객체의 상태
  }

  accelerate() {
    this.speed += 10;    // 객체의 동작
  }

  brake() {
    this.speed -= 10;    // 객체의 동작
  }
}

const myCar = new Car('red', 'Tesla');
myCar.accelerate();
console.log(myCar.speed);  // 10

결론

객체의 상태와 동작을 포함한 설계 원칙을 준수하는 것은 객체지향 프로그래밍에서 중요한 요소입니다. 이러한 원칙을 지키면 객체를 일관되게 정의하고 유지보수하기 쉽게 만들어줍니다.

참고 문헌: MDN Web Docs - 객체지향 입문