HomeAboutMeBlogGuest
© 2025 Sejin Cha. All rights reserved.
Built with Next.js, deployed on Vercel
🚀
Random Bit Flip
/
✌️
[2기 빅토리] 5주차 RBF
✌️

[2기 빅토리] 5주차 RBF

주차
SpringBoot Part3
회고일
Apr 25, 2022
참여자
멘토
Property
tag
김승은
  • Service Layer에서 예외 처리를 어떻게 다루었는지 공유, 그리고 service의 단위 테스트 중 예외 테스트를 어떻게 진행해야 할지에 대한 이야기
    • 유석님은 service의 parameter로 들어오는 값에 대해서 type error만 controller에서 처리하고, 비즈니스 로직에 해당하는 존재하지 않는 id 등은 service에서 처리함.
  • MySql 스키마에서 foreign key, on delete cascade 등을 비즈니스 로직으로 처리.
박상혁
  • MySql과 같이 EnumType을 설정할 수 있는 dbms도 있지만 그렇지 않은 dbms또한 많다. DB레벨에서 Enum Type을 사용할 경우 추후 데이터 이전 등의 작업을 할 때 문제가 생길 수 있다. 따라서 Enum Type은 코드 레벨에서만 사용하고 Database에 저장할 때에는 string type으로 전환시켜 사용할 필요가 있다.
  • 인텔리제이서 빌드 시 요상한 에러가 뜰 때가 있는데, 그럴 때 대처법
    • 인텔리제이 빌드 이슈
  • Customer VS Voucher, 1 : N 인가 N : M 인가?? ⇒ 구현 요구사항의 애매함으로 인해 생긴 토론. 추후 팀 프로젝트 때에는 우리끼리 요구사항을 잘 맞춘다면 스무스하게 진행되지 않을까 싶다.
정경일
  • 생성자 예외처리
    • 최종 데이터 검증은 백엔드에서 하는 것이 옳은 것같다.
    • 생성에 대한 책임을 밖에서 대신 처리하는 것이 아닌 class 생성자가 처리하는 것이 맞는 것같다.
  • HTTP 메서드
    • 기본 메서드 외에도 OPTIONS는 중요하니 OPTIONS 메서드를 사용할 경우 http 메시지는 어떻게 되는지 공부하자.
정현서
  • foreign key 사용과 delete 현업에서는 foreign key를 잘 지정하지 않거나, delete를 해도 실제 값을 지우는게 아니라 delete되었다고 표시 정도만 하는 경우가 있다한다. foreign key를 지정하면 테스트할 때 꼬여서 문제가 생기는 경우가 있다.
  • 과제를 하다보니 voucher service와 customer service를 명확하게 분리하기 힘든 경우가 있는데 이럴 때는 어떻게 해야할까?
    • 피드백 1) voucher wallet service 등 service를 하나 더 만들어서 분리시킨다.
    • 피드백 2) 본인이 생각했을 때 더 적합한 쪽에 위치시킨다.
  • DB에서 enum type 사용
    • 피드백 1) 코드에서는 enum으로 관리해도 DB에는 string type으로 저장한다.
    • 피드백 2) 코드 상의 enum에 들어가는 값들을 DB의 attribute로 각각 지정한다.
홍유석
  • var 사용을 지양하자
    • var는 가독성을 떨어뜨리므로 사용을 지양하자
  • DTO를 사용하자
    • Entity를 DTO처럼 사용할경우 Entity(DB 스키마)의 변경은 다른 영역(ex. view)도 변경을 발생시킨다
      • OCP를 위반하게 되겠군요!
  • json to object, object to json
    • @RequestBody 모델에 기본생성자, setter/getter가 필요한가?
      최근에 Entity 모델의 속성의 성격을 잘 생각해보고 불변해야 하는 것들은 final로 선언해 명확하게 하라는 코드리뷰를 받았다. 한번 생성되면 변하면 안되는 것들, 이 속성 없이 생성되면 안되는 것들은 추후에 변경돼 에러를 발생시킬 위험이 있고 규모가 커지면 추적하기 어렵다는 것이 이유였다. 오... final! 간단하군! 했는데 여러 문제에 봉착했다. 테스트 코드 작성의 어려움, 객체 변환에 어려움.
      @RequestBody 모델에 기본생성자, setter/getter가 필요한가?
      https://bbbicb.tistory.com/46
      @RequestBody 모델에 기본생성자, setter/getter가 필요한가?
  • @Transactional
    • 🤔 싱글 DML(insert, update, delete)만 있는 상황에서 @Transactional을 사용할 필요가 있을까요?