HTTP 200 OK

Memento mori & Carpe diem

전체 글 59

잘하는 개발자란?

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

기타 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

JsonTypeInfo와 함께하는 다형성 구현

서론요구사항에 따라 여러 API를 만들다 보면 자동적으로 request dto도 변화가 발생합니다. API를 추가할 때 기존에 사용하던 dto와 별반 차이가 없다면 기존 것을 수정하는 방식을 통해 관리해 볼 수도 있겠죠 겹치는것이 많아진다면 공통 DTO를 만들어볼 수도 있겠습니다. 공통 DTO를 사용하기 애매할 경우에는 dto class를 늘리는 방법을 선택하고 있습니다. 하지만 비슷한 동작을 수행함에도 불구하고 약간의 차이가 존재한다는 이유만으로 새로운 API와 DTO를 추가하다보니 중복아닌 중복이 발생하는 느낌을 받았습니다. 앞으로 규모가 더욱 커진다면 유지보수가 복잡해지겠다는 느낌도 받았습니다. 앞선 문제를 해결할 수 있는 방법중 하나가 JsonTypeInfo 라고 생각합니다. 개요JsonTypeI..

Spring 2024.05.11

event storming이란?

정의DDD설계를 가속화 시킬 수 있는 설계 방법으로 이벤트 중심으로 이해관계자들이 모여 브레인스토밍 하는 워크샵이라 하여 이벤트 스토밍 이라고 부른다. 사용이유MSA를 구축하여 DDD 전략적 설계를 할 때 의존성을 줄이기 위해서는 아키텍처 영역에서 서비스 간 비동기 메시지기반 도메인 이벤트를 활용하는 것이 중요한데 이러한 도메인 이벤트를 통한 의존관계 식별 방법이 용이하지 않기 때문에 이를 한눈에 파악하기 위해 사용한다.  순서도메인 이벤트 식별 > 커맨드 식별 > 외부 시스템 도출 > 엑터 식별 > 흐름 설명 > 어그리게잇 식별 > 컨택스트 경계 정의 > 정책 식별 > 컨텍스트 매핑 도메인이벤트 도출시간의 흐름에 따라 비지니스의 상태 변경을 의미하는 도메인 이벤트를 도출한다. 참여자들은 이벤트 명을 작..

CS 2024.04.28