본문 바로가기

문제해결3

Nginx 413 Request Entity Too Large 문제상황 - 공지사항 게시판을 구현하면서, 본문에 들어갈 이미지를 업로드할 수 있는 API를 구현하던 상황 - 특정 용량이 넘는 이미지를 업로드하려고 하면 nginx에서 413 Request Entity Too Large 에러가 발생했습니다. - 클라이언트(브라우저)의 개발자 도구에선 CORS Error로 보여졌습니다. 원인 저희는 Reverse proxy로 nginx를 사용하고 있었는데, 기본적으로 파일 업로드 크기가 1MB로 제한되어 있더라구요. 그래서 이 설정을 수정해야만 합니다. Forward proxy? - 일반적인 프록시를 말하며, 다수 클라이언트의 요청을 받아 미들웨어처럼 목적지에 대신 요청을 보내서 받은 응답을 클라이언트에 전달(forward)해준다. - 캐싱 기능을 통한 성능 향상, 특정.. 2021. 5. 9.
Testcontainers - Localstack 설정 중 생겼던 궁금증 문제상황 - AWS S3를 사용하는 어플리케이션에서 통합 테스트 코드 작성 - 어플리케이션 외부의 클라우드 서비스인 S3 Mocking 필요 - 이를 위해 Testcontainers의 Localstack 설정하던 중 문제 발생 잠깐! 사전 지식 Testcontainers? - JUnit 테스트를 보조하는 자바 라이브러리 - 데이터베이스, Selenium 웹브라우저와 같이 도커 컨테이너로 실행될 수 있는 모든 종류의 인스턴스 제공 - Data access layer integration tests에선 DB의 컨테이너화된 인스턴스를 제공하여 영속성 계층을 쉽게 테스트할 수 있습니다. 즉, 외부 DB의 상태에 의존하지 않게 됩니다. - Application integration tests에선 DB, Messa.. 2021. 4. 25.
Mock 테스트에서 Spring 프로퍼티를 읽어올 수 없던 문제 문제상황 // 서비스 클래스 @RequiredArgsConstructor @Service public class AdminService { @Value("${spring.profiles.active}") private String activeEnv; // ...서비스 로직 } // 테스트 클래스 @ExtendWith(MockitoExtension.class) class AdminServiceTest { @InjectMocks private AdminService adminService; // ...테스트 코드 } 서비스 레이어의 테스트를 진행하기 위해 Mockito를 사용한 테스트를 만들었던 상황입니다. 서비스 클래스에선 현재 활성화된 프로파일의 이름을 사용하고자 @Value를 통해 프로퍼티를 주입받았습.. 2021. 4. 11.