본문 바로가기

백엔드 개발

특화 프로젝트 Spring Security 분석 1. 개요4월 5일부로 특화 프로젝트가 끝났다. 이번 프로젝트에서 보안을 맡았는데, 항상 내가 맡은 파트를 정리해야겠다는 생각을 했다. 벌써 2주 반이 흘렀기에, 더 까먹기 전에 미리 정리해두려한다.해당 프로젝트의 전문을 보고 싶다면, 다음을 확인하자.SSAFY 10기 구미 2반 특화프로젝트 WALK_WALK2. 전개도3. 코드 분석(1) JwtAuthFilter 안에 있는 JwtUtil 분석import io.jsonwebtoken.*;import io.jsonwebtoken.security.Keys;import jakarta.annotation.PostConstruct;import jakarta.servlet.http.HttpServletRequest;import lombok.RequiredArgsCo.. 더보기
JWT에 대하여 1. JWT란 무엇인가?기본적인 토큰 인증 방식을 따르고, 거기서 토큰 자체를 강화한 방식이라 생각하면 된다.원래의 토큰 인증 기반에서 요청자가 보내온 ID/PW 가 DB에 존재하면 (우리 회원이 맞으면) 그 요청자에게 자신들의 API를 쓸 수 있는 허가증인 토큰을 전해줬었다. 여기서 더해 JWT의 경우 토큰을 만들 때, 사용자의 정보(간단한 개인정보 등 +@)를 암호화하여 만든다.이렇게 되면 무엇이 좋을까?아까 토큰 자체가 사용자에 대한 개인 정보라고 하였다. 회원가입을 하여 토큰을 받았다면, 이후 API 요청을 할 때, 토큰을 Header나 Cookie에 넣어서 보낸다. 만약 클라이언트가 원하는 요청이 사용자의 개인정보에 대한 요청이라면, 서버에서는 DB를 조회할 필요없이 토큰을 복호화 하여 그 안의.. 더보기
Spring 공식문서 Concept of AOP 번역 원본 문서 AOP가 담고있는 발상 AOP가 가지고 있는 몇몇 중심적인 생각들과 용어들을 정의하는 것으로 시작해보자! 여기서 쓰이는 용어들은 스프링 맞춤이 아니다. 따라서 불행하게도 AOP의 용어들은 특별히 직관적이진 못하다. 하지만, 만약 스프링이 AOP 개념 도입을 위한 그것만의 용어를 썼다면, 그것이 더 우리를 혼란스럽게 만들 것이다! 1. 용어설명 Aspect(관점): 복수의 Class들을 가로지르는 관심사에 대한 모듈화를 의미한다. (기존의 우리가 서버 로직을 공부할 때, 기능을 무엇이라 생각했는가? Service Class 하나가 곧 기능이라고 생각했다. 하지만 AOP에서는 관점을 달리하여, 클라이언트로부터 요구가 들어와서 Controller -> 복수의 서비스 로직 -> 다시 응답 까지의 전 .. 더보기
Weaving과 Proxy에 대하여 깃허브에도 정리 올려놓았습니다. 전수민_깃허브 주소 Weaving과 Proxy 객체에 대하여 이번 장에서 알아볼 것: AOP에서 Weaving이란 무엇인가? Proxy와의 관계는 어떻게 되는가? Proxy 객체란 무엇이고? AOP에서 사용되는 원리는 무엇인가? 1. AOP에서 Weaving이란 무엇인가? AOP에서 weaving이란 부가기능(advice)을 그것이 타겟팅하는 본 기능에 장착하는 작업을 말한다. 따라서 weaving은 본기능에 영향을 주지 않으면서 부가기능을 연결시키는 AOP의 핵심 작업이다. weaving은 실행되는 시점에 따라 3가지로 종류가 나뉜다. (1) Compile Time Weaving(CTW) Spring에서 AOP를 구현하는 방법에는 AspectJ라는 라이브러리를 쓰는 것과.. 더보기
Concept-of-AOP 스스로 정리 Spring AOP 공식 문서 읽고 스스로 정리함. 깃허브에도 올려놓음 https://github.com/dalcheonroadhead/Spring-framework-theory/blob/main/AOP/relatedStudy/conceptOfAOP.md Concept-of-AOP 스스로 정리 목차 AOP란 무엇인가? 그림과 함께 알아보는 용어 정리 Advice Join Point pointcut Aspect Introduction Target Object AOP proxy Weaving Cross-cutting concerns 1. AOP란 무엇인가? Aop는 관점 지향 프로그래밍(Aspect Oriented Programming)을 말한다. Java라는 언어를 배울 때 우리는 자바가 객체지향프로그래밍.. 더보기
[01]-OAuth2 이론 목차1. OAuth2의 등장 배경 (OAuth2란 왜 필요한가?)2. 그래서 OAuth2란?3. OAuth2 관련 용어 정리 4. OAuth2의 동작 과정 1. OAuth의 등장 배경  (OAuth2란 왜 필요한가?)현 IT 서비스 시장에는 구글이나 아마존, 트위터와 같은 메가급 기업들이 다수 존재한다. 이 기업의 사용자들은 수천만 많게는 억대 단위로 넘어간다. 그 만큼 해당 기업들이 가진 리소스도 다수 존재할 것이다. 하지만, 단체생활을 해봤다면 알 수있듯이 하나의 일을 작업자 전원이 만족하는 방식으로 수행한다는 것은 불가능에 가깝다. A는 서류 작업을 더 완벽히 하고 다음 일로 갔으면 좋겠고, B는 그저 본 작업을 빨리 진행하고 싶을 수도 있다. 이는 우리가 특정 서비스를 이용할 때도 마찬가지이다.. 더보기
SpringBoot3 WebSocket ChattingServer만들기 5단계 - 채팅방 인원 수 체크, Server Side Event 처리 0. 목차 1. 개요 - 이전과 달라진 점 2. 전개도 3. 코드 분석 4. 프로젝트 진행하면서 겪었던 오류들 https://www.daddyprogrammer.org/post/5290/spring-websocket-chatting-server-enter-qut-event-view-user-count/ 를 보고 진행 했습니다. 1. 개요 ⓐ 입장 퇴장 시 인원 수 체크해서 인원 수를 채팅방에 표시 ⓑ 저번 포스팅까지는 채팅방 입장과 구독을 클라이언트에서 인지하고 백엔드로 보내주고, 그에 대한 처리를 했음. 이번에는 Sever Side에서 해당 이벤트를 직접 인지 하고, 일을 처리하도록 바꿨음. 2. 전개도 원래 배울 때 Controller -> service -> Repository로 일이 정해져 있었지.. 더보기
SpringBoot WebSocket Chatting Server만들기 4단계 - SpringBoot Security 장착 0.목차 공부한 내용들의 출처: ddadyProgrammer님의 블로그 Spring websocket chatting server(4) - SpringSecurity + Jwt를 적용하여 보안강화하기 이번 장에서는 SpringSecurity와 Jwt를 이용하여 Web 및 Websocket의 보안을 좀 더 강화하고. 기존의 복잡한 로직을 간소화하는 작업을 진행해 보겠습니다. 크게 아래의 3가지 작업을 진행하겠습니다. Spri www.daddyprogrammer.org 1. 개요 (새롭게 추가한 것들) 2. 전개도 3. 코드 분석 4. 프로젝트 진행하며 만났던 오류 모음 1. 개요 이번 장에서는 새롭게 Spring Security를 적용했다. 원래 프로젝트는 접근한 모든 사용자가 대화명만 입력하면 모두 사용.. 더보기