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

Page 클래스
Page 클래스는 페이지의 텍스트 내용을 나타내며 다음과 같은 구조를 가지고 있습니다:
- 생성자 (
constructor):constructor메서드는 새로운Page객체를 생성할 때 호출됩니다.text매개변수를 받아서 객체의text속성으로 할당합니다. 이 속성은 페이지의 내용을 저장합니다.
- 메서드 (
print):print메서드는 객체의text속성을 콘솔에 출력합니다. 이는 페이지의 내용을 표시하기 위해 사용됩니다.
Notebook 클래스
Notebook 클래스는 여러 페이지(Page 객체)를 관리하는 노트북을 나타냅니다. 구조는 다음과 같습니다:
- 생성자 (
constructor):constructor메서드는 새로운Notebook객체를 생성할 때 호출됩니다.pages속성은 빈 배열로 초기화되며, 이 배열은Notebook에 속한 페이지들을 저장합니다.
- 메서드 (
addPage):addPage메서드는 주어진 텍스트를 사용하여 새Page객체를 생성하고 이를pages배열에 추가합니다. 이를 통해 노트북에 새 페이지를 추가할 수 있습니다.
- 메서드 (
print):print메서드는 노트북의 모든 페이지를 순회하며 각Page객체의print메서드를 호출하여 콘솔에 출력합니다. 이는 노트북에 있는 모든 페이지의 내용을 표시하기 위해 사용됩니다.
클래스 간의 관계는 다음과 같습니다:
Notebook클래스는Page객체들을pages배열에 포함합니다. 이것은 집합 관계(aggregation)를 나타냅니다. 여기서Notebook은 여러 개의Page를 포함하지만, 각Page는 독립적으로 존재할 수 있습니다.
정리
각 클래스는 자신만의 책임을 가지며, 이는 객체 지향 설계의 단일 책임 원칙(Single Responsibility Principle)을 따르는 것입니다. Page는 단순히 페이지 내용을 관리하고 표시하는 역할을 담당하며, Notebook은 페이지들의 모음을 관리하고 전체 노트북을 표시하는 역할을 담당합니다.
이와 같은 클래스 설계는 코드를 조직화하고, 유지 보수를 쉽게 하며, 확장성을 높이는 데 도움을 줍니다.
'컴퓨터과학과' 카테고리의 다른 글
| [프레지와 인공지능] 프레지 학습 5단계 (0) | 2024.04.13 |
|---|---|
| [Node.js] 클래스 코딩 설명 (0) | 2024.04.12 |
| [Node.js] JavaScript에서 모듈 내보내기(exporting)와 가져오기(importing) (1) | 2024.04.10 |
| [Node.js] 클래스 활용하기(export, import) (1) | 2024.04.09 |
| [Node.js] Node.js의 ES6 문법에서 확장자에 관하여 (0) | 2024.04.08 |
댓글