research

System Sequence Diagram (Ch 9)

System Sequence Diagram (Ch 9)

SSD는 시스템을 블랙박스로 놓고, 외부 액터가 시스템에 보내는 이벤트를 시간순으로 나열한 다이어그램이다. 만드는 데 30분이면 충분하다.

핵심 아이디어

유스케이스가 텍스트로 기술한 상호작용을, SSD는 시각적으로 보여준다. 이 둘은 같은 정보의 다른 표현이다.

SSD에서 파악하는 것은 딱 하나: 시스템 이벤트(system event). 액터가 시스템에게 요청하는 연산이다. 이 시스템 이벤트가 나중에 07-grasp-patterns의 Controller 패턴에 의해 소프트웨어 객체의 메서드가 된다.

만드는 법

01-use-case-writing|유스케이스의 Main Success Scenario를 보면서:

  1. 액터가 시스템에게 뭔가를 요청하는 스텝을 찾는다
  2. 그 요청을 동사+명사 형태의 이벤트 이름으로 추상화한다
  3. 필요한 파라미터와 리턴값을 붙인다

이름은 의도(intent) 수준으로 짓는다. scan()이 아니라 enterItem(). 바코드 스캐너라는 물리적 인터페이스에 묶이지 않는다.

Mermaid 예시: Process Sale

외부 시스템이 포함된 SSD (Iteration 2+)

Iteration 2에서는 신용카드 결제처럼 외부 시스템과의 협력이 추가된다:

바이브 코딩에서의 활용

SSD에서 도출된 시스템 이벤트 목록은 곧 API 엔드포인트 또는 서비스 메서드의 시그니처가 된다. LLM에게 전달할 때 가장 직접적인 형태다.

프롬프트 예시:
"다음 시스템 이벤트를 처리하는 서비스 레이어를 설계해줘:
- makeNewSale() → 새 Sale 객체 생성
- enterItem(itemID, quantity) → 상품 조회 후 라인아이템 추가, description과 running total 리턴
- endSale() → 세금 계산 후 최종 total 리턴
- makePayment(amount) → 결제 처리, change와 receipt 리턴

각 이벤트는 Controller 객체가 받아서 적절한 도메인 객체에 위임해야 해."

시스템 이벤트의 파라미터와 리턴값을 명시하면 LLM이 함수 시그니처를 정확하게 잡는다.