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 22, 2022
참여자
멘토
Property
tag
한 주간 배우면서 새로 알게된 개념이나 잘 못 알았던 개념을 서로 나누어 보아요.
 
  • DB
    • UUID 없이 이메일과 같은 값으로 pk를 줄 수 있다
    • 찾을게 많아지면 db의 인덱싱 기능을 활용할 수 있다.
    • ex) custeomr type 같은 것은 보통 안걸려 있으니 주의해서 사용하자
  • 로깅
    • 로깅할때 민감한 정보는 빼는게 좋다
    • 삭제는 중요한 정보기 때문에 로깅을 남기는게 좋다
    • 사실 삭제하진 않고 보통 상태값을 하나 만들어서 체크해놓는다
  • 아키텍처
    • 서비스간에 서로 협력한다
      • 서비스에서 서비스를 호출하는 형식으로 많이 만들어진다
      • 다른 도메인의 레포 주입받아서 쓰지말고 서비스를 주입받자
    • 레포지토리에서
      • 조회용 Transaction에는 Transactional(readOnly = true) 해주는 것이 좋다
      • master-slave 구조에서 slave에서 조회를 처리하고, 쓰기작업은 master가 담당한다
  • 테스트
    • 모킹을 사용하면 편하다는걸 느낄 수 있다.
    • 유닛테스트 는 보통 Mocking해서 많이 쓰고
    • 통합테스트 는 무에서부터 API 호출로만 전체적으로 테스트 해준다
    • @SpringBootTest
      • Application Context도 같이 올라가기 때문에 무거워짐
      • 통합테스트할때는 사용하는데, UnitTest할때 그걸 띄워버리면 빌드시간이 느려진다
  • 기타
    • Date와 DateType은 다르다. 따라서 헷갈릴 수 있으므로 이름을 맞춰주자
    • 스트림 쓸때 굳이 두번씩 돌릴 필요없이 줄일 수 있으면 줄이자
 
  • Repository에서 값을 저장할 때(insert) 메소드 리턴 값으로 객체를 반환하는것 보다는 ID만 전달해주는 편이 낫다. 예를 들어 고객의 경우 민감한 정보들이 포함되어 있기 때문이다.
public UUID findById() //권장 public Customer findById() //권장하지 않음
 
 
@TestConfiguration static class Config{ //테스트에 이너클래스로 Config를 작성하면 static으로 해야 동작한다..!!!