HTTP 200 OK

Memento mori & Carpe diem

분류 전체보기 61

DLQ 적용기

Dead Letter Queue (DLQ)란 무엇인가?DLQ는 정상적으로 처리되지 못한 메시지들을 저장하는 특별한 큐입니다.(카프카에서는 단순한 토픽입니다) DLQ의 본질은 특정 횟수 이상의 재시도 후에도 메시지 처리가 실패하거나 복구할 수 없는 오류가 발생했을 때 해당 메시지를 DLQ로 이동시켜 시스템이 계속 정상적으로 작동하면서 메시지를 손실하지 않고, 추후에 메시지를 검토하거나 재처리할 수 있도록 보장하는 방법입니다. DLQ가 필요한 이유 기존에는 isPublish라는 컬럼을 이벤트 소싱 패턴에 적용시켜놔서 이벤트 발송 실패시 시스템 내부적으로 처리하고 있었습니다. 처리량과 실패율이 낮아 별도의 DLQ가 필요없어보였지만 솔루션 연동과 고객사들이 증가함에 따라 미리 예방하는 차원에서 현재 시점에서 미..

Spring 2025.01.18

[2024] Google Cloud Study Jam 후기

안녕하세요, 백엔드 개발자로서 Google Cloud Study Jam 2024의 AI & ML 과정을 모두 수료한 경험을 공유하고자 합니다. 한달 가량 시간을 소요해 과정을 수료할 수 있었습니다. Beginner부터 Advanced까지의 여정을 통해 얻은 인사이트와 후기를 작성해봤습니다. 1. 학습 과정 개요 Beginner 과정처음 AI/ML을 접하는 백엔드 개발자로서 기초적인 머신러닝 개념부터 차근차근 학습했습니다. Generative AI의 개념과 전통적인 머신러닝과의 차이점을 학습하고 Google Cloud의 핵심 서비스들을 살펴볼 수 있었습니다,특히 다음과 같은 부분들이 인상적이었습니다.BigQuery와 같은 데이터 분석 도구의 강력함AI Platform의 기본적인 사용법머신러닝의 기초 개념들..

활동 2025.01.05

잘하는 개발자란?

토스 러너스 하이를 지원하며 받은 질문 중 잘하는 개발자란?'에 대해 깊이 고민해 보았다. '잘하는 개발자란?' 너무나도 흥미로운 질문에 필자의 생각을 정리해 봤다. 우선 '잘하다'라는 뜻은 무엇일까? 사전적 의미를 살펴보자.옳고 바르게, 또는 좋고 훌륭하게 하다.익숙하고 능란하게 하다.평탄하고 만족하게 하다.버릇으로 자주 하다. 이렇듯 '잘하다'의 뜻은 상황, 문제, 또는 일에 대한 통찰력과 분별력을 바탕으로 최선의 결과를 만들어내는 행위를 뜻한다. 이런 행위를 특정 분야에서 오랜 시간에 걸쳐 익히고 능숙해진 것은 전문성을 가졌다고 볼 수 있으며 이런 전문성을 가진 사람을 전문가라고 부른다. 그렇다면 '잘하는 개발자'란 무엇인가? 단순히 맡은 일을 원활히 수행하고 가치 있는 결과물을 창출하는 사람일까?..

기타 2024.12.19

[2024] Google Cloud Study Jam 신청

구글 클라우드에서 교육을 하고 있는 것을 처음 알게된 것은 geekNews이었다. 정보를 찾아보다 구글 클라우드 교육이 있기에 재밌어보여 신청하게 됐다.(나만 빼고 이런 재밌는걸?..)  필자는 머신러닝을 한번쯤은 공부해보고 싶었기 때문에 정말 좋은 기회라고 생각했다. 처음에는 AI란 무엇인가에 대한 간단한 개념을 알려줬다. 생성형 AI, 머신러닝, 딥러닝, 프롬포트, LLM 전부 익숙한 단어들이지만 해당 개념들의 동작원리에 대해서는 탐구해본적이 없었기에 재밌었다. 해당 과정은 온라인 강의 시청과 직접 수행하는 과제로 이루어져 있는 것 같았다. 아래의 과정을 전부 듣고 수료를 하게 되면 다음과 같은 상품을 주는데 가방이 너무 멋있어서 신청하게 된 것도 있다..  총 25개의 학습자료가 있으며, 완료시간은..

활동 2024.12.19

JSON 직렬화가 왜 안돼?..

개요A서버에서 B서버로 body를 전달해주는 테스트를 하던 도중 필드 하나가 미전달 되는 현상이 지속적으로 발생했습니다. 해당 이슈를 해결하기 위해 다방면으로 고민했던 과정과 해결방안을 작성했습니다. 해결과정dto는 아래와 구성했고 해당 객체를 body에 담아 전달해주는 로직을 작성하고 있었습니다. 여느때와 다름없는 작업이었지만 isDelete 필드만 전달 되지 않는 현상이 발생하고 있었습니다. 간단한 문제라고 생각했기에 큰 문제가 아니라고 생각했지만 고난의 시작이었습니다ㅠ..data class jacksonTest( val id : String, val name : String, val isDelete : String, val createdAt : LocalDateTime) 이렇게..

Kotlin 2024.11.24

undertow VS tomcat 비동기 처리(Feat.이벤트루프란?)

