안녕하세요 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..
안녕하세요. Seller & SD Engineering 팀의 개발자 김민우입니다. 저는 주로 백엔드 개발을 담당하고 있지만, 최근에 프론트엔드 개발, 특히 React로 캘린더 컴포넌트 만들기에 도전했습니다. 이 글에서는 백엔드 개발자의 시각에서 본 프론트엔드 개발의 독특한 점들과 더불어 Props Drilling 문제를 해결한 경험을 공유하고자 합니다. 프론트엔드 개발에 대한 저의 경험은 전문적인 관점이 아닐 수 있지만, 이 분야에 대한 새로운 시각을 제공하려 합니다. 배경 : 저희 팀은 새로 오픈 할 ESM 개편안 중 '통계' 작업을 맡았습니다. 본래는 통계 페이지들의 특성상 상단에는 단순 조건 필터링, 하단에는 해당 조건에 따른 결과(그래프, 테이블 등)로 단순하게 구성하기 때문에 프론트에 대한 리..
IT라는 것은 우리가 속해서 항상 일을 하고 있는 영역이긴 하다. 하지만 삶도 비슷하지만 정신없이 살다 보면 현재 어디에 있는지 잊어버리기 쉽다. IT에 대해서 어떤 것이라는 의견을 내기는 너무 넓고 많은 전문가들이 있는 영역이라 조금 조심스럽긴 하지만 개인적인 경험을 기반으로 한번 이야기를 풀어보려 한다. 1.1 자동화의 추구 사람은 아마도 본능적이라고 생각될 만큼 효율적인 면을 추구하는 편인 것 같다. 본인이 직접 참여하지 않아도 축적된 지식적 패턴을 이용해 자동으로 돌아가는 기술적, 경제적인 무언가를 만드는 것을 계속적으로 추구해 왔다고 본다. 해당 부분이 초기에는 물리적인 요소와 대상을 기반으로 시도가 되었다고 보고, 현재는 사람의 행동과 정신적인 부분 양 쪽을 목표로 나아가고 있다고 본다..
Vue.js(이하 Vue)는 간편하게 웹 애플리케이션을 만들 수 있는 프론트엔드 프레임워크입니다. Vue를 사용하는 사람들 사이에선 인기가 높은 프레임워크이지만, 아무래도 React에 비해 인지도 및 사용자 수에서 많이 뒤떨어지는 것이 사실입니다. D3.js(이하 D3)는 'Data-Driven Document'의 약어로써(DDD -> D3), 웹 브라우저상에 여러 데이터 시각화 기능을 제공하는 자바스크립트 라이브러리입니다. 데이터 시각화 라이브러리는 다른 여러 가지가 있지만, 높은 자유도를 바탕으로 여러 신기한 차트를 표현할 수 있는 라이브러리는 D3 외에는 없습니다. 다만, 비교적 저수준의 기능을 다루기에 러닝 커브가 있는 편이고 적극적으로 사용하는 사용자가 많다고 하기는 힘든 실정입니다. 이렇게 ..
안녕하세요 VI Engineering 팀 김윤제입니다. 저는 현재 Gmarket Mobile Web Vip(View Item Page = 상품 상세)를 담당하고 있는 Backend Engineer 입니다. 올해 6월 Gmarket Mobile Web Vip Backend 쪽의 성능을 최대 9배, 평균 5배를 개선하였습니다. 개선 직후 BXE 실 & 팀장님께 발표를 하고 회사 블로그에 글을 작성해야지 하면서 미루다가 지금은 어느덧 12월이 되었네요. 작업을 시작했을 때만 생각해도 막막했었는데 성공적으로 끝내니 그 기분은 이루 말할 수 없습니다. 자세한 이야기는 아래에서 상세히 다루도록 하겠습니다. View Item Page 성능개선 설명에 앞서 제가 맡고 있는 Vip (View Item Page) 파트에 ..
안녕하세요, Shopping Service API팀 강희정입니다. 이번 글에서는 Kotlin에서 리스트를 추출하는 메서드에 대해 다뤄보고자 합니다. 비교적 가벼운 내용이긴 하겠지만, 비슷하면서 다른 기능을 하는 메서드들을 정리해야 할 필요가 있다고 생각되어 글을 작성하게 되었습니다. Kotlin을 사용하는 사람들은 대부분 프로그래밍을 처음 접해보는 사람들이 아니라 다른 언어, 특히 Java를 주 언어로 사용하던 사람들일 텐데요, Java 개발자라면 리스트의 부분 리스트를 구해야 할 때 자연스레 subList 메서드를 사용해야겠다! 라는 생각이 드리라 예상됩니다. 실제로 subList는 Kotlin에서 지원하는 메서드기에, Kotlin에 익숙하지 않은 Java 경력의 개발자들은 한 치의 의심도 없이 sub..
안녕하세요.지마켓 Seller & SD Engineering팀 김민우입니다. 며칠 전 어머니께서 대뜸 저에게 미니 전시회를 열 거라고 하시며 팜플렛을 만들었는데, 혹시 모바일로 만들어서 전달하는 게 가능한지 물어보시더군요. '아니, 저 백엔드 개발자라서 이런거 몰라요' 라는 생각이 머릿속을 스쳤지만, 필자는 어쩌다 보니 이런 기술적인 요청에도 반응하는 효자가 되었습니다. 그렇게 주말을 초대장 만드는데 보내게 되었고, 그 경험을 공유하고자 합니다. 요점부터 말씀드리자면, 방법은 html을 만들고 이를 Github Pages를 활용하여 정적페이지를 무료로 호스팅하는 것입니다. (즉, 프론트 서버만 해당됩니다. 백엔드 서버의 무료 배포 및 호스팅은 Github에서 제공하지 않습니다.) 1. Github..