spring circuit breaker 이해 및 예제 정리

다음 글: spring retry 이해 및 예제 정리 circuit breaker 를 처음 접하게 되었을 때 retry 와 비슷한 기능을 하는 것 같아서 자주 헷갈렸다. 특히 @Retryable 과 @Recover 를 조합하다보면 circuit breaker 와 정말 유사한 결과물을 만들 수 있다. 그러나 기술의 컨셉을 이해하고 여러가지 테스트를 해보...

Kotlin 에서 Validation 이 동작하지 않는 경우

Kotlin 사용 환경에서 @NotBlank, @Size 등과 같은 javax.Validation annotation 을 사용하는 경우 제대로 validation 이 동작하지 않는 경우가 있다. 예시를 통해 문제 상황을 인지하고, 문제 원인과 해결 방법을 알아보자. 🧾 문제 상황 data class BookEnrollReq( @NotBlank(mess...

제어할 수 없는 것에 의존하지 않기

2023년 3월 진행된 우아한테크세미나 테크 리더 3인이 말하는 “개발자 원칙” 중 이동욱님 세션을 듣고나서 정리한 내용. 일정은 지키지만 버그가 많은 것 vs 일정은 못 지키지만 버그가 없는 것 일정은 곧잘 지켜내지만 버그를 많이 만들어내는 개발자와 일정은 못 지키지만 버그가 없는 완벽한 프로그램을 만드는 개발자 중 어떤 개발자가 더 좋은 개발자일까...

구글에서 제안하는 오류 메세지 작성법

Google Developers - Writing Helpful Error Messages 문서에서 발췌한 내용들 입니다. 오류 메세지는 오류가 발생하는 시점에 개발자가 사용자에게 상호작용할 수 있는 수단이다. 잘 작성된 오류 메세지는 사용자에게 해결을 위한 중요한 정보를 전달해주지만, 잘못된 오류 메세지는 오히려 사용자들에게 혼란을 야기한다. 구글은...

Kotlin Scope function 올바르게 사용하기

let, also 와 같은 Scope function 을 오래전부터 사용해왔지만 정확히 어떤 상황에 어떤 Scope function 을 사용하면 좋을지 감이 잘 안잡혔다. 그러다 최근 Scope function 관련 질문도 받았었겠다, 각각의 Scope function 들에 대해 공부하고 어떤 상황에서 사용하면 좋을지 정리해보았다. 🔭 Scope fu...