계기: Redis 성능 측정과 Key/Value 값 저장 문제 최근 서비스 고도화를 위해 회사의 중요 서비스들을 MSA로 변환하던 중, 성능 향상 및 용도를 이유로 개발팀은 Redis 도입을 고려하고 있었습니다. 그러다 최근 api 하나의 버전이 업데이트된 이후 덜컥 장애가 발생했습니다…
개발자를 위한 레디스 튜토리얼 01 레디스? 레디스는 REmote DIctionary Server 의 약자입니다. 아마 이 글을 읽으시는 대부분의 분들은 레디스를 사용해보신 경험이 있을 것이고, 적어도 어떤건지 들어는 보셨을 것이라고 생각합니다. Who uses Redis? 레디스는 오…
Database Driven Development에서 진짜 DDD로의 선회 -1- DDD에 대한 오해에서 벗어나고 개발의 즐거움을 깨달은 이야기 들어가며 - 과거의 내 모습 이 글은 DDD(Domain Driven Design 또는 Development)에 대해 아무런 고민도 없던 제가…
정산지기를 향한 첫걸음 (feat. 파일럿 프로젝트) 안녕하세요-! 우아한형제들 정산시스템팀 신입 개발자 박우빈입니다. 예전부터 계속 눈팅만 하면서 구경하던 우아한형제들 기술블로그에 제가 지금 localhost:4000을 띄우고 글을 작성하고 있다니 쉽게 믿기지 않네요ㅎㅎ 오늘은 제가…
들어가며 - 과거의 내 모습 이 글은 DDD(Domain Driven Design 또는 Development)에 대해 아무런 고민도 없던 제가 현장에서 DDD를 팀원들과 함께 실천하며 깨달은 것(주로 경험)에 대한 이야기 입니다.(내용이 길어지고 하고 싶은 이야기가 많아져서 디테일한 이…
안녕하세요, 뱅크샐러드 엔지니어링 파운데이션의 정겨울입니다. 뱅크샐러드는 마이크로 서비스 환경에서 다양한 언어와 프로토콜을 활용해 서비스를 운영하고 있습니다. 하나의 서비스는 요청을 처리하기 위해 다른 서비스의 API를 호출하는데 대부분의 기존 서비스는 REST API를 통해 JSON으…
Spring WebFlux와 Armeria를 이용하여 Microservice에 필요한 Reactive + RPC 동시에 잡기 - 등록일 - 2020.02.19 - | - 코멘트 - 55605 Monolithic 아키텍처는 오랫동안 많은 개발자들이 좋아하며 사용한 아키텍처입니다. 하나의…
배달의민족 최전방 시스템! ‘가게노출 시스템’을 소개합니다. 안녕하세요 우아한형제들 프론트검색서비스팀 권용근입니다. 저는 "먼데이 프로젝트" 라는 2019년 대형 프로젝트에서 요란하게 탄생하였고, 탄생한 순간부터 지금까지 배달의민족 최전방에서 활약 중인 2019년 4월 1일생 가게노출…
네이버 검색의 SRE 시스템 - 등록일 - 2020.02.11 - | - 코멘트 - 42126 네이버 검색은 국내 최대 규모의 트래픽과 데이터를 다루는 대용량 분산 시스템입니다. 수만 대의 서버에서 수백 개의 검색 서비스가 운영되고 있으며, 하루에도 몇 번씩 크고 작은 신규 개발과 유지…
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월초까지 생각했던 것은 팀에 관련된 주제였습니다. 결팀소: 결제시스템팀을 소개합니다와…
트리 쉐이킹 되는 UI 라이브러리 만들기 ㄱ부터 ㅎ까지 웹 페이지를 만들 때 풍부한 기능을 제공하기 위해서 잘 만들어진 UI라이브러리를 사용한다. 필자는 TOAST UI의 라이브러리 중 하나를 개발하고 있고 그동안 쌓은 경험과 노하우를 대방출하고자 한다. 이 글은 UI 라이브러리를 만들…
지속 가능한 소프트웨어를 위한 코딩 방법 - 못다한 이야기 가끔 개발자들과 이야기하다 보면, 요즘엔 RDBMS를 저장소로 사용하는 프로젝트는 대부분 JPA를 사용한다고 합니다. 저도 마찬가지고요. 그런데 몇몇 분들은 JPA에 대한 오해를 하고 계시더군요. 그리고 JPA를 잘못 사용하는…
Tim sort에 대해 알아보자 - 등록일 - 2020.01.10 - | - 코멘트 - 76943 정렬이라는 주제는 처음 프로그래밍을 배울 때 간단한 정렬을 구현해보는 것으로 접하기 시작하여, 자료구조론, 알고리즘론을 통하여 다양한 정렬 알고리즘의 시간 복잡도와 동작 원리에 대해서 배우…
구상준 | 2020년 01월 03일 | #Machine_Learning 이번 블로그에서는 2017년에 발표되어 자연어처리 분야의 한 획을 그었던 Transformer 구조와 이를 활용한 GPT / BERT 구조에 대해서 다룹니다. 아울러 어떠한 문제들이 있었고 연구자들이 어떻게 그 문제…
메인 데이터베이스 IDC 탈출 성공기 안녕하세요. 우아한형제들 시스템신뢰성개발팀 박주희입니다. 2019년을 마무리하는 시점에 우아한형제들이 어떻게 메인 데이터베이스를 IDC 환경에서 탈출시켰는지, 그 과정을 공유하려고 합니다. 발단 2010년 6월 출범한 배달의민족은 (2018년 12월…
DBA와 개발자가 모두 행복해지는 Hibernate의 in_clause_parameter_padding 옵션 Java ORM 기술의 표준 명세인 JPA가 소개된 지 참 오래되었지만, 국내 현실상 대규모 시스템에서 적용되어 사용된 운영 경험이 충분히 쌓이지 않고 공유되지도 않는 것 같습니…
NAVER Tech Talk: AI 7차 (2019년 1월, 5월~10월) - 등록일 - 2019.12.12 - | - 코멘트 - 9446 NAVER에서는 매주 사내외 전문가를 초빙하여 테크톡을 진행하고 있는데요. 발표자 분의 공개 동의를 얻어 NAVER Engineering 페이스북에…
반응형 시스템 개선하기(feat. TOAST UI Grid) TOAST UI Grid는 자체적인 반응형 시스템을 구축하여 데이터의 상태 관리를 하고 있다. 데이터가 변경되면 반응형 시스템이 변경을 감지하고 있는 다른 데이터 속성들도 자동으로 갱신해주기 때문에 데이터의 변경 관리를 편리하…
Aurora MySQL를 운영하면서 알면 좋을 것 같은 미세한 팁 들어가며 안녕하세요. 우아한형제들에서 DBA로 근무하고 있는 유영근입니다. 저희는 AWS환경에서 RDS로 수많은 요청을 처리하고 저장하며 Aurora MySQL을 주력으로 사용하고 있습니다. 한정된 사람구하기 힘든 DBA…
AI 동향 2012년 국제영상인식대회인 ILSVRC(ImageNet Large Scale Visual Recognition Challenge, 이미지넷)를 통해 심층학습(Deep Learning)의 성능이 학계 및 산업계에 입증된 이후, AI는 2차 암흑기(AI Winter)를 지나 다…
카카오커머스를 지탱하는 Angular from if kakao 카카오커머스의 FE개발파트는 React나 순수 JS로 개발되어있던 선물하기, 쇼핑하기 등 각 서비스 프레임웍을 모두 Angular로 전환하고 있습니다. 이 글에서는 이 결정을 하게 된 배경과 Angular가 어떤 프레임웍이고…
프렌즈타임 웹앱 삽질기 from if kakao 안녕하세요, 카카오게임즈에서 프렌즈타임 클라이언트를 개발하고 있는 mark입니다. 지난 11월 13일 진행된 kakao FE meetup에서 ‘프렌즈타임 웹앱 삽질기’ 라는 주제로 발표한 내용을 옮긴 글입니다. 주니어 개발자로 팀에 합류하…
안녕하세요, 여러분! 며칠 전 핑퐁팀 ML 엔지니어들은 홍콩에서 열린 EMNLP 2019에 다녀왔습니다. 지난번 포스트에서는 EMNLP 에 Accept 된 논문 중에 관심이 있었던 페이퍼들을 학회에 가기 전에 미리 보고 리뷰를 해봤었는데요. (https://tech.scatterlab.…
이 글은 <카카오 나우>의 콘텐츠를 인용했습니다. ‘세상을 조금 더 좋아지게 만드는 사람들’ 기술 발전 속도가 거세짐에 따라 더 많은 개발자들이 보다 나은 내일을 만드는데 기여하고 있습니다. 수천만 명이 사용하는 카카오 서비스들의 이면에도 여러 개발자들이 한 땀 한 땀 엮어놓은 알고리듬…
장성보 백영민 정다운 이주홍 구상준 김준성 | 2019년 10월 30일 | #Machine_Learning EMNLP는 자연어 처리(NLP) 분야를 주도하는 주요 국제 컨퍼런스 중 하나로, 매년 많은 NLP 연구자들이 주목하는 학회입니다. 올해는 11월 3일부터 7일까지 5일간, IJC…
2019년과 이후 JavaScript의 동향 – 브라우저 밖의 JavaScript 2 - 등록일 - 2019.10.28 - | - 코멘트 - 27984 브라우저 밖의 JavaScript 생태계를 다루는 "2019년과 이후 JavaScript의 동향" 시리즈의 마지막 글에서는 JavaSc…
2019년과 이후 JavaScript의 동향 – 브라우저 밖의 JavaScript 1 - 등록일 - 2019.10.28 - | - 코멘트 - 29904 이제 JavaScript는 프런트엔드에서만 작동하는 언어라고 말할 수 없습니다. 브라우저 영역에만 국한되지 않는 다양한 시도가 Java…
올해 오프라인으로 진행된 2차 코딩 테스트 문제는 가상의 SNS 카카오팔로잉을 위한 팔로잉 추천 시스템을 구현하는 것이었습니다. 카카오팔로잉 카카오팔로잉은 팔로우 기반의 구독형 SNS로, 팔로잉(팔로우 중인 상대 사용자)의 글과 사진을 볼 수 있는 서비스입니다. 이 서비스는 다음과 같이…
웹 프론트엔드 프레임워크 개요 과거와 달리 최근에는 자바스트립트 진영에서도 프레임워크를 이용한 개발이 필수로 여겨지고 있습니다. 2017년까지만 해도 개발자들은 프로젝트에 Angular와 React 중 어느 것을 사용해야 하는지 여부를 주로 토론했으나, 2018년 이후 Vue.js라는…
WEB Firewall 서비스 소개 (TOAST Service 들여다 보기) WEB Firewall은 웹 공격을 전문적으로 탐지/방어하는 보안 설루션으로, 고객의 웹서비스로 공격이 인입될 경우, 전용 설루션을 통해 탐지/방어함으로써 즉각적인 대응이 가능하도록 지원하는 서비스입니다. TO…
개발자 머피의 법칙 안녕하세요, 우아한형제들 광고시스템팀의 손권남입니다. 이 글은 기술적인 내용도 아니고 우아한형제들 회사에 관한 이야기도 아닌, 순전히 저의 개인적인 경험을 다룹니다. 매우 긴 글이므로, 맨 앞과 맨 뒤, 그리고 제목 정도만 읽어도 대략의 핵심 주제는 파악 가능합니다.…
메일 시스템 구조개선을 진행하면서 kafka를 사용하며 부딪혔던 문제와 해결했던 방법을 공유하여 같은 문제를 겪을 수 있는 분들에게 도움이 되고자 작성하게 되었습니다. 최근 시스템솔루션개발파트에서는 MSA구조로 개선하는 프로젝트를 진행하고 있습니다. 이에 일환으로 메일 시스템의 구조개선…
Load Balancer 통계 기능 (TOAST Service 들여다 보기) 로드밸런서는 유입된 트래픽을 인스턴스로 분배하기 위해 사용하는 서비스입니다. TOAST 로드밸런서 서비스를 이용하면 인스턴스 하나로 처리하기 힘든 부하를 여러 대의 인스턴스로 분산하여 처리량을 높일 수 있고,…
글로벌 네트워크 에뮬레이터 prism_pacman 소개 - 등록일 - 2019.08.28 - | - 코멘트 - 15250 해외 서비스에서 현지 네트워크 상황을 고려하여 최적화된 서비스를 제작하고 튜닝하는 일은 쉽지 않습니다. 전송 속도가 낮아서 서비스 전체적인 응답 속도가 떨어져 답답하…
안녕하세요. 당근마켓 머신러닝 엔지니어 Young입니다. 이번에 글쓰기 화면에 들어간 카테고리 추천 기능의 모델을 개발한 과정을 정리해 봤습니다. 아래의 순서로 정리해 봤습니다. - 카테고리 추천 모델 개발의 목적 - 카테고리 분류 방법들 - 카테고리 추천 모델 개발을 위한 데이터셋 -…
TOAST CDN 소개(TOAST Service 들여다 보기) CDN (Content Delivery Network) 이란? CDN (Content Delivery Network)은 콘텐츠(이미지, 텍스트, 미디어 파일 등)를 최적화된 경로를 통해 전송할 수 있도록 전 세계적으로 분산된…
About OOME OOME란 Out Of Memory Error의 첫글자를 따서 약어처럼 쓰는 전세계에서 통용되는 일종의 프로그래밍 언어다. 데이터 분석과 관련된 프로젝트 일을 하는 필자로서는 가장 보기 싫은 에러임과 동시에, 현장에서 발생하면 설명하기가 매우 까다로운 녀석임에 틀림이…
2019년과 이후 JavaScript의 동향 - 라이브러리와 프레임워크 2 - 등록일 - 2019.08.09 - | - 코멘트 - 39504 웹 컴포넌트(Web Component)가 프런트엔드 영역의 개발을 컴포넌트 기반 개발로 전환할 수 있을 것이리라 기대했지만 오랜 시간 동안 웹 컴…
데이터 품질에 관한 5개 체크포인트 - 등록일 - 2019.08.06 - | - 코멘트 - 18072 '코드 품질'은 소프트웨어 개발자에게 직업적 사명의 문제인지라, 이것의 중요성에 대해서는 따로 강조할 필요가 없습니다. '데이터 품질'이란 말은 이에 비하면 다소 모호하고 생소한 개념입…
2019년과 이후 JavaScript의 동향 - 라이브러리와 프레임워크 1 - 등록일 - 2019.08.02 - | - 코멘트 - 60045 어느 순간부터 프레임워크의 홍수 속에 있는 듯합니다. 각 프레임워크가 내세우는 철학과 다양한 장점에 촉각을 세우고, 어떤 것을 선택해야 할지 그리…
Docker 기반 분산 트랜스코더 개발 - 등록일 - 2019.08.01 - | - 코멘트 - 20894 VOD(video on demand, 주문형 비디오) 서비스는 다양한 사용자 환경에서 일관된 품질로 영상이 재생될 수 있도록 콘텐츠를 준비해야 합니다. 서비스에 업로드된 원본 영상은…
우리는 일상 생활에서 무수히 많은 데이터를 생산하고 있습니다, 길을 걸으며 누군가와 메시지를 주고받거나 통화할 때, 쇼핑몰에서 물건을 살 때나, 지하철을 탈 때, 그리고 휴대폰을 통해 드라마를 볼 때도 연관된 많은 데이터가 만들어지고 저장되고 분석됩니다. 시장 조사 기관인 IDC(Int…
멀티모듈 설계 이야기 with Spring, Gradle 멀티 모듈 설계 이야기 안녕하세요. 배달의민족 프론트 서버를 개발하고 있는 권용근입니다. 멀티 모듈의 개념을 처음알게 되었을 때부터 현재까지 겪었던 문제점들과 그것을 어떻게 해결해나갔는지를 이야기해보려고 합니다. 아래 내용은 모두…
이주홍 백영민 김준성 | 2019년 07월 01일 | #Machine_Learning XLNet은 최근에 대부분의 NLP 테스크들에서 state-of-the-art 성능을 달성하고 있던 BERT를 큰 차이로 outperform 하면서 파장을 일으켰습니다. 논문 저자들은 기존의 Langu…
NAVER 오픈소스 세미나 - Performance does matter - 등록일 - 2019.06.28 - | - 코멘트 - 18499 다양한 컴포넌트의 조합으로 구성된 서비스를 운영하다보면 장애나 성능 문제가 발생했을 때 정확한 원인을 파악하는데 시간이 오래 걸린다는 또다른 난제에…
2019년과 이후 JavaScript의 동향 - WebAssembly - 등록일 - 2019.06.24 - | - 코멘트 - 32354 WebAssembly는 C와 C++ 같은 프로그래밍 언어를 컴파일해 어느 브라우저에서나 빠르게 실행되는 바이너리 형식(low-level language…
더 가볍고 강력해진 TOAST UI Grid v4.0을 만나보세요! TOAST UI Grid 4.0 TOAST UI Grid는 여러분의 데이터를 효과적으로 표현하고, 편리한 사용성을 제공하기 위해 많은 노력을 해왔습니다. TOAST UI Grid 4.0은 더 빠르고, 가벼우면서 사용하기…
Apollo Client는 Redux와 무엇이 다른가 - 등록일 - 2019.06.17 - | - 코멘트 - 35858 최근 들어 REST API의 단점을 보완하고 더 개선된 사용 환경을 제공하기 위해 네이버의 다양한 서비스에서 GraphQL을 기반으로 한 Apollo Client를 도…
0.7KB로 Vue와 같은 반응형 시스템 만들기 TOAST UI Grid는 현재 새로운 메이저 업데이트인 버전 4를 릴리스하기 위해 열심히 준비중이다. 버전 4는 Backbone과 jQuery를 사용해서 작성했던 기존의 코드를 모두 버리고 처음부터 새로 작성하는 대대적인 개편 작업이다.…
출처 https://www.import.io/post/history-of-deep-learning/ 머신러닝은 여러 산업 분야 및 연구에 있어서 매우 중요한 주제 중 하나입니다. 머신러닝은 1949년 Hebb이 Hebbian Learning Theory를 발표하는 것으로 시작되었습니다.…
Spring Boot에서 Repository로 DynamoDB 조작하기 (1) – 설정부터 실행까지 안녕하세요, 미래사업부문 김명재입니다. 작년 10월에 우아한형제들에 입사하고 행복한 주니어 개발자 생활을 하고 있습니다. 현재 개발중인 시스템의 NoSQL DB를 MongoDB에서 Dyn…
[Java] Integer.valueOf(127) == Integer.valueOf(127) 는 참일까요? 안녕하세요. Java에는 최적화를 위해 객체들을 Cache를 하는 로직이 있습니다. Cache 로직은 애플리케이션의 성능 향상을 하도록 도와주지만, 의도치 않은 결과를 발생시키기도…
Deep Neural Network 경량화의 필요성 2012년 이미지 분류 대회인 ILSVRC(ImageNet Large-Scale Visual Recognition Challenge)에서 Deep Neural Network 기반의 Alexnet이 2위(Top 5 Error 26.2%)…
#안전하고 안심할 수 있는 게임을 만들고 싶어 게임은 소프트웨어 프로그램 중에서도 특히나 여러가지 요소가 유기적으로 작용하는 아주 복잡한 콘텐츠다. 그만큼 엮어진 부분들이 많기 때문에 버그도 많이 발생하는 편이다. 슬프게도 테스트를 통해 찾는 버그도 매우 많지만 그만큼 찾지 못하는 버그…
작년 이맘때 GDPR의 실효를 목전에 두고 “GDPR과 PSD2를 통해 바라본 개인정보보호를 위한 데이터분석 방법”이라는 제목의 기고문을 한 차례 작성하였습니다. (https://www.samsungsds.com/kr/insights/GDPR_data_analytics.html) 이전…
도움이 될수도 있는 JVM memory leak 이야기 도움이 될지도 모르는 JVM memory leak 얘기인데 제목을 뭐라고 하지? 안녕하세요. 배민 플랫폼실 주문중계 시스템팀 오민철입니다. 이 글은 몇 줄의 코드와 어디서 걸렸는지 모를 dependency library로 발생한 m…
블록체인 속도 경쟁 '블록체인은 느리다'는 편견을 뒤로하고 수많은 블록체인 업체들은 더 빠른 거래처리기술을 확보하기 위한 경쟁에 뛰어들고 있습니다. 처음 비트코인이 등장하였을 때, 비트코인이 제공할 수 있는 최대 7TPS(Transaction Per Second, 초당 트랜잭션 수)는…
5월 우아한 Tech 세미나 후기 안녕하세요. 교육코스개발팀 이동규입니다. 저희 팀은 5월 7일부터 우아한테크코스 교육을 진행하고 있습니다. 교육과 관련하여서는 이전의 포스팅에서 모집글과, 프리코스관련 글을 확인하실 수 있습니다. 현재 우아한형제들은 다양한 DR (Developer Re…
당근마켓 첫화면은 동네 사람들이 사용하는 다양한 물품을 보는 재미가 있어요. 누군가에겐 이제 필요없지만 나에게 유용한 물건들을 발견하게 되고 더불어 저렴하게 득템 할 기회도 종종 있죠. 매일 새로운 글이 올라오는 첫 화면의 스크롤을 내리며 탐색하는 즐거움이 일상이 되어가고 있습니다. 이…
TensorFlow를 활용한 네이버쇼핑의 상품 카테고리 자동 분류 - 등록일 - 2019.05.02 - | - 코멘트 - 80529 네이버쇼핑은 네이버가 제공하는 쇼핑 포털 서비스입니다. 네이버쇼핑은 상품을 체계적으로 구성하고 사용자가 보다 쉽게 검색할 수 있도록 상품을 카테고리에 매칭…
최신 브라우저의 내부 살펴보기 4 - 컴포지터가 사용자 입력을 받았을 때 - 등록일 - 2019.04.30 - | - 코멘트 - 13333 이 글은 Google Developers 사이트에 공개된 Mariko Kosaka의 "Inside look at modern web browser"…
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를 코드레벨로 어떻게 관리하고 있는지에 대해 공유드리려…
동영상 플랫폼 개선기 2 - 신규 동영상 플랫폼 구축 - 등록일 - 2019.04.15 - | - 코멘트 - 16393 "동영상 플랫폼 개선기 1 - 신규 동영상 플랫폼의 구성"에서는 기존 동영상 플랫폼의 구성과 문제점, 새로운 동영상 플랫폼의 구성을 살펴보았습니다. 새로운 동영상 플랫…
저녁 11시까지 주문하면 Full-Cold Chain을 통해서 다음날 7시까지 배송해주는 마켓컬리 서비스 구성에 대해서 상세하게 소개 드립니다. 마켓컬리 서비스는 크게 사용자가 신선식품을 포함한 각종 상품을 앱과 웹을 통해서 쇼핑할 수 있는 이커머스 서비스와 주문한 상품을 물류 센터내에…
동영상 플랫폼 개선기 1 - 신규 동영상 플랫폼의 구성 - 등록일 - 2019.04.11 - | - 코멘트 - 22771 네이버의 동영상 플랫폼은 2007년에 네이버 블로그에 동영상 서비스를 처음으로 지원했습니다. 현재는 약 60여 개의 네이버 서비스를 지원하고 있으며, 동영상 처리를…
오늘날 브랜드와 소매업체 모두, 옴니 채널(omni-channel) 환경에서 진화하고 있는 고객의 구매 과정을 더 잘 이해하기 위해 서로 경쟁하고 있습니다. 기업들은 신제품을 출시할 때 브랜드 ‘페르소나(persona)’를 강조합니다. 즉, 외향적이고 모험심이 강하다거나, 상상력이 풍부…
최신 브라우저의 내부 살펴보기 2 - 내비게이션 과정에서 일어나는 일 - 등록일 - 2019.03.26 - | - 코멘트 - 23162 이 글은 Google Developers 사이트에 공개된 Mariko Kosaka의 "Inside look at modern web browser"(최…
리모트 컨피그 앱 개발기 안녕하세요. 우아한형제들 배민앱개발팀에서 안드로이드 앱을 개발을 하고 있는 이민형입니다. 배달의민족 앱에서 앱의 다양한 설정 값들을 앱 배포없이 적용할 수 있는 리모트 컨피그 기능에 대해 공유하고 리모트 컨피그를 어떻게 사용하고 있는지에 대한 내용을 공유드리려…
Aurora 로컬 스토리지 성능 테스트 안녕하세요 시스템신뢰성개발팀에서 DBA로 근무하고 있는 오윤택입니다. 오로라를 사용할때 그동안 로컬스토리지의 성능이슈로 인하여 구 모델인 R3 인스턴스를 사용해왔습니다. 최근 오로라에 R5 인스턴스가 추가된 만큼, 계속 R3 인스턴스를 사용하는게…
3월 우아한 Tech 세미나 후기 스프링 리액티브 세미나 후기 안녕하세요! 우아한 형제들에서 결제/정산/포인트/비즈머니를 담당하는 결제정산개발팀 이동욱입니다. 사내에서는 다양한 DR (Developer Relations) 활동을 하고 있습니다. 여러 활동 중 이번엔 토비의 스프링의 저자…
최신 브라우저의 내부 살펴보기 1 - CPU, GPU, 메모리 그리고 다중 프로세스 아키텍처 - 등록일 - 2019.03.14 - | - 코멘트 - 62850 이 글은 Google Developers 사이트에 공개된 Mariko Kosaka의 "Inside look at modern w…
필자는 지난 2월 20일부터 미국 오클랜드에서 3일간 진행된 ‘DeveloperWeek 2019’ 컨퍼런스에 참석했습니다. DeveloperWeek은 매년 8000여명의 개발자와 엔지니어, 경영진 등 다양한 인력들이 참석하여 최신 개발 기술의 현황과 업적 등을 공유하는 자리로, 금년도…
aop를 이용한 oauth2 캐시 적용하기 서론 저는 현재 미래사업부문에서 신규 서비스를 만들고 있으며, 신규 서비스는 기존 우아한 형제들에서 서비스중인 배달의민족과 디펜던시를 갖지 않는 독립적인 서비스다 보니 모든 것을 처음부터 새 판에서 고민하며 만들어 가고 있습니다. 이 글에서는…
행사소개 필자는 [Deep Learning Summit 2019, “Deep Learning Stage”]를 기고한 정지원 프로와 함께 1월 24일부터 25일까지 2일간, 샌프란시스코에서 열린 Deep Learning Summit 2019 행사에 참석했습니다. 본 컨퍼런스는 Deep L…
딥러닝을 활용한 거래량 예측 기능 개선 - 등록일 - 2019.02.27 - | - 코멘트 - 36022 네이버페이의 카드 결제 시스템에서는 사용자의 거래량을 예측하고 평소와 다른 문제 상황을 감지해 알림을 보내는 모니터링 시스템을 운영합니다. Facebook의 Prophet 라이브러리…
고객과 직접 마주하는 웹페이지는 다양한 크기의 장치에서 잘 보여야 합니다. 특히나 모바일 게임 회사의 웹페이지는 다양한 크기의 휴대폰에서 잘 보여야 합니다. #괴로운 지점 보통 대응해야되는 화면마다 미디어쿼리를 작성해서 반응형 처리를 합니다. 하지만 그렇게 구현하면 대응하지 않은 중간…
2019년 1월 24일부터 이틀간, 세계적 규모의 AI 컨퍼런스 중 하나인 ‘Deep Learning Summit 2019’가 미국 San Francisco에 위치한 Hyatt Regency 호텔에서 개최되었습니다. 필자는 출장을 통해 해당 컨퍼런스에 참석하여 최신 Deep Learni…
브랜드는 항상 고객과의 관계를 강화할 수 있는 방법을 모색합니다. 하지만 요즘같이 광고에 둘러싸여 그로부터 발생하는 모든 소음을 접하는 환경에서, 브랜드들이 고객에게 다가가는 것은 특히 어렵죠. 소비자가 집에서 TV를 보거나 인터넷을 할 때 접근하는 방법도 있지만 이 또한 소비자의 관심…
리모트 컨피그 서버 구축기 안녕하세요. 저는 배민서비스개발실에서 웹어플리케이션 서버를 개발하는 강홍구입니다. 이 글에서는 배달의민족 앱에서 사용되는 여러가지 설정값들을 관리하기 위한 리모트 컨피그 서버를 구축한 내용에 대해 공유 하고자 합니다. 왜 리모트 컨피그 서버가 필요했을까? 브라…
사물인터넷(IoT), 인공지능 등 4차 산업혁명 기반 기술이 발전함에 따라 대형 마트, 백화점, 편의점은 물론 일반 리테일 매장까지 유통 환경 전반에 영향을 미치고 있습니다. 이에 국내/외 선진 유통 기업들은 오프라인 매장에 첨단 ICT 기술을 도입함으로써 새로운 고객 경험과 가치를 창…
배달아~ 배달 가는길 알려줘!(단호함) 서론 배민라이더스에서는 배달거리를 업소와 고객의 주소 정보를 이용해서 지구는 적당히(?) 둥글다는 계산으로 거리계산을 하고 있습니다. ~대충대충코드~ double theta = from.getLongitude() - to.getLongitude()…
스마트 제조 분석의 현재와 한계 제조업, 특히 하이테크 제조분야에서는 인더스트리 4.0(Industry 4.0)과 스마트 공장(Smart Factory)과 같은 새로운 방법의 모색을 통하여 끊임없이 변화하는 시장 요구사항에 대응함으로써 혁신적인 제품을 더 빨리 제공할 수 있는 방법을 찾…
SQL Server 에게 String 이란? (NVARCHAR 인가 VARCHAR 인가) SQL Server JDBC Driver 를 사용하면서 배운, 그리고 주의해야 할 특징 안녕하세요. 비즈상품개발팀에서 광고시스템을 개발하고 있는 김승영입니다. 현재 광고시스템의 일부분이 Spring…
세상은 데이터로 넘쳐납니다. 데이터 홍수의 시대죠. 사람들은 데이터를 수집, 정렬 및 분석하여 정확한 정보를 바탕으로 비즈니스 전략에 대한 결정을 내립니다. 효과적인 전자상거래 전략으로 디지털 공간을 장악하고 있는 기업들은 고객의 데이터를 적재적소에 활용할 줄 알죠. 오프라인 소매상들은…
클린 아키텍처와 함께하는 배민앱 (Android) 배민마켓 개발하기 안녕하세요, 배민앱개발팀에서 안드로이드 앱 개발을 하고 있는 강경완입니다. 안드로이드 파트로 온 지 얼마 되지 않아 미션이 떨어졌습니다. 기존에 음식 배달만을 하던 배달의민족 서비스에 배민마켓이라는 새로운 형태의 서비스…
전자상거래가 오프라인 소매업의 성장을 막는다는 것은 공공연한 사실입니다. 아마존(Amazon)과 같은 전자상거래 대기업들은 지난 10년 동안 천문학적인 성장을 해왔고, 월마트(Walmart)와 타깃(Target) 같은 오프라인 소매업체들은 온라인 비즈니스에 많은 투자를 하고 있습니다.…
NAVER Tech Talk: UIT 개발 밋업 (2018년 9월) - 등록일 - 2019.01.10 - | - 코멘트 - 4301 NAVER에서는 다양한 기술에 대한 테크톡을 주기적으로 진행하고 있는데요. 2018년 9월에 진행한 사내 UIT 개발 밋업 발표 영상을 공유합니다. 웹 애…
지난 1편에서는 어떻게 Spark에서 클러스터 컴퓨팅 작업들이 처리되는지를 이해하고, 이를 기반으로 Spark Context를 잘 관리함으로써 얻을 수 있는 장점들에 대해 소개를 해드렸습니다. 이번 시간에는 이를 바탕으로 Spark에서 제공하는 Fair Scheduler와 Dynamic…
React와 Apollo, Parcel 기반 서비스 개발 - 등록일 - 2019.01.07 - | - 코멘트 - 40663 웹 서비스를 개발하는 기술은 매우 빠르게 변하고 있습니다. 매년 기존 플랫폼의 단점을 개선한 새로운 플랫폼이 등장하고, 신규 서비스를 개발할 때는 어떤 기술을 사용…
빅데이터 엔지니어링의 중심에 있는 Spark 2003년 Google에서 GFS 논문이 발표되고, 이를 참고하여 개발된 Hadoop 프로젝트가 2006년에 오픈소스로 공개되었습니다. Hadoop을 통해 일반 PC로도 빅데이터를 다룰 수 있게 된 덕분에, 우리는 본격적인 빅데이터 시대를 맞…