프레임워크/Spring

프레임워크/Spring

도커와 Testcontainer를 활용한 서버와 동일한 환경에서의 로컬 테스트 구현

✍️ 문제 상황 로컬 환경에서 통합 테스트할 때 매번 서버를 올리는 일이 매우 번거로웠습니다. 세션과 캐시를 위한 redis 서버를 테스트할 때 마다 매번 올리는건 개발 생산성을 낮춘다고 판단했습니다. 이러한 현상은 제 팀원에게도 나타날 것이기 때문에 지금 개선하지 않으면 팀원 수에 비례하여 개발 생산성이 낮아질 것으로 판단했습니다. 💡 통합 테스트 과정 redis 서버를 실행(수동) → 통합 테스트 실행(수동) → 테스트 완료 → redis 서버 clear(수동) ✍️ 접근 방법과 해결 과정 로컬 환경에서 서버 환경 구축을 자동화할 수 있는 툴이 있는지 조사했습니다. 여러 툴들이 있었지만, 현업에서는 도커를 사용하기 때문에 이를 선택했습니다. 또한 docker가 Ubuntu20.04에서 기본으로 설치돼..

프레임워크/Spring

@Transactional, @Cacheable 및 Redis 호환 문제 해결

✍️ 문제 상황 통합 테스트 구동 시 회원가입이 돼있지 않은 코드가 로그인에 성공하는 문제가 있었습니다. 로그인 하기 전에 유저 정보가 저장돼있는지 확인하는 절차까지 진행했지만 문제 상황은 여전했습니다. 이에 유저 로그인 로직에 문제가 있다고 파악하여 로그인 로직에 로그를 남겼고 @Transactional 상황에서 @Cacheable이 적용된 데이터가 rollback 되지 않는게 문제의 원인이라고 판단했습니다. @DisplayName("로그인, 실패 시나리오") @Test void login_failed() throws Exception { // given // 가입되지 않은 사용자 // userService.createUser(userDTO); // when // 유스케이스/로그인/Fail path R..

프레임워크/Spring

Filter를 사용하여 반복되는 응답 로직 제거 (feat.StandardResponse)

안녕하세요👋! 개발자 갈레입니다! 오늘은 filter를 사용하여 반복되는 응답 로직 제거하는 방법에 대해 알아보겠습니다! 들어가며 제 인사말을 듣고 딱! 궁금해하시는 분이 있으실거에요! Q.반복되는 응답 로직을 제거 하는 방법은 filter로 해야하나요? 다른 방법은 없나요? 아주😃! 좋은 질문입니다👍👍👍! 저희는 반복되는 (응답) 로직을 제거하는 방법들에 대해서 알아본 후, 반복되는 '응답' 로직을 제거하려면 어떤 방법들을 쓰는게 좋을지 상황에 따라 비교 분석할겁니다. 궁금증(호기심)을 가지면 좋은 컨텐츠 반복되는 응답 로직을 왜 제거하나요? 이점은? 제거 방법들엔 뭐가 있나요? 비교 분석? 언제 사용 해야하나요? 예외 사항은? 글을 읽으시면서 핵심 부분(노란)과 꼬리질문(초록) 부분에 집중하며 읽어주..

김민석(갈레, 페퍼)
'프레임워크/Spring' 카테고리의 글 목록