유저플로우: 진입 페이지 → 로그인 버튼 → 로그인 양식 작성 → [성공] 대시보드 / [실패] 에러 메시지
유스케이스 명세
플로우차트
graph TD
A[시작: 로그인 정보 입력] --> B{이메일 형식 확인}
B -- 무효 --> C[422 에러: 입력 오류]
B -- 유효 --> D{DB 사용자 존재?}
D -- No --> E[401 에러: 인증 실패]
D -- Yes --> F{비밀번호 일치?}
F -- No --> G[로그인 실패 횟수 증가]
G --> H{5회 이상 실패?}
H -- Yes --> I[계정 잠금 및 알림]
H -- No --> E
F -- Yes --> J[JWT 토큰 생성]
J --> K[200 OK: 성공 응답]
와이어프레임
거킨
Feature: 사용자 로그인 인증
Background:
Given "test@example.com" 사용자가 DB에 등록되어 있다.
Scenario: [성공] 올바른 정보로 로그인
When 사용자가 이메일 "test@example.com"과 비밀번호 "pass123"을 입력한다
Then HTTP 200 응답을 받아야 한다
And 응답에 "access_token"이 포함되어야 한다
Scenario: [실패] 잘못된 비밀번호 입력
When 사용자가 이메일 "test@example.com"과 비밀번호 "wrong999"를 입력한다
Then HTTP 401 응답을 받아야 한다
And 에러 메시지가 "Incorrect email or password"여야 한다
Scenario: [실패] 입력 형식 오류 (Validation)
When 사용자가 이메일 필드를 빈칸으로 두고 로그인을 시도한다
Then HTTP 422 응답을 받아야 한다
And 에러 상세 정보에 "email" 필드 누락이 명시되어야 한다
(AI)예외상황 검토 지시
(AI)시나리오에 대한 테스트 지시(pytest-bdd 등 활용)
가장 강력한 신뢰 기준입니다. 작성한 거킨 시나리오들이 "빠진 구멍은 없고, 서로 겹쳐서 충돌하진 않는가?"를 보는 것입니다.
거킨으로 쓴 문장이 단순한 소설이 아니라, 기계가 읽어서 '참/거짓'을 판별할 수 있는 수준인가를 확인하는 것입니다.
pytest 코드로 변환해봐"라고 시켰을 때, AI가 주저 없이 코드를 뽑아낸다면 그 문장은 '명확한 규격'을 갖춘 것입니다."이 테스트가 성공하면, 진짜로 우리 회사의 규정 제5조가 만족되는가?"를 연결해 보는 것입니다.
TDD 사이클
QMS 플로우
아이고 코드 본지 몇년 된거 같네