Gradle

    [Spring] WireMock 을 사용한 HTTP Client 유닛테스트

    개인 깃허브에서 Riot API를 사용하여 리그오브레전드 게임 관련 어플리케이션을 만들고 있었다. 하지만 API가 어떻게 만들어졌는지 모르겠지만.. 정상적인 API 요청을 보내도 실패할때가 있고 몇 초 뒤에 아무렇지 않게 성공 응답을 반환한다. 😱 뼈져리게 Retry의 필요성을 느꼈다. 해당 기능을 개발하면서 비정상적인 응답이 왔을때 Retry, 예외 처리에 대한 테스트 코드를 작성하기 위해 응답 값 모킹이 필요했고, 이를 위해 WireMock을 사용하게 되었다. 작성한 테스트 및 고려한 사항들에 대해 공유하고자 한다. 본 글은 spring boot, gradle, java를 사용하고 http client는 feign, 테스트 프레임워크는 spock(groovy)를 사용한다. spring, spock 환..

    [Github Action] gradle을 이용한 java CI 구성하기

    Github Action Github 저장소를 기반으로 소프트웨어 개발 workflow를 자동화 할 수 있는 도구 장점 별도의 서버 설치가 필요 없다. 비동기 ci/cd가 가능하다. github 이벤트에 대한 작업을 제공해준다. yaml로 사용하기 때문에 개발자들에게 친숙하다. github 마켓 플레이스를 통해 공유 가능 단점 캐싱이 필요할 경우 자체 캐싱 메커니즘을 작성해야 함 (엔터프라이즈에선 actions/cache를 지원하지 않는다고 한다. 참고) 젠킨스에 비해 문서가 적다. (아무래도 출시 일자가 차이가 나기 때문인듯) 구성요소 workflow 프로젝트를 빌드, 테스트, 패키지, 릴리스 또는 배포하기 위한 전체적인 프로세스 여러개의 job으로 구성되며 디폴트로 병렬 실행한다. event 기반으로..