우선 제목은 거창하지만 사실 내용은 별거 없다... 옛날에 프로젝트를 진행할 때 Spring Security를 사용해 로그인 시스템을 구현한적이 있는데 최근 인프런 강의에서 Spring Security를 사용해 로그인 시스템을 구현하는 것을 공부하게 되었다. 물론 사람마다 코드를 짜는 방식이 다르겠지만 내가 프로젝트에서 사용한 방법과 인프런 강의에서 소개된 방식의 차이를 알아보고자 이번 포스팅을 작성하게 되었다. 첫 번째 방법 첫 번째 방법은 아래 링크에서 소개했던 방식으로 자세한 내용을 확인하려면 아래 링크를 확인하면 된다. https://ch4njun.tistory.com/228 [Spring Boot] Spring Security Vue.js와 Spring Boot를 사용 해 진행중인 나의 프로젝트..
이번 포스팅에서는 JWT 토큰 인증 방식을 Spring Boot를 사용해 구현한 내용을 다루려고 한다. 따라서 JWT에 대한 포스팅과 Spring Security를 사용해 로그인 시스템을 구현한 포스팅을 보고 오는 것을 추천한다. https://ch4njun.tistory.com/231 [Concept] JWT(Json Web Token)? JWT JWT는 Json Web Token의 약자로 토큰에서 사용되는 컨텐츠를 Json으로 구성해 토큰화하는 시스템을 말한다. 즉, Json 포맷을 이용하여 사용자에 대한 속성을 저장하는 Web Token 이라고 설명할 수 있다. ch4njun.tistory.com https://ch4njun.tistory.com/228 [Spring Boot] Spring Secu..
Vue.js와 Spring Boot를 사용 해 진행중인 나의 프로젝트에서 로그인 시스템을 만들려던 중 Spring Boot에서 인증/인가를 구현하기 위한 프레임워크인 Spring Security에 대해서 알게되었다. 하지만 단순히 의존성 추가하고 Configure, Annotation 몇개 추가한다고 되는게 아니였다. 생각보다 복잡한 구조를 가지고 있었고 공부를 위해 찾아봤던 자료들도 난이도가 있어 익히기 쉽지 않았다. (다행히 나만 어렵다고 느낀건 아니였다...) 차근차근 정리하면서 프로젝트에 JWT를 사용한 토큰인증방식을 구현하는 것까지 가보려고 한다. Spring Security란? Spring Security는 Spring 기반의 애플리케이션에서 보안(인증과 권한, 인가)을 처리해주는 Spring..
Spring Boot 에서는 사용자 입력 값에 대한 Validation, 즉 검증 과정을 위한 기능들을 제공한다. 그리고 사용자에게 응답 값으로 전달되는 데이터에 대해서 원하는 값만 전달하도록 Filtering 기능을 제공한다. 이번 포스트에서는 이러한 Validation와 Filtering을 하기 위한 방법에 대해서 알아보도록 한다. Validation Spring Boot를 사용해 웹 서버와 같은 애플리케이션을 개발할 때, 데이터를 검증(Validation)해야 하는 상황을 일반적으로 자주 발생하는 일이다. 사용자가 입력하는 이메일, 휴대폰 번호 등 다양한 입력값에 대해서 많은 검증이 필요하다. 검증에서 그치는 것 뿐만 아니라 사용자가 원인을 쉽게 파악하고 이해할 수 있도록 API 응답을 제공해야 한..
이번 포스팅에서는 Spring Boot에서 사용되는 핵심 기술인 AOP에 대해서 간략하게 설명하고, 이를 통해 구현하는 대표적인 예시인 Exception Handler를 구현하는 방법에 대해서 살펴본다. AOP? AOP는 Aspect Oriented Programming 의 약자로 OOP(Object Oriented Programming) 의 단점을 보완하기 위한 프로그래밍 방식이다. 간략하게 설명하면 여러 곳에서 사용되는 공통 기능을 모듈화하고, 쓰이는 곳에 필요할 때 연결함으로써 유지보수, 재사용성에 용이하도록 프로그래밍 하는 것을 AOP라고 한다. 공통 기능 before(), after() 메서드가 존재하는 것을 확인할 수 있고, 이를 AOP를 적용해 공통된 요소로 추출하는 것이다. 결국 공통된 기..
Bean에 대해서 설명하기에 앞서 Spring에서 등장하는 IoC 컨테이너에 대해서 이야기 해본다. IoC는 Inversion Of Control Container의 약자로 기존의 모든 제어를 클라이언트의 코드가 가지도록 구현하던 것을 Framwork가 제어를 나누어 가져가 의존 관계의 방향이 달라지게 되는 것을 말한다. 즉, IoC는 Spring Framwork로 객체를 관리하고 객체의 생성을 책임지고, 의존성까지 관리해주는 컨테이너 이다. 좀더 간단하게 이야기하면 Spring Framwork의 IoC가 객체의 생명주기를 관리하며 DI(Dependency Injection) 패턴을 제공하여 클라이언트는 비즈니스 로직에 집중할 수 있도록 해주는 것이다. 이러한 IoC를 담당하는 핵심 컨테이너가 BeanF..