Untitled

Github

https://github.com/sproutt/eussya-eussya-api

https://github.com/sproutt/eussya-eussay-chat

시연 영상

https://drive.google.com/file/d/1HSiHAW1jyl3EXfAqg-fcsmmqg0hD8A7-/view?usp=sharing

개요

이른 새벽 시간을 활용하여 학습 및 자기 계발을 하려는 개발자들을 위한 동기부여 웹 서비스

기술 스택

기여 사항

기술 중점 사항

1. JWT 기반 사용자 인증 기능 구현

서버의 부하 이슈 및 용이한 Scale-out 설계를 위해 세션 기반이 아닌 토큰 기반의 인증/인가 처리 로직을 구현하였습니다. 토큰으로 JWT를 이용하였으며 탈취 시 무효화를 시킬 수 없다는 토큰 방식의 한계점을 보완하기 위해 AccessToken과 RefreshToken을 발급시키는 방법으로 문제를 해결하고자 했습니다.

JWT(JSON Web Token) - 김종근

2. Redis Pub/Sub 기반 WebSocket 채팅 서버 개발

spring boot를 이용하여 websocket 서버 개발을 진행하였으며 HTTP와 유사하게 일관성있는 형식의 프로토콜을 사용하기 위해 stomp를 기반으로 구현하였습니다. 또한 여러 대의 websocket 서버 간의 통신이 원활하게 가능하도록 하기 위해서 redis에서 제공하는 pub/sub 메시지 브로커를 적용하였습니다. 서버와 서버 사이에서 redis가 메시지를 관리하도록 함으로써 원활한 Scale out이 가능한 설계를 가져갈 수 있었습니다.

Untitled

프로젝트를 통해 성장한 부분