Backend

Backend/기능 구현

Spring Security JWT - 4. 로그인 세팅

개요 로그인 로직은 다음과 같습니다. 1. /login으로 username, password를 받아서 POST요청이 들어옵니다. 2. UsernamePasswordAuthenticationFilter를 통해 로그인 요청을 받습니다. 사용자가 제공한 사용자 이름 및 비밀번호로부터 Authentication 객체를 생성하고, 이를 통해 AuthenticationManager로 전달합니다. 3. AthenticationManager에서는, UsernamePasswordAuthenticationFilter로부터 전달된 Authentication 객체를 처리하고, 실제로 사용자를 인증합니다. 4. UserDetailsService에서는 loadUserByUsername 메서드를 구현하여 사용자 이름을 기반으로 사..

Backend/기능 구현

Spring Security JWT - 2. 프로젝트 생성 및 기본세팅

개요 이번에는 JWT토큰을 기반으로 회원가입, 로그인을 구현해보기 위해서 환경세팅, 프로젝트 생성을 해보겠습니다. 회원가입 내부 회원가입 로직은 세션방식과 차이가 없습니다. POST요청으로 받아서 내부적으로 요청받아서 서비스에서 처리하고 entity에서 저장합니다. 로그인 로그인 요청을 받은 후 세션 방식은 서버 세션이 유저정보를 저장하지만, JWT방식은 토큰을 생성하여 응답 합니다. UserAuthenticationFilter(회원검증로직),AuthenticationManager(내부 아이디,비번던져서 로그인검증), JWT는 세션에 회원정보를 남지기 않고 SuccessfulAuthentication라는 메서드에서 토큰을 만들어서 응답으로 보내줄 것 입니다. 개발 환경 Spring boot 3.2.1 S..

Backend/기능 구현

Spring Security JWT - 1. 개념 및 동작 방식

개념 및 동작 JWT(JSON Web Token) JWT는 JSON Web Token의 약자로, 클레임 토큰 기반의 인증 방식이다. 클라이언트의 상태를 세션에 저장하는 세션방식이 아닌, 필요한 정보를 토큰(Token)에 저장해서 증명서처럼 사용한다. 클레임 토큰 기반이라는 뜻은, Claim = 사용자에 대한 property, 정보로, 토큰 자체가 정보인 방식이다. 동작방식 JWT토큰은 위처럼 동작을 한다. 1. 유저가 로그인을 한다. 2. 서버는 로그인 후 사용자의 정보(클레임)를 JWT payload에 담고, 이를 서명하여 JWT 토큰을 생성합니다. 3. 서버는 생성된 JWT 토큰을 클라이언트(일반적으로 브라우저,유저)에게 전달합니다. 이 토큰은 보통 HTTP 헤더의 Authorization 헤더에 담..

Backend/기능 구현

Spring boot - 멀티 모듈 프로젝트를 만들어보자.

서론 저는 이때까지 spring Boot로 개인 프로젝트나 공부를 할 때, 하나의 패키지를 만들었습니다. src폴더안에 서비스별로 나누고(유저에 대한 Member, 게시판에 대한 board, 설정 파일들이 있는 Configration등등...), 서비스들 안에는 controller, service, dto 등등을 구성했습니다. 하지만 이렇게 하면 폴더를 타고 폴더를 타고.. 이런 과정이 많아지고, 가시성이 안좋을 수도 있으며 테스트하기에도 불리할 수도 있습니다. 이를 위해서 멀티 모듈을 구성해 모듈로서 관심사를 구분하는 멀티모듈 프로젝트를 구성해보고자 합니다. 멀티 모듈 프로젝트의 장점 멀티 모듈은 하나의 프로젝트를 여러 개의 작은 모듈로 나누어서 개발하고 관리하는 방식을 의미합니다. 각각의 모듈은 독립..

Backend/개념,공부

OOP란 대체 무엇일까??

0. 서론 OOP, 객체지향이란 무엇일까? 처음 프로그래밍, 코딩을 처음 접했을 때 가장 생소했던 단어중 하나이다. 객체지향? 객체라는 요소를 이용해서 모델링이니...뭐니... 하는 아리송한 말로만 들려왔다. 지금 와서 내가 이해한 객체지향에 대해서 간단하게 정리를 해보는 시간을 가지고자 한다. 1. OOP가 뭔데? OOP, 즉 객체지향 프로그래밍이란, 프로그래밍 개발방법론 중 하나로, 이런식으로 "개발해야한다~" 라는 의미이다. OOP에 대해서 찾아보면, 사람이 직관적으로 이애하기 쉽고, 유지보수를 용이하게 한다는 설명을 찾을 수 있다. 하지만 이를 이해하기 위해서 몇가지 알아야할 지식들이 있다. 객체 간단하게 말하자면, 아래와 같다. 객체는 현실의 무언가에 대응하는 개념이다. class는 객체를 표현..

Backend/개념,공부

Nginx란?

0. 서론 최근 프로젝트에서 proxy서버를 만들면서 Nginx라는 웹 서버를 사용하게 되었다. 웹 서버에 대해서는 Apache에 대해서만 알고 있었는데, 최근에는 Apache보다 더 많이 사용된다고 한다. 이번에는 nginx에 대해서 더 알아보기 위해서 분석해보고자 했는데, Youtube영상 중 피케이님이 Nginx에 대해서 정리를 해주신 영상을 토대로 내용을 정리해보고자 한다. 우아한 테크 - 피케이의 Nginx [https://www.youtube.com/watch?v=6FAwAXXj5N0] 1. Nginx이전의 시대 1995년 당시, unix기반으로 만들어진 NCSA HTTPd라는 최초의 웹서버가 존재했었다. 하지만, 버그가 많아서 개발자들이 사용하기 힘들었다. 이를 개선하기 위해 뛰어난 개발자들..

코딩하는너굴맨
'Backend' 카테고리의 글 목록