MySQL만 써봤는데... MongoDB 프로젝트에 투입됐다🤯
빅데이터라는 시대의 요구에 맞추어 NoSQL이 등장한 지 십 년이 넘는 세월이 흘렀습니다. 하지만, 아직 RDB에 비해서 스키마 설계를 위한 참고 자료가 부족하다고 생각되는데요. 저 또한 MySQL만 사용해오던 백엔드 개발자로서 신규 프로젝트에서 갑작스럽게 MongoDB 스키마를 설계하게 되어 꽤 당혹스러웠던 경험이 있습니다. 저처럼 NoSQL, 그중에서도 MongoDB를 처음 사용하게 된 개발자들을 위해서 빠르게 기본 개념을 훑고 바로 스키마 설계가 가능하도록 도움을 줄 수 있는 글을 써보려 합니다. 그래서 MongoDB를 도대체 왜 쓰는데? NoSQL/MongoDB 이름만 들어본 분들을 위해 특징 및 사용목적을 간단하게만 짚고 넘어가는 게 좋을 것 같습니다. 인터넷 서비스가 점점 많은 곳에 보급되고..
AI/MLBackendDatabase
데브시스터즈
2022-08-02 · 거의 4년 전
Unity 프로젝트를 위한 Git Hooks 활용
Git으로 관리하는 Unity 게임 클라이언트 프로젝트에서의 Git Hooks 활용 방안에 관한 제안
BackendDevOpsTools
Metastable Failure in Distributed Systems
버즈빌 개발팀에서는 매주 금요일, 모든 팀의 개발자들이 모여 본인이 관심있는 분야에 대한 노하우나 담당하고 있는 업무와 관련된 새로운 기술에 대한 논의를 진행하는 시간을 가지고 있습니다. 이 시간을 통해 내가 알고 있는 것들에 대해 더 확실히 알고 모르는 것들에 대해 배우며 이를 바탕으로 보다 효율적이고 창의적으로 업무를 진행하기 위해 노력하고 있습니다.…
ArchitectureBackendDevOpsMonitoring
확장성 높은 카프카 구성을 위한 서비스 설계
카프카와 확장성 카프카를 사용하여 환경을 구성하는 과정에서 확장성이 필요한 서비스를 운영하기 위한 고민이 있었습니다. 일면의 가용성이나 확장성에 대해서는 카프카는 아주 훌륭한 도구였으나 또 다른 측면에서 딱딱하게 구는 부분도 있었습니다. 리파티셔닝과 리밸런싱 카프카가 제공하는 기능의 몇 가지는 파티션이라는 구조를 기반하고 있습니다. 일단 카프카는 기본적으로는 메시지의 순서를 보장하지 않지만 메시지의 순서를 일부 보장하며 해당 순서를 기반으로 commit과 offset을 제공하는 기반은 파티션입니다. 따라서, 파티션에 의해 좌우되는 요소들이 많습니다. 예를 들면 파티션은 메시지의 동시처리의 상한을 만듭니다. 파티션 수 보다 많은 컨슈머의 수는 메시지 처리 속도 측면에서 의미가 없습니다. 더 많은 컨슈머를 ..
BackendInfraKafkaMSAPerformance
카카오페이 주니어 서버 개발자의 이모저모
카카오페이 주니어 서버 개발자가 전하는 카카오페이 입사 꿀팁, 업무 적응기, 신사옥 엿보기, 마케팅플랫폼팀 소개 이야기
BackendCareerCulture
Node.js로 Firebase Dynamic Link 다루기
안녕하세요, 비브로스 백엔드팀에 새로 합류하게 된 김현섭입니다.
BackendNode.jsTools
데브시스터즈
2022-07-12 · 약 4년 전
9가지 프로그래밍 언어로 배우는 개념: 1편 - 타입 이론
프로그래밍 언어들을 비교해가며 타입 이론을 알아보고 더 나은 코드를 작성하는 방법을 고민해봅니다.
AI/MLBackendTools
난세의 영웅 gRPC
“천하는 오랫동안 합쳐져 있었다면 반드시 나뉘어지게 되고, 오랫동안 나뉘어져 있었다면 반드시 합쳐진다” *소설 <삼국지연의>의 첫 문장* 데이터 통신의 유구한 역사 이야기하기 전에 앞서 프로그램의 탄생 후 프로그램간 통신 기술들을 간략히 되짚어 보면, 단일 머신에서는 File, Memory, UNIX PIPE, RPC, Socket 등의 기술들로 행해졌고, 물리적으로 분리된 머신에서는 HTTP, CORBA, RMI, SOAP 등의 웹서비스 춘추
ArchitectureBackendDevOpsPerformance
우당탕탕 주문서 개발기
안녕하세요. 키친보드 팀의 백엔드 프로그래머 남경호입니다. 최근 키친보드 팀에서는 정비기간을 마친 후 처음으로 제품 개발을 위한 프로젝트를 성황리에(?) 마쳤습니다. 약 7주간 진행했던 이 프로젝트는 키친보드가 제공하던 기존 기능과는 전혀 다른 성격의 기능을 제공하기 위한 프로젝트였습니다. 그러다 보니 개발할 내용도 많고 프로젝트 일정도 넉넉하지 않아 말도 많고 탈도 많았던 프로젝트였던 것 같습니다 ^^;; 아무튼! 이 글에서는 이번 프로젝트에
BackendDevOpsPerformanceTools
데브시스터즈
2022-07-05 · 약 4년 전
테스트 케이스 관리를 JIRA로 하자! : 웹서비스셀의 테스트 관리 툴 도입기
엑셀에서 벗어나 JIRA에서 제공하는 테스트 관리 툴을 이용해 테스트 케이스를 작성, 테스트 수행, 결과 리포트 작성, 이슈 관리까지 할 수 있는 방법을 알아봅니다.
BackendTestingTools
어서 와, 광고 데이터 수집은 처음이지? (feat. kraken)
이번 글에서는 매드업의 DMP 프리즘의 일부인 크라켄을 소개합니다. 크라켄은 매드업에서 구축한 데이터 수집 플랫폼입니다. API 호출 제약이 상대적으로 빡빡한 매체의 데이터 수집을 담당합니다. API 호출 제약으로 인해 어떤 어려움이 있었는지, 그리고 크라켄은 어떻게 이런 어려움을 극복했는지 알아보겠습니다. 비개발자도 편하게 읽으실 수 있도록 기술적인 내용은 후반부에 짧게 다룹니다. 어서 와, 광고 데이터 수집은 처음이지? 구글, 페이스북, 트
BackendData EngineeringTools
상품 추천 알고리즘 Item-CF의 최적화 여정
만 30개의 이커머스을 광고주로 삼고 있는 버즈빌. 이들을 위한 리타겟팅 광고 솔루션을 고도화하기 위해 도입된 상품 추천 알고리즘: Item-CF. 이 알고리즘 최적화와 적용 과정에 대해서 알아보겠습니다. 버즈빌의 리타겟팅 광고 솔루션 버즈빌에서는 매출의 20% 이상을 리타겟팅 광고 상품으로 발생시키고 있습니다. 전통적으로는 리타겟팅 광고는 유저가 이커머스…
AI/MLBackendData AnalysisPerformanceRecommendation
[여의도 43층 사람들] Data Engineer 에게 무엇이든 물어보세요!
뱅크샐러드 Data Engineer는 무슨 일을 하나요? 뱅크샐러드 Data Engineer…
AI/MLBackendDatabase
데브시스터즈
2022-06-28 · 약 4년 전
“DevOps”의 인적 확장 (The human scalability of “DevOps”)
'The human scalability of DevOps' 라는 글을 번역하여 데브옵스 조직에 대해 고민해본 많은 분들에게 알려드리고 싶습니다.
BackendCultureDevOps
오토피디아 데이터 웨어하우스 구축하기
스타트업 데이터 배관공 생존기 1편 (DW.. 그거 어떻게 만드는건데)
BackendData EngineeringDatabase
화해의 Data Warehouse를 소개합니다
Data Lake 와 Data Warehouse DevDay에서 화해에서 데이터를 활용하는 과정에서 겪은 문제와 그 문제를 해결하기 위해 어떤 고민을 거쳐 Data Warehouse가 구축되고 있는지 소개하는 세션을 진행했는데, 당시의 발표자료를 다듬어 블로그에도 소개합니다.
BackendData EngineeringDatabase
배포를 안전하게 - 카나리 배포, 롤백
배포에서 속도와 안전성 두 마리 토끼를 잡기란 쉽지 않습니다. 이 글에선 버즈빌에선 어떻게 안전성 문제를 해결했는지 소개합니다. - 배포를 우아하게 - 원-클릭 배포 - 배포를 안전하게 - 카나리 배포 전략, 롤백 - 배포를 빠르게 - DIY(Deploy It Yourself) 배포를 안전하게 - 카나리 배포 전략, 롤백 이전 글 - 배포를 쉽게 - 에서…
BackendCI/CDDevOpsMonitoring
44BITS
2022-06-20 · 약 4년 전
Django Rest Framework 레시피
Django Rest Framework를 사용할 때 유용한 레시피를 소개합니다.
BackendDjango