
MSA 환경에서의 장애 양상 우리는 장애를 피할 수 없습니다. 아무리 실력이 좋은 소프트웨어 개발자라 할지라도 완전무결한 시스템을 만들 수 없습니다. 물론 우리도 여러 방법으로 장애에 대응하고 있었습니다. 서버를 클러스터링하여 일부 서버에 문제가 발생하더라도 클라이언트는 정상 동작중인 다른 서버를 이용할 수 있습니다. 인프라를 분산 구축하는 것도 이러한 전통적인 장애 대응방식 중 하나입니다. 우리는 서버 클러스터링, 인프라 분산 구축과 같은 기존의 장애 대응 방식은 시스템의 완전한 실패를 대비하여 설계되었다는 것에 주목해야 합니다. 하드웨어 장비에 문제가 생겨 서버에 전원 공급이 안되거나 자연재해로 인해 데이터 센터의 데이터가 유실된 경우라면 이런 기존의 장애 대응 방식으로 우리는 큰 도움을 받을 수 있..

적은 리소스 적당한 효과 개발자는 종종 레거시 시스템이나 코드를 마주할 때가 있습니다. "레거시" 는 양면적이어서 잘 돌아가고 있는 시스템이면서도 앞으로의 요구사항 변경에 수용력이 부족해 보이는 시스템이기도 합니다. 이러한 레거시와의 공존은 필연적이면서도 효과적인 공존을 위한 부단한 아이디어들을 필요로 하기도 합니다. 보통 레거시 시스템을 대할 때면 이런 문장을 머리에 두고 생각합니다. "적은 리소스만 들여서 적당한 효과를 얻을 방법이 없을까?" 항상 이런 접근만이 답이 되진 않지만 레거시 시스템은 우리에게 친절하지만은 않습니다. 조금 까탈스러운 제약이나 조건들을 가지고 있죠. 조금 지난 미션이지만 재미있게 해결했던 사례를 한번 소개하고자 합니다. 레거시 시스템 소개 우리 팀의 주요 역할은 주문 시스템의..

안녕하세요 Data Platform Engineer 조광진입니다.2019년에 지마켓 Data Platform 팀에 합류하여 데이터 플랫폼에 관련된 다양한 업무를 진행하고 있습니다.저희 팀에서 하는 업무에 대해 간단하게 설명드리면 글 전반적인 내용에 도움이 될 것 같아 먼저 소개하도록 하겠습니다.Hadoop 기반의 빅데이터 플랫폼인 Data Lake 활용을 통해 전사에서 활용되는 데이터의 수집, 적재, 분석에 대해 직 간접적으로 도움을 드리고 있으며, 비정형 데이터를 다양하게 활용하기 위한 Redis, Elastic Search, MongoDB 데이터 플랫폼도 운영하고 있습니다. Data Platform 팀이 사용하는 기술 스택은 아래와 같습니다.팀 목표는 사용자들에게 안정적이고 편리한 데이터 플랫폼을 제..

안녕하세요. 지마켓에서 개발자분 업무의 편의를 도모하기 위한 클라우드 플랫폼 업무를 담당하고 있는 김지형입니다.저희 지마켓 개발 플랫폼으로서 몇 가지가 존재하는데 Fusion이라는 Openshift, Kubernetes 기반의 컨테이너 플랫폼을 개발자 분들께서 주로 이용하시지만, API 통합 관리 도구로서 API Gateway 플랫폼도 존재합니다. Nginx 프로그램을 붙여서 로드밸런싱이나 페이지 요청을 처리하는 팀이 많겠지만, Nginx Controller까지 붙여서 API 관리까지 하기에는 다소 벅찰 수 있다고 생각합니다. 본 API Gateway 이용도 API 관리의 한 가지 선택지로서 이용해볼 수 있다는 것을 알리기 위해, 또한 타사에서도 API Gateway를 적용하고자 하는 팀을 대상으로 글을..

소개안녕하세요:) 지마켓에서 데이터로 여러 가지 흥미로운 개발을 하고 있는 한한주입니다.이번에 소개해 드릴 내용은 Databricks Community Edition에 대한 기본적인 설정과 사용법에 대한 내용입니다.Databricks Community Edition에서 제공하는 클라우드 환경을 사용하면 간단하게 Spark 작업환경을 만들 수 있어 Spark를 공부하고자 하거나 간단하게 테스트를 할 때 매우 유용합니다. (사실 제가 유용하게 사용했습니다^^;; 독자분들도 유용하게 사용하시기를 바라며..)이번 블로그에서는 Databricks Community Edition을 사용하여 무료로 간단히 Spark환경을 만들어 보도록 하겠습니다.그럼 Start!Databricks들어가기 앞서 먼저 Databrick..

안녕하세요. SmilePay Engineering 팀 문한국입니다. 저는 이번 포스팅을 통하여 Junit Test 코드 작성시 유용한 몇 가지 팁을 공유하려고 합니다. 우선적으로 꿀팁 테스트 코드를 작성하기 위한 적당한 코드가 필요했습니다. (TDD로 테스트 코드를 먼저 작성해보면 좋았겠지만 이해를 돕기에는 적당한 코드를 제공하고 순서대로 테스트 코드를 작성해 보는 게 도움이 되겠다고 생각했습니다.) 홀짝 게임 어떤 프로그램을 짜보는게 간단하면서 테스트 코드를 소개하기에 적당할까 고민하다가 저는 어릴 적 동네 문방구에서 했던 홀짝 게임이 떠올랐습니다. 게임의 룰은 간단합니다. 1. 사용자는 홀과 짝 중 하나를 선택하고 게임을 시작합니다. 2. 게임기에서는 랜덤으로 홀과 짝이 나옵니다. 3. 내가 선택한 ..

KafkaItemReader 적용기안녕하세요 VIP & Vertical 팀 김윤제입니다.VIP 파트에서 상품 상세 페이지 및 리뷰 업무를 맡고 있습니다.최근 리뷰 개편 작업에 Kafka 도입을 해보며 주니어 개발자로서 겪고 배운 내용을 공유드리기 위해 작성했습니다.부족하게 쓴 내용일지라도 도움이 되었으면 좋겠습니다. Kafka를 선택한 이유제가 속한 VIP & Vertical팀 (VIP 파트)에서 Kafka를 사용하게 된 이유는 크게 다음과 같이 두 가지 이유가 있었습니다.RDB의 부하 조절을 위해 미들웨어인 메시징 플랫폼을 두어 데이터를 처리Review 등록 이후에 같은 데이터를 가지고 여러 가지 작업(Junk 판독, Review Summary) 등의 배치 작업을 하는 병렬 프로세싱을 원했습니다. (..

안녕하세요. 저는 지마켓에서 백엔드 시스템을 개발하고 있는 양승권이라고 합니다. 이번에 저희 시스템 중 Maven으로 개발되어있는 시스템들에 Spock framework를 적용한 경험을 공유하고자 합니다. 하고 싶었던 것 신규 프로젝트를 진행하게 되면서 새로운 기능을 개발할 일이 생겼는데, Maven 프로젝트 라서 그런지 Test 쪽이 좀 부족한 상황이었습니다. 그래서 이 참에 한번 이 프로젝트에 적용해보고 다른 Maven 프로젝트에도 적용해보자고 생각했습니다. 아래와 같은 내용을 해보고 싶은 내용들을 도출하였습니다. Spock library를 활용하여 좀 더 직관적인 테스트를 해보자. Spock의 Groovy로 Test code를 작성해보자. 프로필 별로 구분하여 단위/통합 테스트를 구분하여 수행해보자..