[내일배움캠프 본캠프] 7일 차 TIL 지연로딩, cascade, scheduler, 헤더 JWT

2026. 2. 16. 23:02·내배캠

7일 차 TIL

오늘은 Spring 숙련강의 지연로딩부터 cascade, orphanRemoval, @Scheduled, 헤더로 JWT 주고받기에 대해서 배웠다.

어제 배운 Entity 연관 관계에 이어서 연관 관계 매핑 애노테이션들의 옵션들과
Spring Security + JWT의 회원가입 로직에서 쿠키방식이 아닌 헤더방식으로 개선했다.

내일의 목표는 Spring 숙련 강의 수강 완료하기
그리고 숙련 강의 듣기 시작하기

그러면 18일에 숙련강의를 다 듣고
19일에 MSA강의를 하루만에 다 들어야 한다.
사전캠프를 3일밖에 못 들었더니 일정이 빠듯하다.

지연로딩

즉시 로딩(Eager) vs 지연 로딩(Lazy)
즉시 로딩은 연관 관계로 매핑된 객체들을 한 번에 가져온다.
지연 로딩은 연관 관계로 매핑된 객체들을 필요할때만 가져온다.

@OneToMany처럼 Many로 끝나는 경우 기본값이 지연로딩이다.
여러객체를 가져오는 만큼, 다 가져오면 서버 부하가 심해져서
필요할 때만 가져오도록 설정한다.

@ManyToOne처럼 One으로 끝나는 경우는 기본값이 즉시로딩이다.
단일 객체를 받아오기에 상관없다.

 

지연로딩 설정된 엔티티를 조회할 때는 영속성 컨텍스트가 필요하다.
즉 트랜잭션 환경이 필요하다.

영속성 전이를 위해
@OneToMany같은 연관관계매핑 애노테이션 옵션으로 cascade를 줄 수 있다.
옵션값으로 CascadeType.PERSIST를 하면 저장될 때 연관 관계 매핑된 객체까지 같이 저장된다.
CascadeType.REMOVE는 삭제할 때 연관 관계 매핑된 객체까지 같이 삭제된다.

JPA로 orphanRemoval = true 옵션을 주면
연관 관계를 제거하는것 만으로도 해당 엔티티를 제거할 수 있다.
이는 CascadeType.REMOVE의 기능도 포함한다.

근데 @ManyToOne에는 이 orphanRemoval 옵션이 없다.
그 이유는 이 기능 자체가 부모가 자식을 소유할 때, 부모를 삭제하면 자식도 같이 삭제시키는 것을 말하는데
다대일의 경우에는 자식을 삭제한다고해서 부모도 같이 삭제되면 안되기 떄문이다.

Scheduler

특정 시간에 자동으로 정보를 업데이트 해주는 기능 만들기
@Scheduled(cron = "0 0 1 * * *") 을 사용한다.
초 분 시 일 월 주 순서로 cron의 값을 지정한다.
ex) 매 5분마다면 cron = "0 */5 * * * *" 이다.

이 애노테이션을 메서드위에 붙여서 사용하면
해당 메서드가 cron에 설정한 값을 주기로 자동으로 실행된다.

이 기능을 사용하려면 main 클래스에 @EnableScheduling를 추가해야한다.

회원기능 구현

기존에는 서버가 쿠키를 직접 생성해서 클라이언트에게 전달,
응답 헤더에 Set-Cookie로 저장되었다.
또한 서버에서 Request에 담긴 쿠키 값들 중 JWT에 해당하는 값을 가져와 사용했다.


이번엔 응답 헤더에 토큰을 담아 보낸다.
그리고 요청 헤더에서 JWT를 가져와 사용한다.


즉, JWT를 쿠키를 통해 주고 받던걸
헤더를 통해 주고받는다.

'내배캠' 카테고리의 다른 글

[내일배움캠프 본캠프] 9일 차 TIL 소셜 로그인(OAuth), 단위 테스트, AOP, 예외 처리  (0) 2026.02.18
[내일배움캠프 본캠프] 8일 차 TIL 페이징처리, 다대다, AWS  (0) 2026.02.17
[내일배움캠프 본캠프]6일 차 TIL RestTemplate, Entity 연관 관계  (0) 2026.02.16
[내일배움캠프 본캠프] 5일 차 TIL Spring Security + JWT  (0) 2026.02.14
[내일배움캠프 본캠프] 4일 차 TIL Bean 수동 등록, 쿠키/세션  (0) 2026.02.14
'내배캠' 카테고리의 다른 글
  • [내일배움캠프 본캠프] 9일 차 TIL 소셜 로그인(OAuth), 단위 테스트, AOP, 예외 처리
  • [내일배움캠프 본캠프] 8일 차 TIL 페이징처리, 다대다, AWS
  • [내일배움캠프 본캠프]6일 차 TIL RestTemplate, Entity 연관 관계
  • [내일배움캠프 본캠프] 5일 차 TIL Spring Security + JWT
MvA
MvA
백엔드 개발자 김재현입니다. 주로 공부하면서 느낀점을 기록합니다.
  • MvA
    Man vs Ai
    MvA
  • 전체
    오늘
    어제
    • 분류 전체보기 (94)
      • Java (6)
      • Python (8)
        • 딥러닝 (1)
        • 머신러닝 (7)
      • JavaScript (2)
      • 내배캠 (60)
      • 개인 프로젝트 (11)
      • 책 후기 (5)
      • 기타 (1)
  • 블로그 메뉴

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

  • 공지사항

  • 인기 글

  • 태그

    배포
    머신러닝
    Riot API
    아키텍처
    내일배움캠프
    TiL
    딥러닝
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.4
MvA
[내일배움캠프 본캠프] 7일 차 TIL 지연로딩, cascade, scheduler, 헤더 JWT
상단으로

티스토리툴바