Spring Security란 Spring MVC 기반 애플리케이션의 인증(Authentication)과 인가(Authorization or 권한 부여) 기능을 지원하는 보안 프레임워크이다. 다양한 유형(폼 로그인 인증, 토큰 기반 인증, OAuth2 기반 인증 등)의 사용자 인증 기능 적용, Role에 따른 권한 레벨 적용, 애플리케이션에서 제공하는 리소스에 대한 접근 제어, 민감한 정보에 대한 데이터 암호화 등 보안 강화 기능을 제공하고 있다. 용어 Principal(주체) 인증 프로세스가 성공적으로 수행된 사용자의 계정 정보 Authentication(인증) 애플리케이션을 사용하는 사용자가 본인이 맞음을 증명하는 절차 Authorization(인가 or 권한 부여) 인증이 정상적으로 수행된 사용자에..
글을 시작하기에 앞서 보안에 세션 방식을 사용할 것인지, JWT를 사용할 것인지 그리고 JWT를 왜 사용하고 어떤 디테일을 잡아야 보안성을 높일 수 있는지 체크할 수 있는 영상하나를 준비했다. 세션 or 토큰을 이용한 증명 방식이 필요한 이유 HTTP 프로토콜은 요청 데이터를 전송하고 응답 데이터를 받으면 연결이 끊어지는 비연결성(Connectionless)의 특성과 요청데이터와 응답 데이터에 대한 상태를 저장하지 않는 비상태성(Stateless)의 특성을 가지고 있기 때문에 로그인 인증 절차를 성공적으로 진행한다고 해서 서버 측에서는 요청 데이터를 보내는 사람이 인증된 사용자인지 알 수 있는 방법이 없다. 따라서 인증된 사용자 request 상태를 유지하기 위한 수단이 필요하게 되었는데 그것이 바로 세..
코드 스테이츠에 참여한 지 4개월이라는 시간이 흘렀다. 시간이 가면 갈수록 의지도 약해지고, 스스로가 나약해지는 것이 느껴졌지만 그래도 실시간 세션이나 페어 프로그래밍은 언제나 잘 참여했고 어떻게 서든 살아남아 이제 프로젝트를 앞두고 있다. 회고를 하는 날인 김에 내가 추구하던 방향을 다시 조정할 필요가 있는 것 같아서 이렇게 블로깅을 하게 되었다. 블로깅의 목적 재설정하기 섹션3에 들어서서부터 배워야 할 부분이 엄청나게 밀려듦에 따라 블로깅을 잠시 내려놓고 지냈었다. 내가 배운 모든 부분을 정리하고 직접 적어봐야 내 머릿속에 들어올 것이다라고 생각하며 세세하게 블로깅을 해왔지만, 막상 코드를 다루는 부분이 부족해져서 활용 능력이 부족해질까 걱정이 되어 그렇게 했다. 블로깅에 대한 부담도 막중했기에 시작..
현재 나는 데이터 액세스 계층까지 구현되어 있는 애플리케이션 흐름을 자세히 이해하지 못하고 있다. 따라서 블로깅에 이 흐름 자체를 작성하면서 많은 부분을 살펴보려고 한다. 서버(엔트리 포인트 클래스)를 실행 1 2 3 4 5 6 7 8 '@SpringBootAplication' public class SpringDataJpaApplication { public static void main(String[] args) { SpringApplication.run(SpringDataJpaApplication.class, args); } } Colored by Color Scripter cs (Color Scripter에서는 @를 달아도 색 전환이 되지 않기 때문에 애너테이션을 쉽게 확인하기 위해서 (' ')를..