[WIL] 부트캠프 4주차

2025. 8. 10. 23:55·Essay/WIL

 

한 일

  • 주문/결제과정에서 여러 작업(재고차감, 포인트 사용)의 원자성 보장 : 트랜잭션을 이용
  • 동시성 처리 : 좋아요 수 증감, 재고 차감, 포인트 사용에 대해 하나의 자원에 여러 요청이 몰렸을 때 정합성을 보장하기 위한 처리. DB를 이용하여 적절한 lock 사용하기
  • 쿠폰 설계 : 정액/정률이라는 여러 정책을 개방/폐쇄 원칙에 맞게 설계하고 주문 단계에 적용하기 

 

공부해야 할 것  

  • Springframework의 Transaction에 대해 알아보기 

해야 할 일 

  • 이번주 프로젝트를 하면서 고민했던 부분이 Facade 계층에 코드가 너무 많아 지는 것이였는데 application 계층 내에 유효성 검증을 위한 별도  Resolver 를 두도록 코드 리팩토링 
    • resolver를 사용하는 부분 코드 리뷰 요청드리기 : 리졸버가 덩어리째로 가져가는 건지. 아니면 주문의 각 단계별로 하나씩 떼어지는 것인지를 모르겠다. 해당 부분 정리해서 질문하기 
  • 좋아요 수 등록 부분, 트랜잭션 관련 피드백 받은 부분 적용하기 
  • 쿠폰 정책관련 코드 enum에 둔 것 인터페이스+구현으로 변경

 

facade내 검증 처리 리팩토링 방향

facade 내 검증 로직이 있어서 어떻게 분리해야 할까 고민이었는데 아래 두 방식을 피드백 받았다.

  1. 도메인 레이어에 도메인 서비스나 얇은 컴포넌트를 두거나
  2. facade 내에 별도 resolver를 두어 처리하는 방법

facade에서 처리하는 검증은 사용자에게 받은 ID들이 실제 존재하는지 판별해야 하므로 DB 조회가 필요한 부분이다. 
해당 부분을 application layer에서 처리하는 2번 방식으로, facade 내 별도 resolver에서 처리하려고 한다.
왜냐하면 API에서 전달받은 ID의 존재 유무 같은 입력 검증은 애플리케이션 레이어에서 먼저 끝내고, 그 다음에 도메인 레이어에서 비즈니스 유효성을 확인하는 것이 맞다고 판단하기 때문이다.

저작자표시 비영리 변경금지 (새창열림)

'Essay > WIL' 카테고리의 다른 글

[WIL] 부트캠프 3주차  (2) 2025.08.03
[WIL] 부트캠프 1주차  (0) 2025.07.20
자바 2주차 WIL  (0) 2022.02.27
자바 1주차 WIL 키워드  (0) 2022.02.20
'Essay/WIL' 카테고리의 다른 글
  • [WIL] 부트캠프 3주차
  • [WIL] 부트캠프 1주차
  • 자바 2주차 WIL
  • 자바 1주차 WIL 키워드
devstep
devstep
웹 백엔드 개발자
  • devstep
    개발 여정
    devstep
  • 전체
    오늘
    어제
    • 분류 전체보기 (87) N
      • Java관련 (27)
        • Java (21)
        • Intellij (4)
      • Spring Framework (14)
        • Spring (11)
        • JPA (3)
      • Concept (6)
        • 인증 (1)
        • REST API (1)
        • 테스트코드 (3)
        • 클린코드 (1)
      • Database (8)
        • RDBMS공통 (1)
        • MySQL (6)
        • Oracle (1)
      • git (2)
      • Computer Science (3)
        • 네트워크 (1)
        • 자료구조 (1)
        • 보안 (1)
      • Essay (15)
        • Learning Essay (10)
        • WIL (5)
  • 블로그 메뉴

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

  • 공지사항

  • 인기 글

  • 태그

    seed
    비대칭암호화
    부하테스트도구
    JVM
    linux
    applicationcontext
    성능테스트
    innodb
    aggregate
    nofile
    테스트코드
    JavaMemoryModel
    tdd
    자바메모리모델
    storageEngine
    대칭암호화
    component
    bean
    JMeter
    부하테스트
    ClusteredIndex
    단위테스트
    nginx
    DDD
    보안
    클린코드
    블록암호화
    springsecurity
    인텔리제이실행에러
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.4
devstep
[WIL] 부트캠프 4주차
상단으로

티스토리툴바