C5 Day 4 — 첫 미니 프로젝트: 약속 잡기 봇 SNLM 설계
Case (사례·인용)lectureverifiedMon May 04

C5 Day 4 — 첫 미니 프로젝트: 약속 잡기 봇 SNLM 설계

별칭: C5 Day 4 · 비기너 4일차 · 약속 봇 SNLM

#beginner#day4#mini-project#snlm#design

요약

C5 비기너 7 일 코스의 4 일차 실습이다. 학습자는 90 분 안에 친구와 약속 잡는 봇 이라는 미니 프로젝트의 설계 문서를 카드 3 장 (concept · entity · case) 으로 작성 한다. 이날의 가장 중요한 제약은 단 하나 — 코드는 단 한 줄도 짜지 않는다. 비기너의 가장 흔한 함정인 코드부터 짜고 싶다는 욕구3 장의 카드를 먼저 작성하는 것 으로 누르고, 그러면 AI 가 짤 코드의 방향과 제약이 사전에 결정 되는 경험을 한다. 이 형태가 본 강의 concept/spec-driven-development비기너용 진입 형태 다.

목표

90 분 안에 미니 프로젝트 설계 문서 작성 — 약속 잡기 봇. 카드 3 장 (concept · entity · case).

비기너의 함정 = 코드부터 짜기. Day 4 = 코드 ❌, 설계만.

프로젝트 — 친구와 약속 잡기 봇

시나리오설명
입력"다음 주 화요일 저녁에 영화 보자"
작업캘린더 충돌 확인 → 친구 일정 확인 → 식당·영화관 제안
출력약속 확정 + 캘린더 등록 + 친구에게 메시지

단계

1. concept 카드 — 시스템 정의

concept/appointment-bot.md:

wiki_id: concept/appointment-bot
title: 약속 잡기 봇 — 자연어 → 캘린더 통합
type: concept

본문:

## 정의
사용자의 자연어 약속 요청을 분석해 캘린더·메시징 도구와 통합하는 SNLM 시스템.

## 4 페르소나
- Planner: 일정 분석·제안
- Calendar Agent: 충돌 확인
- Restaurant Agent: 식당 제안
- Notifier: 친구에게 메시지

## 입력 / 출력
- 입력: 자연어 1 줄
- 출력: 약속 확정 객체 (시간·장소·참석자)

2. entity 카드 — 협업 도구

entity/google-calendar.md:

## 정체
Google 캘린더 — 약속 봇이 *충돌 확인 + 등록* 에 사용

## API
events.list / events.insert

3. case 카드 — 첫 시나리오

case/appointment-bot-first-run.md:

## 시나리오
"내일 점심 김밥 먹자" → 봇 응답:
1. 사용자 캘린더 12:00 회의 ❌
2. 13:00 빈자리 발견
3. 김밥 식당 3 곳 제안
4. 친구에게 카톡: "내일 13시 김밥 어때?"

## 실패 시나리오
- 친구 캘린더 권한 없음 → 사람이 보내는 메시지로 fallback

4. wikilink 박기

3 카드를 wikilink 로 연결 — concept ↔ entity ↔ case.

졸업 기준

  • 카드 3 장 작성 (concept · entity · case)
  • 코드는 1 줄도 안 기록 — 설계만
  • wikilink 로 3 카드 서로 연결

깨달음 (Day 4 의 )

"코드부터 짜고 싶다는 욕구를 3 장의 카드 로 누른다. 그러면 AI 가 짤 코드의 방향과 제약 이 결정된다."

이게 concept/spec-driven-development 의 비기너 형태. SDD 4 단계 (Constitution → Specify → Plan → Tasks) 의 2 단계 (Specify) 까지를 3 카드 로 박은 것.

흔한 실수

#증상해결
1코드부터 짠다Day 4 는 코드 ❌. 설계 카드만
2카드 1 장에 다 넣음1 카드 1 개념. 분해
3wikilink 미연결카드끼리 서로 가리키지 않으면 그래프 안 됨

다음 — Day 5

case/c5-day5-one-bite — 한입 분해 (Day 4 의 봇을 5 단계로 쪼개기)