이미지 생성의 책임
위 와이어 프레임에서 여행 히스토리
와 여행에 대한 감상을 위한 경로 이미지
의 경우 네이버 지도를 사용하여 해당 기능을 구현할 수 없으니 당연히 맵 API에서 제공하는 도형 그리기 API(네이버 맵 API 기준 Polyline)를 사용할 수 없다.
따라서 이미지를 직접 생성하거나, 클라이언트에서 직접 위경도를 이용하여 그려야 한다.
해당 요구사항을 해결하기 위해서는 다음과 같은 기능을 가진 라이브러리가 필요하다.
- 이미지 생성
- 선과 점 표현
- 투명한 배경색
현재 클라이언트의 바쁜 일정과 기능 구현에 있어 약간의 연산이 들어간다는 부분을 고려하여 백엔드에서 이미지를 생성하기로 결정을 내렸다.
고려한 기술
백엔드에서 이미지 생성을 하기 위해 다음과 같은 라이브러리 또는 기술들을 확인해 보았다.
- Python의 Matplotlib
- AWT(Abstract Window Toolkit) [최종 선택]
- 이미지 처리 라이브러리 및 Java에서 내부적으로 Matplotlib 사용할 수 있는 라이브러리 (원하는 기능 없음)
- Java Swing, Java FX (단순한 선 그리기 + 점 찍기라 불필요)
Python & Matplotlib
데이터 시각화 라이브러리
이미지 생성 및 로컬에 저장까지 걸리는 시간: 0.2초
- 코드가 간단해서 유지 보수성이 좋다.
- AWS Lambda 같은 서버리스 컴퓨팅 서비스나 FastAPI와 같은 웹 프레임워크로 추가적인 API를 구현해야 한다.
- Spring Boot에서 추가적인 API 호출을 해야하고, 확장성과 비동기 처리 등 고려 해야 할 부분이 많다.