기술 블로그를 다시 디자인하며 컬리 기술 블로그에 생기가 돌아온다!! 발단: 제가 해보겠습니다 2020년 1월 30일 목요일. 컬리 통합 개발팀의 슬랙 대화방은 채용 공고 포맷에 대한 이야기로 들썩이고 있었습니다. 문득 저는 채용에 대한 이야기가 나온 김에 기술 블로그 재정비를 이야기하…
AWS 멀티 계정 환경에서 취약한 Security Group 설정 모니터링 들어가며 클라우드 서비스의 장점은 리소스의 탄력적 사용, 비용 절감, 운영에 대한 부담 감소에 있다. 하지만 보안 관점에서는 이러한 클라우드 서비스의 장점이 취약점으로 작용한다. 클라우드 환경에서는 개발자가 직접…
HikariCP Dead lock에서 벗어나기 (실전편) 1부 HikariCP Dead lock에서 벗어나기 (이론편)은 잘 보셨나요? 2부 HikariCP Dead lock에서 벗어나기 (실전편)에서는 실제 장애 사례를 기반으로 장애 원인을 설명하고 해결 사례를 공유하고자 합니다. 그…
HikariCP Dead lock에서 벗어나기 (이론편) 안녕하세요! 공통시스템개발팀에서 메세지 플랫폼 개발을 하고 있는 이재훈입니다. 메세지 플랫폼 운영 장애를 바탕으로 HikariCP에서 Dead lock이 발생할 수 있는 case와 Dead lock을 회피할 수 있는 maximum…
Spring Batch와 Querydsl Spring Batch와 QuerydslItemReader 안녕하세요 우아한형제들 정산시스템팀 이동욱입니다. 올해는 무슨 글을 기술 블로그에 쓸까 고민하다가, 1월초까지 생각했던 것은 팀에 관련된 주제였습니다. 결팀소: 결제시스템팀을 소개합니다와…
ELK 셋팅부터 알람까지 안녕하세요. 저는 상품시스템팀에서 개발업무를 맡고 있는 이중석입니다. 최근 팀 내에서 로그엔트리를 ELK 로 전환하고 필요한 알람을 셋팅하는 작업을 진행했습니다. 이 과정중 알람을 설정하는 부분이 어렵진 않지만 쉽지도 않았습니다. 그 과정에서 알게된 것들이 다른…
Object Mapping 어디까지 해봤니? 머리말 TOAST Notification에서는 API 버전 별 객체와, 비즈니스 로직, 레이어 간 객체와 객체 간 매핑(Mapping) 시 MapStruct를 사용하고 있습니다. 이 글에서는 Object Mapping 라이브러리인 MapStr…
feign 좀더 나아가기 안녕하세요. 저는 상품시스템팀에서 개발하고 있는 고정섭입니다. 이 글에서는 배달의민족 광고시스템 백엔드에서 feign 을 적용하면서 겪었던 것들에 대해서 공유 하고자 합니다. 이 글은 이전에 작성된 게시글에서 추가 보완사항에 대해서 작성되었습니다. http cl…
메인 데이터베이스 IDC 탈출 성공기 안녕하세요. 우아한형제들 시스템신뢰성개발팀 박주희입니다. 2019년을 마무리하는 시점에 우아한형제들이 어떻게 메인 데이터베이스를 IDC 환경에서 탈출시켰는지, 그 과정을 공유하려고 합니다. 발단 2010년 6월 출범한 배달의민족은 (2018년 12월…
반응형 시스템 개선하기(feat. TOAST UI Grid) TOAST UI Grid는 자체적인 반응형 시스템을 구축하여 데이터의 상태 관리를 하고 있다. 데이터가 변경되면 반응형 시스템이 변경을 감지하고 있는 다른 데이터 속성들도 자동으로 갱신해주기 때문에 데이터의 변경 관리를 편리하…
뱅크샐러드의 서버 엔지니어 1명과 데이터 엔지니어 1명이 한국시간으로 2019년 11월 29일 금요일부터 2019년 12월 7일 토요일까지 미국 라스베가스에서 열린 AWS re:Invent 2019 행사에 출장을 다녀왔습니다. 행사 티켓과 항공편, 숙박은 AWS 글로벌 파트너사인 베스핀…
들어가며 안녕하세요. 카카오 FE플랫폼팀의 Joah입니다. 최근에 팀에서 사용하는 JavaScript 스타일 가이드를 개선하는 업무에 참여했습니다. 업무를 하며 스타일 가이드에서 사용하고 있는 ESLint에 관심이 생기게 되었고, 어떻게 동작하는지 소스코드를 분석해보다가 ESLint에…
Aurora MySQL를 운영하면서 알면 좋을 것 같은 미세한 팁 들어가며 안녕하세요. 우아한형제들에서 DBA로 근무하고 있는 유영근입니다. 저희는 AWS환경에서 RDS로 수많은 요청을 처리하고 저장하며 Aurora MySQL을 주력으로 사용하고 있습니다. 한정된 사람구하기 힘든 DBA…
바닥부터 시작하는 Vue 테스트와 리팩토링 from if kakao 들어가며 안녕하세요. 카카오 FE플랫폼팀 Lumi입니다. 얼마 전 열렸던 kakao FE(Front end) meetup 행사에서 '바닥부터 시작하는 Vue 테스트와 리팩토링’이라는 주제로 발표를 맡았고, 그때 발표했던…
카카오커머스를 지탱하는 Angular from if kakao 카카오커머스의 FE개발파트는 React나 순수 JS로 개발되어있던 선물하기, 쇼핑하기 등 각 서비스 프레임웍을 모두 Angular로 전환하고 있습니다. 이 글에서는 이 결정을 하게 된 배경과 Angular가 어떤 프레임웍이고…
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를 소개합니다. 대상 -…
How to onboard a new hire / 신규입사자 조직안착 과정 안녕하세요, 우아한형제들 Developer Relations 담당자 문수민입니다. 제가 우아한형제들에 입사하여 경험한 "온보딩 프로세스(Onboarding process) – 조직이 신규 입사자를 채용하고 조직에…
2018년 7월, 서버리스(Serverless) 아키텍처의 오류 감지 및 모니터링 솔루션 업체인 대시버드(Dashbird)의 SEO 매니저 존 데미안(John Demian)은 자사 홈페이지에 흥미로운 글을 게시했습니다. 코카콜라가 아마존 웹 서비스(Amazon Web Service, 이…
주니어 개발자의 클린 아키텍처 맛보기 안녕하세요 딜리버리플랫폼팀 송인태입니다. 우아한테크캠프를 마치고 팀에서 들어온 지 1년 정도 되면서 개발을 할 때 어떻게 하면 유지 보수하기 쉽게 개발할지 고민을 하던 도중 Robert C. Martin이 블로그에 기재한 Clean Architect…
WEB Firewall 서비스 소개 (TOAST Service 들여다 보기) WEB Firewall은 웹 공격을 전문적으로 탐지/방어하는 보안 설루션으로, 고객의 웹서비스로 공격이 인입될 경우, 전용 설루션을 통해 탐지/방어함으로써 즉각적인 대응이 가능하도록 지원하는 서비스입니다. TO…
좌충우돌 Terraform 입문기 안녕하세요, 저는 신사업부문의 오지산이라고 합니다. 저희 신사업부문은 배달의민족과는 조금 다른… 시장의 문제를 해결하기 위해 다양한 신규 서비스들이 개발되는 곳입니다. 그 중에는 아직 출시되지 않은 서비스도 있고, 배달의민족과 비교적 관련성이 적은 서비…
개발자 머피의 법칙 안녕하세요, 우아한형제들 광고시스템팀의 손권남입니다. 이 글은 기술적인 내용도 아니고 우아한형제들 회사에 관한 이야기도 아닌, 순전히 저의 개인적인 경험을 다룹니다. 매우 긴 글이므로, 맨 앞과 맨 뒤, 그리고 제목 정도만 읽어도 대략의 핵심 주제는 파악 가능합니다.…
대상 서버의 포트가 열려 있는지 확인하는 3가지 방법 ACL이나 보안 그룹(security group)으로 포트가 막혀 있는지 확인하고 싶을 때가 많습니다. 보통은 ping 같은 명령어로 ICMP 패킷을 쏴보고 해당 서버가 살아있는지 먼저 확인합니다. 그러나 ping으로는 살아 있는데,…
메일 시스템 구조개선을 진행하면서 kafka를 사용하며 부딪혔던 문제와 해결했던 방법을 공유하여 같은 문제를 겪을 수 있는 분들에게 도움이 되고자 작성하게 되었습니다. 최근 시스템솔루션개발파트에서는 MSA구조로 개선하는 프로젝트를 진행하고 있습니다. 이에 일환으로 메일 시스템의 구조개선…
병아리 개발자의 걸음마 한 발짝 (feat. 파일럿 프로젝트) 지원서에서 발췌한 내용 … 나름대로 제일 좋은 방법이라고 생각했던 해결책이 경험 많은 개발자분들이 보시기에는 어떤지, 시니어 개발자분들은 문제가 생겼을 때 어떻게 접근하고 어떻게 해결하는지 등도 항상 궁금해 왔습니다. … 파…
지난주 금요일이었던, 9월 6일에 열린 KafkaKRU(Kafka 한국사용자 모임) 제3회 미니 밋업에 참여하였습니다. Apache Kafka 관련 소식과 운영 노하우 등을 공유하는 자리였으며, 카카오가 후원하였습니다. 밋업 행사에 참여하지 못한 분들을 위하여 해당 내용을 소개합니다.…
API Gateway 소개 (TOAST Service 들여다 보기) API Gateway 란? 최근 서비스는 마이크로서비스 아키텍처 형태로 독립적인 기능을 수행하는 작은 단위의 서비스로 나누어 개발하고 있습니다. 작은 단위의 서비스로 분리함에 따라 서비스의 복잡도를 줄일 수 있으며, 변…
Load Balancer 통계 기능 (TOAST Service 들여다 보기) 로드밸런서는 유입된 트래픽을 인스턴스로 분배하기 위해 사용하는 서비스입니다. TOAST 로드밸런서 서비스를 이용하면 인스턴스 하나로 처리하기 힘든 부하를 여러 대의 인스턴스로 분산하여 처리량을 높일 수 있고,…
지난 8월에 런칭한 대량 메일 컨텐츠 생성 시스템 개발을 진행하며, 경험했던 것들을 공유하고자 이 포스트를 작성합니다. 먼저, 이번에 개발된 시스템은 이전에 포스팅된 분산처리 시스템 구조개선 프로젝트와 동일한 아키텍쳐를 바탕으로 개발되어 있습니다. 구조가 궁금하시다면 이전 포스트를 참고…
데이터테크랩의 빨리 세는 법 데이터테크랩의 나기호 선임님과 함께 진행하고 있는 과제를 소개해 드리는 글 입니다. 오늘은 부서에서 개발 중인 플랫폼 중 많은 데이터의 숫자를 빨리 세기 위해, 혹은 빨리 찾기 위해 만들고 있는 DataMart를 소개해 드리겠습니다. 빨리 집계하기 위해 가장…
TOAST CDN 소개(TOAST Service 들여다 보기) CDN (Content Delivery Network) 이란? CDN (Content Delivery Network)은 콘텐츠(이미지, 텍스트, 미디어 파일 등)를 최적화된 경로를 통해 전송할 수 있도록 전 세계적으로 분산된…
Data Swamp ! ! 많은 기업들이 Hadoop과 Cloud 기반의 빅데이터 기술을 사용해 Data Lake의 확장형 아키텍처로 전환하고 있다. 그러나 Data Lake와 빅데이터 기술에 대한 투자 증가(2016년 20.7억달러, 2017년부터 2025년까지 28.6% 성장[1])…
2019년과 이후 JavaScript의 동향 - 라이브러리와 프레임워크 2 - 등록일 - 2019.08.09 - | - 코멘트 - 39504 웹 컴포넌트(Web Component)가 프런트엔드 영역의 개발을 컴포넌트 기반 개발로 전환할 수 있을 것이리라 기대했지만 오랜 시간 동안 웹 컴…
SwiftLint와 Git Hook을 이용해서 코딩 스타일 관리하기 안녕하세요. 우아한형제들 앱서비스팀에서 iOS 앱을 만들고 있는 김민호입니다. 이번에 저희 팀에서 코딩 스타일을 맞추기 위해 Git Hook을 적용한 경험을 공유드리려고 합니다. iOS 앱을 만들고 있는 많은 팀에서 코…
2019년과 이후 JavaScript의 동향 - 라이브러리와 프레임워크 1 - 등록일 - 2019.08.02 - | - 코멘트 - 60045 어느 순간부터 프레임워크의 홍수 속에 있는 듯합니다. 각 프레임워크가 내세우는 철학과 다양한 장점에 촉각을 세우고, 어떤 것을 선택해야 할지 그리…
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…
NAVER 오픈소스 세미나 - Performance does matter - 등록일 - 2019.06.28 - | - 코멘트 - 18499 다양한 컴포넌트의 조합으로 구성된 서비스를 운영하다보면 장애나 성능 문제가 발생했을 때 정확한 원인을 파악하는데 시간이 오래 걸린다는 또다른 난제에…
2019년과 이후 JavaScript의 동향 - WebAssembly - 등록일 - 2019.06.24 - | - 코멘트 - 32354 WebAssembly는 C와 C++ 같은 프로그래밍 언어를 컴파일해 어느 브라우저에서나 빠르게 실행되는 바이너리 형식(low-level language…
가상화(virtualization)? 비즈니스에 필요한 머신들은 항상 하나의 세팅, 하나의 목적에 따라 운영되어 왔습니다. 서로 다른 환경이 필요하면 두 대의 머신을 사용할 수밖에 없었습니다. 하지만 각 머신의 물리적 자원이 충분히 활용되기를 원하고 투자 비용을 줄이기 위한 방편으로 가…
0.7KB로 Vue와 같은 반응형 시스템 만들기 TOAST UI Grid는 현재 새로운 메이저 업데이트인 버전 4를 릴리스하기 위해 열심히 준비중이다. 버전 4는 Backbone과 jQuery를 사용해서 작성했던 기존의 코드를 모두 버리고 처음부터 새로 작성하는 대대적인 개편 작업이다.…
데브시스터즈는 Kubernetes 기반의 게임 개발 및 테스트 인프라를 성공적으로 구축하여 게임 출시에 이르는 모든 과정들을 효율적으로 처리하고 있습니다. 다년간의 성공적인 운영 경험을 바탕으로 Windows Server 기반의 Workload를 지원하기 위한 R&D 작업을 진행하였고,…
MySQL을 이용한 분산락으로 여러 서버에 걸친 동시성 관리 안녕하세요. 비즈인프라개발팀 권순규입니다. 현재 광고시스템에서 사용하고 있는 MySQL을 이용한 분산락에 대해 설명드리고자 합니다. 분산락을 적용하게된 원인 현재 테이블은 아래 그림과 같이 User 테이블과 Card 테이블이…
Telepresence로 Kubernetes 클러스터에서 실행할 애플리케이션을 로컬 환경에서 개발하기 - 등록일 - 2019.05.24 - | - 코멘트 - 18962 Kubernetes 클러스터에서 실행할 서비스를 개발할 때에는 특정한 기능을 수행하는 작은 단위의 애플리케이션들로 하나…
5월 우아한 Tech 세미나 후기 안녕하세요. 교육코스개발팀 이동규입니다. 저희 팀은 5월 7일부터 우아한테크코스 교육을 진행하고 있습니다. 교육과 관련하여서는 이전의 포스팅에서 모집글과, 프리코스관련 글을 확인하실 수 있습니다. 현재 우아한형제들은 다양한 DR (Developer Re…
이전 글로 딥러닝 기반 개인화 추천 시스템의 모델에 대한 부분을 소개 했었어요. 이번에는 당근마켓에서 추천 시스템을 지속적으로 업데이트하는 파이프라인과 서빙 시스템을 구축한 내용을 소개하려고 합니다. Kubeflow Pipelines Kubeflow Pipelines은 Kubernete…
TensorFlow를 활용한 네이버쇼핑의 상품 카테고리 자동 분류 - 등록일 - 2019.05.02 - | - 코멘트 - 80529 네이버쇼핑은 네이버가 제공하는 쇼핑 포털 서비스입니다. 네이버쇼핑은 상품을 체계적으로 구성하고 사용자가 보다 쉽게 검색할 수 있도록 상품을 카테고리에 매칭…
최신 브라우저의 내부 살펴보기 4 - 컴포지터가 사용자 입력을 받았을 때 - 등록일 - 2019.04.30 - | - 코멘트 - 13333 이 글은 Google Developers 사이트에 공개된 Mariko Kosaka의 "Inside look at modern web browser"…
2016년 중반 마이크로서비스로의 전환을 결정했습니다. 마이크로서비스는 이론상 다른 서비스에 영향을 주지 않고 내부 기술을 바꿀 수 있습니다. 하지만 마이크로서비스 간의 통신 방법은 한번 결정하면 쉽게 바뀌기 어려울 것 같아서 가장 많이 고민했습니다. 그리고 Thrift를 선택했습니다.…
AngularJS에서 Vue로 전환하면서 배운 것 프롤로그 나는 NHN에서 협업도구인 Dooray!를 개발하고 있다. 프로젝트, 메일, 메신저, 캘린더, 드라이브, 위키, 주소록, 칸반 등 방대한 기능을 담은 서비스이며 약 5년 전부터 개발되기 시작하여 현재까지 잘 유지되고 있는 서비스…
본 아티클에서는 자율 주행 기술의 여러 단계와 컴퓨터 비전(Computer Vision)에 대해 자세히 살펴보겠습니다. 시맨틱 세그먼테이션(Semantic segmentation)이란 이미지를 구성하고 있는 픽셀들을 구별하는 기능입니다. 인스턴스 세그먼테이션 (Instance segme…
최신 브라우저의 내부 살펴보기 3 - 렌더러 프로세스의 내부 동작 - 등록일 - 2019.04.22 - | - 코멘트 - 32193 이 글은 Google Developers 사이트에 공개된 Mariko Kosaka의 "Inside look at modern web browser"(최신…
Packer와 Ansible을 이용한 표준 AMI 만들기 안녕하세요 저는 작년 우아한테크캠프 2기를 마치고 10월에 시스템신뢰성개발팀에 입사한 김규남이라고 합니다. 이번 글에서는 팀 내에서 Packer와 Ansible을 이용해 AMI를 코드레벨로 어떻게 관리하고 있는지에 대해 공유드리려…
간단하게 구축해 보는 JavaScript 개발 환경 - 등록일 - 2019.04.18 - | - 코멘트 - 43013 프로그래밍은 다양한 문제를 해결할 수 있는 한 가지 방법입니다. 하지만 해결해야 하는 문제가 크고 복잡해지면서 혼자 소프트웨어를 만들며 프로그래밍으로 문제를 해결하기는…
동영상 플랫폼 개선기 2 - 신규 동영상 플랫폼 구축 - 등록일 - 2019.04.15 - | - 코멘트 - 16393 "동영상 플랫폼 개선기 1 - 신규 동영상 플랫폼의 구성"에서는 기존 동영상 플랫폼의 구성과 문제점, 새로운 동영상 플랫폼의 구성을 살펴보았습니다. 새로운 동영상 플랫…
동영상 플랫폼 개선기 1 - 신규 동영상 플랫폼의 구성 - 등록일 - 2019.04.11 - | - 코멘트 - 22771 네이버의 동영상 플랫폼은 2007년에 네이버 블로그에 동영상 서비스를 처음으로 지원했습니다. 현재는 약 60여 개의 네이버 서비스를 지원하고 있으며, 동영상 처리를…
최신 브라우저의 내부 살펴보기 2 - 내비게이션 과정에서 일어나는 일 - 등록일 - 2019.03.26 - | - 코멘트 - 23162 이 글은 Google Developers 사이트에 공개된 Mariko Kosaka의 "Inside look at modern web browser"(최…
3월 우아한 Tech 세미나 후기 스프링 리액티브 세미나 후기 안녕하세요! 우아한 형제들에서 결제/정산/포인트/비즈머니를 담당하는 결제정산개발팀 이동욱입니다. 사내에서는 다양한 DR (Developer Relations) 활동을 하고 있습니다. 여러 활동 중 이번엔 토비의 스프링의 저자…
최신 브라우저의 내부 살펴보기 1 - CPU, GPU, 메모리 그리고 다중 프로세스 아키텍처 - 등록일 - 2019.03.14 - | - 코멘트 - 62850 이 글은 Google Developers 사이트에 공개된 Mariko Kosaka의 "Inside look at modern w…
도메인 별 프로세스와 구조개선을 통해 나아진점을 설명 앞선 포스트에서 설명드렸듯이 기존 시스템의 Engine이 가지고 있던 기능들을 도메인으로 역할을 분리했고, 컨테이너화를 통해 독립적인 애플리케이션으로 구축을 진행했습니다. 저희가 운영중인 시스템에는 캠페인 정보, Push 메시지 생성…
구조개선을 하려 했던 이유와 전체 시스템 설계에 대한 설명, 주요 기술, 빌드, 배포에 대해 공유 이 포스트는 저희가 2년여간 운영해온 분산처리 시스템의 구조개선 프로젝트에 대해서 시스템 구축에 사용한 기술과 경험을 공유하고자 합니다 구조개선 하려는 시스템은 IMDG 플랫폼 Apache…
리모트 컨피그 서버 구축기 안녕하세요. 저는 배민서비스개발실에서 웹어플리케이션 서버를 개발하는 강홍구입니다. 이 글에서는 배달의민족 앱에서 사용되는 여러가지 설정값들을 관리하기 위한 리모트 컨피그 서버를 구축한 내용에 대해 공유 하고자 합니다. 왜 리모트 컨피그 서버가 필요했을까? 브라…
배달아~ 배달 가는길 알려줘!(단호함) 서론 배민라이더스에서는 배달거리를 업소와 고객의 주소 정보를 이용해서 지구는 적당히(?) 둥글다는 계산으로 거리계산을 하고 있습니다. ~대충대충코드~ double theta = from.getLongitude() - to.getLongitude()…
스마트 제조 분석의 현재와 한계 제조업, 특히 하이테크 제조분야에서는 인더스트리 4.0(Industry 4.0)과 스마트 공장(Smart Factory)과 같은 새로운 방법의 모색을 통하여 끊임없이 변화하는 시장 요구사항에 대응함으로써 혁신적인 제품을 더 빨리 제공할 수 있는 방법을 찾…
응? 이게 왜 롤백되는거지? 이 글은 얼마 전 에러로그 하나에 대한 호기심과 의문으로 시작해서 스프링의 트랜잭션 내에서 예외가 어떻게 처리되는지를 이해하기 위해 삽질을 해본 경험을 토대로 쓰여졌습니다. 스프링의 트랜잭션의 세부적인 동작방식을 살펴보기 때문에 코드가 많고 설명이 조금 긴…
클린 아키텍처와 함께하는 배민앱 (Android) 배민마켓 개발하기 안녕하세요, 배민앱개발팀에서 안드로이드 앱 개발을 하고 있는 강경완입니다. 안드로이드 파트로 온 지 얼마 되지 않아 미션이 떨어졌습니다. 기존에 음식 배달만을 하던 배달의민족 서비스에 배민마켓이라는 새로운 형태의 서비스…
지난 1편에서는 어떻게 Spark에서 클러스터 컴퓨팅 작업들이 처리되는지를 이해하고, 이를 기반으로 Spark Context를 잘 관리함으로써 얻을 수 있는 장점들에 대해 소개를 해드렸습니다. 이번 시간에는 이를 바탕으로 Spark에서 제공하는 Fair Scheduler와 Dynamic…
빅데이터 엔지니어링의 중심에 있는 Spark 2003년 Google에서 GFS 논문이 발표되고, 이를 참고하여 개발된 Hadoop 프로젝트가 2006년에 오픈소스로 공개되었습니다. Hadoop을 통해 일반 PC로도 빅데이터를 다룰 수 있게 된 덕분에, 우리는 본격적인 빅데이터 시대를 맞…
flexbox로 만들 수 있는 10가지 레이아웃 - 등록일 - 2019.01.03 - | - 코멘트 - 425413 마크업 개발자들은 종종 "이 레이아웃은 구현이 불가능합니다.", "CSS만으로는 안될 것 같습니다. 개발 처리가 필요합니다."라고 이야기합니다. 이 말은 사실입니다. 일반…
삼성SDS 리서치 아메리카(Samsung SDS Research America)의 오픈 이노베이션 팀(Open Innovation team)은 시장 진출 파트너십과 리셀러(Reseller) 협약, 전략적 기업 투자, 인수와 같은 방식을 통해 삼성과 외부 기업이 협력하는데 주력하고 있습니…
React에서 Mobx 경험기 (Redux와 비교기) 안녕하세요 딜리버리플랫폼팀 김찬정입니다. 이 글의 목적 React와 함께 사용하는 State(상태)관리 라이브러리중 가장 많이 사용되고 있는 Redux와 또 다른 라이브러리인 Mobx를 직접 사용하여 개발해 보고 느낀 차이점과 Mob…
Spring Rest Docs 적용 안녕하세요? 우아한형제들에서 정산시스템을 개발하고 있는 이호진입니다. 지금부터 정산시스템 API 문서를 wiki 에서 Spring Rest Docs 로 전환한 이야기를 해보려고 합니다. 1. 전환하는 이유 현재 정산시스템은 API 문서를 wiki 로…
클라우드를 분류할 때 흔히 IaaS(Infra as a Service), PaaS(Platform as a Service), SaaS(Software as a Service)로 분류합니다. 클라우드를 활용한 서비스를 제공하기 위해서는 주로 IaaS, PaaS 등을 활용해 어플리케이션을…
행사 소개 필자는 12월 10일부터 13일까지 4일간, 시애틀의 워싱턴 컨벤션 센터(Washington State Convention Center)에서 열린 Kubecon + CloudNativeCon North America 2018 행사에 참석했습니다. Kubecon + CloudN…
우아한 Developer Relations 두번째 이야기 모든 사람을 대상으로 한 PR(Public Relations)에서 배운, 개발자를 대상으로 한 DR(Developer Relations) 이야기. Developer Relations 지난 4월에 ‘우아한형제들의 Developer…
필자는 지난 11월 9일부터 4일간 California San Jose에서 개최된 “AI Frontiers Conference 2018”에 참석하여 AI 석학들의 Keynote Speech를 직접 듣고, 최신 Trend를 경험할 수 있었습니다. 총 40여 명의 연사들이 다양한 주제를 가…
Elastic Stack과 Lambda를 활용한 데이터 모니터링 시스템 구축 - 등록일 - 2018.11.17 - | - 코멘트 - 31520 네이버쇼핑의 일부 시스템에서는 서비스에 적용할 상품 데이터를 받아서 Apache Kafka(이하 Kafka)를 통해 서비스에 반영합니다. 이 과…
프로젝트가 장난이야?! 안녕하세요. 저는 배달의 민족 주문시스템을 개발하고 있는 권용근입니다. (출처 : 타요장난감 타요학교와 꼬마버스타요 버스 친구들:지호토이TV) 저는 개발자의 개인 장난(감)인 프로젝트인 토이 프로젝트에 대해서 이야기해보려고 합니다. 저는 웹 개발 입문과 거의 동시…
Fixed IP vs Floating IP(TOAST 서비스 들여다보기) Fixed IP vs Floating IP 지난달 뉴스레터에서는 VPC를 이용해 이를 통해 격리된 환경의 인프라 운영이 가능하다는 설명을 드렸는데, 이번달에는 VPC 내부 망에서만 사용할 수 있는 사설 IP와 외부…
네이버 메인 페이지의 트래픽 처리 - 등록일 - 2018.11.05 - | - 코멘트 - 101551 스마트폰이나 PC를 보유한 사람이라면 누구나 한 번 정도는 네이버 메인 페이지에 접속해 봤을 것입니다. 네이버 메인 페이지의 트래픽은 평소에도 많은 편이지만 사회적으로 주목을 받는 일이…
KakaoTalk Bizmessage 서비스와 친구톡 기능 소개(TOAST 서비스 들여다보기) KakaoTalk Bizmessage 서비스 최근에 TOAST에 친구톡이라는 기능을 새롭게 마련하면서, 알림톡과 친구톡을 합쳐서 KakaoTalk Bizmessage라는 이름의 서비스로 개편하…
지난 10월 18일 삼성SDS West Campus 마젤란홀에서 전일 행사로 개최된 'OKKY Conference 2018' 행사의 참관기 입니다. 이번 ‘OKKYCON: 2018’ 개발자 컨퍼런스의 주제는 'The Real TDD – TDD(Testable-code-driven Dev…
사물 인터넷(IoT: Internet of Things) 기술이 발달하면서, 기업은 비즈니스와 고객 경혐 혁신을 위해 IoT 기술의 도입을 시도하고 있습니다. 이 과정에서 IoT 기술의 성공적인 비즈니스 적용을 위해, 수 많은 디바이스를 통제하고 관리하는 IoT 플랫폼의 역할이 중요하게…
신규 포인트 시스템 전환기 #1 – 개발 단계 포인트 시스템 개편기 #1 – 개발 안녕하세요? 우아한 형제들에서 결제/정산 (+포인트와 비즈머니) 시스템을 개발하고 있는 이동욱입니다. ‘사내 블로그에 글을 더 쓸 일이 있을줄이야’ 라는 마음으로 VS Code로 글을 쓰고 있습니다. 저는…
Real-time Service Configuration으로 Consul을 신주소 서비스에 적용한 사례 안녕하세요. 배민프론트서버개발팀 박제현입니다. 주소 검색 서비스를 개선하면서 Real-time Service Configuration으로 consul을 적용한 사례를 공유하고자 합니다…
VPC 사용법(TOAST 서비스 들여다보기) VPC (Virtual Private Cloud) VPC는 논리적으로 격리된 가상 네트워크을 구성할 수 있는 기능을 제공합니다. 이를 통해 격리된 환경의 인프라 운영이 가능합니다. VPC는 Subnet, Internet Gateway, Rou…
Push 광고성 메시지 수신 동의 여부 처리방법 안내(TOAST 서비스 들여다보기) 필요성 광고 메시지를 전송할 때, 광고 전송 사업자는 정보통신망법의 의무사항을 준수해야 합니다. KISA 가이드에 따르면 영리목적의 광고성 정보를 전송하는 경우에는 "광고"라는 문구와 발송자의 연락처,…
작년에 이어 올해도 블라인드 전형으로 카카오 개발 신입 공채가 시작되었습니다! 그 첫 번째 관문으로 1차 온라인 코딩 테스트가 지난 9월 15일(토) 오후 2시부터 7시까지 5시간 동안 치러졌는데요. 지원자분들 만큼이나 준비위원들도 테스트가 문제없이, 공정하게 치러질 수 있도록 많은 준…
분산 데이터베이스 환경에서 RoutingDataSource 사용 시 JTA를 이용한 트랜잭션 처리 - 등록일 - 2018.09.14 - | - 코멘트 - 34918 트랜잭션은 모든 작업이 성공한 경우에만 작업이 커밋되어 데이터베이스에 반영되고, 하나의 작업이라도 도중에 실패하면 모든 작…
1. 들어가며 시스템 성능 개선을 위한 요구사항 기업이 관리하고 활용하는 데이터는 지속적으로 증가하고 있으며, 이들 데이터에 대한 실시간 처리 요구 또한 증대하고 있다. 글로벌 기업들은 고객의 수요 동향을 파악하고, 공장 생산을 관리해야 하며, 복잡한 공급망을 비롯하여 최신 트렌드 분석…
Proxy 모드 로드밸런서 이용시 클라이언트 IP 로깅하기(TOAST 서비스 들여다보기) 로드밸런서란? 기본적으로 LB는 외부로 부터 들어온 요청에 대해 내부에 있는 서버들로 부하를 분산하는 용도로 사용이 됩니다. 자체적으로 내부에 있는 서버들의 상태를 체크해서, 서비스가 불가능한 서버…