RECOMMENDED
최근 공개된 추천 콘텐츠
- 기술노트기술노트스프링 보안 · 1. 개요 및 구조
커스텀 UserDetails와 UserDetailsService로 사용자 정보 직접 관리하기
지난 노트에서는 InMemoryUserDetailsManager를 사용해 메모리에 임시 계정을 올리고 URL 권한을 설정했다. 하지만 실제 서비스를 만들 때는 메모리가 아니라 데이터베이스(DB)에 회원 정보를 저장하고 불러와야 한다. 또한 스프링 시큐
newlec · 36분 전조회 23 - 기술노트기술노트스프링 보안 · 1. 개요 및 구조
JDBC를 활용한 사용자 관리와 데이터베이스 기반 인증
지난 노트에서는 메모리에 임시로 사용자 정보를 생성하는 InMemoryUserDetailsManager를 이용해 스프링 시큐리티의 기본 인가 설정을 알아보았다. 하지만 실제 서비스에서는 서버를 재시작해도 사용자 정보가 유지되어야 하므로 데이터베이스에
newlec · 42분 전조회 22 - 기술노트기술노트Docker · 1. 기초
도커 컴포즈로 스프링 부트와 PostgreSQL 한 번에 구동하기
1. 왜 도커 컴포즈를 써야 할까? 지난 글에서는 스프링 부트 앱을 도커 이미지로 만들고 컨테이너 하나를 띄우는 방법을 다루었다. 하지만 진짜 서비스를 작동시키려면 백엔드 앱 혼자서만 일할 수 없다. 데이터를 안전하게 저장해 둘 데이터베이스가 반드시
newlec · 2시간 전조회 34 - 기술노트기술노트Docker · 1. 기초
Java 21 스프링 부트 앱을 도커 이미지로 배포하기
1. 백엔드 앱을 왜 도커 이미지로 만들어야 할까? 열심히 만든 백엔드 프로그램을 내 컴퓨터에서 실행했을 때는 아무 문제가 없었는데, 서버나 다른 팀원의 컴퓨터로 옮기면 갑자기 동작하지 않는 경우가 자주 발생한다. 자바 버전이 다르거나 필요로 하는 프
newlec · 3일 전조회 53 - 서블릿 필터를 활용한 권한 기반 접근 제어와 인가 구현기술노트기술노트스프링 보안 · 1. 개요 및 구조
서블릿 필터를 활용한 권한 기반 접근 제어와 인가 구현
지난 노트에서는 세션을 사용해 사용자의 로그인 상태를 유지하고 로그아웃을 처리하는 방법을 알아보았다. 하지만 로그인한 사용자가 아무 페이지나 다 들어갈 수 있게 두는 것은 문제가 될 수 있다. 예를 들어 일반 회원에게 관리자 전용 페이지를 보여주어서는
newlec · 5일 전조회 34 - 기술노트기술노트스프링 보안 · 1. 개요 및 구조
세션을 이용한 로그인 상태 유지와 로그아웃 구현
지난 노트에서는 쿠키를 사용해 클라이언트를 식별하고 간단한 설정값을 기억하는 방법을 알아보았다. 하지만 쿠키에 로그인 정보나 비밀번호 같은 중요한 정보를 직접 담아 주고받는 것은 매우 위험하다. 이번 노트에서는 쿠키의 보안상 한계를 극복하고, 서버가
newlec · 5일 전조회 49 - 기술노트기술노트스프링 보안 · 1. 개요 및 구조
쿠키의 의미와 쿠키를 이용한 로그인 상태 유지
지난 노트에서는 스프링 시큐리티의 필터를 사용하지 않고, 컨트롤러와 서비스를 이용해 사용자의 아이디와 비밀번호를 검증하는 기본 로그인 로직을 직접 구현해 보았다. 하지만 해당 로직에는 치명적인 허점이 존재한다. 로그인 버튼을 눌러 인증을 완료하더라도,
newlec · 6일 전조회 50 - 기술노트기술노트스프링 보안 · 1. 개요 및 구조
컨트롤러를 이용한 로그인 직접 구현
이번 노트에서는 스프링 보안을 사용하지 않고 맨땅에 직접 인증과 인가 기능을 구현해볼 예정이다. 1. 직접 로그인 구현이 필요한 이유 스프링 보안을 적용하면 로그인 폼 생성, 인증 요청 처리, 세션 관리 등이 내부적으로 자동 처리된다. 그러나 내부 동
newlec · 6일 전조회 52 - 기술노트기술노트스프링 보안 · 1. 개요 및 구조
서블릿 필터와 스프링 보안 필터 체인의 이해
앞 노트에서 언급했던 것처럼 스프링 보안은 서블릿 필터(Servlet Filter)를 이용해 구현하고 있다. 물론 우리가 사용할 필터는 서블릿 컨테이너에 담겨 있는 필터가 아니고 스프링 IoC 컨테이너에 담겨 있는 필터이지만 그 실행 방식이나 필요성은
newlec · 7일 전조회 52 - 기술노트기술노트스프링 보안 · 1. 개요 및 구조
스프링 보안의 개념과 기술적 기반
이번 노트를 시작으로 스프링 보안에 대해서 차근차근 알아볼 예정이다. 이번 노트에서는 스프링 보안이 무엇인지와 향후 우리가 다루게 될 내용이 무엇인지를 간단히 알아보고, 다음 노트들을 통해서 좀 더 자세히 천천히 알아볼 예정이다. 그럼 첫 번째로 스프
newlec · 7일 전조회 74 - JPQL의 한계와 동적 쿼리 구현 방식기술노트기술노트JPA · 3. JPA
JPQL의 한계와 동적 쿼리 구현 방식
1. JPQL의 한계 JPQL은 엔티티 객체 모델을 기반으로 한 정밀한 쿼리 작성을 가능하게 하지만, 기본적으로 문자열 형태의 정적 쿼리(Static Query)라는 근본적인 한계를 지닌다. 문자열 기반의 정적 쿼리: @Query 어노테이션에 작성되는
newlec · 10일 전조회 62 - Spring Boot @Transactional 전파 속성과 격리 수준기술노트기술노트스프링부트 · 1. 기초
Spring Boot @Transactional 전파 속성과 격리 수준
Spring Boot에서 AOP 기반으로 작동하는 @Transactional 어노테이션은 다양한 옵션을 제공한다. 여러 트랜잭션이 묶여서 실행될 때의 거동을 정의하는 전파(Propagation) 속성과, 다중 트랜잭션이 동시 실행될 때 데이터 일관성을
newlec · 10일 전조회 36