개발자를 위한 일일 개발 로그 & 프로젝트 관리 시스템
Continuous Agentic Development 방식으로 4시간 만에 구축하기
프로젝트 개요
무엇을 만드는가?
DevLog는 개발자가 매일의 개발 활동을 기록하고, 프로젝트를 관리하며, 생산성을 추적하는 시스템입니다.
핵심 가치:
- 📝 매일의 작업 내용을 빠르게 기록
- 📊 시간 추적으로 생산성 분석
- 🎯 프로젝트별 진행 상황 관리
- 🔍 과거 작업 내용 검색
- 📈 주간/월간 통계 및 인사이트
왜 이 프로젝트인가?
- 실제로 사용할 수 있는 실용적인 도구
- CRUD부터 고급 기능까지 모든 것을 경험
- CAD 방식의 효과를 직접 체감
- 포트폴리오로 활용 가능
기능 명세
Phase 1: 핵심 기능 (MVP)
1.1 프로젝트 관리
1
2
3
4
| ✅ 프로젝트 생성/수정/삭제
✅ 프로젝트 상태 (진행중/완료/보류)
✅ 프로젝트별 태그/카테고리
✅ 프로젝트별 진행률 추적
|
1.2 일일 로그 작성
1
2
3
4
5
6
| ✅ 날짜별 개발 로그 작성
✅ 작업 시간 기록 (시작/종료)
✅ 프로젝트 연결
✅ 기술 스택 태그
✅ 코드 스니펫 첨부
✅ 이슈/버그 메모
|
1.3 검색 및 필터링
1
2
3
4
| ✅ 날짜 범위 검색
✅ 프로젝트별 필터
✅ 기술 스택별 필터
✅ 전체 텍스트 검색
|
1.4 통계 및 대시보드
1
2
3
4
| ✅ 주간 작업 시간 차트
✅ 프로젝트별 시간 분포
✅ 사용 기술 스택 분석
✅ 월간 생산성 리포트
|
Phase 2: 고급 기능 (확장)
1
2
3
4
5
6
| 🔄 GitHub 연동 (커밋 자동 import)
🔄 Jira/Notion 연동
🔄 AI 기반 작업 요약
🔄 팀 협업 기능
🔄 주간 회고 템플릿
🔄 목표 설정 및 추적
|
기술 스택
Backend
1
2
3
4
5
| Framework: Spring Boot 3.2.1
Language: Java 17
ORM: MyBatis 3.0.3
Database: PostgreSQL 15
Build: Maven 3.9+
|
Frontend
1
2
3
4
5
6
| Framework: React 18.2
State: React Hooks (useState, useEffect)
HTTP: Axios
Charts: Recharts
Styling: Tailwind CSS
Icons: Lucide React
|
DevOps
1
2
3
| Version Control: Git
Container: Docker (optional)
CI/CD: GitHub Actions (optional)
|
데이터베이스 설계
ERD 개요
1
2
3
| projects (1) ──< (N) logs (N) >── (M) tech_tags
│
└──< (N) project_stats
|
테이블 상세 설계
1. projects
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
| CREATE TABLE projects (
id BIGSERIAL PRIMARY KEY,
name VARCHAR(100) NOT NULL,
description TEXT,
status VARCHAR(20) DEFAULT 'active', -- active, completed, on_hold
start_date DATE NOT NULL,
end_date DATE,
repository_url VARCHAR(255),
progress INTEGER DEFAULT 0, -- 0-100
color VARCHAR(7), -- hex color for UI
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
updated_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP
);
CREATE INDEX idx_projects_status ON projects(status);
CREATE INDEX idx_projects_dates ON projects(start_date, end_date);
|
2. dev_logs
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
| CREATE TABLE dev_logs (
id BIGSERIAL PRIMARY KEY,
project_id BIGINT REFERENCES projects(id) ON DELETE CASCADE,
log_date DATE NOT NULL,
start_time TIME,
end_time TIME,
duration_minutes INTEGER, -- calculated or manual
title VARCHAR(200) NOT NULL,
description TEXT,
achievements TEXT, -- what was accomplished
challenges TEXT, -- problems encountered
learnings TEXT, -- what was learned
code_snippets TEXT, -- code examples
mood VARCHAR(20), -- great, good, okay, bad
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
updated_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP
);
CREATE INDEX idx_logs_project ON dev_logs(project_id);
CREATE INDEX idx_logs_date ON dev_logs(log_date DESC);
CREATE INDEX idx_logs_project_date ON dev_logs(project_id, log_date DESC);
|
1
2
3
4
5
6
7
8
9
10
| CREATE TABLE tech_tags (
id BIGSERIAL PRIMARY KEY,
name VARCHAR(50) NOT NULL UNIQUE,
category VARCHAR(50), -- language, framework, database, tool
color VARCHAR(7),
usage_count INTEGER DEFAULT 0,
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP
);
CREATE INDEX idx_tech_tags_category ON tech_tags(category);
|
1
2
3
4
5
6
7
8
| CREATE TABLE log_tech_tags (
log_id BIGINT REFERENCES dev_logs(id) ON DELETE CASCADE,
tech_tag_id BIGINT REFERENCES tech_tags(id) ON DELETE CASCADE,
PRIMARY KEY (log_id, tech_tag_id)
);
CREATE INDEX idx_log_tech_log ON log_tech_tags(log_id);
CREATE INDEX idx_log_tech_tag ON log_tech_tags(tech_tag_id);
|
5. project_stats (집계 테이블)
1
2
3
4
5
6
7
8
9
10
11
| CREATE TABLE project_stats (
id BIGSERIAL PRIMARY KEY,
project_id BIGINT REFERENCES projects(id) ON DELETE CASCADE,
stat_date DATE NOT NULL,
total_minutes INTEGER DEFAULT 0,
log_count INTEGER DEFAULT 0,
UNIQUE(project_id, stat_date)
);
CREATE INDEX idx_project_stats_project ON project_stats(project_id);
CREATE INDEX idx_project_stats_date ON project_stats(stat_date DESC);
|
API 설계
Project API
1
2
3
4
5
6
| POST /api/projects # 프로젝트 생성
GET /api/projects # 프로젝트 목록 (필터링 지원)
GET /api/projects/{id} # 프로젝트 상세
PUT /api/projects/{id} # 프로젝트 수정
DELETE /api/projects/{id} # 프로젝트 삭제
GET /api/projects/{id}/stats # 프로젝트 통계
|
Request/Response 예시:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
| // POST /api/projects
{
"name": "DevLog 프로젝트",
"description": "개발 로그 관리 시스템",
"status": "active",
"startDate": "2025-12-28",
"repositoryUrl": "https://github.com/username/devlog",
"color": "#3B82F6"
}
// Response
{
"id": 1,
"name": "DevLog 프로젝트",
"description": "개발 로그 관리 시스템",
"status": "active",
"startDate": "2025-12-28",
"endDate": null,
"repositoryUrl": "https://github.com/username/devlog",
"progress": 0,
"color": "#3B82F6",
"createdAt": "2025-12-28T10:00:00",
"updatedAt": "2025-12-28T10:00:00"
}
|
DevLog API
1
2
3
4
5
6
7
| POST /api/logs # 로그 생성
GET /api/logs # 로그 목록 (날짜/프로젝트 필터)
GET /api/logs/{id} # 로그 상세
PUT /api/logs/{id} # 로그 수정
DELETE /api/logs/{id} # 로그 삭제
GET /api/logs/search # 검색 (쿼리 파라미터)
GET /api/logs/calendar # 캘린더 뷰용 (월별 요약)
|
Request/Response 예시:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
| // POST /api/logs
{
"projectId": 1,
"logDate": "2025-12-28",
"startTime": "09:00",
"endTime": "13:00",
"title": "사용자 인증 시스템 구현",
"description": "JWT 기반 로그인/로그아웃 기능 완성",
"achievements": "- JWT 토큰 생성/검증 로직 구현\n- 로그인 API 완성\n- 프론트엔드 연동",
"challenges": "Refresh token 로직이 복잡했음",
"learnings": "JWT의 장단점을 이해함",
"mood": "good",
"techTags": ["Java", "Spring Security", "JWT", "React"]
}
// Response
{
"id": 1,
"projectId": 1,
"projectName": "DevLog 프로젝트",
"logDate": "2025-12-28",
"startTime": "09:00",
"endTime": "13:00",
"durationMinutes": 240,
"title": "사용자 인증 시스템 구현",
// ... (나머지 필드)
"techTags": [
{"id": 1, "name": "Java", "category": "language"},
{"id": 2, "name": "Spring Security", "category": "framework"},
// ...
]
}
|
Statistics API
1
2
3
4
| GET /api/stats/weekly # 주간 통계
GET /api/stats/monthly # 월간 통계
GET /api/stats/project/{id} # 프로젝트별 통계
GET /api/stats/tech-stack # 기술 스택 사용 통계
|
Response 예시:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
| // GET /api/stats/weekly?startDate=2025-12-22
{
"period": {
"start": "2025-12-22",
"end": "2025-12-28"
},
"totalMinutes": 2400,
"totalLogs": 6,
"dailyBreakdown": [
{"date": "2025-12-22", "minutes": 480, "logCount": 1},
{"date": "2025-12-23", "minutes": 360, "logCount": 1},
// ...
],
"projectBreakdown": [
{"projectId": 1, "projectName": "DevLog", "minutes": 1200, "percentage": 50},
{"projectId": 2, "projectName": "포트폴리오", "minutes": 1200, "percentage": 50}
],
"topTechTags": [
{"name": "Java", "count": 5},
{"name": "React", "count": 4}
]
}
|
화면 설계
1. Dashboard (메인 화면)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
| ┌─────────────────────────────────────────────────┐
│ DevLog [New Log] [New Project]│
├─────────────────────────────────────────────────┤
│ Quick Stats (이번 주) │
│ ┌──────────┬──────────┬──────────┬──────────┐ │
│ │ 40시간 │ 12개 로그│ 3 프로젝트│ 85% 목표│ │
│ └──────────┴──────────┴──────────┴──────────┘ │
│ │
│ 이번 주 작업 시간 │
│ ┌────────────────────────────────────────────┐ │
│ │ [Bar Chart] │ │
│ │ Mon ████████ │ │
│ │ Tue ██████ │ │
│ │ Wed ██████████ │ │
│ └────────────────────────────────────────────┘ │
│ │
│ 최근 로그 │
│ ┌────────────────────────────────────────────┐ │
│ │ 2025-12-28 DevLog 4h 사용자 인증 구현 │ │
│ │ 2025-12-27 DevLog 6h 데이터베이스 설계 │ │
│ └────────────────────────────────────────────┘ │
└─────────────────────────────────────────────────┘
|
2. Log List (로그 목록)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
| ┌─────────────────────────────────────────────────┐
│ Development Logs [Filter] [+]│
├─────────────────────────────────────────────────┤
│ Filters: [All Projects ▼] [Date Range] [Tags] │
├─────────────────────────────────────────────────┤
│ 2025-12-28 │
│ ┌─────────────────────────────────────────────┐ │
│ │ 🟦 DevLog Project 09:00-13:00 (4h) │ │
│ │ 사용자 인증 시스템 구현 │ │
│ │ Tags: Java, Spring Security, JWT │ │
│ │ ✅ JWT 토큰 생성/검증 완료 │ │
│ └─────────────────────────────────────────────┘ │
│ │
│ 2025-12-27 │
│ ┌─────────────────────────────────────────────┐ │
│ │ 🟦 DevLog Project 14:00-20:00 (6h) │ │
│ │ 데이터베이스 설계 및 구현 │ │
│ │ Tags: PostgreSQL, MyBatis │ │
│ └─────────────────────────────────────────────┘ │
└─────────────────────────────────────────────────┘
|
3. Log Detail (로그 상세/작성)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
| ┌─────────────────────────────────────────────────┐
│ New Development Log [Save] [×]│
├─────────────────────────────────────────────────┤
│ Project * [DevLog ▼] │
│ Date * [2025-12-28] │
│ Time [09:00] - [13:00] (4 hours) │
│ │
│ Title * │
│ ┌─────────────────────────────────────────────┐ │
│ │ 사용자 인증 시스템 구현 │ │
│ └─────────────────────────────────────────────┘ │
│ │
│ Description │
│ ┌─────────────────────────────────────────────┐ │
│ │ JWT 기반 로그인/로그아웃 기능 완성 │ │
│ └─────────────────────────────────────────────┘ │
│ │
│ What I Achieved │
│ ┌─────────────────────────────────────────────┐ │
│ │ - JWT 토큰 생성/검증 로직 구현 │ │
│ │ - 로그인 API 완성 │ │
│ │ - 프론트엔드 연동 완료 │ │
│ └─────────────────────────────────────────────┘ │
│ │
│ Challenges │
│ ┌─────────────────────────────────────────────┐ │
│ │ Refresh token 로직이 복잡했음 │ │
│ └─────────────────────────────────────────────┘ │
│ │
│ Tech Stack [+] │
│ [Java] [Spring Security] [JWT] [React] │
│ │
│ Mood 😊 Great 😀 Good 😐 Okay 😞 Bad │
└─────────────────────────────────────────────────┘
|
4. Statistics (통계)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
| ┌─────────────────────────────────────────────────┐
│ Statistics [Weekly] [Monthly] [Custom] │
├─────────────────────────────────────────────────┤
│ Time Period: Dec 22 - Dec 28, 2025 │
│ │
│ Total Working Time: 40 hours │
│ ┌────────────────────────────────────────────┐ │
│ │ Daily Working Hours │ │
│ │ [Line/Bar Chart] │ │
│ │ 10h ┤ │ │
│ │ 8h ┤ ▅▅▅ │ │
│ │ 6h ┤ ▅▅▅▅▅ ▅▅▅ │ │
│ │ 4h ┤▅▅▅▅▅▅▅▅▅▅▅▅▅ │ │
│ │ └───────────────── │ │
│ │ M T W T F S S │ │
│ └────────────────────────────────────────────┘ │
│ │
│ Project Breakdown │
│ ┌────────────────────────────────────────────┐ │
│ │ [Pie Chart] │ │
│ │ DevLog 50% (20h) │ │
│ │ Portfolio 30% (12h) │ │
│ │ Study 20% (8h) │ │
│ └────────────────────────────────────────────┘ │
│ │
│ Most Used Tech Stack │
│ ┌────────────────────────────────────────────┐ │
│ │ Java ████████████ 12 times │ │
│ │ React ██████████ 10 times │ │
│ │ PostgreSQL ████████ 8 times │ │
│ └────────────────────────────────────────────┘ │
└─────────────────────────────────────────────────┘
|
단계별 구현 계획 (CAD 방식)
전체 타임라인: 4시간
1
2
3
4
| Hour 1: 프로젝트 생성 및 기본 구조
Hour 2: 백엔드 API 완성
Hour 3: 프론트엔드 UI 구현
Hour 4: 통계/차트 및 마무리
|
Hour 1: 프로젝트 생성 및 기본 구조
Step 1.1: 프로젝트 초기화 (10분)
프롬프트 1:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
| 새로운 프로젝트 "DevLog"를 만들 거야.
개발자를 위한 일일 개발 로그 및 프로젝트 관리 시스템이야.
다음 구조로 프로젝트를 생성해줘:
[백엔드]
- Spring Boot 3.2.1
- Java 17
- MyBatis 3.0.3
- PostgreSQL 15
- Maven
[프론트엔드]
- React 18.2
- Tailwind CSS
- Recharts
- Axios
- Lucide React (아이콘)
[프로젝트 구조]
devlog/
├── backend/ # Spring Boot
├── frontend/ # React
├── database/ # SQL 스크립트
├── docs/ # 문서
└── README.md
필요한 모든 설정 파일과 기본 구조를 만들어줘.
|
예상 결과:
- Maven pom.xml 생성
- application.yml 생성
- package.json 생성
- 기본 디렉토리 구조 생성
- .gitignore 생성
Step 1.2: CLAUDE.md 작성 (5분)
프롬프트 2:
1
2
3
4
5
6
7
8
9
10
11
12
| 이 프로젝트를 위한 CLAUDE.md 파일을 만들어줘.
다음 내용을 포함해:
1. 프로젝트 개요 및 목적
2. 기술 스택
3. 코딩 컨벤션
4. 데이터베이스 규칙
5. API 설계 원칙
6. 브랜치 전략
7. 중요 사항
실제로 이 프로젝트를 개발할 때 참고할 수 있도록 상세하게.
|
Step 1.3: 데이터베이스 스키마 (15분)
프롬프트 3:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
| PostgreSQL 데이터베이스 스키마를 만들어줘.
[테이블]
1. projects (프로젝트 정보)
- id, name, description, status, start_date, end_date
- repository_url, progress, color
2. dev_logs (개발 로그)
- id, project_id, log_date, start_time, end_time
- title, description, achievements, challenges, learnings
- code_snippets, mood
3. tech_tags (기술 태그)
- id, name, category, color, usage_count
4. log_tech_tags (로그-태그 연결)
- log_id, tech_tag_id
5. project_stats (프로젝트 통계 - 집계용)
- id, project_id, stat_date, total_minutes, log_count
[요구사항]
- 적절한 인덱스 추가
- Foreign Key 제약조건
- 기본값 설정
- 샘플 데이터 10개 정도
database/schema.sql 파일로 만들어줘.
|
Step 1.4: 백엔드 기본 설정 (15분)
프롬프트 4:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
| Spring Boot 백엔드 기본 설정을 해줘:
1. Application.java (메인 클래스)
- @MapperScan 설정
- CORS 설정
2. application.yml
- PostgreSQL 연결 설정
- MyBatis 설정
- 서버 포트 8080
3. 기본 패키지 구조
- com.devlog.model
- com.devlog.mapper
- com.devlog.service
- com.devlog.controller
- com.devlog.dto
- com.devlog.config
4. WebConfig (CORS, 시간 형식 등)
모두 backend/src/main/java에 생성해줘.
|
Step 1.5: 프론트엔드 기본 설정 (15분)
프롬프트 5:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
| React 프론트엔드 기본 구조를 만들어줘:
1. Tailwind CSS 설정
2. 기본 컴포넌트 구조
- components/
- Layout/
- Dashboard/
- Logs/
- Projects/
- Statistics/
- pages/
- services/
- utils/
3. App.js (라우팅 구조)
- / : Dashboard
- /logs : Log List
- /logs/new : New Log
- /logs/:id : Log Detail
- /projects : Project List
- /statistics : Statistics
4. API 서비스 (services/api.js)
- axios 기본 설정
- BASE_URL 설정
5. 기본 레이아웃 (Layout.jsx)
- 헤더 (네비게이션)
- 사이드바 (메뉴)
- 메인 콘텐츠 영역
Tailwind CSS로 깔끔하게 스타일링해줘.
|
Hour 2: 백엔드 API 완성
Step 2.1: Model & Mapper - Projects (15분)
프롬프트 6:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
| Project 관련 백엔드를 구현해줘:
1. Model (Project.java)
- 모든 필드 (id, name, description, status, dates, etc.)
- Getter/Setter
- Builder 패턴
2. Mapper Interface (ProjectMapper.java)
- List<Project> findAll()
- Project findById(Long id)
- void insert(Project project)
- void update(Project project)
- void delete(Long id)
- List<Project> findByStatus(String status)
3. Mapper XML (ProjectMapper.xml)
- ResultMap 정의
- 모든 SQL 쿼리 작성
4. Service (ProjectService.java)
- 비즈니스 로직
- 진행률 계산
- 통계 조회
5. Controller (ProjectController.java)
- REST API 엔드포인트
- CRUD 기능
- 적절한 HTTP 상태 코드
- 에러 처리
모든 코드에 JavaDoc 주석 추가해줘.
|
Step 2.2: Model & Mapper - DevLogs (20분)
프롬프트 7:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
| DevLog 관련 백엔드를 구현해줘:
1. Model (DevLog.java)
- 모든 필드
- Project 정보 포함 (join용)
- TechTag 리스트
2. DTO (DevLogDTO.java)
- 생성/수정용 DTO
- 응답용 DTO (프로젝트명, 태그 포함)
3. Mapper Interface (DevLogMapper.java)
- findAll(날짜, 프로젝트 필터링)
- findById
- insert
- update
- delete
- search(검색어)
- findByDateRange
- findCalendarData(년월)
4. Mapper XML
- Association으로 Project 조인
- Collection으로 TechTag 조인
5. Service
- 시간 자동 계산 (start_time - end_time)
- 통계 업데이트
- 태그 자동 생성
6. Controller
- CRUD API
- 검색 API
- 캘린더 API
특히 검색 기능은 제목, 설명, 성과, 도전과제 모두에서 검색되도록.
|
프롬프트 8:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
| TechTag 관련 백엔드를 구현해줘:
1. Model (TechTag.java)
2. Mapper Interface & XML
- findAll()
- findByName(String name)
- insert(TechTag tag)
- incrementUsageCount(Long id)
- findPopular(int limit) // 많이 사용된 태그
3. Service
- 태그 자동 생성 (없으면 생성)
- 사용 횟수 업데이트
4. Controller
- 태그 목록 조회
- 인기 태그 조회
간단하게 구현해줘.
|
Step 2.4: Statistics Service (15분)
프롬프트 9:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
| 통계 기능을 구현해줘:
1. StatisticsService.java
- getWeeklyStats(LocalDate startDate)
- getMonthlyStats(int year, int month)
- getProjectStats(Long projectId)
- getTechStackStats()
2. StatisticsController.java
- 주간 통계 API
- 월간 통계 API
- 프로젝트별 통계 API
- 기술 스택 통계 API
3. DTO
- WeeklyStatsDTO
- MonthlyStatsDTO
- ProjectStatsDTO
- TechStackStatsDTO
통계는 다음 정보 포함:
- 총 작업 시간
- 로그 개수
- 일별/프로젝트별 분포
- 기술 스택 사용 빈도
복잡한 집계 쿼리는 MyBatis에서 처리해줘.
|
Hour 3: 프론트엔드 UI 구현
Step 3.1: Dashboard 페이지 (15분)
프롬프트 10:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
| Dashboard 페이지를 만들어줘:
1. Dashboard.jsx
- 주간 통계 요약 카드 4개
* 총 작업 시간
* 로그 개수
* 활성 프로젝트 수
* 목표 달성률
- 이번 주 일별 작업 시간 바 차트 (Recharts)
- 최근 로그 5개 목록
2. API 연동
- /api/stats/weekly
- /api/logs (최근 5개)
3. 스타일
- Tailwind CSS 사용
- 반응형 그리드
- 카드 디자인
- 깔끔한 차트
4. 로딩 상태 처리
5. 에러 처리
현대적이고 깔끔한 디자인으로 만들어줘.
|
Step 3.2: Log List 페이지 (15분)
프롬프트 11:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
| Log List 페이지를 만들어줘:
1. LogList.jsx
- 필터 바
* 프로젝트 선택 (드롭다운)
* 날짜 범위 (date picker)
* 검색 (제목, 설명)
- 로그 목록
* 날짜별 그룹핑
* 프로젝트 색상 표시
* 작업 시간 표시
* 기술 태그 표시
* 클릭하면 상세 페이지로
2. LogCard.jsx (개별 로그 카드)
- 프로젝트 아이콘 + 이름
- 시간 정보
- 제목
- 태그 칩
- 수정/삭제 버튼
3. API 연동
- /api/logs (필터링)
- /api/projects (필터용)
4. 무한 스크롤 또는 페이지네이션
Tailwind CSS로 카드 기반 레이아웃 만들어줘.
|
프롬프트 12:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
| Log 작성/수정 폼을 만들어줘:
1. LogForm.jsx
- 필드들:
* 프로젝트 선택 (필수)
* 날짜 선택 (필수)
* 시작/종료 시간
* 제목 (필수)
* 설명
* 성과 (textarea)
* 도전과제 (textarea)
* 배운 점 (textarea)
* 코드 스니펫 (textarea with syntax highlight)
* 기술 태그 (멀티 선택, 새로운 태그 추가 가능)
* 기분 (이모지 선택)
2. 유효성 검사
- 필수 필드 체크
- 시간 유효성 (종료 > 시작)
3. API 연동
- POST /api/logs (생성)
- PUT /api/logs/:id (수정)
- GET /api/projects (프로젝트 목록)
- GET /api/tech-tags (태그 목록)
4. UX
- 자동 저장 (draft)
- 성공/실패 토스트
- 취소 시 확인
폼 디자인은 깔끔하고 입력하기 편하게.
|
Step 3.4: Project List 페이지 (10분)
프롬프트 13:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
| Project List 페이지를 만들어줘:
1. ProjectList.jsx
- 프로젝트 카드 그리드
* 프로젝트 색상
* 이름
* 설명
* 진행률 바
* 상태 배지 (진행중/완료/보류)
* 총 작업 시간
* 로그 개수
- 새 프로젝트 추가 버튼
- 필터 (상태별)
2. ProjectCard.jsx
- 클릭하면 프로젝트별 로그 목록으로
3. API 연동
- GET /api/projects
- GET /api/projects/:id/stats
간단하고 시각적으로 예쁘게.
|
Hour 4: 통계/차트 및 마무리
Step 4.1: Statistics 페이지 (20분)
프롬프트 14:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
| Statistics 페이지를 만들어줘:
1. Statistics.jsx
- 기간 선택 탭 (주간/월간/커스텀)
- 주간 통계:
* 일별 작업 시간 막대 차트 (Recharts)
* 프로젝트별 시간 분포 파이 차트
* 기술 스택 사용 빈도 수평 바 차트
- 월간 통계:
* 일별 히트맵
* 주별 트렌드 라인 차트
- 인사이트 카드
* 가장 생산적인 요일
* 평균 작업 시간
* 가장 많이 사용한 기술
2. API 연동
- /api/stats/weekly
- /api/stats/monthly
- /api/stats/tech-stack
3. 차트 라이브러리
- Recharts 사용
- 반응형
- 색상 테마 일관성
4. 데이터 필터링
- 날짜 범위 선택
- 프로젝트별 필터
차트는 인터랙티브하고 보기 좋게!
|
Step 4.2: Navigation & Layout (10분)
프롬프트 15:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
| 전체 레이아웃과 네비게이션을 완성해줘:
1. Layout.jsx 개선
- 헤더
* 로고
* 네비게이션 메뉴
* 사용자 프로필 (추후 확장용)
- 사이드바
* Dashboard 🏠
* Logs 📝
* Projects 📁
* Statistics 📊
* Settings ⚙️ (추후)
- 현재 페이지 하이라이트
2. 반응형 디자인
- 모바일에서는 사이드바 토글
3. 스타일
- Tailwind CSS
- 다크 모드 지원 준비
Lucide React 아이콘 사용해줘.
|
Step 4.3: 추가 기능 및 개선 (20분)
프롬프트 16:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
| 다음 개선사항들을 적용해줘:
1. 검색 기능
- 헤더에 전역 검색 바
- 로그 제목, 설명, 태그에서 검색
- 실시간 검색 결과
2. 날짜 네비게이션
- 로그 리스트에서 달력 뷰 옵션
- 날짜 클릭하면 해당 날짜로 이동
3. Quick Actions
- "오늘 로그 추가" 플로팅 버튼
- 키보드 shortcut (Ctrl+N: 새 로그)
4. 로딩 스켈레톤
- 모든 리스트에 스켈레톤 로딩
5. 토스트 알림
- 성공/실패 메시지
- 우측 상단에 표시
6. 에러 바운더리
- 에러 발생 시 친화적인 메시지
UX를 한 단계 업그레이드해줘.
|
Step 4.4: 문서화 및 테스트 (10분)
프롬프트 17:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
| 프로젝트 문서화를 완성해줘:
1. README.md
- 프로젝트 소개
- 주요 기능
- 기술 스택
- 빠른 시작 가이드
- 스크린샷
- API 문서 링크
2. API_DOCUMENTATION.md
- 모든 API 엔드포인트
- Request/Response 예시
- 에러 코드
3. database/SCHEMA.md
- ERD 다이어그램 (Mermaid)
- 테이블 설명
4. 간단한 테스트
- ProjectServiceTest.java (주요 로직)
- LogServiceTest.java (주요 로직)
5. .env.example
- 환경 변수 템플릿
실제 사용자가 보기 좋게 작성해줘.
|
실제 개발 진행 예시
실제 Claude Code 세션 기록
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
| === Session Start: 2025-12-28 09:00 ===
You: 새로운 프로젝트 "DevLog"를 만들 거야...
(프롬프트 1)
Claude: 알겠습니다. DevLog 프로젝트를 생성하겠습니다.
[Creating project structure...]
✓ Created backend/ with Spring Boot structure
✓ Created frontend/ with React structure
✓ Generated pom.xml with dependencies
✓ Generated package.json with dependencies
✓ Created database/ directory
✓ Created docs/ directory
[Generated files: 12]
- backend/pom.xml
- backend/src/main/java/com/devlog/Application.java
- backend/src/main/resources/application.yml
- frontend/package.json
- frontend/src/App.js
- frontend/tailwind.config.js
...
다음 단계: CLAUDE.md 작성할까요?
You: 응, 해줘.
Claude: [Creating CLAUDE.md...]
✓ CLAUDE.md created with project guidelines
=== 09:15 - Database Schema ===
You: (프롬프트 3)
Claude: [Analyzing requirements...]
✓ Creating database/schema.sql
✓ Adding indexes
✓ Adding sample data
[Schema includes:]
- 5 tables with proper relationships
- 12 indexes for performance
- 20 sample records
SQL generated: 350 lines
테스트할까요?
|
중간 체크포인트 (Hour 2)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
| === 10:00 - Backend Progress Check ===
Files created: 28
- Models: 4
- Mappers: 4
- Mapper XMLs: 4
- Services: 4
- Controllers: 4
- DTOs: 8
API Endpoints: 24
✓ Projects CRUD (5 endpoints)
✓ DevLogs CRUD (7 endpoints)
✓ TechTags (3 endpoints)
✓ Statistics (4 endpoints)
Tests passing: 12/12
Ready for frontend?
You: 좋아! 프론트엔드 시작하자.
|
최종 완성 (Hour 4)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
| === 13:00 - Project Complete ===
Total files: 87
- Backend: 45 files
- Frontend: 38 files
- Database: 2 files
- Docs: 2 files
Lines of code: ~8,500
- Java: 3,200 lines
- JavaScript/JSX: 3,800 lines
- SQL: 500 lines
- Config: 1,000 lines
Features implemented:
✓ Project management
✓ Daily dev logs
✓ Search & filtering
✓ Statistics & charts
✓ Responsive UI
✓ Dark mode ready
Ready to run:
1. cd backend && mvn spring-boot:run
2. cd frontend && npm start
3. Open http://localhost:3000
Next steps?
|
예상 결과물
프로젝트 구조
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
| devlog/
├── backend/
│ ├── src/
│ │ └── main/
│ │ ├── java/com/devlog/
│ │ │ ├── Application.java
│ │ │ ├── config/
│ │ │ │ └── WebConfig.java
│ │ │ ├── controller/
│ │ │ │ ├── ProjectController.java
│ │ │ │ ├── DevLogController.java
│ │ │ │ ├── TechTagController.java
│ │ │ │ └── StatisticsController.java
│ │ │ ├── dto/
│ │ │ │ ├── DevLogDTO.java
│ │ │ │ ├── WeeklyStatsDTO.java
│ │ │ │ └── ...
│ │ │ ├── mapper/
│ │ │ │ ├── ProjectMapper.java
│ │ │ │ ├── DevLogMapper.java
│ │ │ │ └── ...
│ │ │ ├── model/
│ │ │ │ ├── Project.java
│ │ │ │ ├── DevLog.java
│ │ │ │ └── ...
│ │ │ └── service/
│ │ │ ├── ProjectService.java
│ │ │ ├── DevLogService.java
│ │ │ └── ...
│ │ └── resources/
│ │ ├── application.yml
│ │ └── mapper/
│ │ ├── ProjectMapper.xml
│ │ └── ...
│ └── pom.xml
│
├── frontend/
│ ├── public/
│ ├── src/
│ │ ├── components/
│ │ │ ├── Dashboard/
│ │ │ │ ├── Dashboard.jsx
│ │ │ │ ├── StatsCard.jsx
│ │ │ │ └── RecentLogs.jsx
│ │ │ ├── Logs/
│ │ │ │ ├── LogList.jsx
│ │ │ │ ├── LogCard.jsx
│ │ │ │ ├── LogForm.jsx
│ │ │ │ └── LogDetail.jsx
│ │ │ ├── Projects/
│ │ │ │ ├── ProjectList.jsx
│ │ │ │ └── ProjectCard.jsx
│ │ │ ├── Statistics/
│ │ │ │ ├── Statistics.jsx
│ │ │ │ ├── WeeklyChart.jsx
│ │ │ │ └── ProjectChart.jsx
│ │ │ └── Layout/
│ │ │ ├── Layout.jsx
│ │ │ ├── Header.jsx
│ │ │ └── Sidebar.jsx
│ │ ├── services/
│ │ │ └── api.js
│ │ ├── utils/
│ │ │ ├── dateUtils.js
│ │ │ └── formatters.js
│ │ ├── App.js
│ │ └── index.js
│ ├── package.json
│ └── tailwind.config.js
│
├── database/
│ ├── schema.sql
│ └── SCHEMA.md
│
├── docs/
│ ├── API_DOCUMENTATION.md
│ └── screenshots/
│
├── CLAUDE.md
└── README.md
|
확장 아이디어 (Phase 2)
1. GitHub 연동
프롬프트:
1
2
3
4
5
6
7
8
| GitHub API를 연동해서 커밋을 자동으로 import하고 싶어:
1. GitHub OAuth 로그인
2. 연결된 레포지토리 선택
3. 일일 커밋을 자동으로 로그에 추가
4. 커밋 메시지에서 태그 자동 추출
어떻게 구현하면 좋을까? 단계별 계획 세워줘.
|
2. AI 작업 요약
프롬프트:
1
2
3
4
5
6
7
8
9
10
| Claude API를 사용해서 주간 작업을 AI가 요약하게 하고 싶어:
1. 일주일치 로그를 수집
2. Claude API로 요약 생성
- 주요 성과
- 기술적 하이라이트
- 다음 주 추천 사항
3. 이메일 또는 슬랙으로 발송
구현해줘.
|
3. 팀 협업 기능
프롬프트:
1
2
3
4
5
6
7
8
9
| 팀 기능을 추가하고 싶어:
1. 팀 생성
2. 팀원 초대
3. 팀 대시보드 (전체 통계)
4. 팀원 로그 공유 (선택적)
5. 팀 목표 설정 및 추적
데이터베이스 스키마 변경과 API를 설계해줘.
|
4. 모바일 앱
프롬프트:
1
2
3
4
5
6
7
8
| React Native로 모바일 앱을 만들고 싶어:
1. 간단한 로그 작성 (음성 입력 지원)
2. 타이머 (작업 시간 추적)
3. 푸시 알림 (일일 로그 리마인더)
4. 오프라인 지원
기본 구조와 주요 화면을 만들어줘.
|
트러블슈팅
자주 발생하는 문제
1. CORS 오류
문제:
1
2
| Access to XMLHttpRequest at 'http://localhost:8080/api/logs'
from origin 'http://localhost:3000' has been blocked by CORS policy
|
해결 프롬프트:
1
2
| CORS 에러가 발생해. WebConfig.java에서 CORS 설정을 확인하고 수정해줘.
React 앱 (localhost:3000)에서 Spring Boot (localhost:8080)로 요청이 가능하도록.
|
2. MyBatis 매핑 오류
문제:
1
2
| org.apache.ibatis.binding.BindingException:
Invalid bound statement (not found): com.devlog.mapper.DevLogMapper.findAll
|
해결 프롬프트:
1
2
3
4
5
| MyBatis 매핑 오류가 발생해. 다음을 확인해줘:
1. DevLogMapper.xml 위치가 올바른지
2. namespace가 일치하는지
3. application.yml의 mapper-locations 설정
4. @MapperScan 경로
|
3. 날짜 형식 문제
문제:
1
2
| Cannot deserialize value of type `java.time.LocalDate`
from String "2025-12-28T00:00:00"
|
해결 프롬프트:
1
2
3
4
| 날짜 형식 변환 오류가 발생해.
프론트엔드에서 날짜를 YYYY-MM-DD 형식으로 보내고,
백엔드에서 LocalDate로 받도록 설정해줘.
Jackson 설정도 확인해줘.
|
성능 최적화
데이터베이스 최적화
프롬프트:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
| 성능을 최적화하고 싶어:
1. N+1 쿼리 문제 확인
- DevLog 조회 시 Project, TechTag join
2. 인덱스 최적화
- 자주 사용하는 WHERE 조건에 인덱스
3. 페이지네이션
- 로그 목록에 LIMIT/OFFSET
4. 캐싱
- 프로젝트 목록
- 태그 목록
분석하고 개선해줘.
|
프론트엔드 최적화
프롬프트:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
| React 앱을 최적화해줘:
1. 코드 스플리팅
- 페이지별 lazy loading
2. 메모이제이션
- useMemo, useCallback 활용
3. 이미지 최적화
- 차트는 가볍게
4. 번들 크기 줄이기
- 불필요한 라이브러리 제거
webpack-bundle-analyzer로 분석하고 개선 제안해줘.
|
배포 가이드
Docker 컨테이너화
프롬프트:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
| Docker로 컨테이너화하고 싶어:
1. Dockerfile (백엔드)
- Multi-stage build
- Maven 빌드
2. Dockerfile (프론트엔드)
- Production build
- Nginx 서빙
3. docker-compose.yml
- PostgreSQL
- Backend
- Frontend
- 네트워크 설정
4. .dockerignore
프로덕션 레벨로 만들어줘.
|
클라우드 배포
프롬프트:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
| AWS에 배포하고 싶어:
1. 아키텍처 설계
- RDS (PostgreSQL)
- ECS or EB (Backend)
- S3 + CloudFront (Frontend)
2. 환경 설정
- 프로덕션 application.yml
- 환경 변수 관리
3. CI/CD
- GitHub Actions
- 자동 빌드 및 배포
단계별 가이드를 만들어줘.
|
학습 체크리스트
이 프로젝트를 통해 배운 것
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
| ## 백엔드
- [ ] Spring Boot 프로젝트 구조
- [ ] MyBatis ORM 사용법
- [ ] RESTful API 설계
- [ ] DTO 패턴
- [ ] Service 레이어 분리
- [ ] 복잡한 SQL 쿼리 (Join, Aggregation)
- [ ] 에러 처리
- [ ] CORS 설정
## 프론트엔드
- [ ] React Hooks (useState, useEffect)
- [ ] React Router
- [ ] Axios를 통한 API 통신
- [ ] Tailwind CSS 스타일링
- [ ] Recharts 차트 라이브러리
- [ ] 폼 처리 및 유효성 검사
- [ ] 컴포넌트 설계
- [ ] 반응형 디자인
## 데이터베이스
- [ ] PostgreSQL 스키마 설계
- [ ] 관계 설정 (1:N, N:M)
- [ ] 인덱스 최적화
- [ ] 집계 쿼리
- [ ] 트랜잭션
## DevOps
- [ ] Git 워크플로우
- [ ] Docker 컨테이너화
- [ ] CI/CD 파이프라인
- [ ] 환경 변수 관리
## CAD (Continuous Agentic Development)
- [ ] 효과적인 프롬프트 작성
- [ ] AI와의 협업 패턴
- [ ] 단계별 검증
- [ ] 반복적 개선
- [ ] 문서화 자동화
|
다음 단계
프로젝트 확장
- 추가 기능 구현
- Phase 2의 고급 기능들
- 사용자 피드백 반영
- 실제 사용
- 매일 자신의 개발 로그 작성
- 패턴 분석 및 개선
- 포트폴리오 활용
- GitHub README 작성
- 스크린샷 및 데모
- 기술 블로그 포스팅
다른 프로젝트 도전
- E-commerce
- 블로그 플랫폼
- Markdown 에디터
- 댓글 시스템
- SEO 최적화
- 실시간 채팅
마치며
이 프로젝트는 Continuous Agentic Development의 진정한 힘을 보여줍니다:
- 4시간 만에 완전한 풀스택 애플리케이션
- 8,500+ 라인 의 프로덕션 레벨 코드
- 24개 API 엔드포인트
- 실제 사용 가능한 제품
전통적 방식이라면 2-3주가 걸렸을 작업입니다.
하지만 더 중요한 것은, 당신이 의미 있는 결정에 집중할 수 있었다는 점입니다:
- 어떤 기능을 만들 것인가?
- 사용자에게 어떤 가치를 제공할 것인가?
- 데이터를 어떻게 구조화할 것인가?
코드 타이핑은 Claude에게 맡기고, 창의적 사고는 당신이 했습니다.
이것이 바로 Continuous Agentic Development입니다.
프로젝트 시작일: 2025-12-28
예상 완성 시간: 4시간
난이도: 중급
학습 효과: ⭐⭐⭐⭐⭐
실용성: ⭐⭐⭐⭐⭐
지금 바로 시작하세요!
1
2
3
4
5
| mkdir devlog
cd devlog
claude # Claude Code 시작
# 그리고 이 문서의 첫 프롬프트를 복사해서 붙여넣으세요!
|