Undertow와 Tomcat의 비동기 처리Undertow와 Tomcat은 자바 기반 웹 서버인건 동일하지만 비동기 I/O 처리하는 방식은 다릅니다. 이 둘에 대한 차이점과 어떠한 원리로 동작 하는지 살펴보겠습니다. 설명을 드리기에 앞서 undertow에서 비동기 프로그래밍을 처리할때 중요한 개념인 이벤트 루프에 대해 소개하겠습니다.  이벤트 루프(Event Loop)란?이벤트 루프는 비동기 프로그래밍 모델에서 중요한 역할을 하는 개념으로 싱글 스레드 환경에서 비동기 처리를 지원하기 위해 사용됩니다. 이벤트를 큐에 넣고 큐에 있는 이벤트를 하나씩 처리하는 방식(콜스택&큐)으로 동작합니다. 이러한 이벤트 루프의 순환 과정을 통해 실시간으로 이벤트를 처리하며 동시성을 관리하고 효율적으로 자원을 사용할 수 있..

Spring 2024.11.09

MSA 환경에서의 @JsonProperty 활용

데이터 필드 불일치 문제필자는 MSA 환경에서 여러 서비스 간에 데이터를 주고받고 데이터 필드명을 일치시킬 때 @JsonProperty를 사용하던 중 이슈가 발생했습니다. 바로 A서버에서 매핑한 데이터를 B서버에서 받지 못하는 상황이였습니다. 많은 분들이 @JsonProperty를 사용해보셨을 것 같고 저 또한 유용하게 사용하고 있었지만 동일한 JSON 객체를 2개 이상의 서버에서 연동시키며 사용해봤던 경험은 없었기에 이슈에 대한 해결방안을 공유하고자 글을 작성했습니다. @JsonProperty의 사용과 제한사항@JsonProperty는 내부 서버 통신에서만 매핑을 수행합니다. 즉 해당 서버 내부에서만 필드명이 변환되고 외부 서버와 통신할 때는 적용되지 않습니다. 앞선 이유 때문에 외부와 연동된 서버에서..

Spring 2024.10.13

[오픽OPIC] 첫 오픽 IH 후기

오픽에 대한 생각을 작년 이맘때쯤부터 생각했었는데 스택오버플로우나 공식문서를 보는데 큰 불편함이 없었기에 오픽이 과연 필요할까?? 싶은 생각이 들기도 해서 미루고만 있었습니다.(사실 귀찮음이...) 그러다 올해 더 이상 미루기도 좀 그렇고 새로운 도전을 해보고 싶어서 월요일(8/12)에 신청을 해서 토요일(8/17)에 보는 시험으로 신청했습니다. 필자는 토종 한국인으로 성인이 된 이후로 영어공부는 해본적도 없고 토익 점수도 없습니다. 하지만 미국 애니메이션과 팝송으로 영어에 대한 단련이 되어있다고 생각했기에(??) 자신감이 넘치는 상태였습니다. 예전에 지인분이 주셨던 오픽 책에는 먼지가 가득 쌓여있어서 책으로 공부하려는 생각은 고이 접었습니다. 오픽노잼 유튜브로 공부하시는 분들이 많으신 것 같아 저도 오..

활동 2024.08.26

토스 Slash 24 신청

토스에서 진행하는 컨퍼런스가 올해도 개최했습니다. 작년에는 일정이 바빠 참석할 생각도 못했지만 올해는 참가신청을 해봤습니다. 21년부터 진행한 행사인 만큼 매 년 행사 퀄리티가 높아지고 있어 기대가 되는것 같습니다.  홈페이지를 접속하자마자 바위가 있길래 처음에는 뭔가?? 싶었습니다 ㅋㅋ..   장소와 시간은 삼성역 코엑스에서 9월 12일에 진행하는 것 같네요! 참가신청 날짜와 발표일자도 나와 있습니다. 특히 개인 시간표를 작성해 신청하는 이벤트도 있어 재밌었습니다. 필자는 서버와 인프라쪽에 흥미로운게 많아 해당 분야 위주로 신청했습니다.   이렇게 시간표를 구성해 SNS 채널에 공유하면 추첨을 통해 50명에게 slash 24 초청권을 전달해 준다고 하네요!! slash 24 참가 신청 링크 : http..

활동 2024.08.23

cephObjectGateway(Feat. bucket 생성)

개요Ceph Object Gateway(RADOS Gateway, 또는 RGW)는 오픈 소스 스토리지 솔루션인 Ceph의 구성 요소 중 하나로, 오브젝트 스토리지 기능을 제공합니다. Ceph Object Gateway는 HTTP RESTful 인터페이스를 통해 Ceph 클러스터에 데이터를 저장하고 가져올 수 있게 해줍니다. 이를 통해 아마존 S3 및 OpenStack Swift와 같은 Api용 인터페이스로 사용되며 오브젝트 스토리지 서비스와의 호환성을 지원합니다. 또한 rook-ceph-tools 파드 내부에 접속해 radosgw(CLI) 명령어를 사용해 제어할 수도 있습니다. ceph object는 스토리지 클러스터에 대한 Restful 게이트웨이를 제공하기 위해 주로 사용됩니다. 버킷을 생성하기 위해..

Kubernetes 2024.07.12