2022 09 21 - WIYA-waitinyourarea/wiya GitHub Wiki

1. 회원가입 과정에서 이메일 중복체크 버튼 구현 관련

  • 컨트롤러에서 Service를 거쳐서 Repository 갈지, 바로 Repository로 갈지 고민.
  • 회원가입 마지막 과정에서 submit 버튼을 누르면 중복검사를 하는 로직을 이미 구현해놓았으므로, 이메일 중복체크 버튼은 바로 Repository로 가는 걸로 구현.
  • 일반적인 경우, 서비스 메서드를 호출할 때 하나의 트랜잭션 안에서 관리하기 위해서 서비스를 거치도록 구현한다. (db의 데이터를 변경하거나 삽입할 때, 중간에서 하나라도 문제가 발생하면 롤백이 이뤄져야 한다.)

2. Dirty Checking

  • 더티 체킹 -> 상태 변화 검사
  • JPA에서는 트랜잭션이 끝나는 시점에 변화가 있는 모든 엔티티 객체를 데이터베이스에 자동으로 반영 (save 메서드를 사용하지 않아도 자동으로 update쿼리 날려줌)
  • 상태 변경 검사의 대상은 영속성 컨텍스트가 관리하는 엔티티에만 적용 되며, 값을 변경해도 데이터베이스에 반영되지 않도록 @Transactional(readOnly = true) 어노테이션 사용

3. 의존성 주입 ( 생성자 주입)

@RequiredArgsConstructor
private final 조합으로 컴파일 하면 => 필드위에 자동으로 @Autowired가 붙어서 의존성 주입이 된다.

4. @ResponseBody 사용 시 리턴자료형

  • @ResponseBody 어노테이션을 사용하여, http응답 바디에 데이터를 넘길 때는 리턴자료형을 String으로 설정하는 것이 일반적이다.

5. @RequestParam , @RequestBody

  • @RequestParam : 요청 파라미터
  • @RequestBody : http요청 바디 부분

6. 매핑 시 URL 주의