HTTP 200 OK

Memento mori & Carpe diem

전체 글 65

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

쿠버네티스 파드 라이프사이클(Feat. 고아파드)

k8S Pod Lifecycle 정의 파드는Pending 단계에서 시작해서, 기본 컨테이너 중 적어도 하나 이상이 OK로 시작하면 Running 단계를 통과하고, 파드의 컨테이너가 실패로 종료되었는지 여부에 따라 Succeeded 또는 Failed 단계로 이동합니다. 파드가 실행되는 동안, kubelet은 오류를 처리하기 위해 컨테이너를 다시 시작하기도 합니다 . 파드 내에서, 쿠버네티스는 다양한 컨테이너 상태를 추적하고 파드를 다시 정상 상태로 만들기 위한 조치를 결정합니다. Kubelet은 Kubernetes 노드에서 실행되는 에이전트로, 클러스터의 마스터와 노드 간의 통신역할을 수행하며 노드 내의 모든 파드 상태를 감시하고, 파드의 요청에 따라 컨테이너를 실행 및 관리합니다. 또한 클러스터에 등록되..

Kubernetes 2024.03.31

[국내]무료 오픈 api 추천 리스트 모음

현업에서나 사이드 프로젝트를 진행할 때 오픈 api를 활용해보신 경험이 한번쯤은 있으실 겁니다. 필자는 현재 프로젝트에서도 오픈 api를 사용하고 있습니다. 그러던 와중 과연 어떤 영역까지 데이터를 활용해볼 수 있을까?? 라는 호기심이 생겨 이 글을 작성하게 되었습니다. 자료를 찾다보니 다양하고 많은 오픈 api가 존재하기 때문에 이런것도 있었나?.. 싶은 오픈 api들이 많았습니다. 카테고리 별로 정리하고 싶었지만 카테고리로 특정화 시키기에는 다용도로 활용할 수 있는 오픈 api들이 많아 리스트로 정리 했습니다. 1) 공공데이터 포털특징국가에서 보유하고 있는 다양한 공공 데이터를 활용할 수 있는 곳입니다. 따라서 개인이 수집할 수 없는 사업자 번호 인증, 날씨 정보, 상권 정보 등을 제공하고 있습니다...

기타 2024.03.17

Decode, Encode, Parse, Stringify 개념과 사용

웹 개발을 하다보면 데이터 변환에 대한 경험을 반드시 마주하게 됩니다. Decode, Encode, Parse, Stringify 와 같이 데이터 형식을 변화시키는 것에 대한 정확한 개념과 언제 사용해야 하는지에 대해 작성해보려고 합니다. 평소 깊게 생각하지 않고 상황에 따라 사용해왔기에 개념 정리를 해보려고 합니다. 예시로 작성된 코드는 파이썬입니다. Decode 디코드는 변형된 형태로 저장된 데이터(인코딩 데이터)를 원래 상태로 되돌리는 것을 말하며 이를 복호화 라고 합니다. 예를 들어 텍스트를 Base64로 인코딩한 경우, 디코딩은 Base64로 인코딩된 텍스트를 다시 일반적인 ASCII나 유니코드 텍스트로 변환하는 것을 말합니다. import base64 encoded_text = 'SGVsbG8..

CS 2024.02.17

주니어 개발자의 개발문화 변화시키기

현재 회사에 입사한지 어느덧 1년이 넘어가고 있는 주니어 개발자입니다. 시간이 참 빠른 것 같습니다.. 저는 재직 중인 회사에서 백엔드 개발자로 업무를 진행하는 도중 시니어개발자 분들이 퇴사를 하시면서 주니어끼리 업무를 하는 시간이 꽤나 길어졌습니다. 테크리드가 없다는 사실은 뼈아픈 일이였고 최근들어 많은것을 느껴서 팀 내 개발문화를 변화시키고 싶은 결심을 하게되었습니다. 비슷한 상황에 놓이신 분들을 위해 저의 개발문화 적용과정과 생각들을 공유드리려고 합니다!! 미니언즈는 주니어 개발자와 이미지가 비슷하다고 생각해서 넣어봤습니다 ㅎㅎ 왜 개발문화를 변화시키고 싶은 생각이 들었나??  첫 시작은 우아한 테크세미나에서 '어느 날 시니어가 사라졌다'라는 발표 영상을 보게 되었는데 시니어 없이 주니어끼리 개발문..

활동 2024.01.21