개발자를 위한 레디스 튜토리얼 04 이것만은 하지 마세요! 이제 많은 분이 요청주셨던 레디스의 장애 포인트에 대해서 말씀드리려고 합니다. 레디스, 잘 몰라도 괜찮으니 요구사항 파악하기 (캐시용? 저장소용?) 서비스에서 레디스의 도입을 고민할 때, 캐시용으로 사용할 것인지, 혹은 저장소용…
Kurly에서 주문을 모니터링 하는 법 Legacy 시스템에서 주문 모니터링을 Elasticsearch로 이전했습니다. 주문을 모니터링 하는 개발팀, 출처 : GIPHY 들어가며 컬리 개발팀은 24시간 운영되는 마켓컬리 쇼핑몰과 잠들기 전에 주문한 상품을 다음 날 아침 바로 받아 볼 수…
바로가기 > KCDC 질병관리본부 채널 어떻게 시작했나 안녕하세요. 봇플랫폼파트 Bart (이철민)입니다. 코로나19 로 인한 많은 우려 속에 정부(질병관리본부)에서 카카오쪽에 지원 요청이 들어 왔습니다. 코로나19의 제대로된 정보 제공과 대응책을 안내할 수 있도록 해달라는 요청이었죠.…
안녕하세요, 뱅크샐러드 Engineering Foundation의 Front End Team 소속 Web Engineer 이소영입니다. 뱅크샐러드는 사용자의 데이터를 기반으로 가장 최적의 금융 상품을 추천하기 위해 여러 금융사와 제휴하여 다양한 상품을 확보해나가고 있습니다. 웹팀은 추천…
1. 마이크로서비스 아키텍처 도입을 고민 중인 당신에게 IT 업계에서 마이크로서비스 아키텍처(Microservices Architecture, MSA)가 대세로 떠오르면서 엔터프라이즈 서비스 개발 프로젝트에 활발하게 채택되고 있습니다. 애플리케이션을 보다 빠르게 개발하고 성능을 지속적으…
서진형 정욱재 황성구 | 2020년 03월 11일 | #Machine_Learning #Engineering 대화를 더 잘하기 위해 딥러닝 모델들은 점점 더 크고 무거워지고 있습니다. 그에 비례해서 빠르고 효율적으로 서비스하기 위한 난이도 또한 나날이 높아지고 있습니다. 이번 글에서는…
알람에 관하여 안녕하세요. 우아한형제들에서 DBA로 근무하고 있는 이재웅입니다. 오늘은 누구나 알고 있는 알람에 관해 이야기를 하려고 합니다. 인프라나 데이터베이스를 운영하게 되면 수많은 알람을 만나게 됩니다. 우아한형제들의 데이터베이스 또한 많은 알람이 설정되어 있습니다. 사실 알람이…
DevOps 엔지니어의 Redis Test 분투기 - Part 1 Redis 테스트를 진행했습니다. - 계기: Redis 성능 측정과 Key/Value 값 저장 문제 - 측정/테스트 도구를 찾아보자 - 테스트 전에 Redis 용도를 정리해보자 - API를 사용해 테스트를 시작 - 테스트…
계기: Redis 성능 측정과 Key/Value 값 저장 문제 최근 서비스 고도화를 위해 회사의 중요 서비스들을 MSA로 변환하던 중, 성능 향상 및 용도를 이유로 개발팀은 Redis 도입을 고려하고 있었습니다. 그러다 최근 api 하나의 버전이 업데이트된 이후 덜컥 장애가 발생했습니다…
개발자를 위한 레디스 튜토리얼 01 레디스? 레디스는 REmote DIctionary Server 의 약자입니다. 아마 이 글을 읽으시는 대부분의 분들은 레디스를 사용해보신 경험이 있을 것이고, 적어도 어떤건지 들어는 보셨을 것이라고 생각합니다. Who uses Redis? 레디스는 오…
Validation 어디까지 해봤니? 머리말 애플리케이션을 개발할 때, 데이터의 유효성을 검사하는 것은 일반적으로 애플리케이션 전체에서 발생합니다. TOAST Cloud의 메시징 플랫폼 상품인 Notification은 메시지, 이메일 주소 형식, 수신/발신자의 번호 등 클라이언트의 입력…
Database Driven Development에서 진짜 DDD로의 선회 -1- DDD에 대한 오해에서 벗어나고 개발의 즐거움을 깨달은 이야기 들어가며 - 과거의 내 모습 이 글은 DDD(Domain Driven Design 또는 Development)에 대해 아무런 고민도 없던 제가…
들어가며 - 과거의 내 모습 이 글은 DDD(Domain Driven Design 또는 Development)에 대해 아무런 고민도 없던 제가 현장에서 DDD를 팀원들과 함께 실천하며 깨달은 것(주로 경험)에 대한 이야기 입니다.(내용이 길어지고 하고 싶은 이야기가 많아져서 디테일한 이…
TOAST UI Grid에 Github Actions가 함께한다면? Github Actions란? Github Actions는 Github에서 작년 말 전체 공개되었으며 개발 workflow를 깃헙 자체적으로 자동화할 수 있게 도와주는 도구이다. 코드 버전 관리, 리뷰뿐만 아니라 테스트…
안녕하세요, 뱅크샐러드 Engineering Foundation의 Framework Team 소속 Server Engineer 안석찬입니다. 실리콘밸리의 벤처 캐피털은 테크 기업에 투자를 고려할 때 그 기업이 확장 가능한 기술 역량을 보유하고 있는지 판단합니다. 이때 판단에 활용되는 지…
안녕하세요, 뱅크샐러드 엔지니어링 파운데이션의 정겨울입니다. 뱅크샐러드는 마이크로 서비스 환경에서 다양한 언어와 프로토콜을 활용해 서비스를 운영하고 있습니다. 하나의 서비스는 요청을 처리하기 위해 다른 서비스의 API를 호출하는데 대부분의 기존 서비스는 REST API를 통해 JSON으…
안녕하세요. 뱅크샐러드, Advanced Financial Infra Team(이하 AFIT) 서지원 입니다. AFIT 은 최고의 개발환경을 구축한다 는 Vision 아래, IDC 에 Nutanix 를 올린 Private Cloud 환경을 멋지게 개선하고 있는 팀입니다. 이번 글은 AF…
Spring WebFlux와 Armeria를 이용하여 Microservice에 필요한 Reactive + RPC 동시에 잡기 - 등록일 - 2020.02.19 - | - 코멘트 - 55605 Monolithic 아키텍처는 오랫동안 많은 개발자들이 좋아하며 사용한 아키텍처입니다. 하나의…
배달의민족 최전방 시스템! ‘가게노출 시스템’을 소개합니다. 안녕하세요 우아한형제들 프론트검색서비스팀 권용근입니다. 저는 "먼데이 프로젝트" 라는 2019년 대형 프로젝트에서 요란하게 탄생하였고, 탄생한 순간부터 지금까지 배달의민족 최전방에서 활약 중인 2019년 4월 1일생 가게노출…
서비스를 운영하다 보면 주기적으로 실행이 필요한 작업이 생깁니다. 이런 작업을 실행하는 방법은 여러 가지가 있을 수 있습니다. 다음은 크로키에서 현재 선택해서 전환 중인 AWS Batch에 관해 설명합니다. 지그재그 서비스 초기에는 서버가 EC2 인스턴스 위에서 동작하고 있었습니다. 이…
네이버 검색의 SRE 시스템 - 등록일 - 2020.02.11 - | - 코멘트 - 42126 네이버 검색은 국내 최대 규모의 트래픽과 데이터를 다루는 대용량 분산 시스템입니다. 수만 대의 서버에서 수백 개의 검색 서비스가 운영되고 있으며, 하루에도 몇 번씩 크고 작은 신규 개발과 유지…
기술 블로그를 다시 디자인하며 컬리 기술 블로그에 생기가 돌아온다!! 발단: 제가 해보겠습니다 2020년 1월 30일 목요일. 컬리 통합 개발팀의 슬랙 대화방은 채용 공고 포맷에 대한 이야기로 들썩이고 있었습니다. 문득 저는 채용에 대한 이야기가 나온 김에 기술 블로그 재정비를 이야기하…
AWS 멀티 계정 환경에서 취약한 Security Group 설정 모니터링 들어가며 클라우드 서비스의 장점은 리소스의 탄력적 사용, 비용 절감, 운영에 대한 부담 감소에 있다. 하지만 보안 관점에서는 이러한 클라우드 서비스의 장점이 취약점으로 작용한다. 클라우드 환경에서는 개발자가 직접…
HikariCP Dead lock에서 벗어나기 (실전편) 1부 HikariCP Dead lock에서 벗어나기 (이론편)은 잘 보셨나요? 2부 HikariCP Dead lock에서 벗어나기 (실전편)에서는 실제 장애 사례를 기반으로 장애 원인을 설명하고 해결 사례를 공유하고자 합니다. 그…
안녕하세요. 저는 멜론상품개발셀의 Bob(밥)입니다. 작년 신입 공채로 입사하여 어느덧 만 1년이 지났네요. 2019년도 입사할 때부터 지금까지 카카오의 서버 개발자로 1년간 배우고 느꼈던 저의 경험에 대해 이야기해보려 합니다. 입사 전 - 2018년 12월 당시 카카오에서는 신입 공채…
ELK 셋팅부터 알람까지 안녕하세요. 저는 상품시스템팀에서 개발업무를 맡고 있는 이중석입니다. 최근 팀 내에서 로그엔트리를 ELK 로 전환하고 필요한 알람을 셋팅하는 작업을 진행했습니다. 이 과정중 알람을 설정하는 부분이 어렵진 않지만 쉽지도 않았습니다. 그 과정에서 알게된 것들이 다른…
데브시스터즈는 Kubernetes 기반의 게임 개발 및 테스트 인프라를 성공적으로 구축하여 게임 출시에 이르는 모든 과정들을 효율적으로 처리하고 있습니다. 다년간의 성공적인 운영 경험을 바탕으로 Windows Server 기반의 Workload를 지원하기 위한 R&D 작업을 진행하였고,…
Object Mapping 어디까지 해봤니? 머리말 TOAST Notification에서는 API 버전 별 객체와, 비즈니스 로직, 레이어 간 객체와 객체 간 매핑(Mapping) 시 MapStruct를 사용하고 있습니다. 이 글에서는 Object Mapping 라이브러리인 MapStr…
feign 좀더 나아가기 안녕하세요. 저는 상품시스템팀에서 개발하고 있는 고정섭입니다. 이 글에서는 배달의민족 광고시스템 백엔드에서 feign 을 적용하면서 겪었던 것들에 대해서 공유 하고자 합니다. 이 글은 이전에 작성된 게시글에서 추가 보완사항에 대해서 작성되었습니다. http cl…
메인 데이터베이스 IDC 탈출 성공기 안녕하세요. 우아한형제들 시스템신뢰성개발팀 박주희입니다. 2019년을 마무리하는 시점에 우아한형제들이 어떻게 메인 데이터베이스를 IDC 환경에서 탈출시켰는지, 그 과정을 공유하려고 합니다. 발단 2010년 6월 출범한 배달의민족은 (2018년 12월…
Spock Extension과 Elasticsearch + Kibana 조합으로 테스트 결과를 빠르게 피드백 받기 안녕하세요. 우아한형제들 주문마케팅회원서비스팀 장진우입니다. 모든 테스트는 중요하고 가치가 높은 활동입니다. 특히 개발을 지원하기 위한 기술 중심의 테스트가 조금 더 중요하…
반응형 시스템 개선하기(feat. TOAST UI Grid) TOAST UI Grid는 자체적인 반응형 시스템을 구축하여 데이터의 상태 관리를 하고 있다. 데이터가 변경되면 반응형 시스템이 변경을 감지하고 있는 다른 데이터 속성들도 자동으로 갱신해주기 때문에 데이터의 변경 관리를 편리하…
뱅크샐러드의 서버 엔지니어 1명과 데이터 엔지니어 1명이 한국시간으로 2019년 11월 29일 금요일부터 2019년 12월 7일 토요일까지 미국 라스베가스에서 열린 AWS re:Invent 2019 행사에 출장을 다녀왔습니다. 행사 티켓과 항공편, 숙박은 AWS 글로벌 파트너사인 베스핀…
Aurora MySQL를 운영하면서 알면 좋을 것 같은 미세한 팁 들어가며 안녕하세요. 우아한형제들에서 DBA로 근무하고 있는 유영근입니다. 저희는 AWS환경에서 RDS로 수많은 요청을 처리하고 저장하며 Aurora MySQL을 주력으로 사용하고 있습니다. 한정된 사람구하기 힘든 DBA…
2019년과 이후 JavaScript의 동향 – 브라우저 밖의 JavaScript 2 - 등록일 - 2019.10.28 - | - 코멘트 - 27984 브라우저 밖의 JavaScript 생태계를 다루는 "2019년과 이후 JavaScript의 동향" 시리즈의 마지막 글에서는 JavaSc…
2019년과 이후 JavaScript의 동향 – 브라우저 밖의 JavaScript 1 - 등록일 - 2019.10.28 - | - 코멘트 - 29904 이제 JavaScript는 프런트엔드에서만 작동하는 언어라고 말할 수 없습니다. 브라우저 영역에만 국한되지 않는 다양한 시도가 Java…
[K8S] kubernetes POC를 위한 portainer, rancher 소개 및 설치 등록일 2019.10.16 조회수 12107 들어가는 말 - docker와 kubernetes(이하 k8s)를 간단하게 활용해 보기 위한 portainer와 rancher를 소개합니다. 대상 -…
기업은 사업을 영위하는 과정에서 다양한 고객 데이터를 축적합니다. 과거에는 데이터를 쌓아두기만 했던 기업들이 최근 들어 360º 고객 View 기반 인사이트 확보, 전략적 의사결정 및 디지털 혁신 역량을 높이기 위해 그간 축적해 둔 데이터를 분석, 활용하는데 적극 나서고 있습니다. 특히…
2018년 7월, 서버리스(Serverless) 아키텍처의 오류 감지 및 모니터링 솔루션 업체인 대시버드(Dashbird)의 SEO 매니저 존 데미안(John Demian)은 자사 홈페이지에 흥미로운 글을 게시했습니다. 코카콜라가 아마존 웹 서비스(Amazon Web Service, 이…
WEB Firewall 서비스 소개 (TOAST Service 들여다 보기) WEB Firewall은 웹 공격을 전문적으로 탐지/방어하는 보안 설루션으로, 고객의 웹서비스로 공격이 인입될 경우, 전용 설루션을 통해 탐지/방어함으로써 즉각적인 대응이 가능하도록 지원하는 서비스입니다. TO…
좌충우돌 Terraform 입문기 안녕하세요, 저는 신사업부문의 오지산이라고 합니다. 저희 신사업부문은 배달의민족과는 조금 다른… 시장의 문제를 해결하기 위해 다양한 신규 서비스들이 개발되는 곳입니다. 그 중에는 아직 출시되지 않은 서비스도 있고, 배달의민족과 비교적 관련성이 적은 서비…
개발자 머피의 법칙 안녕하세요, 우아한형제들 광고시스템팀의 손권남입니다. 이 글은 기술적인 내용도 아니고 우아한형제들 회사에 관한 이야기도 아닌, 순전히 저의 개인적인 경험을 다룹니다. 매우 긴 글이므로, 맨 앞과 맨 뒤, 그리고 제목 정도만 읽어도 대략의 핵심 주제는 파악 가능합니다.…
Zombie 프로세스를 좀처럼 볼 수 없는 이유? 새로운 프로세스를 만들 때 리눅스에서는 fork() 를 사용합니다.fork() 를 통해서 부모 프로세스는 자식 프로세스를 생성하고, 자식 프로세스에서 실제 실행하려는 프로그램을 exec() 을 통해서 실행합니다. 자식 프로세스가 exit…
대상 서버의 포트가 열려 있는지 확인하는 3가지 방법 ACL이나 보안 그룹(security group)으로 포트가 막혀 있는지 확인하고 싶을 때가 많습니다. 보통은 ping 같은 명령어로 ICMP 패킷을 쏴보고 해당 서버가 살아있는지 먼저 확인합니다. 그러나 ping으로는 살아 있는데,…
System Monitoring 서비스 소개 (TOAST Service 들여다 보기) System Monitoring이란? 지난 7월 말에 System Monitoring 서비스가 새롭게 출시되었습니다. 클라우드에서 VM 인스턴스를 생성하여 그 위에 서비스를 구축하게 되면 가장 중요한…
메일 시스템 구조개선을 진행하면서 kafka를 사용하며 부딪혔던 문제와 해결했던 방법을 공유하여 같은 문제를 겪을 수 있는 분들에게 도움이 되고자 작성하게 되었습니다. 최근 시스템솔루션개발파트에서는 MSA구조로 개선하는 프로젝트를 진행하고 있습니다. 이에 일환으로 메일 시스템의 구조개선…
TOAST Mobile Contact 소개 (TOAST Service 들여다 보기) Mobile Contact 이란 모든 서비스들은 고객센터 채널을 제공하고 있으며 특히 결제가 포함된 경우에는 고객 문의에 대한 빠른 처리를 위해 콜센터를 제공하고 있습니다. 다만, 정해진 시간과 장소/인…
병아리 개발자의 걸음마 한 발짝 (feat. 파일럿 프로젝트) 지원서에서 발췌한 내용 … 나름대로 제일 좋은 방법이라고 생각했던 해결책이 경험 많은 개발자분들이 보시기에는 어떤지, 시니어 개발자분들은 문제가 생겼을 때 어떻게 접근하고 어떻게 해결하는지 등도 항상 궁금해 왔습니다. … 파…
API Gateway 소개 (TOAST Service 들여다 보기) API Gateway 란? 최근 서비스는 마이크로서비스 아키텍처 형태로 독립적인 기능을 수행하는 작은 단위의 서비스로 나누어 개발하고 있습니다. 작은 단위의 서비스로 분리함에 따라 서비스의 복잡도를 줄일 수 있으며, 변…
Load Balancer 통계 기능 (TOAST Service 들여다 보기) 로드밸런서는 유입된 트래픽을 인스턴스로 분배하기 위해 사용하는 서비스입니다. TOAST 로드밸런서 서비스를 이용하면 인스턴스 하나로 처리하기 힘든 부하를 여러 대의 인스턴스로 분산하여 처리량을 높일 수 있고,…
CloudTrail 소개 (TOAST Service 들여다 보기) TOAST CloudTrail Cloud 를 사용하는 고객들은 자신의 조직, 프로젝트에서 일어나는 일들에 대해서 이력을 확인하여 운영 감사, 위험 감사를 진행할 필요가 있을 수 있습니다. TOAST CloudTrail은…
글로벌 네트워크 에뮬레이터 prism_pacman 소개 - 등록일 - 2019.08.28 - | - 코멘트 - 15250 해외 서비스에서 현지 네트워크 상황을 고려하여 최적화된 서비스를 제작하고 튜닝하는 일은 쉽지 않습니다. 전송 속도가 낮아서 서비스 전체적인 응답 속도가 떨어져 답답하…
지난 8월에 런칭한 대량 메일 컨텐츠 생성 시스템 개발을 진행하며, 경험했던 것들을 공유하고자 이 포스트를 작성합니다. 먼저, 이번에 개발된 시스템은 이전에 포스팅된 분산처리 시스템 구조개선 프로젝트와 동일한 아키텍쳐를 바탕으로 개발되어 있습니다. 구조가 궁금하시다면 이전 포스트를 참고…
데이터테크랩의 빨리 세는 법 데이터테크랩의 나기호 선임님과 함께 진행하고 있는 과제를 소개해 드리는 글 입니다. 오늘은 부서에서 개발 중인 플랫폼 중 많은 데이터의 숫자를 빨리 세기 위해, 혹은 빨리 찾기 위해 만들고 있는 DataMart를 소개해 드리겠습니다. 빨리 집계하기 위해 가장…
TOAST CDN 소개(TOAST Service 들여다 보기) CDN (Content Delivery Network) 이란? CDN (Content Delivery Network)은 콘텐츠(이미지, 텍스트, 미디어 파일 등)를 최적화된 경로를 통해 전송할 수 있도록 전 세계적으로 분산된…
실전! Python 실행 환경 설정하기 배경 이 글은 Linux 환경에서 Python으로 안정적인 서비스 애플리케이션을 제공하기 위해 사용할 환경을 마련하는 방안에 대해서 다룹니다. Python 런타임은 각 OS에서 사용되는 패키지 관리자나 인스톨러를 이용하여 잘 설치되어 있다고 가정하…
Data Swamp ! ! 많은 기업들이 Hadoop과 Cloud 기반의 빅데이터 기술을 사용해 Data Lake의 확장형 아키텍처로 전환하고 있다. 그러나 Data Lake와 빅데이터 기술에 대한 투자 증가(2016년 20.7억달러, 2017년부터 2025년까지 28.6% 성장[1])…
데이터 품질에 관한 5개 체크포인트 - 등록일 - 2019.08.06 - | - 코멘트 - 18072 '코드 품질'은 소프트웨어 개발자에게 직업적 사명의 문제인지라, 이것의 중요성에 대해서는 따로 강조할 필요가 없습니다. '데이터 품질'이란 말은 이에 비하면 다소 모호하고 생소한 개념입…
결팀소: 결제시스템팀을 소개합니다. 소개 우아한형제들 결제시스템팀에서 근무하고 있는 이주현이라고 합니다. 제가 입사하고 이 팀에서 일한 지 3년이 넘었습니다. 지금은 회사, 사람, 팀, 인프라, 코드, 문화 등 다양한 변화에 적응하고 있는 구성원이지만 한 때 우아한형제들은 너무나 가고…
Docker 기반 분산 트랜스코더 개발 - 등록일 - 2019.08.01 - | - 코멘트 - 20894 VOD(video on demand, 주문형 비디오) 서비스는 다양한 사용자 환경에서 일관된 품질로 영상이 재생될 수 있도록 콘텐츠를 준비해야 합니다. 서비스에 업로드된 원본 영상은…
- blog - support 참여 후기: Open Infrastructure & Cloud Native Days Korea 2019 지난 주 18일부터 19일까지 양일간 진행된 Open Infrastructure & Cloud Native Days Korea 2019 행사에 카카오가…
LocalStack을 활용한 Integration Test 환경 만들기 안녕하세요. 주문마케팅서비스팀 송정훈입니다. 이 글에서는 AWS 서비스를 활용하는 웹 어플리케이션이 클라우드 환경이 아닌, 로컬개발환경에서 쉽게 실행하고 테스트할 수 있는 방법에 대해서 설명하고자 합니다. 우리의 I…
우리는 일상 생활에서 무수히 많은 데이터를 생산하고 있습니다, 길을 걸으며 누군가와 메시지를 주고받거나 통화할 때, 쇼핑몰에서 물건을 살 때나, 지하철을 탈 때, 그리고 휴대폰을 통해 드라마를 볼 때도 연관된 많은 데이터가 만들어지고 저장되고 분석됩니다. 시장 조사 기관인 IDC(Int…
멀티모듈 설계 이야기 with Spring, Gradle 멀티 모듈 설계 이야기 안녕하세요. 배달의민족 프론트 서버를 개발하고 있는 권용근입니다. 멀티 모듈의 개념을 처음알게 되었을 때부터 현재까지 겪었던 문제점들과 그것을 어떻게 해결해나갔는지를 이야기해보려고 합니다. 아래 내용은 모두…
NAVER 오픈소스 세미나 - Performance does matter - 등록일 - 2019.06.28 - | - 코멘트 - 18499 다양한 컴포넌트의 조합으로 구성된 서비스를 운영하다보면 장애나 성능 문제가 발생했을 때 정확한 원인을 파악하는데 시간이 오래 걸린다는 또다른 난제에…
가상화(virtualization)? 비즈니스에 필요한 머신들은 항상 하나의 세팅, 하나의 목적에 따라 운영되어 왔습니다. 서로 다른 환경이 필요하면 두 대의 머신을 사용할 수밖에 없었습니다. 하지만 각 머신의 물리적 자원이 충분히 활용되기를 원하고 투자 비용을 줄이기 위한 방편으로 가…
Spring Boot에서 Repository로 DynamoDB 조작하기 (2) – Gradle을 활용해 실행 & 테스팅 환경 구축 이전 글에서 DynamoDB를 조작할 수 있는 다양한 API를 알아봤습니다. 애플리케이션을 실행하거나 테스트하기 위해 docker로 DynamoDB를 띄우는…
데브시스터즈는 Kubernetes 기반의 게임 개발 및 테스트 인프라를 성공적으로 구축하여 게임 출시에 이르는 모든 과정들을 효율적으로 처리하고 있습니다. 다년간의 성공적인 운영 경험을 바탕으로 Windows Server 기반의 Workload를 지원하기 위한 R&D 작업을 진행하였고,…
Spring Boot에서 Repository로 DynamoDB 조작하기 (1) – 설정부터 실행까지 안녕하세요, 미래사업부문 김명재입니다. 작년 10월에 우아한형제들에 입사하고 행복한 주니어 개발자 생활을 하고 있습니다. 현재 개발중인 시스템의 NoSQL DB를 MongoDB에서 Dyn…
데브시스터즈는 Kubernetes 기반의 게임 개발 및 테스트 인프라를 성공적으로 구축하여 게임 출시에 이르는 모든 과정들을 효율적으로 처리하고 있습니다. 다년간의 성공적인 운영 경험을 바탕으로 Windows Server 기반의 Workload를 지원하기 위한 R&D 작업을 진행하였고,…
입사 후, 벌써 1년 작은 SI 회사 개발자에서 우아한형제들로 이직 1년 안녕하세요. 배민플랫폼실 결제정산개발팀에서 정산 업무를 맡고 있는 이호진입니다. 이 글은 SI 회사에서 우아한형제들로 이직한 후 1년간 있었던 변화에 대한 이야기입니다. 5월 14일, 입사 1년이 되는 날을 맞아…
MySQL을 이용한 분산락으로 여러 서버에 걸친 동시성 관리 안녕하세요. 비즈인프라개발팀 권순규입니다. 현재 광고시스템에서 사용하고 있는 MySQL을 이용한 분산락에 대해 설명드리고자 합니다. 분산락을 적용하게된 원인 현재 테이블은 아래 그림과 같이 User 테이블과 Card 테이블이…
우아한 feign 적용기 안녕하세요. 저는 비즈인프라개발팀에서 개발하고 있는 고정섭입니다. 이 글에서는 배달의민족 광고시스템 백엔드에서 feign 을 적용하면서 겪었던 것들에 대해서 공유 하고자 합니다. 소개 - Feign 은 Netflix 에서 개발된 Http client binder…
도움이 될수도 있는 JVM memory leak 이야기 도움이 될지도 모르는 JVM memory leak 얘기인데 제목을 뭐라고 하지? 안녕하세요. 배민 플랫폼실 주문중계 시스템팀 오민철입니다. 이 글은 몇 줄의 코드와 어디서 걸렸는지 모를 dependency library로 발생한 m…
Telepresence로 Kubernetes 클러스터에서 실행할 애플리케이션을 로컬 환경에서 개발하기 - 등록일 - 2019.05.24 - | - 코멘트 - 18962 Kubernetes 클러스터에서 실행할 서비스를 개발할 때에는 특정한 기능을 수행하는 작은 단위의 애플리케이션들로 하나…
크롬 네이티브 레이지 로딩 레이지 로딩이란? 좋은 기회로 2019년 구글 I/O에 참석했다. 웹 기술 세션 중에는 크게 눈에 띄는 세션은 없었지만, 일부 세션에서 소개된 웹과 관련 기술 몇 가지는 흥미로웠다. Native Lazy Loading, Portals, Duplex, Rich…
5월 우아한 Tech 세미나 후기 안녕하세요. 교육코스개발팀 이동규입니다. 저희 팀은 5월 7일부터 우아한테크코스 교육을 진행하고 있습니다. 교육과 관련하여서는 이전의 포스팅에서 모집글과, 프리코스관련 글을 확인하실 수 있습니다. 현재 우아한형제들은 다양한 DR (Developer Re…
이전 글로 딥러닝 기반 개인화 추천 시스템의 모델에 대한 부분을 소개 했었어요. 이번에는 당근마켓에서 추천 시스템을 지속적으로 업데이트하는 파이프라인과 서빙 시스템을 구축한 내용을 소개하려고 합니다. Kubeflow Pipelines Kubeflow Pipelines은 Kubernete…
본 아티클에서는 자율 주행 기술의 여러 단계와 컴퓨터 비전(Computer Vision)에 대해 자세히 살펴보겠습니다. 시맨틱 세그먼테이션(Semantic segmentation)이란 이미지를 구성하고 있는 픽셀들을 구별하는 기능입니다. 인스턴스 세그먼테이션 (Instance segme…
Packer와 Ansible을 이용한 표준 AMI 만들기 안녕하세요 저는 작년 우아한테크캠프 2기를 마치고 10월에 시스템신뢰성개발팀에 입사한 김규남이라고 합니다. 이번 글에서는 팀 내에서 Packer와 Ansible을 이용해 AMI를 코드레벨로 어떻게 관리하고 있는지에 대해 공유드리려…
간단하게 구축해 보는 JavaScript 개발 환경 - 등록일 - 2019.04.18 - | - 코멘트 - 43013 프로그래밍은 다양한 문제를 해결할 수 있는 한 가지 방법입니다. 하지만 해결해야 하는 문제가 크고 복잡해지면서 혼자 소프트웨어를 만들며 프로그래밍으로 문제를 해결하기는…
IBN 이란? 다양한 형태의 IoT 서비스가 선보이면서 네트워크에 연결되는 디바이스의 수가 기하급수적으로 증가하고 있습니다. 향후 5G 서비스가 본격적으로 상용화되면 더 빠른 속도로 네트워크 디바이스 수가 증가할 것으로 예상됩니다. 이러한 디바이스 수의 증가와 함께 네트워크에서 처리해야…
동영상 플랫폼 개선기 2 - 신규 동영상 플랫폼 구축 - 등록일 - 2019.04.15 - | - 코멘트 - 16393 "동영상 플랫폼 개선기 1 - 신규 동영상 플랫폼의 구성"에서는 기존 동영상 플랫폼의 구성과 문제점, 새로운 동영상 플랫폼의 구성을 살펴보았습니다. 새로운 동영상 플랫…
저녁 11시까지 주문하면 Full-Cold Chain을 통해서 다음날 7시까지 배송해주는 마켓컬리 서비스 구성에 대해서 상세하게 소개 드립니다. 마켓컬리 서비스는 크게 사용자가 신선식품을 포함한 각종 상품을 앱과 웹을 통해서 쇼핑할 수 있는 이커머스 서비스와 주문한 상품을 물류 센터내에…
동영상 플랫폼 개선기 1 - 신규 동영상 플랫폼의 구성 - 등록일 - 2019.04.11 - | - 코멘트 - 22771 네이버의 동영상 플랫폼은 2007년에 네이버 블로그에 동영상 서비스를 처음으로 지원했습니다. 현재는 약 60여 개의 네이버 서비스를 지원하고 있으며, 동영상 처리를…
Kubernates에 Pod 기반의 IAM Role 접근 제어 통합하기 Hyojun Kim — 김효준 @therne 왜 Kiam인가? Kiam의 구조 kiam은 마스터 노드에 붙는 서버와 각 노드에 붙는 에이전트로 나뉘어진다. 파드에서 어떤 IAM Role을 쓰고 싶을땐 어떻게 할까?…
TOAST IAP 소개 (TOAST Service 들여다 보기) In App Purchase란? In App Purchase는 Google Play, Apple App Store 등의 스토어에서 설치한 앱 안에서, 상품을 유료로 구매하는 것을 의미합니다. 혹은 앱 밖에서 구매할 수도 있…
파일럿 프로젝트를 통한 배치경험기! 들어가며 안녕하세요 ! 우아한 테크캠프 2기를 통해 1월에 결제정산개발팀에 합류하게 된 최유성입니다. 입사 후 총 5주간 신입 개발자의 팀 적응을 위한 파일럿 프로젝트를 진행하였습니다. 지금부터 그 5주간의 파일럿 프로젝트에 대한 경험을 공유하겠습니다…
Aurora 로컬 스토리지 성능 테스트 안녕하세요 시스템신뢰성개발팀에서 DBA로 근무하고 있는 오윤택입니다. 오로라를 사용할때 그동안 로컬스토리지의 성능이슈로 인하여 구 모델인 R3 인스턴스를 사용해왔습니다. 최근 오로라에 R5 인스턴스가 추가된 만큼, 계속 R3 인스턴스를 사용하는게…
개발 미션과 함께 읽는 클린 코드 들어가며 안녕하세요, 미래사업부문의 오지산이라고 합니다. 저는 작년 10월 우아한형제들에 신입 개발자로 입사하면서 처음으로 Spring 위에서 코드를 작성하는 경험을 했습니다. 0의 지식으로 부딪혀야 하는 상황이었는데요. 거기에 신규 서비스를 개발해야…
TOAST Object Storage 소개 (TOAST Service 들여다 보기) TOAST Object Storage는 여러 서비스의 백엔드 스토리지로 사용되고 있습니다. Dooray!, TOAST File, TOAST Image 등 비정형 데이터를 저장하는 많은 서비스의 근간이라고…
3월 우아한 Tech 세미나 후기 스프링 리액티브 세미나 후기 안녕하세요! 우아한 형제들에서 결제/정산/포인트/비즈머니를 담당하는 결제정산개발팀 이동욱입니다. 사내에서는 다양한 DR (Developer Relations) 활동을 하고 있습니다. 여러 활동 중 이번엔 토비의 스프링의 저자…
로봇 개발 어떻게 해야되죠? (1/2) – AWS RoboMaker 따라하기 (ROS 어플리케이션 개발과 시뮬레이션 편) AWS RoboMaker를 사용해 ROS 어플리케이션 개발부터 시뮬레이션, Fleet 관리, OTA 배포까지 쭉~ 따라 해봅니다. by Jinyong Park(박진용…
도메인 별 프로세스와 구조개선을 통해 나아진점을 설명 앞선 포스트에서 설명드렸듯이 기존 시스템의 Engine이 가지고 있던 기능들을 도메인으로 역할을 분리했고, 컨테이너화를 통해 독립적인 애플리케이션으로 구축을 진행했습니다. 저희가 운영중인 시스템에는 캠페인 정보, Push 메시지 생성…
구조개선을 하려 했던 이유와 전체 시스템 설계에 대한 설명, 주요 기술, 빌드, 배포에 대해 공유 이 포스트는 저희가 2년여간 운영해온 분산처리 시스템의 구조개선 프로젝트에 대해서 시스템 구축에 사용한 기술과 경험을 공유하고자 합니다 구조개선 하려는 시스템은 IMDG 플랫폼 Apache…
Spring 웹 애플리케이션에서 사용하지 않는 API를 찾아보자 안녕하세요. 배민주문서버개발팀 송정훈입니다. 이 글에서는 스프링 웹 애플리케이션에서 사용자 요청에 대한 로그를 수집하고, 사용되고 있지 않는 API를 쉽게 확인하는 방법에 대해서 설명하고자 합니다. 이 많은 API 들을 다…