[javascript] 단일 책임 원칙 준수

소프트웨어 개발에서 단일 책임 원칙(Single Responsibility Principle, 이하 SRP)은 각 클래스나 모듈이 오직 하나의 책임만을 가지도록 함으로써 시스템을 구성하는데 유용한 디자인 원칙 중 하나입니다.

SRP가 왜 중요한가?

SRP를 준수하는 것은 소프트웨어의 유지보수성, 테스트 가능성, 확장성을 향상시키고 응집도를 높여 시스템의 유연성을 증가시키는 데 도움이 됩니다. 클래스나 모듈이 단일 책임을 가지면 다른 부분에 영향을 주지 않고 해당 책임을 변경하거나 확장할 수 있기 때문에 코드의 의도를 이해하기 쉬워지고 협업이나 유지보수에 용이해집니다.

SRP의 예시

예를 들어, 주문 시스템의 경우 주문 정보를 저장하고, 주문을 처리하고, 주문 이력을 관리하는 책임은 각기 다른 클래스에 분리하여 담당하도록 설계할 수 있습니다. 이렇게 하면 각 클래스가 하나의 명확한 책임을 가지게 되어 코드의 가독성과 유지보수성이 높아지게 됩니다.

class Order {
  constructor(customer, product) {
    this.customer = customer;
    this.product = product;
  }

  processPayment() {
    // process payment logic
  }

  shipOrder() {
    // shipping logic
  }
}

class OrderHistory {
  constructor(order) {
    this.order = order;
  }

  addOrderToHistory() {
    // add order to history logic
  }

  getRecentOrders() {
    // get recent orders logic
  }
}

위 코드에서 Order 클래스는 주문을 처리하는 책임을, OrderHistory 클래스는 주문 이력을 관리하는 책임을 담당하고 있습니다.

결론

SRP는 소프트웨어의 설계를 개선하고 유지보수를 용이하게 하며 코드의 이해를 돕는 중요한 디자인 원칙입니다. SRP를 준수하여 각 클래스나 모듈이 단일 책임을 가지도록 설계하면 더욱 견고하고 유연한 시스템을 구축할 수 있습니다.

참고 자료