[Spring & Project] 소셜로그인 기능에 전략 패턴을 적용하기
2023. 2. 18. 03:44
Spring/Project
0. 들어가며🏃🏻♂️ 진행했던 프로젝트에서 구글과 카카오 소셜로그인 기능을 구현했었는데 해당 코드를 다시 살펴보며 리팩토링하면 좋겠다 싶은 부분을 발견했습니다. 이번 글에서는 디자인 패턴 중 하나인 전략 패턴(Strategy Pattern)을 적용해 리팩토링해본 경험을 정리해보려 합니다. 1. 기존의 코드는..🤔 기존 코드에서는 구글 로그인과 카카오 로그인을 각각 다른 API로 처리하였습니다. 간략하게 아래와 같은 형태였죠. @GetMapping("/google/login") fun googleLogin(...) { 구글 로그인... } @GetMapping("/kakao/login") fun kakaoLogin(...) { 카카오 로그인... } 기능은 잘 동작했지만, 거의 같은 기능을 하는 API가..
[Spring & Project] 채팅 읽음 확인 기능 구현하기
2023. 2. 1. 00:10
Spring/Project
0. 들어가며 🏃🏻♂️ 진행중인 팀 프로젝트에서 웹소켓을 통해 실시간 채팅 기능을 구현했습니다. 채팅기능을 구현한 이후 상대방이 채팅을 읽었는지 여부를 확인할 수 있으면 좋겠다는 의견이 나와 이를 구현하게 되었고, 해당 요구사항을 반영하기 위해 고민했던 과정들을 블로그에 정리해보려 합니다. 1. 요구사항📕 변경된 요구사항은 "아래 사진과 같은 기능을 추가하자" 였습니다. 위 사진처럼 빨간 박스로 쳐진 부분과 같이 읽지 않은 메시지를 표시하는 기능이 있다면 좀 더 서비스 경험이 좋아질 것이라는 의견이 있었고, 이 부분을 새롭게 구현해야 했습니다. 2. 고민해야했던 점 과 구현한 방식 🤔 먼저 고민했던 부분은 기존 구조로는 채팅을 읽었는지 여부를 알기가 어려워 어떤 정보를 추가해야할지를 결정하는 것이었습니..