안녕하세요. Vertical Engineering 팀의 이지민입니다.지마켓의 여행 플랫폼은 작년에 포스팅한 오픈마켓에서 여행 플랫폼으로 살아남기에서 소개드린 바 있습니다.여행 플랫폼은 지마켓의 커머스 시스템과 OTA(온라인 여행사 제휴업체) 서버의 API를 통합하여 서비스를 제공합니다. 이처럼 여러 서버와 의존성이 높아, 서비스의 복잡도가 높습니다. 특히, 실시간 API 연동을 요구하여, 견고하게 API를 호출해야 하는 비즈니스 도메인은 다음과 같습니다.여행 상품 상세 페이지실시간 예약이번 글에서는 여행 상품 상세 페이지와 실시간 예약의 주요 특징과 고려 사항에 대해 설명하고자 합니다.(1) 여행 상품 상세 페이지여행 상품 상세 페이지는 내결함성(fault tolerance)이 높아야 하는 화면입니다. ..
안녕하세요. Web Frontend팀 이민하입니다. 지난 빅스마일데이에 첫 론칭한 꿀템 피드 서비스! 이 서비스를 만들기 위한 여정을 여러분께 소개드리려고 합니다. Intro시작은 디지털 빅세일이 끝난 2월 말.. 저희 팀장님의 한마디에서 시작했습니다."챗GBT를 우리만 보기에 아깝지 않아..!?"챗GBT(Gmarket Best iTem)는 임직원분들이 직접 추천하는 상품을 모아둔 페이지로 하나하나가 진짜 꿀템입니다! 아깝다고 생각했습니다. 저도 GBT를 보며 많이 샀기 때문에 고객도 이 페이지를 같이 보면 구매가 많이 일어날 것이라고 생각했습니다.추가로 고객들이 게시글을 작성할 수 있다면..? 그러면 고객들이 우리 사이트에서 놀 수 있는 공간이 되지 않을까?또한 사내에서도 우리 프러덕에 커뮤니티 기능을..
안녕하세요.Seller & SD Engineering팀의 김민우입니다. 이번 글은 ESM(지마켓 판매자 사이트) 개편 중 '문의하기' 개발을 맡으며 겪었던 어려움과 이를 해결해 나가는 몇 가지 방법들을 소개하고자 합니다. 제가 개발 맡은 부분은 판매자에게 구매자의 문의내용을 담당하는 '게시판 문의', 그리고 CS(고객센터)에서 주는 '긴급 메시지'를 통합하여 지마켓과 옥션 두 사이트에 대해 각각 보여주는 통합 페이지를 개편시키는 일이었습니다. 각설하고 조회 성능을 올린 결과물부터 영상으로 보시죠. 영상에서 보셨듯이, 대형 셀러의 경우 한 페이지를 로드하는 데 기본 몇십 초가 걸립니다. 페이지를 넘길 때조차 마찬가지입니다. 상품이 많아질수록 문의도 증가하기 마련인데, 모든 문의에 일일이 답변하기는 어..
Gmarket Mobile Web Vip 악성 봇 대침투 사건안녕하세요 저는 VI Engineering 팀 김윤제입니다.Gmarket Mobile Web Vip(View Item Page = 상품 상세)를 담당하고 있는 Backend Engineer 입니다. 올해 1월 6일부터 Gmarket Mobile Web Vip에 악성 봇 트래픽 유입에 따른 서비스 다운이 주기적으로 발생했었는데요.한 달 정도 평일, 주말 밤 낮 없이 원인을 찾기 위해 모니터링을 하며 끝나지 않을 것만 같던 고통(왜 나에게만 이런 일이)을 받았었습니다. 우선 악성 봇으로 판단이 되자마자 서버의 Scale Up을 하고 Scale Out을 하였으나이것은 임시방편으로 추후에 봇이 들어오는 케이스가 달라지면 또다시 발생할 문제였습니다.이에..
안녕하세요 VI Engineering 팀 김윤제입니다. Gmarket Mobile Web Vip(View Item Page = 상품 상세)를 담당하고 있는 Backend Engineer 입니다. 예전부터 쓰고자 한 내용들이 많았는데 귀차니즘이 심해서 이렇게 한 번에 몰아서 쓰게 되네요. 이번 편은 지난 편 설계란 고민의 연속이다 1편에 이어 2편입니다. https://dev.gmarket.com/104 1편을 보신 후에 2편을 보시는 게 많은 이해가 될 것입니다. (안 보시면 이해가 안 갈 수도 있어요) 자세한 이야기는 아래에서 상세히 다루도록 하겠습니다. 최선은 무엇인가! 어떤 설계가 좋은 설계인지 모듈 설계를 AS-IS와 비교하며 하나씩 살펴보도록 하겠습니다. 배송 모듈 지마켓에는 배송 타입이 스마일..
안녕하세요 VI Engineering 팀 김윤제입니다Gmarket Mobile Web Vip(View Item Page = 상품 상세)를 담당하고 있는 Backend Engineer 입니다. 저는 현재 기존의 Gmarket Mobile App VIP API 시스템과 Mobile Web VIP API 시스템을통합 & 개편하는 VIP 모듈화 프로젝트를 진행하고 있으며, 그중 모듈 비즈니스를 담당하고 있습니다. 이번 편에서는 제가 셀 수 없이 많은 시간 동안 고민한 비즈니스 설계를 소개하려고 합니다.(하도 고민을 많이 해서 탈모가 생겼다는 썰이..)자세한 내용은 아래에서 설명하도록 하겠습니다. Hexagonal Architecture우선 프로젝트 구조를 먼저 설명드리려고 합니다.모듈 비즈니스는 Multi Mo..
안녕하세요 VI Engineering 팀 김윤제입니다.Gmarket Mobile Web Vip(View Item Page = 상품 상세)를 담당하고 있는 Backend Engineer 입니다. 이번 블로그는 개발자를 잠 못 들게 만드는 코드 (잠 못 드는 밤 Feat: 내 전화를 받아 by Noc) 편입니다.Noc란 지마켓에서 관제 시스템 쪽에 근무하시는 분들입니다. (항상 감사합니다.) 저는 지마켓에서 실시간 트래픽을 맞으며 결제 지표에 영향을 주는 도메인을 맡고 있어서 장애와 아주 가까이에 있습니다.그렇기 때문에 관제 시스템 측으로부터 연락을 많이 받습니다.심지어 장난으로 저의 별명은 인간 SWAT이며 개인 프로필 사진입니다.과연 어떤 코드가 개발자를 잠 못 들게 만드는지 알아보도록 하겠습니다.try..
안녕하세요. 이번 포스트는 쿠버네티스 오퍼레이터를 직접 구현해 보고, 개발한 오퍼레이터를 로컬 쿠버네티스 클러스터에 적용하는 과정까지 설명드리려고 합니다. 예전에 지형님이 소개했었던 쿠버네티스 오퍼레이터 적용하기를 본 독자들이 있을 겁니다. 오퍼레이터는 커스텀 리소스(Custom Resource, CR)를 사용하여 미리 구성된 리소스들(Deployment, Service 등)을 관리하는 쿠버네티스 익스텐션 리소스입니다.커스텀 리소스 정의(Custom Resource Definition, CRD)를 통해 내가 만들고 싶은 커스텀 리소스의 스펙을 정의하고 오퍼레이터를 통해 커스텀 리소스의 세부 로직들을 수행합니다.나만의 오퍼레이터를 직접 구현하기 위해 프로그래밍 언어별 SDK들이 몇 개가 있습니다.Oper..