LocalStack 로컬 환경에 구축하기

• 2023 글로벌미디어학부 졸업작품 Dandi 개발 과정에서 LocalStack을 구축하여 사용하였으나, ApplicationContext가 로드되는 시점에 Localstack Container를 init하는 시간이 너무 오래 걸려 비효율적이라는 문제점을 발견하였다.
• 이를 해결하기 위해 Localstack Container를 로컬 환경에 미리 구축해두는 방식으로 개선하였으며, 이를 위해 docker-compose.yml 파일과 LocalStackConfig 클래스를 사용하여 Localstack을 Bean으로 등록하였다.
• Spring이 로드되는 시간을 줄이기 위해 ApplicationContext가 로드되는 시간을 빠르게 만들 수 있는 방법을 찾았으며, 이를 통해 로드 시간을 18~20초에서 6~8초로 줄일 수 있었다. 또한, 이 방법을 통해 전체 테스트 시간도 대폭 줄일 수 있었다.
• CI 환경에서는 LocalStack 컨테이너를 구축하고 ApplicationContext가 종료될 때 LocalStack을 내리는 방식을 사용했으나, 이 방식은 CI에서 Build Gradle의 속도에 큰 영향을 미치지 않았다. 그러나 CI 환경 구축을 위한 코드가 Java 객체가 아닌 CI 스크립트에서 전적으로 관리되는 이점이 있어, CI 스크립트에서 LocalStack을 구축하는 방식을 채택했다.

북마크
공유하기
신고하기