정처기 감자
SW 설계디자인패턴

검색

검색어를 입력해 개념, 문제, 필기를 찾습니다.

컴포지트 composite 패턴 - 자바스크립트 예제

SW설계디자인패턴
읽는데 4분 소요
처음 쓰여진 날: 2025-09-01
마지막 수정일: 2025-09-01
조회수: —
선수학습(1개)
  • 정보처리기사 실기를 위한 디자인 패턴 암기 방법

요약

컴포지트(Composite) 패턴을 자바스크립트 코드와 함께 알아봅니다. 정보처리기사 대비 문제가 포함되어있습니다.

컴포지트 패턴 요약

패턴 종류핵심 키워드
컴포지트 (Composite)트리 구조, 부분-전체 계층 표현
컴포지트 패턴 감자
컴포지트 패턴 감자

컴포지트 패턴은 객체들을 트리 구조로 구성하여 '부분-전체' 계층을 표현하는 디자인 패턴입니다. 이 패턴을 사용하면 클라이언트가 개별 객체(Leaf)와 복합 객체(Composite)를 동일한 방식으로 다룰 수 있습니다. 즉, 단일 객체이든 여러 객체로 이루어진 집합이든 똑같은 인터페이스로 제어할 수 있게 됩니다.

가장 대표적인 예는 컴퓨터의 파일 시스템입니다. 폴더(복합 객체) 안에는 다른 폴더나 파일(개별 객체)이 들어갈 수 있습니다. 사용자는 폴더와 파일을 구분하지 않고 '이름 변경', '삭제' 등의 동일한 작업을 수행할 수 있습니다.

기본 구조

  • Component: Leaf와 Composite가 모두 구현해야 하는 공통 인터페이스입니다. 트리 구조의 모든 객체에 대한 일관된 작업을 정의합니다.
  • Leaf: 트리의 가장 말단에 있는 개별 객체입니다. 자식을 가지지 않습니다. (예: 파일)
  • Composite: 자식(Leaf 또는 다른 Composite)을 가질 수 있는 복합 객체입니다. 자식들을 관리하는 메서드(add, remove 등)를 구현하며, Component 인터페이스의 메서드를 자식들에게 재귀적으로 전달합니다. (예: 폴더)

예시: 파일 시스템 표현하기

파일과 폴더로 구성된 간단한 파일 시스템을 컴포지트 패턴으로 구현해 보겠습니다.

javascript
코드 하이라이팅 중…

출력 결과:

text
코드 하이라이팅 중…

클라이언트는 root 폴더 객체 하나만 가지고 display()를 호출했을 뿐인데, 전체 트리 구조가 재귀적으로 출력되는 것을 볼 수 있습니다. 클라이언트는 File과 Folder의 내부 구조 차이를 신경 쓸 필요 없이 FileSystemComponent라는 단일 인터페이스를 통해 동일하게 상호작용할 수 있습니다.

컴포지트 패턴 중요 키워드

  • 트리 구조로 '부분-전체' 계층을 표현합니다.
  • 단일 객체(Leaf)와 복합 객체(Composite)를 동일하게 취급합니다.
  • 재귀적 구조를 통해 클라이언트 코드를 단순화합니다.
  • UI 툴킷, 파일 시스템 등 계층적 구조를 다룰 때 매우 유용합니다.
메가커피와 함께, 홈페이지 개선에 참여하세요! ☕
혹시 이용에 불편한 점이나 개선이 필요한 부분을 발견하셨나요? 댓글로 알려주시면 더 나은 감자가 될 수 있어요! 🥔 제보해주신 모든 분께 메가커피 기프티콘을 드립니다! (본인 이메일로 댓글 달아주셔야해요~)
후수학습(1개)
  • 디자인 패턴 정보처리기사 기출 문제 모음

추천 개념

Beta

관련 글

(41개)
제목태그업데이트시험
추상 팩토리 abstract factory 패턴 - 자바스크립트 예제
디자인패턴SW설계디자인패턴
2025-09-02-
빌더 builder 패턴 - 자바스크립트 예제
디자인패턴SW설계디자인패턴
2025-09-02-
팩토리 메서드 factory method 패턴 - 자바스크립트 예제
디자인패턴SW설계디자인패턴
2025-11-03-
정처기 감자정처기 감자

정보처리기사 합격
도와줄라고 하는 감자

실기 이론

  • 이론 공부법
  • DB
  • 네트워크/OS
  • SW 설계
  • SW 개발
  • 보안/신기술

시험 응시

  • 시험장 찾기
  • 원서 접수
  • 응시자격 서류

요약 PDF

  • 26년 1회 이론 압축
  • 초압축 25년 3회
  • 압축 25년 3회

기출문제

  • 전체 기출문제
  • 25년 3회
  • 25년 2회
  • 문제 포럼

감자 이용권

  • 이용권 구매

실기 이론

  • 이론 공부법
  • DB
  • 네트워크/OS
  • SW 설계
  • SW 개발
  • 보안/신기술

시험 응시

  • 시험장 찾기
  • 원서 접수
  • 응시자격 서류

요약 PDF

  • 26년 1회 이론 압축
  • 초압축 25년 3회
  • 압축 25년 3회

기출문제

  • 전체 기출문제
  • 25년 3회
  • 25년 2회
  • 문제 포럼

감자 이용권

  • 이용권 구매
© 2025 재현기획개발. All rights reserved.
  • 정처기 감자의 시작
  • 업데이트 로그
  • 개인정보 처리방침
  • 이용약관
상호명 : 재현기획개발 / 주소: 서울특별시 영등포구 영등포로 150, 지하1층 108호 L145 가라지(당산동1가, 생각공장 당산) / 대표: 김재현 / 전화: 010-8158-7127 / 통신판매업신고: 제2025-서울영등포-1569호 / 이메일: contact@edugamja.com / 사업자등록번호: 573-51-00999