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 생성]
dbdiagram.io - Database Relationship Diagrams Design Tool
dbdiagram.io
'Kotlin Spring > Kotlin Spring 강의 내용' 카테고리의 다른 글
6) 개발 architecture (2) 헥사고날 아키텍처(Hexagonal Architecture) (0) | 2025.08.31 |
---|---|
6) 개발 architecture (1) 레이어드 아키텍처(Layered Architecture) (0) | 2025.08.31 |
4) Spring @controller, @service, @repository (0) | 2025.08.29 |
3) Spring 컨테이너, Bean (0) | 2025.08.26 |
2) Spring Boot란? (맛보기) (0) | 2025.08.25 |