본문 바로가기
반응형

분류 전체보기116

테스트 커버리지 100% 달성기[2] - 테스트 환경 구축 및 시간 단축 테스트 커버리지 100% 달성기[1] - 레이어별 100% 달성 과정테스트 커버리지 100% 달성기[2] - 테스트 환경 구축 및 시간 단축 -------------------------병렬 테스트 문제mock() 을 통해 의존객체 모킹시 IllegalArgument 문제 -> 병렬로 여러 스레드에서 동시에 mock()을 사용하는 경우 각 스레드에서 목객체를 만들게되는데 이때 각 테스트에서 사용하는 mock의 타겟 객체의 타입이 달라 정상적으로 타입 변환이 되지 않는 것으로 보임 Byte Buddy could not instrument all classes within the mock's type hierarchy InlineBytecodeGenerator의 lastException 속성이 있는 경우 해.. 2025. 1. 27.
테스트 커버리지 100% 달성기[1] - 레이어별 100% 달성 과정 테스트 커버리지 100% 달성기[1] - 레이어별 100% 달성 과정테스트 커버리지 100% 달성기[2] - 테스트 환경 구축 및 시간 단축 최근 토스에서 테스트 커버리지 100% 달성한 글과 영상을 보면서 테스트 커버리지 100% 달성의 목표를 세우고 이를 달성하였다.나는 개인적으로 테스트를 굉장히 중요시 생각하며 테스트 코드 작성이 아니더라도 수동 테스트도 많이 진행한다.프로젝트 구조와 결과에 대해 설명하고 100% 달성 과정에 대해 설명하겠다.프로젝트 구조kotlin(jvm 1.9.22)spring-boot 3.2.3jpa, querydsl헥사고날 아키텍쳐(멀티모듈)presentation layer : controllerbusiness layer : servcie(pojo)infrastructure.. 2025. 1. 4.
스프링 빈 생성 과정 분석 [4] - 디버깅 참고 자료 [스프링 빈 생성 과정 분석 시리즈]스프링 빈 생성 과정 분석 [1] - Application Context(BeanFactory)스프링 빈 생성 과정 분석 [2] - BeanDefinitionRegistry, SingletonBeanRegistry스프링 빈 생성 과정 분석 [3] - BeanFactoryPostProcessor, BeanPostProcessor스프링 빈 생성 과정 분석 [4] - 디버깅 참고 자료 1편부터 3편까지 하여 스프링 빈 생성 과정이 어떻게 이뤄지는지 알아보았다.이번 포스팅에서는 이 개념들을 찾아보기 위해 실제 디버깅한 소스 코드를 공유하기 위해 작성하였다.스프링 부트의 run 메서드를 통해 시간순으로 어떻게 흘러가는지 코드만 공유하겠다.이를 통해 디버깅한다면 1-3편에서 설명.. 2024. 8. 7.
동시성 문제[2] - Mutex, Semaphore, Monitor(동기화 도구) 동기화 도구이전 포스팅의 Pererson’s Solution을 보면 이론적으로 완벽하지만 entry section, critical section, exit section에서 사용하는 명령어가 Atomic 하지 않아 기대 결과가 달라졌다.이는 기계어의 관점에서 또는 저급 언어 수준에서 구현이 되지 않았기 때문인데 이렇게 개발자가 기계어 수준에서까지 개발을 하는 일은 쉬운 일이 아니기에 고급 언어에서 아래와 같은 동기화 도구를 제공한다. 각 동기화 도구에 대해 알아보자. Mutex LockSemaphoreMonitor Mutex Lockmutex란 mutual exclusion에서 나온 용어로 상호배제를 목표로 한다. lock을 acquire(획득)한 프로세스나 스레드만 critical section에 접.. 2024. 7. 28.
반응형