본문 바로가기
컴퓨터과학과

[Node.js] 클래스 구조에 대한 설명

by 공부하는노년 2024. 4. 11.
반응형

클래스 구조에 대한 설명

Page.mjs 파일에는 두 개의 클래스, PageNotebook,이 정의되어 있습니다. 이들은 객체 지향 프로그래밍에서 주요 구성 요소입니다. 자바스크립트에서 클래스는 데이터와 그 데이터에 연산을 수행하는 로직을 캡슐화하는 방법을 제공합니다.

클래스 Page.mjs 파일

Page 클래스

Page 클래스는 페이지의 텍스트 내용을 나타내며 다음과 같은 구조를 가지고 있습니다:

  1. 생성자 (constructor):
    • constructor 메서드는 새로운 Page 객체를 생성할 때 호출됩니다.
    • text 매개변수를 받아서 객체의 text 속성으로 할당합니다. 이 속성은 페이지의 내용을 저장합니다.
  2. 메서드 (print):
    • print 메서드는 객체의 text 속성을 콘솔에 출력합니다. 이는 페이지의 내용을 표시하기 위해 사용됩니다.

Notebook 클래스

Notebook 클래스는 여러 페이지(Page 객체)를 관리하는 노트북을 나타냅니다. 구조는 다음과 같습니다:

  1. 생성자 (constructor):
    • constructor 메서드는 새로운 Notebook 객체를 생성할 때 호출됩니다.
    • pages 속성은 빈 배열로 초기화되며, 이 배열은 Notebook에 속한 페이지들을 저장합니다.
  2. 메서드 (addPage):
    • addPage 메서드는 주어진 텍스트를 사용하여 새 Page 객체를 생성하고 이를 pages 배열에 추가합니다. 이를 통해 노트북에 새 페이지를 추가할 수 있습니다.
  3. 메서드 (print):
    • print 메서드는 노트북의 모든 페이지를 순회하며 각 Page 객체의 print 메서드를 호출하여 콘솔에 출력합니다. 이는 노트북에 있는 모든 페이지의 내용을 표시하기 위해 사용됩니다.

클래스 간의 관계는 다음과 같습니다:

  • Notebook 클래스는 Page 객체들을 pages 배열에 포함합니다. 이것은 집합 관계(aggregation)를 나타냅니다. 여기서 Notebook은 여러 개의 Page를 포함하지만, 각 Page는 독립적으로 존재할 수 있습니다.

정리

각 클래스는 자신만의 책임을 가지며, 이는 객체 지향 설계의 단일 책임 원칙(Single Responsibility Principle)을 따르는 것입니다. Page는 단순히 페이지 내용을 관리하고 표시하는 역할을 담당하며, Notebook은 페이지들의 모음을 관리하고 전체 노트북을 표시하는 역할을 담당합니다.

 

이와 같은 클래스 설계는 코드를 조직화하고, 유지 보수를 쉽게 하며, 확장성을 높이는 데 도움을 줍니다.

댓글