전체 글846 [책 후기] 코틀린 코루틴 https://product.kyobobook.co.kr/detail/S000210537188 코틀린 코루틴 | 마르친 모스카와 - 교보문고코틀린 코루틴 | 코틀린 전문 강사가 알려 주는 코틀린 코루틴에 대한 모든 것!코틀린 코루틴은 효율적이고 신뢰할 수 있는 멀티스레드 프로그램을 쉽게 구현할 수 있게 해 주어 자바 가상 머신(product.kyobobook.co.kr 두 번째로 읽은 코틀린 책이다.첫 번째로 읽은 책인 코틀린 코루틴의 정석 책은 코틀린 사용법에 중점을 맞춘 책이라면, 해당 책은 동작 원리에 중점을 맞춘 책이라고 생각된다. 코틀린이 자바랑 호환되는 이유는 결국 자바로 컴파일이 되기 때문인데, 이말은 코틀린 코루틴은 자바로도 표현이 가능해야 한다는 뜻이다.즉, 해당 책에서는 디컴파일 코드를.. 2025. 1. 12. 스케일 아웃 환경에서의 서킷브레이커 동기화 서킷브레이커 패턴?서킷브레이커 패턴은 간단히 말하면 회로 차단기 패턴이다. 관련해 다른 좋은 글들이 많기 때문에 서킷브레이커에 대한 설명은 생략하겠다.쨋든 회로 차단기 패턴을 구현한 라이브러리가 resilience4j 이다. resilience4j docs: https://resilience4j.readme.io/docs/circuitbreaker CircuitBreakerGetting started with resilience4j-circuitbreakerresilience4j.readme.io 서킷브레이커를 어디에서 사용하는가?우리는 자체 검색 엔진이 없다. 그래서 검색이 AI 기반으로 돌아가는데 이를 제공해주는 외부 서비스사의 API를 활용한다.즉, 검색 기능은 외부 API에 의존하고 있는 상태이.. 2025. 1. 1. [책 후기] 스프링으로 시작하는 리액티브 프로그래밍 https://product.kyobobook.co.kr/detail/S000201399476 스프링으로 시작하는 리액티브 프로그래밍 | 황정식 - 교보문고스프링으로 시작하는 리액티브 프로그래밍 | *리액티브 프로그래밍의 기본기를 확실하게 다진다*리액티브 프로그래밍은 적은 컴퓨팅 파워로 대량의 요청 트래픽을 효과적으로 처리할 수 있는product.kyobobook.co.kr 과거 webflux 기술에 관심이 생겨, 구매한 책이다.내가 찾아본걸로는 Spring Webflux 관련 책이 해당 책 밖에 없었어서, 해당 책을 선택했던 것으로 기억한다. 현재 회사 프로젝트는 MVC 환경으로 이루어져 있고, 멀티 모듈 기반 레이어드 아키텍처 구조이다.즉, 서버 분리도 되어 있지 않고, 단일 DB 환경이다. 현재로선.. 2025. 1. 1. 2024 마무리 신입 백엔드 개발자로서 첫 1년을 지냈다. 올해는 정말 정신없이 지나간 것 같다. 회고를 짧게 해보려고 한다.성장나에게 올해의 키워드는 성장이다.현재 재직중인 회사는 정말 성장을 위한 복지가 잘 되어있다. 이를 정말 많이 활용했던 것 같다. 책, 강의, 컨퍼런스를 지원해주는 데, 내가 이 복지를 가장 많이 활용한 사람이다. 덕분에 지난 1년간 많은 지식을 습득할 수 있었다. 사실 10월까지는 달에 2~3권씩 읽은 것 같은데, 요즘 책을 따로 시간내선 읽진 않고 통근 등 짜투리 시간을 활용하여 읽고있다.요즘 회사 업무가 많이 바쁜 것도 있고, 최근들이 집에서 일을 많이 하기도 한다. -> 회사에서 강요하진 않는다.내가 집에서도 일을 하는 이유는 일을 더 빠르게 끝내고, 남는 시간에 코드 개선 등에 투자하기.. 2025. 1. 1. Kotlin Value Class와 Mangling 문제 해결기 배경새로운 결제 시스템 연동 작업 중 발생한 문제를 공유하고자 한다.해당 결제 시스템은 서버 간 통신을 통해 이루어지며, API 호출 시 토큰이 필요하다.즉, 토큰을 얻어오는 API 호출 후, 해당 토큰을 포함하여 외부 API 호출을 해야한다. 나는 타입 안정성을 위해 얻아온 토큰을 Value Class로 래핑했고, 네트워크 오류에 대응하기 위해 resilience4j의 retry 기능을 사용하였다.문제예시 코드는 아래와 같다.해당 코드에서 fallback 메서드를 찾지 못하는 문제가 발생하였다.@Serviceclass RetryServiceTest { @Retry(name = "retryServiceTest", fallbackMethod = "fallback") fun test(token: .. 2024. 12. 21. MultiPart와 @Async 사용 시 주의점 우리 회사는 마트와 소비자를 연결해주는 중개 플랫폼을 운영하고 있다. 소비자가 앱을 통해 주문하면 마트에서 물건을 배송해주는 형태다. 마트 관리자들을 위한 관리 페이지가 있는데, 여기서 환불 처리할 때 간헐적으로 문제가 발생했던 경험을 공유하고자 한다. 문제 상황주문은 하나의 환불 정보만 가질 수 있는데, 동일한 주문에 대해 환불 정보가 두 개씩 생성되는 문제가 발생했다. 환불 처리는 다음 세 가지 엔티티를 저장하는 과정을 포함한다:Refund: 환불 기본 정보RefundProduct: 환불 상품 정보RefundImage: S3에 업로드된 이미지 URL 정보문제 해결 과정1차 시도: 네임드 락(Named Lock) 적용처음에는 동시성 문제로 판단하여 주문 ID에 대해 네임드 락을 걸었다. 하지만 문제는 .. 2024. 11. 16. 이전 1 2 3 4 ··· 141 다음