
개발자 성장 중심의 생태계를 만들기 위한 서비스, Developers
카카오 클라우드 스쿨에서 5명이 진행한 팀 프로젝트로 개발자 성장 중심의 생태계를 만들기 위한 서비스입니다. 본 프로젝트는 개발 CS 지식과 관련된 문제를 풀거나 멘토링을 위한 화상 채팅을 할 수 있는 원격 공간을 제공합니다.
Period
2023.02 ~ 2023.04
Links
Github
Demo
Skills
- Backend
Java, Gradle, Spring Boot, Spring Data JPA, Spring Security, Spring Rest Docs, JWT, Querydsl, Mokito, JUnit5 , RabbitMQ
- Frontend
- DB
- CI/CD
- Cloud
Nginx, AWS Route53, AWS ACM, AWS EC2, AWS S3, AWS RDS, AWS EKS(Ingress, Service, Deployment, Pod)
Contribution
- 서비스 운영환경 구축
- AWS EKS Cluster에서 서비스할 Deployment, Service, Ingress Manifest 개발 및 적용
- CI/CD 파이프라인 구축
- Jenkins와 Argo CD를 통해 EKS Cluster 운영환경에 배포
- 사용자 인증 서비스 개발
- Spring Security, JWT를 활용한 사용자 인증 필터 개발
- API 명세서 문서화 도구 적용
- Mokito, JUnit5를 통해 통합 테스트 및 단위 테스트 코드 작성
- Spring Rest Docs를 도입하여 만들어진 스니펫을 조합한 API 명세서 도출
- 민감정보 보호를 위한 Git Submodule 도입
- 별도의 민감정보가 포함된 파일을 Private Repository에 포함 후 운영시 해당 저장소를 함께 Clone하도록 설정
Contents
1. MSA 구조에서 API Gateway 없이 API 요청 인증 검증하기

Issue
- 문제풀이, 멘토링, 사용자, 알림 4개의 서버 애플리케이션이 서비스되고 있는 상황에서 각 서버의 요청에 대한 유효성 검증의 필요성 판단.
- API Gateway를 추가로 확장해야 했으나 개발 일정 지연으로 인해 대안을 찾아야 하는 문제가 발생함.
Record
Solution
- Spring Security와 JWT를 활용하여 로그인 성공시 토큰을 발급하고, 발급한 토큰을 모든 요청에 포함시키도록 인증 로직을 개발함.
- 모든 서비스에 토큰 검증 필터를 중복으로 개발해야했기에 객체지향적 코드를 다소 포기하게 됨.
- API Gateway 확장 없이 비로그인/로그인 사용자의 모든 요청 처리가 가능해짐.
2. Querydsl을 이용하여 다양한 조건으로 검색할 수 있도록 동적 쿼리 작성하기