1. 개요1.1. 배경 및 적용 목적admin 마이그레이션 도중, DB의 특정 테이블들에 개인정보가 평문으로 저장되어있음을 파악하였습니다. 해당 개인정보들 중에는 동아리 멤버들의 정보 뿐만 아니라, 동아리에 지원서를 낸 모든 사람의 정보가 저장되어 있었습니다. 현재 구조로는 새로운 유저를 추가하는 등 DB 데이터를 임의로 바꿔야 하는 일이 생기고, 필연적으로 DB에 접근해 작업(INSERT로 데이터 추가)해야 하는 일이 있다고 파악했습니다. 이때 DB에 접근하게 되면 다른 유저들의 정보를 평문값으로 보는 것이 문제가 될 수 있으리라 생각이 되어 해당 컬럼들의 암호화를 생각해보게 되었습니다.암호화를 적용하게 되면, 추후에 마이그레이션 등 DB에 관한 작업을 진행할 때 타인의 개인정보를 평문으로 읽지 못하게..
Spring
내 첫 프로젝트 경험에서 겪었던 소셜 로그인 문제를 언젠가는 해결해야지... 해결해야지... 생각만 하다가 이번 기회에 제대로 파고들었다.여기까지 찾아왔다면, 위 시퀀스 다이어그램에 조금이나마 친숙할 것 같다. 만일 처음 본다면, 관련 내용을 찾아보는 것이 도움이 될 것 같다. 단적으로 말해서, spring security는 위의 과정을 위임받아 해결한다. 게다가 위 과정을 통해 가져온 사용자 정보를 바탕으로 JWT토큰을 발행한다. 우리가 Spring Security와 OAuth2.0을 활용한 JWT 토큰 방식(쿠키로 전달) 보안 체계이다. 아래 시퀀스 다이어그램을 보자.이를 구현하기 위해 GPT와 함께 어떤 클래스들을 구현해야 하는지 알아보며 공부해봤고, 아래와 같은 다이어그램을 완성하였다.번호순서대로..
https://github.com/ChabinHwang/24-25-study-java-mvc GitHub - ChabinHwang/24-25-study-java-mvc: server 스프링 스터디 실습을 위한 레포입니다.server 스프링 스터디 실습을 위한 레포입니다. Contribute to ChabinHwang/24-25-study-java-mvc development by creating an account on GitHub.github.com 작년 스터디에서, 서블렛 등을 실제로 구현해보며 구조를 공부한 내용들을 정리해봤다.스프링의 기본 흐름 이해하기:클라이언트 요청 → 디스패처 서블렛 DispatcherServlet → 핸들러 매핑, 어댑터HandlerMapping, Adapter → 핸들러 ..
하단에 실제 코드에 대한 이야기도 있습니다학교 프로젝트 수업에서 게임을 진행하게 되었다. 가장 많이 사용해본Spring을 활용해서 온라인 게임을 구현할 방법이 뭐가 있을까 찾아보다가, Websocket을 활용해 통신을 스프링에서도 지원하는 것을 알게 되었다. 또한 Stomp를 활용하면 좀 더 체계적으로 다양한 기능을 구현할 수 있는 것 같았다. 실시간 FPS게임이 아닌 턴제 게임은 Websocket으로도 충분하다고 생각했다. STOMP란?Simple Text Oriented Messaging Protocol - 직역하면 단순 텍스트 기반 메시지 프로토콜메시지를 주고받을 때 규칙을 정해서 추가적인 기능들을 구현한 것이다. 웹소켓을 하나만 사용해서 모든 기능 (채팅, 게임, 귓속말 메시지 등을 하나의 웹소..