본문 바로가기
Kotlin Spring/Kotlin Spring 강의 내용

5) 요구사항 분석 및 ERD 설계

by Bill Lab 2025. 8. 31.
728x90

1. 요구사항 분석

현업에서 개발을 진행할 때 요구사항 분석 과정 없이 바로 개발부터 진행하는 주니어 개발자들이 눈에 많이 보입니다. 개발 이후 막히거나, 기획쪽 수정될 내용을 뒤늦게 찾게되면, 기존 개발했던 로직들을 전반적으로 수정해야해서 개발 시간을 더 달라는 개발자들이 있습니다. 그럴때 저는 반대로 질문합니다.

요구사항 분석을 제대로 하셨나요?
개발 전 요구사항에 명시되어 있는데요?

 

개발자 중 어떤 개발자는 질적으로도 속도적으로도 잘하는 개발자가 있는 방면, 어떤개발자는 코드 리뷰에도 수정될 부분이 많이 발생하고 개발시간도 느리게 개발하는 사람들이 있어요.

그런데 그 중 원인을 분석해보면, 요구사항분석을 개발전에 진행했냐? 안했냐로 구분되기도 합니다.

val 개발자에게_좋지_않은_습관 = "요구사항을 제대로 분석하기 전에 코딩부터 하는 습관"

 

2. 요구사항 분석 제대로 하기 /w 시퀀스 다이어 그램

 : 무엇을 개발할 지를 여러분들이 가장 잘 이해하기 쉬운언어로 풀어보는 겁니다.
(동시에 슈도코드(Pseudo Code)를 이용하여 여러분이 알기쉽게 텍스트에 먼저 개발을 진행해 보는거에요.

그렇게 하면 어떤 코드는 이미 소스내 존재 해야할텐데? 라는 추측까지도 할 수 있게 됩니다.)

 

주요 기능에 대해 요구사항 분석을 간단하게 한번 정리해 봤어요.

    (1) 로그인 로그아웃

          - 로그인:  인증된 회원정보로 토큰을 부여한다

          - 로그아웃: 토큰을 만료하여 재사용하지 못하도록 한다.

 

    (2) Home body

          - 최초 진입 시 떠야되는 상품은 어떤 상품이 되어야 하지?

            : (PO? or 서비스 기획자? or 사업총괄? or PD?) 회사마다 다르겠지만 요구사항을 정의하는

             담당자에게 미리 문의해보자

          - 상품 카테고리 별로 최근 등록된 상위 10개씩 보여주는걸로 확인

          - 일상 서비스 전체 중에 가장 부하가 크겠지?(캐싱 적용 해야겠는데?)

 

    (3) 상품(product)       

          - 사용자가 상품조회(상품정보, 가격정보, 재고수량)

          - 상품 조회만 구성하면 되고, 상품 table 에서 상품정보, 가격정보, 재고수량을 확인할 수 있는

            컬럼이 있어야 겠구나!          

 

    (4) 장바구니(cart)

          - 장바구니 조회 

          - 상품을 선택하여 장바구니로 저장

          - 장바구니에서는 상품과, 주문하려는 수량과 가격정보가 있으면 되겠네!

 

    (5) 주문서(order)

          - 장바구니의 상품을 주문 하기위한 주문서

          - 내가 구매하려는 제품이 주문가능상태(판매중인지? 재고가 있는지?)인가를 검증해야하고 언제 주문했고,

            주문한 수량만큼 재고차감을 해야하겠구나? 그런데 여러상품을 주문하면?

            여러상품의 총금액을 계산해야 하고, 상품별 orderDetail table에 저장을 하고 장바구니는 비워줘야 

            할 것이다.

 

    (6) 주문서 상세(orderDetail)

          - 주문서에 어떤 상품이 담겼는지 상품 detail 정보

          - 여러개 상품을 주문할 수 있기때문에 body역할인 상세 영역이 필요하구나!

            (주문서가 총 정보가 기입되어있는 Header의 역할이고 주문서 상세는 Body의 역할)

       

    (7) 쿠폰(coupon)

          - 쿠폰의 종류는 어떤게 있나? (100 전액무료와 일부 할인이 있구나!)

          - 100% 전액 무료일 경우 사용금액의 한도는 있겠지?

          - 100% 전액 무료 쿠폰이면, 사용자 많이 몰릴수도 있겠네?(Kafka이용하여 부하분산 고민)

          - 10% 할인 쿠폰 발행과 사용(일반 쿠폰) 

 

     (8) 결제

          - 전액 무료 쿠폰을 사용하여 결제로직을 구현(0원 결제 - No PG) 

 

3. 요구사항을 기반으로 ERD 설계하기

 

[DB Table 생성]

https://dbdiagram.io/

 

dbdiagram.io - Database Relationship Diagrams Design Tool

 

dbdiagram.io

 

 

728x90