💪우아한 종료Graceful shutdown을 위하여
·
💪 Practice
정상 종료란 무엇일까요?OS로부터 종료 시그널을 받으면 새로운 요청을 받지 않고 처리되고 있던 요청이 모두 끝난 후 모든 자원을 릴리즈한 뒤 프로세스를 종료하는 것입니다.다른 말로는 그레이스풀 셧다운 Graceful shutdown이라고 하기도 합니다.Shutdown gracefully shuts down the server without interrupting any active connections. Shutdown works by first closing all open listeners, then closing all idle connections, and then waiting indefinitely for connections to return to idle and then shut down...
🐛 Error: MacOS에서 Kind로 구축한 k8s 클러스터의 Deployment external IP에 접근을 하지 못합니다
·
🪲 bugs
발생 상황 ``` ☁ _Lecture_k8s_starter.kit [main] ⚡ kubectl get services NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE chk-hn LoadBalancer 10.96.253.167 192.168.1.11 80:30941/TCP 12m ``` 쿠버네티스 실습 중에 LoadBalancer service를 만들고 클러스터 내부와 외부에서 External IP로 각각 접근을 실행하였습니다. 클러스터 내부에서는 문제없이 접근할 수 있었으나, 클러스터 외부에서는 timeout이 발생하였습니다. 외부에서 ping을 날려봤지만, timeout이 됩니다. curl 192.168.247.5:30623 // 응답없음... 발생 원인 추측했던 원..
공변성과 반공변성과 Generics
·
👽 Languages/☕️ Java
들어가며최근 제가 다른 실수(타입 추정이 잘 안되는 문제)를 계기로 제네릭에 대해 다시 공부할 일이 생겼습니다.그러며 새로이 깨달은 것이 `공변성(covariance)` 과 반공변성(Contravariance)`에 대해 제대로 이해하고 있지 않기도 하고.매번 헷갈린다는 생각이 들어서 이번 기회로 조금 정리해보려고 합니다. 이미 Java로 코드를 구현할 때, 이 개념을 자연스럽게 사용하고 있었는데요.새삼 개념과 객체지향 리스코프 치환 원칙 LSP까지 짚어보니 좀 복잡했지만 왜 이렇게 사용해야했는지 이해할 수 있어서 유의미했던 공부였습니다. 공변성과 반공변성먼저 변성(variance)은 타입 시스템에서 서로 다른 타입 간의 관계를 설명하는 개념입니다. 다시말해 상속관계에 있는 A, B 타입이 있을 때, 이를..
🐛 Bug: 로컬에서 잘 실행되던 Unit Test가 parallel test 실행에서 오류가 났다 : 잠깐🤚 아까 설정했던 Mock을 어떻게 했나요...?
·
👽 Languages/✔ Kotlin
발생 상황 spring boot gradle test kotest, spoke 테스트 SpringBoot 프로젝트의 테스트를 로컬에서 실행했을 때 모든 단위 테스트와 API 테스트가 통과했으나, Github workflow 실행시 갑자기 단위 테스트 중 몇 개가 깨져버렸습니다. 로컬과 origin 코드가 동일한 상황에서 로컬에서는 계속 잘 통과하는 데 무엇이 문제일까 헤매었습니다. 근데 예외코드가 약간 이상합니다. 분명 실패한 테스트는 수정 로직인데, 예외 스택에 삭제 테스트가 함께 포함되어 있습니다. // 예외 로그 중 시그니처가 살짝 수정되어있습니다 com.backend.domain.test.Modify > 수정 > 작성자가 수정할 경우 성공한다 FAILED java.lang.AssertionErro..
🐛 Bugs: MacOS에서 Sonoma 업데이트 이후 Embedded Redis 시작되지 않음
·
🪲 bugs
발생 상황 `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-M01~02 회고 : 신입 개발자의 성공적인 랜딩을 위하여
·
💬 Smalltalk
들어가며 2024년이 시작한지도 벌써 두 달이나 지났습니다. 진짜 뭐했다고 이렇게 시간이 빨리 흘러가는 지 참..! 정말 오랜만에 쓰는 회고입니다. 하루하루가 휘몰아치고 있는데, 넋놓고 휩쓸리다가 이렇게 흘려보내기 너무 아쉽다는 생각이 들더라고요. 지금의 고민들을 적어두고 싶기도 하고 작은 소득도 박제하고 싶어요ㅎㅎㅎ 그래서 짧게나마 두 달을 정리하고 가고자 합니다. 아래 그림은 티타임에서 정리한 월간 회고 👇사실 이 글에서는 더 잡다한 얘기가 있을 수 있습니다.....  신입개발자의 성공적인 랜딩을 위하여 올해 1월부터 저는 신입 개발자로서의 일상을 시작했습니다. 아침에 일어나 출근을 하고, 직장에 갔다가 퇴근을 하는 이 루틴이 너무 오랜만이어서 많이 긴장되더라고요. 그래서 첫 한달은 일을 하고오면 ..