[BE] Java Spring

Jung In Lee·2024년 11월 3일
0

Spring

목록 보기
1/2

1. @Embedded, @Embeddable

  • 새로운 클래스 생성할필요 x

2. record

  • 자동으로 getter 생성

3. @NoArgsConstructor(access = AccessLevel.PROTECTED)

4. @Repository

  • JpaRepository를 extends할때는 굳이 적을 필요없긴함.

5. @PatchMapping vs @PutMapping

  • @PatchMapping : 원하는 정보만 수정
  • @PutMapping : 모두 수정

6. MockMvc : Controller test

  • @WebMvcTest(AuthController.class)
  • 404 error : @WebMvcTest(AuthControllerTest.class)
    • 테스트 클래스로 테스트를 돌림....

7. Test code

  • AuthControllerTest.class
  1. 외부 API 테스트
  • MockMVC는 스프링부트 내에서 제작한 API를 제작하는 빈이다.
    따라서 RestTemplate를 가져와서 테스트를 하였다.
MockRestServiceServer mockServer = MockRestServiceServer.createServer(restTemplate);
  • 카카오 로그인의 url은 이렇다.
    kauth~로 시작하는 authorization uri을 기본으로,
  1. redirecturi
  2. client_id
  3. responsetype
    세게의 파라미터를 쿼리스트링에 입력하여 auth/login~로 리다이렉트 시킨다.

실제로 실행하면서 기능을 점검해도되는데, 나는 매번 실행시키는게 귀찮아서 테스트 코드로 작성하였다.
302 FOUND를 반환하고 redirecturi로 파싱되는지만 확인한다.

  1. 엑세스 토큰을 입력하면 클라이언트로 반환하는 코드다.
    확인은 jsonpath를 사용해서 확인하였다.

  2. 로그아웃은 refreshtoken이 삭제되는지 확인하였다.
    원격 레디스와 연결이 되어있고 이를 성공적으로 수행하였다.

JPA

FetchJoin(FetchType.LAZY)

  • 지연로딩 : 실제로 실행될때 데이터가 로딩.

Converter

  • DB -> spring
  • spring -> DB
  • 데이터 변환
  • AttributeConverter implements

영속성 컨텍스트

  • querydsl로 추출한값을 수정하면 왜 저장을 하지않아도 반영이 되는가?
profile
Software Developer

0개의 댓글