안녕하세요 저는 VI Engineering 팀 김윤제입니다.Gmarket Mobile Web Vip(View Item Page = 상품 상세)를 담당하고 있는 Backend Engineer 입니다.이번 블로그에서는 개인적으로 상품 상세 페이지에 넣고 싶었던현재 이 상품 몇 명이 보고 있어요 기능을 혼자 공부하며 개발해보는데 있어서어떻게 설계를 해야 최적의 성능을 낼 수 있을지 고민하였고 그 과정을 설명드리려고 합니다.자세한 내용은 아래에서 살펴보도록 하겠습니다.동작 과정요구사항은 다음과 같았습니다.상품 별로 중복되지 않은 사용자가 몇 명이 보고 있는지 실시간으로 집계하여 보여준다.현재 이 상품 몇 명이 보고 있어요 기능의 동작 과정은 다음과 같습니다.사용자가 웹 또는 앱을 통하여 상품 상세 페이지에 접속..
안녕하세요 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화면을 통해 관리할 수 있습니다. 누가 어떤 피드를 작성했고 누가 좋아요 버튼을 ..
⚠️ 본 글은 스크럼 표준 이론을 설명하는 것이 아닙니다. 안녕하세요. Dev platform 팀 임진욱입니다.지마켓의 Jira, Wiki, GIthub, CI/CD 시스템을 담당하고 있습니다. 지마켓으로 이직 후, 1년간 업무를 진행하며 스크럼을 사용하는 경험기를 다룹니다.(👉 스크럼에 대해서 더 알고 싶은 사람은 스크럼 설명 - Jira software 문서를 참고하면 도움이 됩니다.)스크럼이란?스크럼은 팀이 일련의 가치, 원칙 및 관행을 바탕으로 작업을 구조화하고 관리할 수 있도록 지원하는 애자일 프로젝트 관리 프레임워크입니다.스크럼은 팀이 경험을 통해 배우고, 문제를 해결하면서 스스로 구성하며, 얻은 것과 잃은 것을 되돌아보며 지속적으로 개선하도록 유도합니다. 시스템 관리 엔지니어로서 연속적..
안녕하세요, 저는 Dev Platform 팀에서 사내 배포 시스템을 담당하고 있는 강대현입니다. 이번 포스팅에서는 Jenkins를 이용하고 있는 배포 시스템 개선 경험을 공유하려고 합니다. Jenkins는 Java 기반의 오픈 소스 도구로, 지속적 통합(Continuous Integration, CI)과 지속적 배포(Continuous Delivery, CD) 구축에 사용됩니다. 배경 이번 주제는 Continuous Delivery(이하 CD) 과정에 초점을 둔 배포 시스템의 이야기입니다. 사용 중인 사내 배포 시스템(이하 배포툴)은 직접 개발한 서비스와 오픈 소스 도구인 Jenkins를 이용하여 CD 파이프라인을 구성하고 있습니다. 배포툴은 웹 UI를 통해 배포 생성 및 승인과 같은 사용자 입력을 처리..
서론 안녕하세요. 지마켓의 원활한 서비스 운영을 위해 쿠버네티스 인프라를 운영 업무를 하고 있는 Platform Technology 팀 김지형입니다. Red Hat Openshift 기반의 쿠버네티스 클러스터를 운영하게 되면서 자연스럽게 적용하게 된 쿠버네티스 오퍼레이터에 대한 사례와 경험을 기술하고자 합니다. 오퍼레이터에 대한 간단한 설명과 쿠버네티스 오퍼레이터에 대해서 설명하고, 현재의 오퍼레이터 패턴이 가져다주는 이점과 한계에 대한 내용을 포함합니다. 오퍼레이터 디자인 패턴 오퍼레이터(Operator)는 2016년 CoreOS 블로그 포스트에서 공개된 디자인 패턴으로, 단어 그대로 운영자의 역할을 소프트웨어에 새긴 개념이라고 할 수 있습니다. SRE 엔지니어는 소프트웨어를 개발해 애플리케이션을 운영..
개요 안녕하세요. 지마켓에서 개발자분 업무의 편의를 도모하기 위한 클라우드 플랫폼 업무를 담당하고 있는 김지형입니다. 이번 글에서는 API 관리형 서비스인 Red Hat 3Scale 제품을 이용해 개발 팀 간 멀티테넌시 구축을 위해 고려한 부분과, 실 적용 과정에 대해 글을 쓰고자 합니다. 멀티테넌시 (Multi-tenancy) 멀티테넌시 (Multi-tenancy)는 하나의 소프트웨어 어플리케이션을 여러 고객에게 일관된 경험으로 서비스할 수 있게 하는 아키텍처를 말합니다. 클라우드 컴퓨팅이 발전하면서 가상화 및 컨테이너화를 통해 각각의 고객이 분리된 각각의 데이터를 이용할 수 있게 되었고 동일한 호스트 노드 내 단일 인스턴스지만 각각 별도의 앱을 이용하는 것처럼 구현할 수 있게 되었습니다. 인프라 멀티..