Skip to content

feat: 좌측 사이드바 구현 (main: 컴포넌트 추가 기능)#16

Merged
Nago730 merged 41 commits intodevelopfrom
feature/sidebar
Jan 27, 2026
Merged

feat: 좌측 사이드바 구현 (main: 컴포넌트 추가 기능)#16
Nago730 merged 41 commits intodevelopfrom
feature/sidebar

Conversation

@Nago730
Copy link
Copy Markdown
Contributor

@Nago730 Nago730 commented Jan 27, 2026

[PR] Widget: Left Sidebar UI 구현 및 컴포넌트 추가 로직 정립

� 목적 및 요약

에디터의 핵심 인터페이스인 Left Sidebar 위젯의 전체 구조를 설계 및 구현하고, 이와 연동된 컴포넌트 추가(Canvas Node Creation) 플로우의 아키텍처를 정립했습니다.

📁 주요 변경 사항 (Core Components)

  • apps/editor/src/widgets/left-sidebar: 사이드바 메인 레이아웃 및 탭 시스템
  • apps/editor/src/features/canvas: 5단계 추상화 기반 노드 생성 훅 구현
  • apps/editor/src/entities/component: 컴포넌트 기본값 및 레코드 생성 로직
  • apps/editor/src/shared/lib/component-defaults: 전역 컴포넌트 초기 데이터

🚀 구현 상세

1. 5개 카테고리별 서브 패널 UI 완비

좌측 내비게이션 바를 통한 탭 전환 및 5가지 리소스 관리 패널의 UI를 모두 구현했습니다.

  • Component Panel: UI 컴포넌트 리스트 제공
  • Widget Panel: 위젯 단위 리소스 관리
  • Page Panel: 프로젝트 내 페이지 구조 관리
  • Section Panel: 페이지 내 섹션 관리
  • Modal Panel: 팝업/모달 관리

Note

현재 UI상으로는 5가지 패널이 모두 구현되어 있으나, 실제 비즈니스 로직(기능)이 완전히 연결된 것은 Component Panel입니다. 나머지 패널들은 순차적으로 기능을 연동할 예정입니다.

2. 컴포넌트 추가 플로우 (단방향 참조 아키텍처)

노드 추가 버튼 클릭 시 발생되는 로직을 상위 레이어가 하위 레이어만 참조하는 단방향 의존성 구조로 설계했습니다.

  • Flow: WidgetsFeaturesEntitiesShared
  • Abstraction: useCreateCanvasNode 훅에서 5단계 절차(위치 계산 → Mock API 레코드 생성 → 초기값 결합 → 전역 상태 반영)로 캡슐화 처리

⚠️ 현재 한계점 및 개선 계획 (To-be)

  • Figma 디자인 동기화: 현재 UI 뼈대는 완성되었으나, 피그마(Figma) 디자인과 완전히 세부 스펙이 일치하지 않는 상태입니다. 추후 스타일 고도화 작업이 필요합니다.
  • API 연동: 서버 및 DB와의 연동 지점들은 현재 Mock API로 구성되어 있습니다. 향후 실제 백엔드 엔드포인트가 준비되는 대로 전환 예정입니다.
  • 패널 기능 확장: 현재 UI만 구현된 Widget, Page, Section, Modal 패널의 실제 기능을 연동할 계획입니다.

Nago730 added 30 commits January 7, 2026 02:17
package/ui/types/componentsProps.ts 에 존재하는 노드를 구현하기 위한 추출한 최소한의 atoms임
5가지는 패키지에 현재 존재하는 노드의 타입들과 매핑됨
- NavigationBar 상수를 model 레이어로 분리
- Static/DynamicContent 콜백 시 아이템 객체 전체를 전달하도록 리팩토링
- ComponentPanel과 useCreateCanvasNode 기능 연결
- 향후 개선을 위한 TODO 주석 추가 (pageId 관리, 타입 안전성)
component-defaults.ts: 각 노드 타입별 초기 속성(props), 스타일, 레이아웃 정의
types/component.ts: 컴포넌트 생성 요청/응답을 위한 타입 정의
api/components.ts: 클라이언트 측에서 동작하는 컴포넌트 레코드 생성 모크 API 구현
@Nago730 Nago730 self-assigned this Jan 27, 2026
@Nago730 Nago730 requested a review from y-minion January 27, 2026 13:42
@Nago730 Nago730 merged commit 4856e91 into develop Jan 27, 2026
2 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant