728x90 전체 글144 코틀린에서 고차함수와 람다를 사용하면 자바에서는 어떻게 보일까? 안녕하세요! 이번 글에서는 제가 자주 사용하는 고차함수와 람다를 코틀인에서 사용했을 때 자바에서는 어떻게 보이는지 확인해보겠습니다. 저는 주로 코틀린에서 고차함수에 람다를 사용하는 것은 로그를 남기는 AOP 시스템을 대체하는데 사용합니다.AOP 시스템을 대체하는 이유는 self-invoke와 같은 구조적인 문제와 저의 개인적인 생각일지 모르지만, 개발할 때 혹은 디버깅할 때 추적하는 것이 매우 어렵다고 느껴서입니다. 지금부터 코드로 간단하게 알아보겠습니다.fun withLog(tag: String, action: () -> T): T { println("[$tag] -> 시작") val result = action() println("[$tag] -> $result") return.. 2026. 3. 31. Command Pattern을 활용한 개발 경험 이번에 업무를 수행하면서 만났던 문제를 해결하면서 느낀 점에 대해서 작성하려고 합니다. 내용은 무척 간단합니다.어떤 문제를 만났고어떻게 해결했고느낀점이 무엇인지에 대해서 기록해보겠습니다. 만난 문제는 웹소켓 연결을 하고 message를 client와 worker(사내 개념)에게 전달해주는데 client에게 동일한 message가 3개가 오고 연결이 끊기는 문제였습니다. 원인은 client와 worker에게 message를 모두 주고 그 message로 서드 파티 서비스를 이용하여 만나야 하는데 client에게만 메세지를 보내고 worker에게 보낼 message를 만드는 과정에서 서버에 예외가 터진 것입니다. 코드로 가볍게 구조만 살펴 보겠습니다.fun connect() { retry(3) { .. 2026. 3. 26. Data Class는 왜 있을까? 최근 너무나도 당연하게 써오고 있던 것에 대한 질문이 받았는데 제대로 답변을 하지 못한 일이 있었습니다. 질문은 Data class가 뭐고 왜 쓰는지 였습니다. 머리속으로는 여러 생각이 났습니다. data class를 사용하면 미리 함수를 만들어줘서 편리했다. 이어지는 개념은 불변 개념이 있고 어쩌구 저쩌구 였습니다. 사실 이 자리는 편한 동료와 기술적인 이야기를 하는 자리가 아니었고, 제가 평가를 받는 자리였기에 정리가 되지 못한 대답을 할 수 없었습니다.(애매한 정리되지 못한 지식으로 꼬리질문을 받아서 아는 척을 한 것이 걸리기보다는 모르겠다! 가 더 좋다고 생각합니다..) 따라서 다시 한번 Data class를 공부하고 정리하고 더 나아가 어렴풋이 느끼던 불변 개념에 대해서도 정리해보려고 합니다. .. 2026. 2. 16. connection prematurely close BEFORE response 해결 공유 안녕하세요! 회사에서 서버를 운영하는 과정에서 발생한 이슈가 있었고 해결 방법과 왜 그렇게 했는지를 공유합니다! 저는 새로운 프로젝트에 webflux를 사용하였습니다. webflux에서 webClient를 사용하여 외부 통신을 했죠! 이때부터 문제가 생겼습니다.바로 알 수 없는 에러가 지속적으로 발생했습니다. 문제는 이 에러는 계속 발생하는게 아니라 아주 간헐적으로 발생하면서 서비스에는 영향을 주고 있었죠. 저는 이 에러가 서비스에 영향을 주는 것을 막기 위해 임시 조치를 취했었고 이를 통해 문제를 해결했습니다. 다만, 이러한 조치는 해당 에러를 또 발생시키지는 않을까? 내가 컴퓨터 자원을 낭비하는 것은 아닐까? 하는 걱정을 야기시켰습니다.따라서 저는 제가 진행한 작업에 확신을 갖기 위해 공부를 했고 그.. 2026. 1. 4. [스프링] TaskScheduler에 대해서 아시나요? 업무를 진행하던 중 당황스러웠던 상황과 궁금증에 대해서 공부하고 정리한 포스팅입니다. 저는 회사 업무로 External Gateway Server를 설계 운영을 하고 있습니다.Gateway 서버는 이름처럼 client가 gateway 서버에 요청을 하고 gateway 서버는 상위 서비스 서버에 요청을 하는 요청을 중계하는 일을 많이 했습니다.이때 요청을 Async로 관리하면 http 연결에 드는 비용을 줄일 수 있을 거 같아서 API를 일부 수정했습니다.또한, 요청의 상태 등을 관리가 필요했습니다.저는 요청의 상태 및 데이터 관리를 위해 Task라는 도메인을 새롭게 만들었습니다. Task 업무 순서는Task 테이블 및 엔티티 생성Task 관련 서비스 작성 (Controller, Service)다른 서비스.. 2025. 9. 24. ReadTimeout 공부 정리 ai만 사용하며 대충 개발하던 저에게 시니어 분의 예상치 못한 질문을 받았고 이에 대한 공부와 알게 된 점을 정리해보려고 합니다.제가 이해한 부분이나 테스트 한 방법이 잘못됐을 수도 있습니다. 잘못된 점을 댓글로 알려주시면 감사하겠습니다! 개발자로써 부끄러움을 느낀 사건이 발생했습니다.위의 사진처럼 제가 작성한 코드에 코드리뷰를 달아주신 시니어분이 계셨습니다. 코드는 정말 일부만 발취한것이지만, spring webFlux에서 webClient의 설정을 하는 코드입니다.제가 부끄럽다고 말씀드리는 이유는 chatGpt에 webClient 설정해줘! 라는 부탁을 하고 그 코드의 설명을 봤을 때 잘못된 점이 없어보여서 그대로 사용했고, 코드 리뷰에 대한 답을 달았습니다. 시니어분께서는 정말 좋은 습관이 있으십니.. 2025. 7. 14. 이전 1 2 3 4 ··· 24 다음 728x90