본문 바로가기

전체 글139

JUnit 5, Mocking with ArgumentCaptor 목차1. ArgumentCaptor란?ArgumentCaptor는 Mockito에서 메소드에 전달된 Parameters를 캡처하는 기능입니다.Mock 객체에 전달된 Parameters를 캡처하여 검증을 도와줍니다.Mockito 라이브러리에 포함되어 있으며, 행위를 검증하는 테스트 코드에서 사용 할 수 있습니다. 기본적인 테스트 방법은 아래와 같습니다.특정 타입의 ArgumentCaptor를 생성합니다.이 캡처를 사용하여 인자를 캡처하도록 Mockito에 지시합니다.테스트 코드를 실행합니다.캡처된 인자를 검사합니다.위에서 말씀드렸다시피ArgumentCaptor는 행위 검증 테스트에서 사용됩니다.행위 검증 테스트는 무엇인지 알아 봅시다. 2. 상태(state) vs 행위(behavior) 검증 테스트상태 검.. 2025. 4. 24.
JUnit 5에서 조건부 @Disabled 적용하기 목차1. @Disabled@Disabled는 JUnit에서 제공하는 테스트를 비활성화하는 기능을 가진 어노테이션입니다.아래와 같이 사용 될 수 있습니다.@Disabled@Testfun test() { Assertions.fail("not executed")} Disabled로 설정한 이유를 기입 할 수도 있습니다.@Disabled("This is disabled because of a bug ticket BUG-12345")@Testfun test() { Assertions.fail("not executed")} 2. 조건부로 Disabled 시켜야 하는 상황@Disabled를 사용하면 아래와 같은 시나리오로 사용 할 수 있습니다.특정 이슈로 인해 @Disabled 어노테이션을 붙여 테스트를 비활성화이.. 2025. 4. 20.
httpclient thread limit exceeded replacing blocked worker 에러 에러 관련 경험을 포스팅합니다. 목차1. 이슈 및 운영 환경이슈 내용은 외부 API 호출 시, 간헐적으로 실패하는 이슈였습니다.서버 환경은 아래와 같았습니다.Springboot 2.5Java 11특히, 요청량이 과도한 경우에 잦은 빈도로 에러가 발생했습니다.에러 로그는 대략 아래와 같았습니다....(중략)Caused by: java.util.concurrent.RejectedExecutionException: Thread limit exceeded replacing blocked worker at java.util.concurrent.ForkJoinPool.tryCompensate(ForkJoinPool.java:1819) ~[?:?] at java.util.concurrent.ForkJoinPool.c.. 2025. 4. 17.
농구 작전판 웹 애플리케이션 소개 제 취미는 농구이고, 주마다 1회를 다니고 있습니다. 하지만 최근 부상 때문에 한 달 여간 쉬게 되었는데요. 유일한 취미가 잠깐 홀딩되어 따분한 시간을 보냈습니다.어느 주말, 노트북 들고 카페에 가서 이런 저런 웹서핑을 하다가간단한 파일럿 프로젝트를 구상하게 되었습니다. 이번 포스팅에서는 "농구 작전판" 웹 애플리케이션 개발기를 잠깐 소개하고자 합니다. 목차1. 왜 만듦?사실 만들게 된 큰 계기는 없습니다.그냥 요 몇주 따분했고, 집중할 무언가가 필요했습니다.회사일과 별개로 간단한 프로젝트라도 진행해볼까싶어서무계획으로 시작하게 되엇습니다.  좋아하는 취미 생활인 농구와 관련된 무언가를 만들어 보고자했습니다.커뮤니티, 야외농구정보, 프로농구 관련 정보, 전술집 등 몇가지 후보군을 두고그 중 웹에 없을 법.. 2025. 2. 13.
TestContainers에서 Can't get Docker image: RemoteDockerImage에러 발생 시 얼마전 맥북을 한번 밀고새롭게 업무 환경 세팅을 하던 중 docker 관련 에러가 하나 발생했다.Springboot + TestContainers를 활용한 빌드 과정이었다.Could not find a valid Docker environment. Please see logs and check configurationjava.lang.IllegalStateException: Could not find a valid Docker environment. Please see logs and check configurationat org.testcontainers.dockerclient.DockerClientProviderStrategy.lambda$getFirstValidStrategy$7(DockerClie.. 2025. 2. 2.
No route to host 에러 발생 시(from. Intellij, MacOS) 인텔리제이(intellij) 도구 사용 시잘되던 작업들이 갑자기 안되는 케이스가 발생했다.원격지 DB 연결인텔리제이 터미널에서 ssh나 scp 등위 작업 시, 아래와 같은 에러가 발생 했다.No route to host 구글링 해보니, 리눅스 환경에서는 간혹 발생 되는 에러이며IP/Network/Firewall 등 설정을 다시 하여 해결한다는 포스팅이 많이 있다. 그런데 다른 도구나 터미널에서는 잘되는데(심지어 어제만해도 Intellij에서 잘 되었었다.)갑자기 안되기 시작했다. 인텔리제이를 껐다 켜보는 등 삽질 몇번 하다가...아래를 발견했다. 내용을 보니, MacOS의 로컬 네트워크 정책이 Intellij의 네트워크 연결을 차단 시킬 수 있다고 한다.(DB, App Server 연결 등)이 때 No .. 2025. 2. 2.
심플추구 개발자 맥북 초기 셋팅 정리 - 3 이전 포스팅에 이어 본격적인 필수 프로그램 설치 관련하여 포스팅합니다.아래는 이전 포스팅입니다.https://basketdeveloper.tistory.com/entry/%EC%8B%AC%ED%94%8C%EC%B6%94%EA%B5%AC-%EA%B0%9C%EB%B0%9C%EC%9E%90-%EB%A7%A5%EB%B6%81-%EC%B4%88%EA%B8%B0-%EC%85%8B%ED%8C%85-%EC%A0%95%EB%A6%AC-1 목차0. 설치 할 것들위 캡쳐는 제가 업무 할 때 기본적으로 사용하는 것들입니다.Chrome, Rectangle, Raycast, Slack 등 대부분의 필수 프로그램을 간단한 구글링을 통해 쉽게 설치 가능합니다. 1. brew 설치https://brew.sh/위 링크에 접근하여 Hom.. 2025. 1. 26.
심플추구 개발자 맥북 초기 셋팅 정리 - 2 1번 포스팅에 이어서finder 설정 등등 정리해봅니다. 목차1. 파인터 계층 보기 / 경로 막대 보기finder를 실행하여 계층/ 경로 막대 보기를 해준다. 2. 사이드바 설정설정의 사이드바를 커스터마이징 해준다. 항목보기에서 안보는건 제거해준다. 3. 파일확장자 보기모든 파일 확장자 보기를 체크해준다. 4. 미션 컨트롤 데스크탑 보기 단축키 설정"시스템 설정 - 손쉬운 사용 - 키보드 단축키"에서 미션컨트롤를 설정해준다.데스크탑 전환 단축키를 설정한다.  5. 데스크탑 보기 윈도우와 비슷하게 단축키 설정데스크탑 보기 단축키를 옵션 + D로 설정해준다.(이게 편하더라...😊) 이제 기본적인 세팅을 마무리되었고...다음 포스팅에서는 개발자에게 필요한 터미널(iTerm2, git 설치 등)을 정리해보려고.. 2025. 1. 25.
심플추구 개발자 맥북 초기 셋팅 정리 - 1 맥북에 점점 익숙해질 어느 무렵...예기치못한 일로 맥을 초기화 하고, 맥 설정을 찾아보다가한번 정리해놓는게 좋을듯 하여 개인적으로 좋아하는 세팅을 포스팅해봅니다. 목차1. 마우스 스크롤 반대"시스템 설정 - 마우스"에서 "자연스러운 스크롤"을 해제한다.이게 익숙하다. 2. 탭하여 클릭"시스템 설정 - 트랙패드"에서 탭하여 클릭하기를 활성화한다. 3. 세손가락 드래그"시스템 설정 - 손쉬운 사용 - 포인터 제어기" 에서 세손가락으로 드래그하기를 설정한다. 4. 스크롤바 항상 보기"시스템 설정 - 화면 모드"에서 색조 허용 해제, 스크롤 막대 보기 항상, 스크롤 막대에서 클릭 지점으로 이동을 체크해준다. 5. Dock 크기 조절과 숨기기"시스템 설정 - 데스크탑 및 Dock"에서 Dock크기 조절, 가리기.. 2025. 1. 25.
telepresence intercept 사용해서 로컬머신에서 디버깅 쿠버네티스 클러스터를 개발환경으로 사용하고 있다면telepresence intercept 기능을 한번쯤 들어봤을 것입니다.이번 포스팅에서는 intercept 기능을 간단하게 사용해보고 정리합니다. 목차1. Intercept?telepresence intercept는 쿠버네티스 클러스터에서 실행 중인 서비스의 트래픽을로컬 개발 환경으로 리다이렉션하는 기능입니다.특정 서비스만 선택적으로 가로챌 수 있고, 로컬에서 디버깅 및 수정 테스트를 실시간에 가깝게 해볼수 있습니다.서비스 간 의존성을 감안해서 개발했다면, MSA 환경에서 이만한 개발도구가 없을 것으로 보입니다. 2. CLI먼저 대상 서비스를 확인하고아래 명령어를 통해 트래픽을 로컬 환경으로 가로챌 수 있습니다.telepresence intercept .. 2024. 11. 3.
unknown service telepresence.pro.manager.ProManager 대처 어느 날 맥북에서 telepresence를 통한 로컬 환경 디버깅을 하려고 하는데연결이 되지 않았습니다.흠 Windows 에서는 문제 없이 되었었는데, 맥OS(m2)에서 안됬기 때문에처음부터 다시 설치 해보고 이것저것 해보다가 해결하여 포스팅합니다. 목차1. 연결 시 에러 발견~ telepresence connecttelepresence connect: error: connector.Connect: rpc error: code = Unimplemented desc = unknown service telepresence.pro.manager.ProManager telepresence.pro.manager.ProManager 가 눈에 띕니다.telepresence 상용버전에 대한 기능 제한일 가능성이 있습니.. 2024. 11. 3.
우분투에 k3s 설치하는 방법 k3s는 경량 k8s라고 보면됩니다.가벼워서 리소스 사용량도 적고, 실제 쿠버네티스와도 비슷합니다.또한 설치가 간편하여서 쿠버네티스 학습에 좋을 것 같습니다.이번 포스팅은 Ubuntu 22.04에 k3s를 설치하는 방법을 정리합니다. 목차1. 대상 서버에 접근대상 서버는 이미 구축되어있다고 가정합니다.putty나 ssh를 이용해 접근합니다.$ ssh 유저명@123.123.123.123 # 실제 ip를 입력 2. 간단 설치$ curl -sfL https://get.k3s.io | sh -[sudo] password for usss1:[INFO] Finding release for channel stable[INFO] Using v1.30.5+k3s1 as release[INFO] Downloadi.. 2024. 10. 3.