폴더 구조 예시
실제 백엔드 팀에서 사용할 수 있는 구체적인 폴더 구조를 제시합니다.
개요
이론적인 구조를 실제 프로젝트에 적용 가능한 형태로 제시하고, 각 폴더의 사용법을 설명합니다.
학습 목표
- 실제 프로젝트에 적용 가능한 구조 이해
- 팀별 폴더 분리 전략
- 확장 가능한 구조 설계
실전 폴더 구조
완전한 트리
backend-knowledge-base/
├── .obsidian/ # Obsidian 설정
│
├── CLAUDE.md # Claude Code를 위한 가이드
│
├── 00-Inbox/ # 빠른 메모용
│ └── temp-notes/
│
├── 01-Projects/ # 진행 중인 프로젝트
│ ├── active/
│ │ ├── ai-smart-convenience/
│ │ │ ├── overview.md
│ │ │ ├── architecture.md
│ │ │ ├── api-specs/
│ │ │ │ ├── recommendation-api.md
│ │ │ │ └── personalization-api.md
│ │ │ ├── database/
│ │ │ │ ├── schema.md
│ │ │ │ └── migrations/
│ │ │ ├── meetings/
│ │ │ │ ├── 2025-01-08-kickoff.md
│ │ │ │ └── 2025-01-10-review.md
│ │ │ └── decisions/
│ │ │ ├── adr-001-use-kafka.md
│ │ │ └── adr-002-redis-caching.md
│ │ │
│ │ ├── payment-refactor/
│ │ │ ├── design.md
│ │ │ └── progress.md
│ │ │
│ │ └── user-service-v2/
│ │ ├── api-spec.md
│ │ └── migration-plan.md
│ │
│ └── on-hold/
│ └── graphql-introduction/
│ └── research.md
│
├── 02-Areas/ # 지속적 관리 영역
│ ├── Architecture/
│ │ ├── microservices.md
│ │ ├── event-driven.md
│ │ ├── caching-strategy.md
│ │ └── service-mesh.md
│ │
│ ├── API-Design/
│ │ ├── restful-best-practices.md
│ │ ├── api-versioning.md
│ │ ├── error-handling.md
│ │ └── rate-limiting.md
│ │
│ ├── Database/
│ │ ├── schema-design.md
│ │ ├── indexing.md
│ │ ├── transaction.md
│ │ └── connection-pool.md
│ │
│ ├── DevOps/
│ │ ├── deployment.md
│ │ ├── ci-cd.md
│ │ ├── docker.md
│ │ └── kubernetes.md
│ │
│ └── Monitoring/
│ ├── metrics.md
│ ├── logging.md
│ ├── tracing.md
│ └── alerting.md
│
├── 03-Resources/ # 기술 자료
│ ├── Java/
│ │ ├── virtual-threads.md
│ │ ├── record-pattern.md
│ │ ├── stream-api.md
│ │ └── collections.md
│ │
│ ├── Kotlin/
│ │ ├── coroutines.md
│ │ ├── flow.md
│ │ └── dsl.md
│ │
│ ├── Spring/
│ │ ├── spring-boot-3.md
│ │ ├── spring-data-jpa.md
│ │ ├── spring-data-redis.md
│ │ └── spring-security.md
│ │
│ ├── Database/
│ │ ├── PostgreSQL/
│ │ │ ├── indexing.md
│ │ │ ├── query-optimization.md
│ │ │ └── replication.md
│ │ │
│ │ ├── Redis/
│ │ │ ├── data-structures.md
│ │ │ ├── caching-patterns.md
│ │ │ └── pub-sub.md
│ │ │
│ │ └── MongoDB/
│ │ ├── document-model.md
│ │ └── aggregation.md
│ │
│ ├── Message-Queue/
│ │ ├── Kafka/
│ │ │ ├── producers.md
│ │ │ ├── consumers.md
│ │ │ └── exactly-once.md
│ │ │
│ │ └── RabbitMQ/
│ │ ├── exchanges.md
│ │ └── queues.md
│ │
│ └── System-Design/
│ ├── load-balancing.md
│ ├── caching.md
│ ├── rate-limiting.md
│ └── id-generation.md
│
├── 04-Archives/ # 완료된 프로젝트
│ ├── 2025/
│ │ ├── q1/
│ │ │ ├── product-refactor/
│ │ │ └── free-trial-reduction/
│ │ └── q2/
│ │
│ └── 2024/
│ └── annual-coupon-system/
│
├── 05-Troubleshooting/ # 트러블슈팅 기록
│ ├── spring/
│ │ ├── data-jpa-n-plus-one.md
│ │ ├── transaction-rollback.md
│ │ └── bean-lifecycle.md
│ │
│ ├── redis/
│ │ ├── concurrency-issue.md
│ │ ├── timeout-optimization.md
│ │ └── memory-leak.md
│ │
│ ├── kafka/
│ │ ├── consumer-lag.md
│ │ ├── message-ordering.md
│ │ └── exactly-once-setup.md
│ │
│ ├── postgresql/
│ │ ├── deadlock.md
│ │ ├── query-performance.md
│ │ └── connection-exhaustion.md
│ │
│ └── network/
│ ├── dns-resolution.md
│ ├── connection-timeout.md
│ └── load-balancer.md
│
├── 06-API-Docs/ # API 명세서
│ ├── user-service/
│ │ ├── v1/
│ │ │ ├── authentication.md
│ │ │ ├── profile.md
│ │ │ └── preferences.md
│ │ └── v2/
│ │
│ ├── order-service/
│ │ ├── create-order.md
│ │ ├── cancel-order.md
│ │ └── order-history.md
│ │
│ ├── product-service/
│ │ ├── product-list.md
│ │ ├── product-detail.md
│ │ └── inventory.md
│ │
│ └── payment-service/
│ ├── payment.md
│ ├── refund.md
│ └── cancellation.md
│
├── 07-Database-Docs/ # 데이터베이스 문서
│ ├── schemas/
│ │ ├── users/
│ │ ├── orders/
│ │ └── products/
│ │
│ ├── migrations/
│ │ ├── 2025/
│ │ └── 2024/
│ │
│ └── stored-procedures/
│
├── 08-Meetings/ # 회의 기록
│ ├── 1on1/
│ │ ├── 2025-01-15-with-manager.md
│ │ └── 2025-01-08-with-mentor.md
│ │
│ ├── sprint-planning/
│ │ ├── 2025-sprint-1-planning.md
│ │ └── 2025-sprint-2-planning.md
│ │
│ ├── retrospective/
│ │ ├── 2024-sprint-12-retro.md
│ │ └── 2025-sprint-1-retro.md
│ │
│ └── tech-review/
│ ├── kafka-introduction.md
│ └── microservices-decision.md
│
├── 09-Daily/ # 일일 기록
│ ├── 2025/
│ │ ├── 01/
│ │ │ ├── 2025-01-08.md
│ │ │ ├── 2025-01-09.md
│ │ │ ├── 2025-01-10.md
│ │ │ └── ...
│ │ └── 02/
│ │
│ └── 2024/
│
├── 10-Templates/ # 템플릿
│ ├── daily-note.md
│ ├── weekly-review.md
│ ├── troubleshooting.md
│ ├── api-spec.md
│ ├── system-design.md
│ ├── tech-study.md
│ ├── meeting-1on1.md
│ ├── sprint-planning.md
│ └── retrospective.md
│
├── 11-Guides/ # 가이드 문서
│ ├── Claude-Obsidian-Guide/
│ │ ├── index.md
│ │ ├── Part1-Basics/
│ │ ├── Part2-Structure/
│ │ └── ...
│ │
│ ├── Onboarding/
│ │ ├── new-developer.md
│ │ └── local-setup.md
│ │
│ └── Best-Practices/
│ ├── code-conventions.md
│ └── review-guidelines.md
│
├── 12-Clippings/ # 웹에서 수집한 자료
│ ├── architecture/
│ ├── spring-boot/
│ ├── system-design/
│ └── algorithms/
│
└── 13-Diagrams/ # Excalidraw 다이어그램
├── architectures/
├── flows/
└── erds/
폴더별 사용법
00-Inbox (빠른 메모)
용도: 정리할 시간이 없을 때 빠르게 메모
사용 예:
- 회의 중 중요한 포인트
- 코드 리뷰 중 발견한 사항
- 갑자기 떠오른 아이디어
정기적으로 처리:
- 주말에 비우고 분류
- 적절한 폴더로 이동
01-Projects (프로젝트)
프로젝트 구조:
01-Projects/
├── active/ # 현재 작업 중
│ ├── project-name/
│ │ ├── overview.md # 개요
│ │ ├── architecture.md # 아키텍처
│ │ ├── api-specs/ # API 명세
│ │ ├── database/ # DB 설계
│ │ ├── meetings/ # 회의록
│ │ └── decisions/ # 기술적 결정 (ADR)
│
└── on-hold/ # 일시 중단
02-Areas (영역)
Area는 프로젝트와 달리 '완료'가 없습니다:
- API 설계 (지속적 개선)
- 데이터베이스 최적화
- 모니터링 시스템
- 배포 프로세스
03-Resources (자료)
기술 스택별로 정리:
03-Resources/
├── Java/ # 언어별
├── Spring/ # 프레임워크별
├── Database/ # 데이터베이스별
└── System-Design/ # 주제별
05-Troubleshooting (트러블슈팅)
기술/서비스별 분리:
05-Troubleshooting/
├── spring/ # Spring 관련 이슈
├── redis/ # Redis 관련 이슈
├── kafka/ # Kafka 관련 이슈
└── postgresql/ # PostgreSQL 관련 이슈
팀별 폴더 분리
대형 팀 구조
backend-knowledge-base/
├── Team-FE/ # 프론트엔드 팀
├── Team-BE/ # 백엔드 팀
├── Team-DevOps/ # DevOps 팀
├── Team-Data/ # 데이터 팀
└── Shared/ # 공유 영역
├── Architecture/
├── Meetings/
└── Onboarding/
프로젝트별 분리
backend-knowledge-base/
├── Project-A/
│ ├── docs/
│ ├── api/
│ └── database/
│
├── Project-B/
│ ├── docs/
│ ├── api/
│ └── database/
│
└── Shared/
├── best-practices/
└── troubleshooting/
Claude를 활용한 폴더 생성
자동화 스크립트
Claude에게:
"AI 스마트편의팩 프로젝트를 위한
폴더 구조를 만들어줘.
다음 구조로:
- overview.md
- architecture.md
- api-specs/ 폴더
- database/ 폴더
- meetings/ 폴더
- decisions/ 폴더"
템플릿 적용
각 폴더의 기본 문서도 함께 생성:
- overview.md에는 프로젝트 개요 템플릿
- architecture.md에는 아키텍처 템플릿
- decisions/에는 ADR 템플릿
확장 가능한 구조
모듈식 설계
graph TB
subgraph "Core"
A[Projects]
B[Areas]
C[Resources]
end
subgraph "Specialized"
D[Troubleshooting]
E[API-Docs]
F[Database-Docs]
end
subgraph "Personal"
G[Daily]
H[Meetings]
end
subgraph "Shared"
I[Templates]
J[Guides]
end
성장에 따른 확장
초기 (1인):
- 01-Projects/
- 02-Resources/
- 03-Daily/
성장 (소규모 팀):
- 위 + 04-Troubleshooting/
- 05-API-Docs/
- 06-Meetings/
대형 (여러 팀):
- 위 + Team-FE/
- Team-BE/
- Shared/
실습 과제
- 위 구조를 참고하여 본인 Vault에 폴더 생성
- Claude로 프로젝트 폴더 구조 자동 생성
- Dataview로 폴더별 노트 수 확인
- 일일 노트에서 각 폴더로 링크 생성
다음 단계
폴더 구조를 만들었으니, Claude와 연동해봅시다.
| → [[08-claude-reading | Claude로 노트 읽기]]로 계속하세요 |