똑똑한 사람은 세상에 적응하지만 감자는 세상을 바꿉니다! 🥔
감자들이 모여 새로운 서비스를 만들었습니다.
기존 항공권 예매 시스템과 달리 원하는 좌석을 티켓팅 하는 서비스입니다.
창 밖을 보고 싶은데, 멀리 떨어져서 아쉬우셨나요?
빨리 내리고 싶은데, 맨 뒷자리라 답답하셨나요?이제 좌석 배정 걱정은 그만!
여유롭고 편안한 여행,
Airportato에서 경험해보세요!✈️
개발 기간 : 2024.12.26 ~ 2025.01.27
- 트래픽 제어 및 메시지 분산으로 서버 과부하 방지
- 수만 건 동시 요청 처리, CPU 사용률 80% 이하 유지
- 캐싱, 쿼리 최적화, 통신 최적화로 응답 속도 개선
- 부하 테스트로 병목 구간 분석 및 지속 개선
- 중복 예매·결제 오류 방지, 무결성 100% 유지
- MSA 도입으로 독립적 배포 및 관리
- 트래픽 급증 시 유연한 확장 가능
- 응답 속도 200ms 이하 유지
- 알림·상태 조회로 사용자 정보 제공
Development
Database
Messaging
External Library
Monitoring
Test
CI/CD
- 회원가입, 로그인, 로그아웃
- 아이디 찾기, 비밀번호 변경
-
관리자의 회원 블락 기능
- 경고 3회 누적시 사용자 블락
- 경고 시 관리자는 이유 작성
- 사용자는 경고 이유 및 블락 상태 확인 가능
- 좌석 예매
- 예매 정보 조회
-
좌석 변경
- 사용자: 변경을 원하는 좌석 입력
- 서버:
- 좌석 변경 가능 여부 확인 후 사용자에게 응답 반환 [분산 락 적용]
- 해당 좌석 가격 및 사용자 마일리지 확인
- 기존 티켓 환불 및 재결제 시도
- 변경 결과 알림으로 발송
- 옵션 ( 기내식, 수하물 등 ) 변경
- 예매 취소
-
마일리지 기반 결제
- 결제 시, 사용자의 충전된 마일리지를 자동으로 차감하여 결제 금액을 처리
-
마일리지 부족 시 결제 처리
- 마일리지가 부족할 경우 결제를 보류하고 유저에게 알림 전송
- 유저가 마일리지를 충전하면 자동으로 결제가 완료되고 알림 전송
- 일정 시간이 지나도 마일리지가 충분하지 않을 경우, 예매를 취소하고 알림 전송
- 결제 결과 전송
- 비밀번호 변경시 인증번호 전송
- 항공사, 좌석 등급별 기내 수하물 정보 제공
- 여행 국가와 월에 대한 평균 날씨 정보 제공
이름 | 포지션 | 담당(개인별 기여점) |
---|---|---|
![]() 김재현 |
Leader |
✅ 코드 리뷰, 의사 결정 참여 ✅ 대기열 ✅ 쿼리 개선 ✅ 결제 실패 재처리 시스템 |
![]() 김한준 |
Sub-Leader |
✅ 서버 간 통신 최적화 ✅ 동시성 제어 ✅ 예약 서비스 - MSA 기반의 예약 - 결제 - 티켓 로직 구현 - Kafka 를 통한 비동기 처리 - 분산락을 통한 동시성 문제 해결 - 실패 시 재시도 처리, DLT 구현 - Seat: 캐싱 적용, 조회 성능 개선 |
![]() 조한범 |
Member |
✅ 알림 서비스 - 알림 생성, 조회, 읽음 처리, 삭제 - 이메일 비동기 전송 (SMTP 사용) ✅ 배포 - EC2에서 Docker Compose를 통해 서비스 배포 - RDS(PostgreSQL) 데이터베이스와 연동하여 저장 - Git Actions를 사용한 자동 CI/CD 파이프라인 구축 - Docker Hub를 사용한 이미지 관리 |
![]() 홍유진 |
Member |
✅ 인증/인가 - JWT 토큰: 액세스 및 리프레시 토큰 생성/관리 - Redis를 이용한 토큰 상태 확인 및 블랙리스트 처리 - Gateway: 토큰 검증 후 사용자 정보와 함께 요청 라우팅 ✅ 유저 서비스 - 회원가입, 로그인, 조회, 수정, 탈퇴, 관리자의 회원 block - 인증 코드 캐싱 및 Kafka를 통한 알림 서비스 연동 ✅ AI 서비스 - Gemini API를 활용한 단순 정보 제공 |