안녕하세요 저는 VI Engineering 팀 김윤제입니다.Gmarket Mobile Web Vip(View Item Page = 상품 상세)를 담당하고 있는 Backend Engineer 입니다.이번 블로그에서는 개인적으로 상품 상세 페이지에 넣고 싶었던현재 이 상품 몇 명이 보고 있어요 기능을 혼자 공부하며 개발해보는데 있어서어떻게 설계를 해야 최적의 성능을 낼 수 있을지 고민하였고 그 과정을 설명드리려고 합니다.자세한 내용은 아래에서 살펴보도록 하겠습니다.동작 과정요구사항은 다음과 같았습니다.상품 별로 중복되지 않은 사용자가 몇 명이 보고 있는지 실시간으로 집계하여 보여준다.현재 이 상품 몇 명이 보고 있어요 기능의 동작 과정은 다음과 같습니다.사용자가 웹 또는 앱을 통하여 상품 상세 페이지에 접속..
안녕하세요. Vertical Engineering 팀의 이지민입니다.지마켓의 여행 플랫폼은 작년에 포스팅한 오픈마켓에서 여행 플랫폼으로 살아남기에서 소개드린 바 있습니다.여행 플랫폼은 지마켓의 커머스 시스템과 OTA(온라인 여행사 제휴업체) 서버의 API를 통합하여 서비스를 제공합니다. 이처럼 여러 서버와 의존성이 높아, 서비스의 복잡도가 높습니다. 특히, 실시간 API 연동을 요구하여, 견고하게 API를 호출해야 하는 비즈니스 도메인은 다음과 같습니다.여행 상품 상세 페이지실시간 예약이번 글에서는 여행 상품 상세 페이지와 실시간 예약의 주요 특징과 고려 사항에 대해 설명하고자 합니다.(1) 여행 상품 상세 페이지여행 상품 상세 페이지는 내결함성(fault tolerance)이 높아야 하는 화면입니다. ..
안녕하세요. Mobile Application 팀 전계원입니다.어느 날 Android 개발 중 jcenter 에 있는 경고 문구를 확인하였습니다.이에 궁금증을 가지고 jcenter 와 관련하여 찾아본 이런저런 내용들에 대해 공유드리고자 합니다. 0. 프롤로그 - jcenter() 코드에 그어진 한 개의 줄 Android Studio 의 다크테마 속에서 jcenter() 코드가 노랗게 반짝이고 있었습니다.마우스를 올려보니 "jcenter maven repository 는 update 를 제공하지 않는다" 라고 쓰여있었습니다. jcenter 에 대체 무슨 일이 있었던 것일까요?1. Gradle 저장소에서 사라진 jcenter 의 흔적https://docs.gradle.org/current/userguide/..
안녕하세요 Data Product 팀 박상우입니다. 이번에 제가 소개해드릴 내용은 팀 내 session Info data 적재 및 API 서비스 구축에 적용한 Redis Stream에 대한 이야기입니다. 저희 팀에서는 User의 행동 정보를 수집하는 프레임워크 중 하나인 montelena receiver를 통해 수집한 데이터 (view, event, impression 등)를 post Processor라는 데이터 파이프라인 application을 통해 적재, 가공해서 각종 지표 트래킹 및 분석에 활용할 수 있도록 제공하고 있습니다. 그중 유니크한 active user를 식별하기 위해 session_id를 발급하고, 그 히스토리를 남겨 광고에 활용하고 있는데,'Big Smile Day' (지마켓 최고의 ..
이전 포스트: 쿠버네티스 오퍼레이터를 Golang으로 개발해보기 안녕하세요.Cloud Strategy팀 박규민입니다. 지난번에 Golang으로 쿠버네티스 오퍼레이터를 간단하게 만들어 봤습니다. 하지만 국내에서는 아무래도 Golang보다는 Java의 수요가 압도적으로 많은데요. 이번 포스트로 Java로 오퍼레이터를 구현하는 과정을 보여드리겠습니다. Java Operator SDKJava Operator SDK는 Kubernetes Client Java API인 fabric8io를 기반으로 작성되어 있습니다. 이는 세부적으로 쿠버네티스와 상호 작용하기 위한 Low Level 단에서의 코드 작성 걱정 없이 개발자에게 친숙한 Java API를 사용하여 오퍼레이터를 쉽게 작성할 수 있도록 설계되어 있습니다...
안녕하세요. Web Frontend팀 이민하입니다. 지난 편에서 꿀템 서비스를 기획하고 필요한 개념들의 이름을 지어주며 이를 바탕으로 데이터베이스를 설계해 보았습니다. 이번 편에서는 어떤 기술 스택을 선택했는지 소개하도록 하겠습니다. 기술 스택 선택과 개발 External 망에는 기존에 BSD 프론트엔드 영역 어플리케이션들이 있습니다. node.js와 경량 웹프레임워크인 fastify로 되어있습니다. 프론트에서 api를 호출하면 attraction 집계 어플리케이션이 메인 데이터 저장소인 Oracle DB에서 데이터를 조회해 옵니다. 구매내역, 링크루 등 외부 api를 호출한 결과도 전달해 줍니다. 저장된 데이터는 Admin화면을 통해 관리할 수 있습니다. 누가 어떤 피드를 작성했고 누가 좋아요 버튼을 ..
안녕하세요. Web Frontend팀 이민하입니다. 지난 빅스마일데이에 첫 론칭한 꿀템 피드 서비스! 이 서비스를 만들기 위한 여정을 여러분께 소개드리려고 합니다. Intro시작은 디지털 빅세일이 끝난 2월 말.. 저희 팀장님의 한마디에서 시작했습니다."챗GBT를 우리만 보기에 아깝지 않아..!?"챗GBT(Gmarket Best iTem)는 임직원분들이 직접 추천하는 상품을 모아둔 페이지로 하나하나가 진짜 꿀템입니다! 아깝다고 생각했습니다. 저도 GBT를 보며 많이 샀기 때문에 고객도 이 페이지를 같이 보면 구매가 많이 일어날 것이라고 생각했습니다.추가로 고객들이 게시글을 작성할 수 있다면..? 그러면 고객들이 우리 사이트에서 놀 수 있는 공간이 되지 않을까?또한 사내에서도 우리 프러덕에 커뮤니티 기능을..
안녕하세요.Seller & SD Engineering팀의 김민우입니다. 이번 글은 ESM(지마켓 판매자 사이트) 개편 중 '문의하기' 개발을 맡으며 겪었던 어려움과 이를 해결해 나가는 몇 가지 방법들을 소개하고자 합니다. 제가 개발 맡은 부분은 판매자에게 구매자의 문의내용을 담당하는 '게시판 문의', 그리고 CS(고객센터)에서 주는 '긴급 메시지'를 통합하여 지마켓과 옥션 두 사이트에 대해 각각 보여주는 통합 페이지를 개편시키는 일이었습니다. 각설하고 조회 성능을 올린 결과물부터 영상으로 보시죠. 영상에서 보셨듯이, 대형 셀러의 경우 한 페이지를 로드하는 데 기본 몇십 초가 걸립니다. 페이지를 넘길 때조차 마찬가지입니다. 상품이 많아질수록 문의도 증가하기 마련인데, 모든 문의에 일일이 답변하기는 어..