[일지] 2026.01.25

김재만·2026년 1월 25일

작업한 것

  • TDD 연습
    • BDD - TDD - QMS 연결하기
      간략 버전: 유저플로우 → 거킨 → TDD → 경량 품질 Docs
      규제 담당자: 거킨 확인 → 품질문서 확인
      1. 의도정리(머메이드)
      2. 명세화(거킨)
      3. TDD
      4. Docs(Read.me)

배운 것

  • 유저플로우의 표준 4단계

    1. 진입점(Entry Point): 사용자가 이 기능을 어디서 시작하는가? (예: 홈 화면의 '환전하기' 버튼 클릭)
    2. 정상 경로(Happy Path): 아무런 문제 없이 목적지에 도달하는 최단 동선. (예: 금액 입력 → 환율 확인 → 완료)
    3. 대안 및 예외경로(Alternative / Edge Path): 사용자가 중도에 이탈하거나 에러가 발생하는 지점. (예: 잔액 부족, 환율 API 응답 지연)
    4. 최종 상태(Success / Final State): 작업이 완료된 후 사용자가 보게 되는 화면과 시스템의 상태 변화. (예: 환전 완료 메시지, DB 기록)
  • 유저플로우 작성하기

    1. 해피패스 플로우 작성
    2. 장애물 찾기
    3. 결정트리 구성
    4. 얼터너티브 / 앳지별 패스 플로우 작성
    5. 세부 장애물 찾기
    6. 세부 플로우 작성
  • 모든 장애물을 찾았는지 확인하는 기준

    1. MECE 기반의 '상태(State)' 검토

      데이터나 시스템이 가질 수 있는 모든 상태를 누락 없이 확인했는지 체크합니다.

    • 정상 (Valid): 규정된 범위 내의 데이터 (예: $10)
    • 경계 (Boundary): 허용 범위의 최소/최대값 (예: 0원, 최대 환전 한도액)
    • 비정상 (Invalid): 타입 불일치나 범위 초과 (예: 문자열 "abc", 마이너스 금액)
    • 부재 (Empty/Null): 데이터가 들어오지 않음 (예: 입력 없이 확인 버튼 클릭)
    1. '실패의 3요소' 필터링 (System Perspective)

      시스템이 동작하는 환경을 기준으로 장애물을 분류해보면 누락이 보입니다.

    • 사람(Human): 사용자가 실수할 수 있는가? (잘못된 입력, 중복 클릭)
    • 서버(Internal): 우리 로직이 계산 오류를 내는가? (소수점 처리, 오버플로우)
    • 연결(External): 외부 요인이 차단되는가? (API 타임아웃, 네트워크 단절, 환율 데이터 오염)
    1. '규제 및 비즈니스 룰' 매핑

      우리가 정한 정책이 모든 시나리오를 방어하는지 대조합니다.

    • 소수점 정책: 모든 계산 결과에서 소수점이 발생할 때 예외 없이 '버림'이 적용되는가?
    • 추적성 정책: 모든 실패 경로(Edge Case)에서도 고유 ID와 에러 코드가 생성되는가?
  • 다음 단계로 넘어가는 기준 ⇒ 굵직한 장애물 제거 시

    1. "굵직한 장애물"의 정의 (The Big Rocks)

      다음 세 가지 질문에 모두 Yes라고 답할 수 있다면, 세부 문제는 나중으로 미루고 바로 거킨으로 넘어가셔도 됩니다.

    • 핵심 로직 침해: "이 장애물이 발생했을 때, 돈이 복사되거나 증발하는가?" (예: 환율 0원, 마이너스 입력)

    • 사용자 차단: "이 장애물 때문에 사용자가 다음 화면으로 아예 못 넘어가는가?" (예: API 먹통)

    • 정책 부재: "이 상황에서 내림인지 반올림인지 내가 정해주지 않았는가?" (예: 소수점 처리)

      이 외의 'UI가 안 예뻐요', '문구가 어색해요' 같은 것들은 과감히 2순위(Backlog)로 미룹니다.

    1. 버전 관리 전략 (The Versioning)

      한 번에 완벽한 거킨을 쓰려 하지 말고, '버전별 테마'를 정해서 확장하세요.

    • v1.0 (Happy Path): "정상 환율일 때 계산이 정확히 되는가?" (오늘의 목표)
    • v1.1 (Edge Cases): "비정상 입력과 소수점 처리가 완벽한가?"
    • v1.2 (System Risks): "API 지연이나 서버 에러 시 어떻게 반응하는가?"
  • 머메이드 작성법

    graph TD
        Start([자산 입력]) --> Input[금액 및 통화 설정]
        Input --> Check{금액 유효성 검사}
        
        Check -- "마이너스/비숫자" --> Error[에러 메시지 출력]
        Check -- "정상" --> Logic[연산 및 환율 적용]
        
        Logic --> Policy{소수점 정책: 내림}
        Policy -- "결과 도출" --> End([최종 합산 결과 출력])
    
        %% 스타일링
        style Error fill:#f96,stroke:#333
        style End fill:#bbf,stroke:#333

    • 요소
      • Start
      • End
      • Check: 분기
      • Logic: 연산
      • Policy: 연산 규칙

다음 작업

  • 혼자 유저플로우 작성해보기(반복)
  • 거킨 작성해보기
  • TDD 완성하기

마무리

큰 모험의 시작

profile
듣는 것을 좋아하는 개발자입니다

0개의 댓글