전체 글669 spring mock mvc에서 한 번쯤은 만나는 unnecessary stubbing을 lenient 옵션으로 해결하기 MVC 단위 테스트를 하면서 발생한 "Unnecessary stubbing" 에러를 lenient 옵션을 통해 해결한 경험을 소개한다. 아래 코드는 실제 코드를 조금 각색하고 추상한 코드이다. 에러가 난 상황 에러 메시지 Unnecessary stubbings detected. Clean & maintainable test code requires zero unnecessary code. Following stubbings are unnecessary (click to navigate to relevant line of code): 1. -> at kr.co.....TTLHelperTest.setUp(TTLHelperTest.java:32) 2. -> at kr.co.....TTLHelperTest.se.. 2023. 12. 13. 스프링 캐싱 메커니즘에서 @Cacheable과 @Cacheput 차이점은 ? @Cacheable과 @CachePut은 스프링의 캐싱 메커니즘에서 사용되는 애노테이션인데, 두 애노테이션의 캐싱 동작은 약간 다르다. @Cacheable 목적: 메서드의 실행 결과를 캐시에 저장, 동일한 입력값에 대해 메서드가 다시 호출될 때 캐시된 값을 반환. 동작: 주어진 파라미터로 캐시를 조회하고, 해당 값이 존재하면 메서드를 실행하지 않고 캐시된 값을 반환. 캐시에 값이 없을 경우 메서드를 실행하고 결과를 캐시에 저장한 후 반환. 주로 사용되는 경우: 결과가 변경되지 않고, 계산 비용이 높은 메서드에 사용한다. @CachePut 목적: 메서드의 실행 결과를 캐시에 항상 저장. 이미 캐시된 값이 있다면 덮어쓰기 동작: 메서드를 항상 실행하고 그 결과를 캐시에 저장. 이전에 캐시된 값이 있더라도 덮.. 2023. 12. 13. 리팩토링 회고 - QueryDsl 검색 로직을 좀 더 클린하게 만들어보기 0. 목차 목차 개요 첫 번째 구현 및 문제점 두 번째 구현 및 문제점 세 번째 구현 및 문제점 네 번째 구현 및 문제점 결론 1. 개요 사내 한 도메인 서비스에 새로운 API 를 추가 개발해야 하는 업무가 있었다. 검색 api를 제공해야 하는 부분에서 queryDsl을 사용면서 좀 더 클린한 방식의 코드 작성을 고민해보았다. *실제 코드가 아닌 컨셉 코드로 대체하였습니다. 2. 첫 번째 구현 및 문제점 구현 @RequiredArgsConstructor @Component public class DomainRepositoryImpl implements DomainCustomRepository { private final JPAQueryFactory queryFactory; @Override public .. 2023. 12. 13. 마이크로서비스 아키텍처에서 하나의 도메인 서비스에 다른 도메인이 필요하다면 ? 이 글의 탄생 배경 회사에서 작은 회의를 하다가 패키지 구조에 대한 이야기를 한 적이 있다. 패키지 구조 설정에 있어서 "도메인 위주로 할 것이냐 레이어 위주로 할 것이냐"에 대한 논의였다. 그 중, 한 프로젝트 내에서 다른 도메인으로 구분되는 경우, 각 도메인들은 어떻게 통신을 해야하느냐 부분에서 열띤 토론을 한 경험이 있다. 회사의 아키텍처는 마이크로서비스 아키텍처 기반의 사가 패턴이 기본 기조이다. 따라서 서비스는 크게 도메인 서비스와 오케스트레이션 서비스로 나뉘어 움직인다. 이 말인 즉슨... 핵심이 되는 도메인 별로 서비스가 개별 프로젝트로 나뉘고 따라서 도메인 서비스는 일반적으로 패키지 구조가 하나의 응집력 있는 계층 구조를 형성한다. 그렇기 때문에 도메인 서비스에 다른 도메인이 있다? 조금 .. 2023. 12. 13. 자동화 경험 공유 - 코드 생성 도구 JavaPoet을 이용한 클래스 복사, 커스터마이징, 컴파일, 로딩 0. 개요 이 글에서는 자동 코드 생성을 위해 사용해 본 JavaPoet 라이브러리 활용 경험을 공유한다. 이 라이브러리를 사용하여 공통 모델 클래스를 특정 도메인에서 복제하고 자동화 한 과정을 설명한다. 자바 포엣 라이브러리의 기본적인 소개와 간단한 사용 방법에 대해서도 다룬다. 예시 코드는 실제 코드가 아닌 컨셉 코드로 대체하였습니다. 1. 목차 개요 목차 배경 복사 자동화하기 JavaPoet 소개 사용방법 및 예제 코드 구현 결과 컴파일 자동화하기 컴파일과 로딩 과정 효과 및 고려사항 결론 2. 배경 사내에서 개발 프로세스 개선을 위한 자동화 툴을 개발하면서 두가지 추가 요구사항이 발생했다. 첫째, 기존에 A 도메인에서 사용되던 프로세스 검증 자동화 Tool이 B 도메인에서도 활용될 수 있도록 확장.. 2023. 12. 13. 이전 1 ··· 27 28 29 30 31 32 33 ··· 134 다음