관리 메뉴

피터의 개발이야기

[TDD] LocalStack이란 본문

개발이야기

[TDD] LocalStack이란

기록하는 백앤드개발자 2020. 12. 19. 18:33
반응형

TDD 공부를 하면서 우연히 좋은 글을 보게 되었다.

AWS환경의 로컬 테스트를 위한 방법으로

간단히 개념적으로 정리를 한다. 

 

 

출처 : LocalStack Intro

 

 

 

우하한형제들의 기술 블로그  중
LocalStack을 활용한 Integration Test 환경 만들기
를 요약 정리한다.

 

 

로컬개발환경에서 AWS 서비스 사용에 따른 문제점 해결방법이 글의 주제이다.

LocalStack은 오프라인에서 클라우드 앱을 개발하고 테스트할 수 있도록 도와준다.

 

LocalStack은 AWS 클라우드 리소스의 기능을 에뮬레이션하여 제공하여 준다.

 

localstack-utils 와 같은 라이브러리를 제공하여 junit 에서 쉽게 localstack 을 실행하는 방법도 제공하고 있다.

DockerTestUtils 를 사용하여 가져온 S3 클라이언트를 사용하여 버킷을 만들거나 파일을 업로드하는 작업을 수행할 수 있다.

 

localstack 컨테이너를 실행하는 다른 방법으로는 Testcontainers 을 사용하는 방법이 있다.

Testcontainers 는 코드상에서 여러 도커컨테이너들을 실행하고 테스트코드와 연동할 수 있는 방법을 제공준다.

localstack-utils 를 사용하는 방법도 괜찮았지만 개인적으로는 Testcontainers 를 사용하는 방법이 훨씬 마음에 들었다.

localstack 을 사용하면 로컬환경에서 웹 애플리케이션을 실행하고 테스트하는것도 가능하다.

 

저자의 샘플 코드는 여기에 있다.

 

샘플 소스는 gradle multi module로 만들어졌다.

gradle 세팅
Intellij 멀티모듈 UI


샘플로 가동 시켰보았지만
도커 버젼 차이로 인해 도커 빌드시 에러가 발생하였다.
도커 다운그그래이드를 하면 된다고는데, 
개념적인 이해 수준으로 마치려고 한다.

 

 

 

반응형
Comments