분류 전체보기(255)
-
[타임리프] 자주 사용하는 기능 정리
프로젝트 생성 타임리프 소개 공식 사이트: https://www.thymeleaf.org/ 공식 메뉴얼 - 기본 기능: https://www.thymeleaf.org/doc/tutorials/3.0/usingthymeleaf.html 공식 메뉴얼 - 스프링 통합: https://www.thymeleaf.org/doc/tutorials/3.0/thymeleafspring.html 타임리프 특징 1. 서버 사이드 HTML 렌더링 (SSR) 타임리프는 백엔드 서버에서 HTML을 동적으로 렌더링 하는 용도로 사용됩니다. 백엔드 개발자의 경우 (화려한 프론트엔드 기술을 적용할 필요 없이) 빠르게 데이터를 확인 해야할 일이 생깁니다. 이때 간단한 어드민 페이지 정도 만들어서 확인해 볼 수 있는데요, 이를 위해서라도..
2022.08.17 -
Spring Boot, Spring Security를 이용한 JWT 인증·인가 구현 (1/2)
이번 포스팅에서는 Spring Boot + JWT + Security 를 사용해서 회원가입/로그인 로직을 구현해보겠습니다. 인프런에 있는 Spring Boot JWT Tutorial 강의에서 코드를 참고했으며 그 중 저에게 필요한 부분을 정리하려 합니다. 프로젝트를 바로 진행하기 전에 용어의 개념부터 살펴보겠습니다. JWT 인증과 인가 1. JWT ( JSON Web Token ) 소개 JWT 정의 JWT는 웹표준(RFC7519)으로 지정되어 있고 Json 객체를 사용해서 Token 자체에 정보들을 저장하고 있는 Web Token이며 토큰 기반의 인증 시스템에서 가장 널리 사용되는 인증 방식입니다. JWT 구조 JWT는 Header, Payload, Signature 세 부분으로 구성되어 있습니다. He..
2022.08.01 -
[Spring Security] JWT(Json Web Token)란?
웹서비스에서는 토큰을 사용하여 사용자들의 인증 작업을 처리하는 것이 가장 좋은 방법입니다. 이번 포스팅에서는 토큰 기반의 인증 시스템에서 주로 사용하는 JWT(Json Web Token)에 대해 알아보도록 하겠습니다. JWT(JSON Web Token)란? JWT란 JSON 포맷을 이용해 사용자에 대한 속성을 저장하는 Claim 기반의 웹 토큰입니다. 토큰 자체를 정보로 사용하는 Self-Contained 방식으로 정보를 안전하게 전달합니다. 애플리케이션이 실행될 때, JWT를 static 변수와 로컬 스토리지에 저장하게 됩니다. static 변수에 저장되는 이유는 HTTP 통신을 할 때마다 JWT를 HTTP 헤더에 담아서 보내야 하는데, 이를 로컬 스토리지에서 계속 불러오면 오버헤드가 발생하기 때문입니..
2022.07.27 -
[Spring Security] 인증 방식 비교(서버 기반 인증, 토큰 기반 인증)
API를 이용한 웹서비스를 개발할 때, 토큰을 사용하여 사용자들의 인증 작업을 처리하는 것이 가장 좋은 방법이라고 알고있어 토이 프로젝트에서 구현해보고 있습니다. 이번 포스팅에서는 서버 기반 인증 시스템의 개념과 한계, 그리고 토큰 기반 인증 시스템의 장단점에 대해 알아보도록 하겠습니다. 서버(세션) 기반 인증(Session, Cookie) 서버 측에서 사용자들의 정보를 기억하기 위해 세션을 유지해야 하고, 세션을 메모리, 디스크, 데이터베이스 등을 통해 관리합니다. 클라이언트로부터 요청을 받으면 클라이언트의 상태 정보를 저장하여 유지해야 하므로 Stateful 한 구조를 가집니다. [ 인증 방식 ] 사용자가 로그인 시 올바른 사용자임을 확인하고, 고유한 세션 ID 값을 부여해 세션 저장소에 저장하고 클..
2022.07.27 -
[Spring Security] Filter와 Interceptor 차이 및 용도
공통적으로 처리할 부분 자바 웹 개발을 하다 보면 공통업무 코드가 발생합니다. 이를 매 페이지마다 작성하면 코드 중복과 리소스 낭비로 이어지므로 해당 부분은 따로 빼서 관리하는 게 좋은데요. 대표적으로 Filter, Interceptor는 모두 무슨 행동을 하기 전에 먼저 실행하거나, 실행한 후에 추가적인 행동을 할 때 사용됩니다. 이번 포스팅에서는 요청의 흐름에 따라 필터, 인터셉터의 개념에 대해 알아보겠습니다. 전체 흐름 요청이 들어왔을 때 진행되는 순서는 Filter → Interceptor → AOP → Interceptor → Filter의 순으로 거치게 됩니다. Filter Filter는 J2EE표준 스펙 기능으로, Dispatcher Servlet에 요청이 전달되기 전/후에 url 패턴에 맞..
2022.07.27 -
Web Server와 WAS(Web Application Server)
Web Server와 WAS(Web Application Server) 개념과 차이점을 학습하기 전에 먼저 정적 웹 페이지와 동적 웹 페이지에 대해 알고 있어야 합니다. 정적 웹 페이지(Static Web Page) 정적 웹 페이지는 언제 접속해도 같은 응답을 보내주는 페이지를 말합니다. 사용자가 요청을 보내면 서버는 미리 저장된 웹 페이지를 보내기만 하게 되며 사용자는 서버에 저장된 HTML, CSS, JS 등의 파일이 변경되지 않는다면 매번 같은 웹 페이지를 보게 됩니다. 동적 웹 페이지(Dynamic Web Page) 동적 웹 페이지는 브라우저에게 요청을 받은 이후 서버가 추가적인 처리 과정을 거쳐 클라이언트에게 응답을 보냅니다. 예를 들면 날씨나 뉴스 등이 있습니다. HTML으로는 동적인 구현이 ..
2022.06.30