프로젝트
주차의 상상은 현실이 된다
목적지 주변의 주차장 추천 및 목적지까지 함께하는 주차 플랫폼 서비스
링크: Github
프로젝트를 진행한 기관: 개인
프로젝트 진행 기간 & 투입 인력: 2023.12.20 ~ 현재 진행중
| 백엔드 개발자 3명, 프론트 개발자 2명, 디자이너 2명
사용기술
Java 17 | Spring Boot 3.1, JPA | MySQL, Redis | AWS EC2, Docker | Notion, Swagger
아키텍처

- 무료로 사용할 수 있는 EC2에서 실제 사용할 수 있는 메모리가 949mb로 부족한 상황
- 특정 프로세스의 메모리 사용량이 다른 프로세스에 영향을 주지 못하도록 컨테이너로 구성하고 컨테이너 별 최대 메모리 사용량 설정
- 부족한 메모리는 스왑 메모리(2gb) 설정
- 도커 허브에 이미지 생성 시 커밋 버전을 태그로 사용하여 이미지 코드간 추적 및 롤백 용이하게 구성
- LogBack, Aws CloudWatch를 활용해 서버 로그 기록 및 관리
- Nginx 리버스 프록시를 활용해 HTTPS 설정
- Github Action(CI / CD)를 활용한 배포 파이프라인 구축
- git diff 명령어를 사용해 변경된 모듈만 배포하도록 구축
- Skack WebHook을 활용해 배포간 알림체계 구축
담당 작업
(1) 외부 API 장애 대응
- 특정 주기마다 많은 요청을 통해 데이터를 가지고 오는데, 간헐적으로 응답 값에 주차장 데이터가 오지 않는 외부 API 서버 문제 발생
- 본 요청 전 외부 서버가 정상 작동하는지 확인을 위한 예비 요청 사용하도록 구현하고 정상 작동시에만 요청을 보내도록 설정
- 요청 실패율이 특정 임계치를 초과하면 일정 시간 동안 요청을 차단하고, 이후 다시 요청을 시도하도록 하도록 조치
- 로그 기준 30분 주기의 요청에서 약 3시간 단위로 발생하는 예외가 발생하지 않도록 예방