[WIL] 설계 - Software Design

2025. 7. 27. 23:03·WIL

🤦 기존의 지식 & 생각 & 습관

  • 요구사항 문서로부터 도메인 개념을 뽑아낸다.
  • 설계에 대한 중요성을 직접 경험해보지 못했다.
  • 시퀀스 다이어그램, 클래스 다이어그램은 따로 작성하지 않고 개발을 진행했다.
  • 멱등성에 대해서 잘못된 개념을 가지고 있었다.

🛠️ 이번 주 경험

  • 요구사항 문서 작성 (유저 시나리오 도출 -> 자연어 설명)
    • 행위 중심의 기능 목록을 정리
    • 유스케이스 흐름 작성
  • 요구사항 문서를 기반으로 시퀀스 다이어그램 작성
    • 하나의 기능에서 객체 간 메시지 흐름을 시각화
  • 클래스 다이어그램 작성
    • 도메인 개념 간 책임과 관계를 시각화
    • 엔티티/VO 분리
  • ERD 작성

🐥 경험으로부터 배운 것들

  • 문서를 작성하는 목적을 정확히 하자.
    • 내가 문서를 작성하는 목적을 정확히 해야, 문서가 전달하고자 하는 메시지가 명확해진다.
    • 요구사항과 시퀀스 다이어그램을 개발자 외 사람에게 설명한다고 생각하고 작성해보자.
  • 깊은 요구사항 분석이 좋은 시퀀스 다이어그램, 클래스 다이어그램, ERD로 이어진다.
    • 스스로 요구사항을 정확히 이해하고 정리하자.
    • 잘 정리되지 않은 요구사항 문서로 인해, 계속하여 수정 반복되었다.
    • 요구사항 문서 수정이 시퀀스 다이어그램, 클래스 다이어그램, ERD 수정으로 이어지면서 스스로 헷갈리게 되었다.
  • 요구사항이 시퀀스 다이어그램과 일치하는지 확인하자.
    • 설계하면서 수정되는 요구사항과 시퀀스 다이어그램에 차이가 없는지 지속적으로 확인!
    • 시퀀스 다이어그램의 흐름과 명세 사이의 이격이 발생하는 걸 주의하자.
  • 요구사항을 더 뾰족하게 만들려고 노력하자.
    • 지금까지 내가 작성해봤던 요구사항 문서의 부족한 점을 느낄 수 있었다.
    • 좀 더 구체적이고 다양한 엣지케이스를 고려해보자.
  • 잘 읽힐 수 있는 시퀀스 다이어그램을 작성하자.
    • 시퀀스 다이어그램을 봤을 때, 전체적인 흐름이 보일 수 있도록 작성해야 함을 느꼈다.
    • 다른 사람이 봤을 때에도 쉽게 이해할 수 있도록 표현하자.
  • 멱등성이 무엇인지 다시 생각해보자.
    • 멱등성 = 첫 번째 수행한 뒤, 여러 차례 적용해도 결과를 변경시키지 않는 작업 또는 기능
    • 멱등한 API = 두 번 이상 요청해도 결과는 처음 요청과 같음
      • 좋아요가 중복됐을 때, 오류를 반환하는 건 멱등하지 않다.
  • 처음과 끝을 먼저 맞춰야 한다.
    • 즉, 마감 기한에 맞추는 걸 최우선으로 하자.
      • 일단 요구되는 동작을 수행하는 상태로 기한에 맞추는 것이 중요하다.
    • 그리고 중간에 리팩토링한다.
  • 패키지와 모듈의 차이
    • 패키지 = 묶으려는 행위
    • 모듈 = 독립적으로 쪼개서 재활용에 초점

'WIL' 카테고리의 다른 글

[WIL] Decoupling with event  (1) 2025.08.31
[WIL] Failure-Ready System  (2) 2025.08.24
[WIL] 인덱스와 캐시  (0) 2025.08.17
[WIL] 동시성 이슈 제어  (4) 2025.08.08
[WIL] TDD & 지속 테스트 가능한 구조  (3) 2025.07.18
'WIL' 카테고리의 다른 글
  • [WIL] Failure-Ready System
  • [WIL] 인덱스와 캐시
  • [WIL] 동시성 이슈 제어
  • [WIL] TDD & 지속 테스트 가능한 구조
g-hwang
g-hwang
g-hwang 님의 블로그 입니다.
  • g-hwang
    g-hwang 님의 블로그
    g-hwang
  • 전체
    오늘
    어제
    • 분류 전체보기 (57)
      • 데브코스 (7)
      • 스프링 (8)
      • 자바 (3)
      • 아키텍처 (3)
      • 트러블 슈팅 (4)
      • 알고리즘 (0)
      • 개발서적 (7)
      • 인프런 워밍업 스터디 (7)
      • 오픈소스 기여 (2)
      • WIL (7)
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • 링크

  • 공지사항

  • 인기 글

  • 태그

    트랜잭션
    JPA
    카프카
    jpa 순환참조
    real mysql 8.0
    ZSet
    레이어 아키텍처
    코드래빗
    래퍼 클래스
    스터디3기
    도메인
    virtual thread
    워밍업 스터디
    인덱스
    이벤트 스토밍
    스프링
    도메인 모델링
    다중 컬럼 인덱스
    인프런 워밍업 스터디
    자바
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.3
g-hwang
[WIL] 설계 - Software Design
상단으로

티스토리툴바