프로젝트 개요
- 프로젝트 명:
- 진행 기간: 8월 4일 - 8월 8일
- 사용 기술 스택: Spring Boot, Spring Data JPA, MySQL, Docker, AWS EC2, GitHub Actions
- 간단 설명:
- JWT 인증 기반의 회원가입/로그인, CRUD, 외부 API 연동, CI/CD 적용
주요 기능
프로젝트 구조
com.example.SecurityJWT
├── SecurityJwtApplication → 메인 클래스
├── common
│ ├── ApiResponse → API 응답 공통 포맷
│ └── GlobalExceptionHandler → 전역 예외 처리기
├── config
│ └── SecurityConfig → Spring Security 설정
├── Controller
│ └── AuthController → 회원가입/로그인/토큰 재발급 API
├── Entity
│ └── User → 사용자 엔티티
├── jwt
│ ├── JwtAuthenticationFilter → JWT 인증 필터
│ └── JwtUtil → JWT 유틸리티 (생성/검증)
├── Repository
│ └── UserRepository → User JPA Repository
└── Service
├── AuthService → 회원가입/로그인 로직
└── UserService → 사용자 정보 조회 로직
트러블슈팅 & 기술 이슈
1. 502 Bad Gateway 발생
- 현상:
EC2에서 배포 후 Nginx를 통해 접근 시 502 Bad Gateway 오류 발생.
- 원인 분석:
헬스 체크 경로(/health)를 구현하지 않아 Nginx/로드밸런서에서 정상 상태로 인식하지 못함.
- 해결 방법:
/health 엔드포인트를 추가하여 서버 상태를 확인할 수 있도록 구현.
2. Postman 환경변수로 인한 API 요청 실패
- 현상:
로컬 테스트는 정상 작동하지만 Postman에서 API 호출 시 인증 에러 또는 URL 오류 발생.
- 원인 분석:
Postman 환경변수 설정이 잘못되어 실제 요청 URL이 의도와 다르게 전송됨.
- 해결 방법:
Postman 환경변수 값(예: {{baseUrl}})을 올바르게 수정하고, 요청 전 Environment를 정확히 선택하여 실행.
아쉬웠던 점
- 기본적인 내용으로 보이는데 다른 구현을 더 진행해보면 어떨까하는생각이 들었다..너무 로그인,회원가입만 띨롱 한 느낌
좋았던 점 & 성장 포인트
- 저번에 해커톤때 로그인기능을 내가 구현안했었는데 , 다른 파트를 진행하여 해보고싶었지만 못했던 적이 있는데 이번 학습을 통해 해결해본것같아 뿌듯하며 즐거웠당. 토큰 사용하는거? 뭔가 컴퓨터네트워크에서 개념만 다뤘던거같은데 실제로 개발해보니 더 서버의 관리가 이해 잘되는것같았다.
다음 프로젝트에 적용할 것들
- 기본 회원가입,로그인기능은 어디에서나 기본적인 내용이니 적용가능할것같다.
화면 예시 or Swagger 캡처
이미지 첨부 or Swagger 주소
회고 한 줄 요약
이번 프로젝트를 통해 로그인,회원가입 로직을 구현하고 이해해볼수있었다