레거시 시스템의 성능과 정합성 두 마리 토끼 잡기
적은 리소스 적당한 효과 개발자는 종종 레거시 시스템이나 코드를 마주할 때가 있습니다. "레거시" 는 양면적이어서 잘 돌아가고 있는 시스템이면서도 앞으로의 요구사항 변경에 수용력이 부족해 보이는 시스템이기도 합니다. 이러한 레거시와의 공존은 필연적이면서도 효과적인 공존을 위한 부단한 아이디어들을 필요로 하기도 합니다. 보통 레거시 시스템을 대할 때면 이런 문장을 머리에 두고 생각합니다. "적은 리소스만 들여서 적당한 효과를 얻을 방법이 없을까?" 항상 이런 접근만이 답이 되진 않지만 레거시 시스템은 우리에게 친절하지만은 않습니다. 조금 까탈스러운 제약이나 조건들을 가지고 있죠. 조금 지난 미션이지만 재미있게 해결했던 사례를 한번 소개하고자 합니다. 레거시 시스템 소개 우리 팀의 주요 역할은 주문 시스템의..
ArchitectureBackendTools
핏펫의 배포시 버저닝 관리 자동화하기
BackendCI/CDDevOpsDockerTools
프로젝트 관리를 위한 JIRA 활용기
안녕하세요 Data Platform Engineer 조광진입니다.2019년에 지마켓 Data Platform 팀에 합류하여 데이터 플랫폼에 관련된 다양한 업무를 진행하고 있습니다.저희 팀에서 하는 업무에 대해 간단하게 설명드리면 글 전반적인 내용에 도움이 될 것 같아 먼저 소개하도록 하겠습니다.Hadoop 기반의 빅데이터 플랫폼인 Data Lake 활용을 통해 전사에서 활용되는 데이터의 수집, 적재, 분석에 대해 직 간접적으로 도움을 드리고 있으며, 비정형 데이터를 다양하게 활용하기 위한 Redis, Elastic Search, MongoDB 데이터 플랫폼도 운영하고 있습니다. Data Platform 팀이 사용하는 기술 스택은 아래와 같습니다.팀 목표는 사용자들에게 안정적이고 편리한 데이터 플랫폼을 제..
BackendDatabaseTools
트렌비 리뷰 서비스의 성능 개선기
들어가며 안녕하세요, 트렌비 백엔드 개발자 도현입니다. 이 글에서는 트렌비 리뷰 서비스 (review-service) 의 성능을 개선하게 된 이야기를 해보고자 합니다. 문제 상황 작년 11월경 리뷰 서비스가 런칭되고 시간이 지남에 따라 비즈니스가 점점 고도화되었고, 사용자와 트래픽이 증가함에 따라 아래와 같은 시스템 알럿이 발생하기 시작했습니다. 발생하는 원인은 다양했는데, 다음 2가지 유형이 가장 빈번했습니다. DB 커넥션풀 고갈 이슈 API
BackendDatabaseDevOpsMonitoringPerformance
짧고 굵게 지마켓 API Gateway 사용하기
안녕하세요. 지마켓에서 개발자분 업무의 편의를 도모하기 위한 클라우드 플랫폼 업무를 담당하고 있는 김지형입니다.저희 지마켓 개발 플랫폼으로서 몇 가지가 존재하는데 Fusion이라는 Openshift, Kubernetes 기반의 컨테이너 플랫폼을 개발자 분들께서 주로 이용하시지만, API 통합 관리 도구로서 API Gateway 플랫폼도 존재합니다. Nginx 프로그램을 붙여서 로드밸런싱이나 페이지 요청을 처리하는 팀이 많겠지만, Nginx Controller까지 붙여서 API 관리까지 하기에는 다소 벅찰 수 있다고 생각합니다. 본 API Gateway 이용도 API 관리의 한 가지 선택지로서 이용해볼 수 있다는 것을 알리기 위해, 또한 타사에서도 API Gateway를 적용하고자 하는 팀을 대상으로 글을..
BackendDevOpsTools
플라네타리움
2022-09-14 · 거의 4년 전
오픈 소스인 립플래닛 프로젝트에 기여 하기 전에 알아야 할 파일들
개발자 커리어와 오픈 소스는 떼려야 뗄 수 없는 관계입니다. 오픈소스를 통해 얻을 수 있는 것은 경력상의 혜택 뿐 아니라, 안전한 환경에서 새로운 기술을 배우며 효율적이고 효과적으로 의사소통하는 방법과 같은 소프트 스킬을 배울 수 있는 기술적 혜택, 그리고 이와 더불어 인맥적 혜택도 있습니다. 플라네타리움의 핵심 기술인 립플래닛은 오픈 소스 입니다. 회사 업무를 병행하며 오픈 소스 기여를 하기란 쉽지 않은데, 립플래닛 개발 자체가 오픈 소스 기
BackendCareerTools
왜 내가 작성한 JavaScript Date 코드가 서버에서는 다르게 보이는 거죠?
JavaScript에서 흔히 혼동되는 Date 객체에 대한 개념을 정리해봅니다.
BackendFrontendTools
가볍게 시작하는 Databricks Community Edition 환경설정 for Spark
소개안녕하세요:) 지마켓에서 데이터로 여러 가지 흥미로운 개발을 하고 있는 한한주입니다.이번에 소개해 드릴 내용은 Databricks Community Edition에 대한 기본적인 설정과 사용법에 대한 내용입니다.Databricks Community Edition에서 제공하는 클라우드 환경을 사용하면 간단하게 Spark 작업환경을 만들 수 있어 Spark를 공부하고자 하거나 간단하게 테스트를 할 때 매우 유용합니다. (사실 제가 유용하게 사용했습니다^^;; 독자분들도 유용하게 사용하시기를 바라며..)이번 블로그에서는 Databricks Community Edition을 사용하여 무료로 간단히 Spark환경을 만들어 보도록 하겠습니다.그럼 Start!Databricks들어가기 앞서 먼저 Databrick..
AI/MLBackendDatabaseTools
Multi Task Learning 기반 챗봇 모델 개발
챗봇은 특정한 규칙 또는 인공지능(AI)을 기반으로 대화형 인터페이스를 통해 유저와 인터랙션 하는 서비스입니다. 현재 다양한 산업 분야에서 고객 응대를 위해 챗봇을 사용하고 있고, 고객과 직접적으로 연결된 서비스이기 때문에 챗봇에 대한 연구도 꾸준히 이뤄지고 있습니다. 게임은 매일 수천, 수만 명의 유저가 이용하는 서비스입니다. 이전에는 수많은 유저가 질문이나 요청을 하게 되면 GM이나 고객센터 담당자가 일일이 처리하였기 때문에 […]
AI/MLBackendMobilePerformance
웹 개발자라면 알고 있어야 할 HTTP의 진화 과정
HTTP의 각 버전이 등장하게 된 배경을 알아보고 특징을 정리해봅니다.
ArchitectureBackendTools
SK C&C
2022-09-01 · 거의 4년 전
JEUS Bug에 의한 OutOfMemoryError 현상 - WAS Troubleshooting 사례(3)
JEUS Bug에 의한 OutOfMemoryError 현상 - WAS Troubleshooting 사례(3) OO 업무시스템은 총 6대의 JEUS instance를 clustering 구성해 운영중인데, 간헐적으로 원인을 알 수 없는 OutOfMemoryError가 발생하며 JEUS Instance가 Hang-up이 걸린다고 한다. 문제 발생시점이나 패턴에서는 어떠한 규칙성도 찾을 수가 없는 상황에서, Hang-up이 발생할 때까지 마냥 기다릴
BackendDevOpsMonitoringPerformance
1년차 개발자의 훈수 두기
안녕하세요. 스포카 제품팀의 백엔드 프로그래머 이지민입니다. 어느덧 스포카에 입사한 지, 개발자가 된 지 1년이 되었습니다! 개발자 1년, 참 고생도 많이 하고 다사다난했던 것 같습니다. 그만큼 배운 점도 많기에 이 글에서는 1년 동안 스포카를 다니면서 신입 개발자로서 느낀 것들과 배운 점들, 그리고 질문받았던 내용들을 담아보려고 합니다. 1년 차 개발자가 번데기 앞에서 주름잡는다고 생각하시고, 동시에 개인차를 인지하시면서 재밌게 읽어주시면 좋
BackendCareerMobileTools
KafkaItemReader 적용기
KafkaItemReader 적용기안녕하세요 VIP & Vertical 팀 김윤제입니다.VIP 파트에서 상품 상세 페이지 및 리뷰 업무를 맡고 있습니다.최근 리뷰 개편 작업에 Kafka 도입을 해보며 주니어 개발자로서 겪고 배운 내용을 공유드리기 위해 작성했습니다.부족하게 쓴 내용일지라도 도움이 되었으면 좋겠습니다. Kafka를 선택한 이유제가 속한 VIP & Vertical팀 (VIP 파트)에서 Kafka를 사용하게 된 이유는 크게 다음과 같이 두 가지 이유가 있었습니다.RDB의 부하 조절을 위해 미들웨어인 메시징 플랫폼을 두어 데이터를 처리Review 등록 이후에 같은 데이터를 가지고 여러 가지 작업(Junk 판독, Review Summary) 등의 배치 작업을 하는 병렬 프로세싱을 원했습니다. (..
BackendData EngineeringDevOpsKafka
카카오페이
2022-08-29 · 거의 4년 전
이미지 처리를 위한 파이썬 서버 프레임워크 선정기 with Django, FastAPI, Sanic
얼굴 인식, OCR 등 실생활에서의 문제를 해결하기 위해서는 이미지 처리를 위한 서버가 필요합니다. 이미지 처리를 담당하는 서버의 프레임워크를 선정하기 위한 테스트 내용과 결과를 공유합니다.
BackendDjangoPython
우당탕탕 Kotlin 전환기
Kotlin 전환 목적 Kotlin이 좋다면서요? (Java 개발자의 막연한 생각) Java 백엔드 개발 일을 하면서 주변으로부터 종종 Kotlin이 좋다는 이야기를 들었습니다. null 처리도 좋고, Coroutine을 이용한 동시성 프로그래밍도 직관적이고, 보일러플레이트 코드도 줄고, 기존 Java와 호환도 되고… ‘어쨌든 좋다(?)’는 이야기만 들었지, Kotlin을 실제 업무에 적용해보지는 않았기에 장점을 체감하지는 못했습니다. 그러던
BackendJavaKotlin
카카오스타일
2022-08-28 · 거의 4년 전
잘못된 브랜치 배포를 방지하기
반복해서 실수가 발생해서 수많은 사람들의 시간을 낭비하는데, 사실 시스템 개선에 조금만 시간을 썼으면 발생하지 않았을, 그런 문제들이 있습니다. 이런 상황을 알면서도 바쁘다는 핑계로 넘어가곤 하는데, 이번에 1년 이상 머리 한 구석에만 뒀던 이슈를 해결해 공유해볼까 합니다.
BackendCI/CDDevOps
오프라인 데이터가 필요할 땐, 로플랫!
BackendData EngineeringTools
Spock in Maven
안녕하세요. 저는 지마켓에서 백엔드 시스템을 개발하고 있는 양승권이라고 합니다. 이번에 저희 시스템 중 Maven으로 개발되어있는 시스템들에 Spock framework를 적용한 경험을 공유하고자 합니다. 하고 싶었던 것 신규 프로젝트를 진행하게 되면서 새로운 기능을 개발할 일이 생겼는데, Maven 프로젝트 라서 그런지 Test 쪽이 좀 부족한 상황이었습니다. 그래서 이 참에 한번 이 프로젝트에 적용해보고 다른 Maven 프로젝트에도 적용해보자고 생각했습니다. 아래와 같은 내용을 해보고 싶은 내용들을 도출하였습니다. Spock library를 활용하여 좀 더 직관적인 테스트를 해보자. Spock의 Groovy로 Test code를 작성해보자. 프로필 별로 구분하여 단위/통합 테스트를 구분하여 수행해보자..
BackendTestingTools