FCL Schedule API
FCL Schedule API
카테고리 : 물류
FCL Schedule API
1. 프로젝트 개요
- 프로젝트명: FCL 스케줄 API 개발
- 역할: 백엔드 개발자
- 프로젝트 목적:
- Full Container Load(FCL) 스케줄을 API로 제공하여 물류 서비스 최적화
- API 기반 데이터 판매 모델 구축을 통해 수익 창출
- REST API를 통해 클라이언트 및 내부 서비스와 연동하여 실시간 정보 제공
- 기술 스택:
- 백엔드: Java, Spring Boot
- API 설계: RESTful API, REST Docs 문서화
- 데이터베이스: MSSQL, Redis
- 배포 및 운영: Azure DevOps
- 보안: Spring Security, API Key 인증
- 문서: rest docs, swagger
2. FCL 스케줄 API 주요 기능
1. 포트 목록 조회 (Client & Admin)
- FCL 스케줄 조회를 위한 출발 및 도착 포트 목록을 제공하는 API
- 포트 코드, 포트명, 국가 코드, 위도/경도 정보 포함
- 관리자(Admin) 및 클라이언트(Client) 권한에 따라 데이터 접근 범위 설정
2. FCL 스케줄 조회 (Client & Admin)
- 출발지 및 도착지 기준으로 FCL 선적 스케줄 정보를 제공하는 API
- 검색 조건: 출발항 코드, 도착항 코드, 선사 코드(선택), 페이지 정보 (페이징 지원)
- 응답 데이터: 선박명, 항차 정보, 출발·도착 일정(ETA/ETD), 운송 소요 시간
- 비즈니스 목적:
- 클라이언트에게 데이터 판매
- 선사 및 포워더와 연동하여 데이터 활용 확대
3. FCL 스케줄 상세 조회 (Client & Admin)
- 특정 스케줄의 상세 정보를 제공하는 API
- 검색 조건: 스케줄 ID 기준 조회
- 응답 데이터: 선사 정보, 선박 세부 정보, 운송 일정, 운송 소요 시간, 운임 정보 포함
3. API 보안(Security) 적용 사항
Spring Security 적용
- API 요청에 대한 인증 및 권한 부여 처리
- Client & Admin 사용자 권한 구분
- 관리자(Admin) 전용 API와 클라이언트(Client) API를 별도로 관리하여 데이터 접근 제한
API Key 인증 적용
- 각 클라이언트별 고유 API Key 발급 및 사용 로그 모니터링
- Unauthorized 요청 차단 및 보안 로깅
4. API 아키텍처 및 데이터 흐름
- 데이터 수집: 터미널별 API/FTP에서 데이터를 가져와 데이터베이스에 저장
- 배치 처리: 정해진 주기마다 최신 스케줄 데이터를 자동 업데이트
- API 제공: 클라이언트 요청 시 데이터를 조회하여 JSON 응답
- 데이터 최적화: Redis를 활용하여 API 응답 속도를 최적화
5. API 문서화 (Swagger & REST Docs 병행 사용)
Swagger UI 적용
- 개발자가 API를 쉽게 테스트하고 활용할 수 있도록 Swagger UI 제공
- API 요청 및 응답 형식 자동 생성
- API Key 인증 방식도 Swagger를 통해 설명
REST Docs 적용 (Spring REST Docs 기반)
- Swagger가 개발용이라면, REST Docs는 실제 서비스 운영 및 클라이언트용 API 문서 제공
- HTML 기반 정적 문서 생성하여 클라이언트에게 API 사용법을 명확히 안내
- API 변경 사항이 자동 반영되므로 유지보수 용이
6. 프로젝트 성과 및 기여도
- 유료 FCL 스케줄 API 구축으로 매출 채널 확보
- 외부 고객사 3곳 도입 문의 및 기능 테스트 진행
- Redis 도입으로 평균 응답 속도 약 40% 향상
- API Key 기반 권한 분리로 보안 및 서비스 안정성 강화
- 문서 자동화로 연동 부서 문의량 감소 및 운영 편의성 개선