배민찬은 Vue를 어떻게 사용하나요? 이 글은 제이쿼리, PHP 기반의 쇼핑몰 서비스에 Vue를 도입한 사례를 정리한 내용입니다. 서비스에 Vue 도입을 고민 중이신 분들을 위해 경험기를 공유합니다. 배경 배민찬은 푸드 커머스 사업에 혁신을 만들어가는 스타트업 서비스다. 우리 개발팀은…
크로키가 클라이언트-서버 아키텍처를 가진 첫 번째 서비스 개발을 시작한 것은 2012년이었습니다. 클라이언트에서 서버와 통신할 방법이 필요했는데 당시의 대세는 REST API였습니다. 저도 거기에 공감했기 때문에 REST API를 만들어 클라이언트를 구현했습니다. 그 후로 모든 서비스는…
앱실행속도 개선을 위한 최적화 가이드 (1) 1. 들어가는 말 우리 게임은 왜 이렇게 로딩 시간이 긴 거야 ?! 경쟁사 게임은 이펙트도 화려하고 브금도 좋은데 왜 빠른 거고 ? [킹덤스토리] 작년 측정기록 24초에 비해 약 3초 개선되어 21초로 측정 되었다. 입장 버튼 터치 후 게임화…
앱실행속도 개선을 위한 최적화 가이드 (2) 스마트폰의 하드웨어적 성능은 날로 높아만 가고 있다. 당연한 얘기같지만 필자가 경험한 게임들은 기기 성능에 따라 실행시간이 대체로 빨라졌었다. 그럼 결론은 간단해 진다. '고객님 기기가 문제였네요. 고성능 폰을 쓰세요'라고 말이다. 실제로 대…
- blog 사용하면서 알게 된 Reactor, 예제 코드로 살펴보기 Reactor는 Pivotal의 오픈소스 프로젝트로, JVM 위에서 동작하는 논블럭킹 애플리케이션을 만들기 위한 리액티브 라이브러리입니다. Reactor는 RxJava 2와 함께 Reactive Stream의 구현체이…
장애와 관련된 XtraBackup 적용기 안녕하세요. 우아한형제들에서 빌링시스템을 개발하고 있는 이주현입니다. 입사한 이래로 2년 가까이 일하며 정말 다양한 문제를 마주하고 해결하며 소중한 경험을 쌓고 있습니다. 그중 얼마 전 MariaDB 백업 방식으로 적용한 XtraBackup에 대…
spring-boot-starter 작성하기 서론 spring-boot 에서 starter 란 의존성과 설정을 자동화해주는 모듈을 뜻한다. 예를 들어, spring-boot-starter-jpa 를 의존성 추가했을 때 아래의 일을 해준다. spring-aop ,spring-jdbc 등의…
주소검색서버(woowahan-juso) 개발기(上) 부제: SpringBoot Batch를 이용하여 주소DB 구축하기 안녕하세요 라이더스개발팀 정세빈 입니다 🙂 BROS(Baemin Riders Operating System)에 주소검색을 위한 주소검색서버 개발 및 배포 경험을 공유 드…
데이터 관리 트렌드 나날이 증가하는 방대한 데이터와 새로운 포맷의 데이터들을 수집하고 축적/활용하려는 요구는 계속 증가하고 있습니다. 하지만 전통적인 ETL/DW 방식의 데이터 관리로 이를 해결하는 데에는 한계가 있습니다. 때문에 최근 업계는 정형 데이터로 구성된 전통적인 소스 외에 수…
Google I/O 2018 에 다녀오다! 들어가며 안녕하세요. 배민서비스개발실 배민프론트개발팀에서 산업기능요원으로 iOS 개발을 하고 있는 강경완입니다. 우아한형제들에서는 iOS 개발을 하고 있지만, GDG (Google Developer Groups) Korea Android 커뮤니…
Spring에서 요청에 따른 부가 응답 추가하기(2) - reactor 적용 서론 앞 번에 개발한 소스에는 두 가지 문제점이 있었다 - Network I/O를 순차 실행 - O(n) 시간이 걸림 : timeout * attachment 갯수 - Async로 O(1)만에 끝내도록 튜닝 필…
파이썬은 놀라운 생산성을 발휘하는 언어입니다. 하지만 성능 문제는 늘 발목을 잡게 합니다. 이 문제를 극복하는 방법으로 일반적으로 C Extension을 작성하는 방법이 권장되며, 여기서는 표준 편차를 구하는 함수를 작성하여 순수 파이썬의 성능과 NumPy, 각종 C++ Extensio…
딥러닝 분산 플랫폼, C3DL - 등록일 - 2018.05.14 - | - 코멘트 - 22391 Google의 AlphaGo(알파고)가 이세돌 9단에 4승 1패한 이후 딥러닝(deep learning) 연구가 활발히 이뤄지고 있습니다. 네이버에서도 딥러닝을 서비스에 적용하기 위한 연구가…
지난 리포트 ‘자동차 패러다임의 변화① - 자동차와 IT 융합’에서는 자동차-IT 융합의 개념과 주요 트렌드에 대해 알아보았습니다. 이번에는 자동차-IT 융합 기술의 동향을 살펴보겠습니다. 최신 기술 트렌드로 알려진 연결(Connect)과 친환경 차, 웨어러블 기기, 무인자동차와 자율…
순차 데이터 순차 데이터란 ‘데이터 집합 내의 객체들이 어떤 순서를 가진 데이터’로, 그 순서가 변경될 경우 고유의 특성을 잃어버리는 특징이 있습니다. 쉬운 예로, ‘도’와 ‘시’라는 글자 객체들로 ‘도시’와 ‘시도’라는 단어들의 조합이 가능하지만 이들은 서로 다른 의미를 갖는 것과 같…
GDPR (General Data Protection Regulation) EU시민들의 데이터 프라이버시를 보호하고자 4년의 준비기간을 거쳐 2016년 4월 14일 EU 의회의 승인을 받은 GDPR이 오는 5월 25일 드디어 실효를 앞두고 있습니다. 유럽뿐 아니라 전 세계가 주목하고 있…
결제 시스템 성능, 부하, 스트레스 테스트 안녕하세요. 우아한형제들에서 결제시스템을 개발하고 있는 권용근입니다. 입사한 지 4개월 만에, 드디어 우아한형제들 기술 블로그에 글을 남기게 되어 감회가 새롭습니다. 저는 최근 결제 시스템 의 개비를 진행하며 경험한 성능, 부하, 스트레스 테스…
내 서버에는 누가 들어오는 걸까 - Apache 액세스 로그를 Elastic Stack으로 분석하기 - 등록일 - 2018.04.30 - | - 코멘트 - 59115 웹 서비스를 운영하는 서버 관리자라면 외부에서 어떤 요청이 들어오는지 그리고 어떤 사용자가 있는지에 대한 정보를 담고 있…
뉴욕에서 전화를 할 때 더 이상 휴대폰은 필요 없습니다. 뉴욕 시 전체에 빠르게 퍼지고 있는 LinkNYC서비스는 링크스(Links)라는 최신 디지털 키오스크를 설치해 무료 전화, 고속 Wi-Fi, 지도 확인, 휴대기기 충전 등의 서비스를 제공합니다. 2, 3년 내에 7,500대가 설치…
모바일 사용이 일상화된 지금, 기업은 고객에게 보다 편리한 모바일 서비스를 제공하기 위해 노력하고 있습니다. 금융 분야에서도 기업 간의 모바일 디지털 서비스 경쟁이 그 어느 때보다 뜨겁고, Fintech 등 금융 신흥주자들의 도전으로 Digital Transformation이 더욱더 가…
우아한개발자가 되기 위한 우아한테크캠프 우아한(Woowa) 개발자가 되고 싶은 이들을 위한 우아한테크캠프 2기를 소개합니다. 우아한테크캠프 2017 우아한테크캠프는 대학생들의 여름 방학 기간에 맞춰서 2017년에 진행했던 교육형 인턴 과정입니다. 한 달은 정해진 커리큘럼에 따라 개발 관…
Spring에서 요청에 따른 부가 응답 추가하기 (1) 개요 최근 들어 특정 콘텐츠에 부가 속성을 더하여 보여주는 UI가 증가하고 있다. 부가 속성의 예를 들자면 좋아요, 싫어요, 댓글, 공유 링크, 연관 게시물, 추천 게시물 등을 들 수 있다. 이러한 부가 속성들은 기획적 요구나 성능…
데이터 없이 결정을 내린다는 것은 엔지니어였던 저로서는 상상할 수 없는 일입니다. 데이터는 오랫동안 온라인 리테일 영역에 국한되어 왔습니다. 온라인 사업자의 경우, 웹 자산을 확인하고 효율성을 측정할 수 있는 기준 데이터를 볼 수 있습니다. 웹사이트 방문자 수, 방문한 페이지 수, 웹사…
동영상 플랫폼 개발 프레임워크의 Spring Boot 전환기 - 등록일 - 2018.04.10 - | - 코멘트 - 65054 Spring Boot 1.0.0이 세상에 나온 지(2014년 4월 1일 공개) 이제 5년 차에 접어들었습니다. Spring Boot는 내장된 웹 애플리케이션 서…
Hello, Geo-fence! 안녕하세요 라이더스개발팀 박민철 입니다. BROS(Baemin Riders Operating System)에 Geo-fence를 도입한 경험을 적어보겠습니다. (BROS는 라이더를 배차하고 음식을 픽업하여 고객에게 전달하는 서비스를 지원하는 배달 플랫폼…
NAVER Tech Talk: AI 3차 (~ 2018.1.) - 비전, 자연어 처리, 음악, 의료, 금융, 데이터 - 등록일 - 2018.03.28 - | - 코멘트 - 10172 NAVER에서는 매주 사내외 전문가를 초빙하여 테크톡을 진행하고 있는데요, 발표자 분의 공개 동의를 얻어…
Redux-Saga: Channel 이번 글에서는 Redux-Saga의 Channel(이하 채널)에 대해 정리해보고자 한다. 채널은 Redux-Saga의 초기 버전에서부터 고려했던 API는 아니다. 그런데 Stackoverflow에서 외부 이벤트를 Saga와 어떻게 연결하냐는 질문에서…
리액트 HOC 집중 탐구 (2) 1부에서는 HOF(Higher Order Function)의 개념부터 시작해서 HOC(Higher Order Component)의 개념이 무엇인가와 어떤 상황에 이용될 수 있는지에 대해 알아보았다. 하지만 1부의 내용만 읽어서는 HOC를 실제 프로젝트에…
Kudu를 이용한 빅데이터 다차원 분석 시스템 개발 - 등록일 - 2018.03.22 - | - 코멘트 - 45018 네이버의 콘텐츠 통계 서비스는 네이버의 콘텐츠를 사용자가 얼마나 소비했는지에 대한 통계를 콘텐츠 생산자에게 제공합니다. 예를 들어 블로그 관리자가 볼 수 있는 통계 메뉴…
SIL(Swift Intermediate Language)을 통한 Swift debugging - 이 문제는 이슈 [SR-7249], commit을 통해 해결되었고, swift 4.2 브랜치에 머지 되었습니다. Episode III 몇일 전 그렇게 멀지않은 방이동, 경복궁 건물 6층 배…
2017년 12월 암호화폐 비트코인의 가치는 19,000달러로 급등했으나, 불과 두 달 만에 절반으로 추락했습니다. 비트코인의 근간에는 블록체인이 있지만, 많은 사람들이 우려하듯이 블록체인을 단순히 비트코인 거품을 유발하는 기술이라고만 할 수는 없습니다. 블록체인은 그 어떤 기술보다도…
쿠버네티스를 이용해 테스팅 환경 구현해보기 실제로 서비스에 도입해보기 전에 쿠버네티스를 유용하게 사용해 볼 수 있는 방법 중에 하나가 아닐까. 시작하며 이 글은 앞으로 우리가 관리하는 서비스(배민찬)의 아키텍처가 컨테이너 기반의 마이크로 서비스를 지향할 것으로 결정한 후 이를 위해 우선…
ECMAScript 스펙 톺아보기: Primitive ECMAScript 스펙 톺아보기: Primitive 프리미티브에 대한 의문 현재 팀 내부에서는 시니어들이 팀 인력 채용 프로세스를 개선하고 있다. 프로세스 중에서도 현재는 필기시험 문제를 재출제하는 중인데 이게 생각보다 쉽지 않아…
Gerrit을 이용한 코드 리뷰 시스템 - CI 연동, SVN 마이그레이션 - 등록일 - 2018.03.10 - | - 코멘트 - 20061 네이버에서는 CI(continuous integration) 도구를 Gerrit과 연동해 리뷰 대상 소스 코드에 대한 기본적인 검증 작업을 자동으…
기업 내부에는 수많은 시스템이 존재합니다. 데이터를 생산하는 시스템, 생산된 데이터를 저장하고 관리하는 시스템, 분석하는 시스템 등. 이들은 서로 간 데이터 교환을 통해 연계 작업함으로써 업무를 처리합니다. 이 과정에서 모든 시스템이 동일한 프로그래밍 언어, 플랫폼, 데이터 포맷, 인터…
안정된 의존관계 원칙과 안정된 추상화 원칙에 대하여 Robert C. Martin의 Agile Software Development – Principles, Patterns, and Practices 에서 SDP, SAP 를 정리해보았습니다. 이 글은 기본적으로는 Java와 Spring…
오늘날의 소프트웨어 개발에 있어서 지속적 통합(continuous integration)은 필수라고 할 수 있습니다. 저도 당연히 동의하면서 오래전부터 도입하려고 했지만, 급한 일에 밀려 실제로 도입한 것은 지그재그 서비스를 오픈하고 나서도 2년이나 지난 작년 여름무렵입니다. 여러가지…
요즘 자동차 업계는 흥미진진한 시기입니다. 올해 세계최대 가전전시회인 CES에서만 하더라도 자율주행차, 무드 스페이스, 스마트 대시보드와 같은 신기술의 등장으로 자동차 관련 기술의 비약적인 발전을 확인할 수 있었습니다. 주문자상표부착생산(OEM) 업체들은 이러한 혁신적 기술을 고객에게…
지난 1편에서는 빅데이터 분석을 실제 비즈니스에 활용하기에는 각 업종에 정통한 분석 전문가가 부족하다는 것과, 이러한 문제를 해결해줄 수단으로 빅데이터 분석 플랫폼의 중요하다는 사실에 대해 말씀드렸습니다. 이번 2편에서는 빅데이터 분석 플랫폼인 Brightics AI의 제조, 물류, 리…
MySQL에서 ‘a’ = ‘a ‘가 true로 평가된다? DB 알못의 어떤 리서치 목차(이 링크는 목차를 링크합니다) 개요 안녕하세요 기계인간 이종립입니다. FC플랫폼개발팀에서 배민찬 백엔드를 개발하고 있습니다. DB알못인 저는 업무 중에 우연히 MySQL에서 'a' = 'a ' 의 결…
웹 워드프로세서 기초 만들어 보기(2) 웹 워드프로세서(이하 웹 워드)는 브라우저만 있으면 어디서나 문서 편집을 할 수 있다는 장점이 있어 매력적인 소프트웨어이다. 아직 네이티브 워드프로세서로 할 수 있는 모든 기능을 다 지원하는 것은 아니지만 가까운 미래에는 가능하리라고 믿는다. 2년…
AWS에서 네트워크 공격 자동차단 하기 Introduction Summary 최근 Public cloud 시장이 활성화 되면서 많은 기업들이 Cloud 도입을 시작하고 있으며, 한국의 경우 대표적으로 Amazon Web Service(AWS)를 사용하고 있다. 그리고 한국의 Seoul…
빅데이터 분석 플랫폼의 등장 발전을 거듭하던 디바이스와 네트워크가 융합하여 데이터의 기하급수적 폭증인 ‘빅데이터’를 야기했고, 기존의 무의미해 보였던 데이터들이 사실은 미래 비즈니스의 성패를 가를 중요한 자원임을 기업들은 깨달았습니다. 그래서 비즈니스 혁신에 유의미한 새로운 통찰을 얻기…
내 안의 가짜를 부수고 진짜 사용자를 만나는 방법 시작하며 9월 11일, 공식적으로 배민프레시는 배민찬으로 브랜드명을 바꿨습니다. 신선 커머스에서 반찬 플랫폼으로 변화를 시작합니다. ..그리고 서비스를 만드는 사람으로서 많은 고민이 시작됐습니다. - 반찬 플랫폼이란 무엇일까. - 어떤…
Gerrit을 이용한 코드 리뷰 시스템 - 코드 리뷰 방법(1) - 등록일 - 2018.02.21 - | - 코멘트 - 27449 "Gerrit을 이용한 코드 리뷰 시스템 - 사용자 환경 설정"에서는 Gerrit 사용자 정보를 설정하는 방법과 사용자 설정 관련 기능을 살펴봤고, 개발 도…
AI에 관한 일반적인 오해 최근 IT 업계 뿐 아니라 사회 전반에 걸쳐 인공지능(AI) 혁명이 일어나고 있지만 동시에 다음과 같은 인공지능 전반에 관한 오해도 공존하고 있습니다. (1) 딥러닝을 통해 AI가 인간의 지능 수준까지 도달할 수 있다. (2) 알파고의 놀랄만한 성공을 보면,…
NAVER Tech Talk: OS, 시스템 (2017년 7월~2018년 1월) - 등록일 - 2018.02.13 - | - 코멘트 - 4078 NAVER에서는 매주 사내외 전문가를 초빙하여 테크톡을 진행하고 있는데요, OS, 시스템을 주제로 한 발표 영상(2017년 7월~2018년 1…
NAVER Tech Talk: 개발 언어&방법 (2017년 5월~9월) - 등록일 - 2018.02.07 - | - 코멘트 - 6142 NAVER에서는 매주 사내외 전문가를 초빙하여 테크톡을 진행하고 있는데요, 개발 언어 및 개발 방법을 주제로 한 발표 영상(2017년 5월~9월)을 모…
현재 일고 있는 AI 혁명의 주요 동인 중 하나는 이미지 인식 자동화에 딥 러닝을 적용시켜 성공했다는 데 있습니다. 2012년 인공신경망(Artificial Neural Network) 아키텍처인 AlexNet이 ImageNet 대회에 출전하여 획기적으로 향상된 정확도를 선보이면서 산업…
“인터넷은 결코 망각하지 않는다(The Net never forgets)” 저널리스트 J.D 라시카의 말입니다. SNS가 보편화되고 사회의 정보 대부분이 인터넷에 기록되면서, 시간이 지나면 사람들의 기억 속에 사라졌던 정보가 인터넷에 계속 남아있게 되었죠. 또한 포털 검색을 통해 누구든…
(2022년 4월 갱신) 카카오스타일에서는 최고의 개발팀을 만들기 위해 항상 노력하고 있습니다. 이 글에서는 카카오스타일 개발팀의 문화와 관심사에 대해서 소개하고 있습니다. 카카오스타일에서 운영하고 있는 서비스에 대해서는 하단의 소개를 참고해주세요. 이 글을 읽고 카카오스타일의 개발팀에…
카드형 UI와 eg.InfiniteGrid 3.0 - 등록일 - 2018.01.04 - | - 코멘트 - 18648 모바일 웹이 보편화되기 이전에는 웹 사이트의 콘텐츠를 대부분 게시판 형식으로 소비했습니다. 제목이 나열된 목록이 있고, 목록에서 항목을 선택하면 상세 페이지가 열리는 형식…
NAVER Tech Talk: AI 2차 (2017년 5월~12월) - 등록일 - 2017.12.22 - | - 코멘트 - 7610 NAVER에서는 매주 사내외 전문가를 초빙하여 테크톡을 진행하고 있는데요, 발표자 분의 공개 동의를 얻어 NAVER Engineering 페이스북에 공개한…
분산 트랜스코더의 구조와 구현 원리 - 등록일 - 2017.12.22 - | - 코멘트 - 15808 동영상 서비스는 다양한 환경에 있는 많은 사용자에게 일관된 서비스 품질을 보장하기 위해 트랜스코딩이라는 과정을 거쳐 동영상을 제공합니다. 트랜스코딩은 원본 영상의 코덱을 다른 코덱으로…
리액트 HOC 집중 탐구 (1) 리액트 HOC 집중 탐구 (1) 리액트가 정식으로 릴리즈된 지도 벌써 4년이 훌쩍 지났다. 얼마전 나온 16.0 버전에 이르기까지 내부적으로도 많은 발전이 있었고, 수 많은 리액트 관련 라이브러리들이 나오는 등 외부적으로도 많은 발전이 있었다. 지금은 거…
Redux-Saga: 사이드 이펙트 관리 Redux-Saga: 사이드 이펙트 관리 지난 1년 6개월 동안 리액트, 리덕스를 공부하고 활용해 웹 애플리케이션을 개발했다. 지금도 개발하고 있고, 여전히 비동기 처리와 같은 사이드 이펙트(Side effects)를 고민하고 있다. 리액트, 리…
지난 시간에는 최근 악성코드의 위협 현황과 기존 사전차단 체계의 문제점에 대해 알아보았습니다. 이번 시간에는 기존 시그니처 백신의 취약성에 대한 실험 결과와 시그니처 백신의 대안으로 급부상하고 있는 인공지능 기반 백신에 대해 살펴보겠습니다. 1. 시그니처 백신, 얼마나 취약한가? 시그니…
JBake로 API문서 관리하기 1. 프로젝트 배경 및 목적 - 배경 1. Java는 가장 인기있는 프로그래밍 언어로 많은 회사에서 주력언어로 선택하고 있음 2. 대부분의 CMS(Content Management System)는 Python, JavaScript 언어로 되어 있어, Ja…
HTML diff HTML diff란? - MS워드의 '변경 내용 추적'기능처럼 HTML의 렌더링 결과 화면의 변경 부분을 탐지하고 해당 내용을 시각화하여 표시해주는 기능이다. - HTML 텍스트에서 태그와 속성 데이터를 파싱하여 트리같은 자료구조로 구조화하고 구조화한 트리를 비교해서…
Presto 쿼리 실행계획 겉핥기 들어가며 우리는 여러 가지 이유로, 여러 가지 용도에 사용하기 위해 데이터를 조회합니다. 많은 경우 SQL기반의 데이터 처리 엔진에 SQL 을 사용해서 데이터를 조회하게 됩니다. 이 때, 기본적으로 문법에 맞춰서 데이터를 조회하면 데이터가 잘못 나올 일…
1. 최근 악성코드 위협 현황 악성코드의 물량공세 최근 악성코드로 큰 피해를 입은 기업들에 관한 뉴스를 심심치 않게 접하게 됩니다. 특히, 올해는 전 세계 100여 개국 30만 대의 컴퓨터를 감염시켰던 WannaCry, Petya와 같은 랜섬웨어의 등장으로 많은 이들에게 커다란 충격을…
HTTPS 전환 과정에서 read timeout 오류 해결 과정 - 등록일 - 2017.12.05 - | - 코멘트 - 79060 네이버는 최근에 서비스에서 사용하는 프로토콜을 HTTP에서 HTTPS로 전환하고 있습니다. 네이버 카페와 '좋아요' 플랫폼 사이의 통신에 사용하는 프로토콜도…
Spark가 아파치 프로젝트로 릴리즈 된지 3년이 지난 지금, 데이터 배치 처리에 있어서 Spark는 이제 가장 많이 쓰이는 프로젝트가 되었다. Spark가 인기가 있는 이유는 여러가지가 있지만 그 중에서도 엔진의 빠른 속도와, 그 엔진을 기반으로 한 GraphX, MLlib, Stre…
NAVER Tech Talk: AI (2017년 5월~7월) - 등록일 - 2017.11.14 - | - 코멘트 - 6378 NAVER에서는 매주 사내외 전문가를 초빙하여 테크톡을 진행하고 있는데요, 발표자 분의 공개 동의를 얻어 NAVER Engineering 페이스북에 공개한 AI…
연재의 첫 시작인 오늘은 Mobile APP 보안을 어떻게 접근해야 할지부터 소개해 드리겠습니다. 이 글은 주로 Mobile APP 개발 경험자를 대상으로 하지만, 개발 경험이 없는 분들도 충분히 이해할 수 있도록 작성했으니 찬찬히 읽어보세요. 1. WHAT–무엇이 문제인가? 왜 공격자…
SD-WAN 솔루션 시장의 성장이 점점 빨라지며, 놀라운 속도로 확대 될 것으로 예상하고 있습니다. 이번 리포트를 통해SD-WAN 개념과 구현 기술 그리고 어떤 분야에 적용할 수 있는지 살펴보고, 최근 많은 기업과 통신사업자들 사이에서 왜 주목 받고 있는지 알아보겠습니다. SD-WAN(…
전세계는 그야말로 인공지능 열풍이다. SF 영화에서나 보던사람처럼 생각하고 말하고 행동하는 로봇은 더 이상 멀리 있지 않다. 사람의 말을 알아듣고 친절하게 대답하며 사람처럼 추론할 수 있는 인공지능은 이미 다양한 모습의 상품으로 출시되고 있다. 글로벌 IT기업들의 주도권 경쟁도 치열하다…
웹 기술로 구현하는 Adaptive HTTP Streaming 한국은 물론 세계적으로 엄청난 양의 동영상 콘텐츠가 소비되고 있다. 플래시가 대세였던 웹 동영상 기술이 점차 표준 기술인 HTML5 비디오로 전환되었고 요즘은 대부분의 동영상 서비스는 HTML5를 기반으로 서비스되고 있다.…
지난 10월 14일(토) 오후 2시부터 10시까지 8시간 동안 온라인 2차 코딩 테스트가 있었습니다. 1차 코딩 테스트와도 사뭇 다른 형식이라 신선했다는 의견도 있고, 당황한 지원자도 있었을 텐데요. 2차 문제에는 어떤 의도가 숨어있는지 살펴보겠습니다. 추가적으로 어떤 테스트를 해야할까…
Overview Part 1: 분산 웹 캐시에서는 카카오의 트래픽을 처리하고 있는 Wcache에 대한 간략한 소개를 하였습니다.이전 버전의 Wcache는 기본적으로 준수한 응답속도를 보이고 있었지만, metadata를 집중된 DB에 저장하는 방식 및 기타 구조상의 문제로 인한 성능 안정…
Overview 웹 서비스의 규모가 커지고 이용자의 수가 늘어날수록 서비스 제공자는 scalability 이슈에 직면합니다.그중에서도 실제 ‘로딩 속도’의 차이를 느끼게 해 주고 트래픽의 대부분을 차지하는 정적 컨텐츠의 신속한 제공은 서비스 품질을 좌우하는 중요한 요소가 되곤 합니다.…
자바스크립트에서 타임존 다루기 (2) 자바스크립트에서 타임존 다루기 (2) - 이전 글 : 자바스크립트에서 타임존 다루기 (1) 이 글은 2부로 구성된 '자바스크립트에서 타임존 다루기'의 두 번째 글이다. 1부에서는 타임존과 오프셋에 대한 개념과 IANA timezone Database…
자바 직렬화, 그것이 알고싶다. 실무편 자바의 직렬화 기술에 대한 대한 두 번째 이야기입니다. 실제 자바 직렬화를 실무에 적용해보면서 주의해야 할 부분에 대해 이야기해보려고합니다. 자바 직렬화 실제 업무에서 사용해보기 자바 직렬화는 자바 개발자 입장에서는 상당히 쉽고 빠르게 사용할 수…
자바 직렬화, 그것이 알고싶다. 훑어보기편 자바의 직렬화 기술에 대한 대한 이야기입니다. 간단한 질문과 답변 형태로 자바 직렬화에 대한 간단한 설명과 직접 프로젝트를 진행하면서 겪은 경험에 대해 이야기해보려 합니다. 자바 직렬화가 무엇(what)인가요?? - 자바 직렬화란 자바 시스템…
지그재그 서비스는 모놀리식 아키텍처(Monolithic Architecture)에서 마이크로서비스 아키텍처(Microservice Architecture)로 전환중에 있습니다. 이번 글에서는 그 과정을 설명하려고 합니다. 크로키는 2012년 중반에 첫 서비스 개발을 시작했습니다. 웹 서…
딥러닝과 OpenCV를 활용해 사진 속 글자 검출하기 - 등록일 - 2017.10.10 - | - 코멘트 - 199982 사진과 같은 이미지를 글 목록 등에 노출할 때에 이미지에 글자나 로고 등이 과하게 있다면 콘텐츠의 품질이 저하되고 이미지가 가진 본래의 정보가 왜곡되거나 정보의 가치…
‘블라인드’ 전형으로 실시되어 시작부터 엄청난 화제를 몰고 온 카카오 개발 신입 공채. 그 첫 번째 관문인 1차 코딩 테스트가 지난 9월 16일(토) 오후 2시부터 7시까지 장장 5시간 동안 온라인으로 치러졌습니다. 지원자들의 개발 능력을 잘 검증하기 위해 출제 위원들이 한 땀 한 땀…
Gerrit을 이용한 코드 리뷰 시스템 - 사용자 환경 설정 - 등록일 - 2017.09.26 - | - 코멘트 - 15624 "Gerrit을 이용한 코드 리뷰 시스템 - 사용자 권한 관리(1)"에서는 개발자가 각각의 역할에 맞는 업무를 진행할 수 있게 Gerrit 관리자가 그룹과 프로…
hbase-packet-inspector 이번에 카카오에서 오픈소스로 공개한 hbase-packet-inspector (이하 HPI) 는 HBase 리젼서버의 네트워크 패킷을 분석해 요청과 응답 정보를 추출하는 툴입니다. 기존의 모니터링 툴을 통해서는 알 수 없었던 보다 상세한 정보들을…
인간처럼 생각하는 기계, 인공지능의 탄생과 첫번째 암흑기 1950년 영국수학자 앨런 튜링은 ‘계산 기계와 지능(Computing Machinery and Intelligence)’라는 논문에서 기계가 생각할 수 있는지 테스트하는 방법, 지능적 기계의 개발 가능성, 학습하는 기계 등에 대…
Google I/O 2017 참관기 - Kotlin - 등록일 - 2017.09.13 - | - 코멘트 - 9143 Google에서 마침내 Android의 공식 언어를 추가했습니다. 바로 Kotlin입니다. Kotlin이 새로운 공식 언어로 채택됐다고 발표하던 순간이 키노트 발표에서 가…
What's New in iOS11 안녕하세요. 게임플랫폼클라팀 박판기입니다. 해당 포스트에서는 곧 출시될 iOS11의 새로운 피처들과 향상된 기능들, 그리고 변경된 점들을 다뤄보겠습니다. WWDC 2017 + iOS11 Beta 지난 WWDC 2017 에서 iOS11에 대한 많은 정보…
실시간 서비스 경험기(배달운영시스템) 경험기 들어가기 앞서 이 글은 신기술 사용기 또는 소개가 아닌 실시간 서비스 즉 배민라이더스 BROS 1.0 을 개발 하면서 겪어왔던 다소 특별한 개발 및 운영 경험기 입니다. BROS 2.0이 나온 상황에서 1.0을 이야기 하는 것이 다소 순서가…
자동차 전장사업이 미래 먹거리 사업으로 떠오르고 있습니다. 또, 우리에게 친숙한 개념인 로봇 운전, 무인자동차로 잘 알려져 있는 스마트카를 몰 일이 멀지 않았습니다. 인공지능을 포함한 첨단기술들이 들어간 스마트카가 우리에게 어떠한 새로운 경험, 새로운 세상을 만들어 줄까요? 지금부터 살…
넌 강해졌다, 돌격해! 들어가며 안녕하세요. 우아한 테크캠프 iOS 개발 인턴이었던 김준영입니다. 지난 8월 31일에 우아한 테크캠프를 마쳤습니다. 좋은 책을 다 읽은 것처럼 아쉬움과 기분좋은 여운이 남아있네요. 테크캠프에서 배운 점이 학부에서의 몇년보다 많아서 꼽기 어렵습니다만, 그래…
- blog Parallel Programming and Applicative in Scala Monolithic 아키텍쳐로 개발하기 Monolithic 아키텍쳐로 개발시에는 일반적으로 하나의 저장소만 고려해야 하는 경우가 많았습니다. Monolithic 아키텍쳐를 사용하면 편리한점이…
Smart Car 첫번째 리포트에서는 기술이 만드는 자동차의 변화, 특히 자율주행 기술이 만드는 변화에 대해서 알아보았습니다. 두번째 리포트에서는 자동차 공유 서비스를 통해 미래에 우리는 어떻게 자동차를 이용하게 될지를 생각해 보겠습니다. #제품 대신 서비스! 자동차 대신 이동! 우리는…
자바스크립트에서 타임존 다루기 (1) 최근 나는 팀에서 관리하는 자바스크립트 캘린더 라이브러리에 타임존 기능을 추가하는 작업을 한 적이 있다. 자바스크립트의 타임존 지원이 다른 언어에 비해 부실하다는 얘기는 이미 들어 알고 있었지만, 기존 Date 객체를 잘 추상화하면 어렵지 않게 구현…
Mqtt Stress Test 아래의 링크의 글을 읽고 오시면 이 글을 읽는데 도움이 됩니다.(아마도?) MQTT 적용을 통한 중계시스템 개선 조만간 Mqtt를 사용하는 새로운 업주용 솔루션이 늦어도 올해안에는 출시될 예정입니다. 그동안 RESTFul API 기반의 주문정보 조회시스템은…
Spring Boot Test 간단히 Spring Boot의 테스트 기능에 대해서 정리한 글입니다. 그저 Spring Boot 공식 문서를 정리한 수준이지만 앞으로 Spring Boot 에플리케이션을 개발하고 테스트하실 때 많은 도움이 되었으면 합니다~ Spring Boot에서 테스트를…
Hystrix! API Gateway를 도와줘! 들어가기 안녕하세요. 배민FRESH 서비스를 개발하고 있는 조건희입니다. 오늘은 API Gateway를 사용하면서 겪은 뼈아픈(?) 장애 사례와 해결 과정을 간단히 공유하고자 합니다. 너무 자세하게 쓰지는 않았습니다. 관련된 링크를 충분히…