전체 글 12

TIL (12) - Security / Transactional

1. Spring Security개념Spring Security는 스프링 기반 애플리케이션에 인증(Authentication)과 인가(Authorization)를 제공하는 프레임워크다.인증(Authentication): 사용자가 누구인지 확인하는 과정 (로그인)인가(Authorization): 인증된 사용자가 특정 리소스에 접근할 권한이 있는지 확인하는 과정동작 흐름클라이언트가 요청을 보내면 FilterChain을 거친다.UsernamePasswordAuthenticationFilter 등에서 인증 정보를 확인한다.AuthenticationManager가 실제 인증을 처리한다.UserDetailsService에서 사용자 정보를 조회한다.인증 성공 시 SecurityContext에 인증 객체(Authent..

TIL 2026.07.12

TIL (11) - N+1

1번 조회하려고 했는데 뒤에서 N번이 더 나가는 상황이다.생기는 이유지연 로딩은 실제로 쓸 때까지 조회를 미루는데. 문제는 반복문 안에서 그걸 쓸 때 터진다.// 회원 목록 조회 → SELECT * FROM member (쿼리 1번)List members = memberRepository.findAll();for (Member m : members) { // m.getTeam() 을 실제로 쓰는 순간, 팀을 조회하는 SELECT가 나감 // 회원이 10명이면 여기서 10번 (쿼리 N번) System.out.println(m.getTeam().getName());}// 결과: 1 + N 번 쿼리findAll() 시점엔 회원만 가져온다. 팀은 프록시(가짜 객체)로 채워두고 미뤄뒀다가, 루프 ..

TIL 2026.07.05

TIL (10) - 영속성 컨텍스트(Persistence Context)

영속성 컨텍스트한 줄로 하면 엔티티를 보관하는 임시 작업 공간 이다. 식당에 비유하면, DB는 창고고 영속성 컨텍스트는 주방의 작업대다. 손님 주문(엔티티)을 매번 창고까지 왔다 갔다 하지 않고, 일단 작업대에 올려두고 거기서 다듬다가, 마지막에 한 번에 창고로 보낸다. 이 작업대를 관리하는 게 EntityManager다. 엔티티의 4가지 상태 처음에 이게 제일 헷갈렸다. 엔티티는 상태가 있다. 비영속(new): new로 막 만든 객체. 작업대에 아직 안 올라옴. 영속(managed): persist() 하거나 조회해온 상태. 작업대 위에서 관리되는 중. 준영속(detached): 작업대에서 내려온 상태(detach, close, clear). 삭제(removed): remove() 한 상태. Membe..

TIL 2026.06.28