본문 바로가기

ALL105

🐛 Bug: 로컬에서 잘 실행되던 Unit Test가 parallel test 실행에서 오류가 났다 : 잠깐🤚 아까 설정했던 Mock을 어떻게 했나요...? 발생 상황 spring boot gradle test kotest, spoke 테스트 SpringBoot 프로젝트의 테스트를 로컬에서 실행했을 때 모든 단위 테스트와 API 테스트가 통과했으나, Github workflow 실행시 갑자기 단위 테스트 중 몇 개가 깨져버렸습니다. 로컬과 origin 코드가 동일한 상황에서 로컬에서는 계속 잘 통과하는 데 무엇이 문제일까 헤매었습니다. 근데 예외코드가 약간 이상합니다. 분명 실패한 테스트는 수정 로직인데, 예외 스택에 삭제 테스트가 함께 포함되어 있습니다. // 예외 로그 중 시그니처가 살짝 수정되어있습니다 com.backend.domain.test.Modify > 수정 > 작성자가 수정할 경우 성공한다 FAILED java.lang.AssertionErro.. 2024. 3. 23.
🐛 Bugs: MacOS에서 Sonoma 업데이트 이후 Embedded Redis 시작되지 않음 발생 상황 `EmbeddedRedis` 가 적용된 테스트를 실행시키려고 할 때, 다음의 에러 로그가 뜬 후 프로세스가 죽는 현상이 있었습니다. `Can't start redis server. Check logs for details. Redis process log:` 그러나 process 가 이미 죽어버려서 로그를 볼 수도 없는 상황. 해당 문제에 대해 사수님께 질문하여 'OS 문제인 것 같다' 는 결론을 얻었습니다. 발생 원인 얼마 전에 MacOS를 Sonoma 14.x로 업데이트 했는데, 그로 인해 OS security policy가 변경되며 `EmbeddedRedis` 실행에 실패했던 것입니다. [👉 related issue] Most likely security policies forbid th.. 2024. 3. 2.
2024-M01~02 회고 : 신입 개발자의 성공적인 랜딩을 위하여 들어가며 2024년이 시작한지도 벌써 두 달이나 지났습니다. 진짜 뭐했다고 이렇게 시간이 빨리 흘러가는 지 참..! 정말 오랜만에 쓰는 회고입니다. 하루하루가 휘몰아치고 있는데, 넋놓고 휩쓸리다가 이렇게 흘려보내기 너무 아쉽다는 생각이 들더라고요. 지금의 고민들을 적어두고 싶기도 하고 작은 소득도 박제하고 싶어요ㅎㅎㅎ 그래서 짧게나마 두 달을 정리하고 가고자 합니다. 아래 그림은 티타임에서 정리한 월간 회고 👇 사실 이 글에서는 더 잡다한 얘기가 있을 수 있습니다..... 신입개발자의 성공적인 랜딩을 위하여 올해 1월부터 저는 신입 개발자로서의 일상을 시작했습니다. 아침에 일어나 출근을 하고, 직장에 갔다가 퇴근을 하는 이 루틴이 너무 오랜만이어서 많이 긴장되더라고요. 그래서 첫 한달은 일을 하고오면 1.. 2024. 3. 1.
테스트 코드 작성 시 주의해야 하는 것들 들어가며 이 글은 최근 테스트 작성을 많이 하기 시작하며 염두하기 시작했던 부분들을 잊지 않기 위해 작성해보았습니다. 사실 작년까지는 테스트 코드 작성을 정말 최소한으로만 해왔었는데요. 짜고나서 동작을 확인할 때, 테스트하고 싶은 것만 테스트하고 (정말 로직만 확인하는 테스트) 그나마도 구현이 계속되어 테스트를 고쳐야할 때면 가끔 코드를 들어내기도 했습니다. TDD나 테스트가 좋다고는 하지만 오히려 구현에 발목을 잡히는 것이 아닌가 하는 생각도 들었고요. 최근 테스트를 열심히 짜보며 이런 생각을 고치게 되었습니다. "그동안 내가 테스트가 유효할 만큼의 테스트를 짜보지 않아서 잘모르고 있었다, 변경에 취약한 테스트를 짜고 있었다"는 생각이 들어 중간 소결차 글을 써봐야겠다는 생각이 들었습니다. 특히 회사에.. 2024. 2. 17.
왜 Array Index는 0부터 시작하는 것일까? 이 의문이 든 것은 배열의 인덱스와 N번째 요소를 페어링하여 코드를 작성할 때 문득 든 것입니다. 아마 프로그래밍을 처음 배우는 사람들은 한번쯤 거쳐가는 질문이었을 것입니다. 사실 간단히 어떤 이유에서이겠거니라는 추측은 하고 있었는데, 이것 저것 찾다가 가장 설득이 되었던 글을 모아보았습니다. Why numbering should start at zero (1982) 수열을 표시할 때, 왜 0부터 시작하는 것이 좋은지 서술하는 글입니다. 어떻게 수열을 표시할 수 있는지 예시를 제시합니다. 길이가 N인 시퀀스를 표시할 때 0 2024. 2. 17.
Github action 에서 예외 발생시 디버깅을 해보자 (feat. gradle) 발생 상황 local에서는 build가 되는 상황. 갑자기 github action에서 이런 에러가 났습니다... java.lang.IllegalStateException at DefaultCacheAwareContextLoaderDelegate.java:132 Caused by: org.springframework.beans.factory.UnsatisfiedDependencyException at ConstructorResolver.java:800 Caused by: org.springframework.beans.factory.UnsatisfiedDependencyException at ConstructorResolver.java:800 Caused by: org.springframework.bean.. 2024. 1. 30.
POST, PUT 등 메서드로 서버에 API 호출시 GET으로 요청이 도달하는데요... 🤔 발생 상황 server를 띄운 후, Postman으로 요청보냈을 때 GET요청은 물론 POST, PUT, PATCH 등의 HTTP 메서드 요청이 모두 GET으로 호출되는 현상을 발견했습니다.... 처음보는 현상이라 당황하고 어디서부터 디버깅을 시작해야할지 막막했는데요. api 서버의 프록시에도 GET요청으로 가득한 것을 보며 이것은 요청부터가 GET으로 출발했다는 생각이 들었습니다. 발생 원인 `HTTPS`를 지원하는 서버에 `http`로 접근하게 되면 `HTTPS` 로 리다이렉트될 때 메서드가 변환되어 호출되는 현상이었습니다. 좀 헤맸지만 아주 간단한 이유였습니다. 🤔 왜 변환이 되는 것일까? 먼저 포스트맨의 `Automatically follow redirects` 옵션을 끈 뒤, 다시 `http` .. 2024. 1. 27.
2024-W04 : WWG 참여 후기 이번 주에 한 것 What is New?! 새로운 것을 많이 배운 한 주 직장에서 인프라 구축을 찍먹해보는 기간을 가졌습니다. 아.. 정말 너무 어려웠습니다. docker container와 docker-compose 정도가 컨테이너 오케스트레이션 경험의 다였거든요. 사실 한주동안 학습을 하긴 했지만 뭐가 뭔지 제대로 알지 못한채로 스쳐지나가버린 느낌인데요. 한 주동안 배웠던 개념들을 저의 언어로 정의해보자면 이렇습니다. `k8s` 👉 kubernetes 의 중간 글자를 줄여 부르는 말. 자동 배포, 스케일링, 관리를 편하게 해주는 오픈 소스. 더 경량화한 오픈소스는 k3s 라고 하는 것 같다. (.....) `ArgoCD` 👉 k8s 애플리케이션의 배포를 자동화할 수 있는 오픈 소스. UI도 지원해서 .. 2024. 1. 27.