배민찬은 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에 대…
요즘 잘나가는 프론트엔드 개발 환경 만들기(2018): Webpack 4 요즘 잘나가는 프론트엔드 개발 환경 만들기(2018): Webpack 4 최근에 새로운 프로젝트를 진행하게 되면서 기존에 간만 살짝 보고 있던 뷰(Vue, 이하 뷰)를 본격적으로 도입하게 되었다. 사실 팀에서는 리…
spring-boot-starter 작성하기 서론 spring-boot 에서 starter 란 의존성과 설정을 자동화해주는 모듈을 뜻한다. 예를 들어, spring-boot-starter-jpa 를 의존성 추가했을 때 아래의 일을 해준다. spring-aop ,spring-jdbc 등의…
주소검색서버(woowahan-juso) 개발기(上) 부제: SpringBoot Batch를 이용하여 주소DB 구축하기 안녕하세요 라이더스개발팀 정세빈 입니다 🙂 BROS(Baemin Riders Operating System)에 주소검색을 위한 주소검색서버 개발 및 배포 경험을 공유 드…
Spring에서 요청에 따른 부가 응답 추가하기(2) - reactor 적용 서론 앞 번에 개발한 소스에는 두 가지 문제점이 있었다 - Network I/O를 순차 실행 - O(n) 시간이 걸림 : timeout * attachment 갯수 - Async로 O(1)만에 끝내도록 튜닝 필…
(Spring Boot)Logging과 Profile 전략 서론 spring-boot 에서는 Logback을 확장해서 편리한 logging 설정을 할 수 있다. application.yml 의 설정을 읽어 오거나 특정 profile의 동작을 수행할 수 있다. 이 글에서는 Spring B…
(Spring)Filter와 Interceptor의 차이 서론 Spring을 익힌지 얼마 되지 않았을 때, 회원 인증 로직을 구현할 일이 생겼었다. 그 인증을 구현하기 위해 Filter와 Interceptor를 조사했었다. 하지만 Filter와 Interceptor를 어떤 경우에 써야…
딥러닝 분산 플랫폼, C3DL - 등록일 - 2018.05.14 - | - 코멘트 - 22391 Google의 AlphaGo(알파고)가 이세돌 9단에 4승 1패한 이후 딥러닝(deep learning) 연구가 활발히 이뤄지고 있습니다. 네이버에서도 딥러닝을 서비스에 적용하기 위한 연구가…
결제 시스템 성능, 부하, 스트레스 테스트 안녕하세요. 우아한형제들에서 결제시스템을 개발하고 있는 권용근입니다. 입사한 지 4개월 만에, 드디어 우아한형제들 기술 블로그에 글을 남기게 되어 감회가 새롭습니다. 저는 최근 결제 시스템 의 개비를 진행하며 경험한 성능, 부하, 스트레스 테스…
내 서버에는 누가 들어오는 걸까 - Apache 액세스 로그를 Elastic Stack으로 분석하기 - 등록일 - 2018.04.30 - | - 코멘트 - 59115 웹 서비스를 운영하는 서버 관리자라면 외부에서 어떤 요청이 들어오는지 그리고 어떤 사용자가 있는지에 대한 정보를 담고 있…
우아한개발자가 되기 위한 우아한테크캠프 우아한(Woowa) 개발자가 되고 싶은 이들을 위한 우아한테크캠프 2기를 소개합니다. 우아한테크캠프 2017 우아한테크캠프는 대학생들의 여름 방학 기간에 맞춰서 2017년에 진행했던 교육형 인턴 과정입니다. 한 달은 정해진 커리큘럼에 따라 개발 관…
Java, max user processes, open files 안녕하세요? 우아한 형제들에서 결제/정산 시스템을 개발하고 있는 이동욱입니다. 올해 사내 블로그 포스팅 주제로 Linux의 open files, max user processes 설정에 대해 정리하게 되었습니다. 계기는…
Spring에서 요청에 따른 부가 응답 추가하기 (1) 개요 최근 들어 특정 콘텐츠에 부가 속성을 더하여 보여주는 UI가 증가하고 있다. 부가 속성의 예를 들자면 좋아요, 싫어요, 댓글, 공유 링크, 연관 게시물, 추천 게시물 등을 들 수 있다. 이러한 부가 속성들은 기획적 요구나 성능…
우아한형제들의 Developer Relations 투자가를 대상으로 한 IR(Investor Relations) 이야기가 아닌, 개발자를 대상으로 한 DR(Developer Relations) 이야기. Developer Relations Developer Relations라는 말은 다소…
Spring BindingResult를 json으로 받기 개요 Spring은 Controller에서 Validation을 한 후, 유효하지 못한 값이 존재할 때, Error(BindingResult)에 그 내용을 담아서, JSP, FreeMarker 등의 View Template Eng…
동영상 플랫폼 개발 프레임워크의 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는 라이더를 배차하고 음식을 픽업하여 고객에게 전달하는 서비스를 지원하는 배달 플랫폼…
스토어 정책 변경에 대비하는 우리의 자세 작년에 이미 Android 8.0(Oreo)와 iOS 11이 릴리즈 되었습니다. 새로운 OS의 출시와 함께 항상 Google 및 Apple의 스토어 검수 정책도 변화하는데요, 넋놓고 먼산만 바라 보다가는 소중한 우리의 어플리케이션이 정상적으로 돌…
Redux-Saga: Channel 이번 글에서는 Redux-Saga의 Channel(이하 채널)에 대해 정리해보고자 한다. 채널은 Redux-Saga의 초기 버전에서부터 고려했던 API는 아니다. 그런데 Stackoverflow에서 외부 이벤트를 Saga와 어떻게 연결하냐는 질문에서…
리액트 HOC 집중 탐구 (2) 1부에서는 HOF(Higher Order Function)의 개념부터 시작해서 HOC(Higher Order Component)의 개념이 무엇인가와 어떤 상황에 이용될 수 있는지에 대해 알아보았다. 하지만 1부의 내용만 읽어서는 HOC를 실제 프로젝트에…
신입개발자 교육 후기 들어가며 작년 12월 말에 입사한 후 1월부터 9주 동안 진행된 신입 개발자 교육을 마쳤습니다! 교육이 어떤 식으로 진행되었는지, 무엇을 배웠는지 짧게나마 공유해드리고자 합니다. 일정 - 1주차 ~ 2주차: 웹 프론트엔드 학습 - 3주차 ~ 6주차: 웹 백엔드 학습…
Kudu를 이용한 빅데이터 다차원 분석 시스템 개발 - 등록일 - 2018.03.22 - | - 코멘트 - 45018 네이버의 콘텐츠 통계 서비스는 네이버의 콘텐츠를 사용자가 얼마나 소비했는지에 대한 통계를 콘텐츠 생산자에게 제공합니다. 예를 들어 블로그 관리자가 볼 수 있는 통계 메뉴…
Hybrid-Cloud 환경에서 보안인증 준비 하기 들어가며… 지난 2월 오석윤님이 포스팅해주신 [AWS에서 네트워크 공격 자동차단하기]의 Summary에서 내용을 일부 가져오고자 합니다. “Public Cloud 환경에서의 서비스 운영은 Legacy 환경의 IDC 서비스 운영과는 너무…
[번역] SIL(Swift Intermediate Language), 일단 시작해보기까지 이 글은 훌륭한 Swift, iOS 개발자이자 교육자인 Tomohiro Kumagai씨가 qiita에 올리신 글을 허가를 얻어 배포합니다. *(주) 내용은 최대한 정확하게 번역하려 했지만, 문장은…
SIL(Swift Intermediate Language)을 통한 Swift debugging - 이 문제는 이슈 [SR-7249], commit을 통해 해결되었고, swift 4.2 브랜치에 머지 되었습니다. Episode III 몇일 전 그렇게 멀지않은 방이동, 경복궁 건물 6층 배…
쿠버네티스를 이용해 테스팅 환경 구현해보기 실제로 서비스에 도입해보기 전에 쿠버네티스를 유용하게 사용해 볼 수 있는 방법 중에 하나가 아닐까. 시작하며 이 글은 앞으로 우리가 관리하는 서비스(배민찬)의 아키텍처가 컨테이너 기반의 마이크로 서비스를 지향할 것으로 결정한 후 이를 위해 우선…
ECMAScript 스펙 톺아보기: Primitive ECMAScript 스펙 톺아보기: Primitive 프리미티브에 대한 의문 현재 팀 내부에서는 시니어들이 팀 인력 채용 프로세스를 개선하고 있다. 프로세스 중에서도 현재는 필기시험 문제를 재출제하는 중인데 이게 생각보다 쉽지 않아…
Gerrit을 이용한 코드 리뷰 시스템 - CI 연동, SVN 마이그레이션 - 등록일 - 2018.03.10 - | - 코멘트 - 20061 네이버에서는 CI(continuous integration) 도구를 Gerrit과 연동해 리뷰 대상 소스 코드에 대한 기본적인 검증 작업을 자동으…
NAVER Tech Talk: FE devtalk 9, 10회 (2017년 9월, 12월) - 등록일 - 2018.03.08 - | - 코멘트 - 3893 NAVER에서는 다양한 FE 기술에 대한 테크톡도 주기적으로 진행하고 있는데요, 2017년 9월, 12월에 진행한 FE devtal…
안정된 의존관계 원칙과 안정된 추상화 원칙에 대하여 Robert C. Martin의 Agile Software Development – Principles, Patterns, and Practices 에서 SDP, SAP 를 정리해보았습니다. 이 글은 기본적으로는 Java와 Spring…
Spock으로 테스트코드를 짜보자 Spock으로 테스트코드를 작성한 경험을 공유합니다. 안녕하세요! 우아한형제들 배달의민족/배민라이더스 주문시스템 팀 정용준입니다. 여러분은 어떻게 테스트 코드를 작성하고 계신가요? 일정 지키기도 힘든데 무슨 테스트코드냐 하시는 분들도 계신가요? 저도 아…
MySQL에서 ‘a’ = ‘a ‘가 true로 평가된다? DB 알못의 어떤 리서치 목차(이 링크는 목차를 링크합니다) 개요 안녕하세요 기계인간 이종립입니다. FC플랫폼개발팀에서 배민찬 백엔드를 개발하고 있습니다. DB알못인 저는 업무 중에 우연히 MySQL에서 'a' = 'a ' 의 결…
AWS에서 네트워크 공격 자동차단 하기 Introduction Summary 최근 Public cloud 시장이 활성화 되면서 많은 기업들이 Cloud 도입을 시작하고 있으며, 한국의 경우 대표적으로 Amazon Web Service(AWS)를 사용하고 있다. 그리고 한국의 Seoul…
3년 된 오픈소스가 1주일 만에 3,000 GitHub 스타를 받다 3년 된 오픈소스가 1주일 만에 3,000 GitHub 스타를 받다 # 시작하며 TOAST UI Editor는 2015년 3월에 첫 커밋이 이루어진, 대략 3년이 된 프로젝트이다. 2017년 12월 30일 이 프로젝트의…
Gerrit을 이용한 코드 리뷰 시스템 - 코드 리뷰 방법(2) - 등록일 - 2018.02.21 - | - 코멘트 - 27885 이전 글에서는 Gerrit에서 생성한 프로젝트를 Eclipse에서 불러와서 코드를 작성한 다음 코드 리뷰를 요청하는 방법과 코드 리뷰를 요청받은 리뷰어가 G…
Gerrit을 이용한 코드 리뷰 시스템 - 코드 리뷰 방법(1) - 등록일 - 2018.02.21 - | - 코멘트 - 27449 "Gerrit을 이용한 코드 리뷰 시스템 - 사용자 환경 설정"에서는 Gerrit 사용자 정보를 설정하는 방법과 사용자 설정 관련 기능을 살펴봤고, 개발 도…
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월)을 모…
Redux-Saga: 제너레이터와 이펙트 지난 글에서 Redux-Saga와 사이드 이펙트를 가지고 공부 겸 정리 겸 글을 작성했다. 이번 글에선 Redux-Saga에서 사용하는 제너레이터함수, 이펙트에 대해 정리해보려 한다. 제너레이터함수는 협력적이고, run-to-completion이…
웹 워드프로세서 기초 만들어 보기(1) 웹 워드프로세서 기초 만들어 보기(1) 웹 워드프로세서(이하 웹 워드)는 생각보다 오래된 역사를 가지고 있다. 구글 독스가 2006년에 소개되면서 많이 알려졌으니 벌써 십여 년의 역사가 있는 소프트웨어 분야이다. 씽크프리는 자바 애플릿 기반으로 동…
분산 트랜스코더의 구조와 구현 원리 - 등록일 - 2017.12.22 - | - 코멘트 - 15808 동영상 서비스는 다양한 환경에 있는 많은 사용자에게 일관된 서비스 품질을 보장하기 위해 트랜스코딩이라는 과정을 거쳐 동영상을 제공합니다. 트랜스코딩은 원본 영상의 코덱을 다른 코덱으로…
리액트 HOC 집중 탐구 (1) 리액트 HOC 집중 탐구 (1) 리액트가 정식으로 릴리즈된 지도 벌써 4년이 훌쩍 지났다. 얼마전 나온 16.0 버전에 이르기까지 내부적으로도 많은 발전이 있었고, 수 많은 리액트 관련 라이브러리들이 나오는 등 외부적으로도 많은 발전이 있었다. 지금은 거…
JBake로 API문서 관리하기 1. 프로젝트 배경 및 목적 - 배경 1. Java는 가장 인기있는 프로그래밍 언어로 많은 회사에서 주력언어로 선택하고 있음 2. 대부분의 CMS(Content Management System)는 Python, JavaScript 언어로 되어 있어, Ja…
HTTPS 전환 과정에서 read timeout 오류 해결 과정 - 등록일 - 2017.12.05 - | - 코멘트 - 79060 네이버는 최근에 서비스에서 사용하는 프로토콜을 HTTP에서 HTTPS로 전환하고 있습니다. 네이버 카페와 '좋아요' 플랫폼 사이의 통신에 사용하는 프로토콜도…
이맥스와 함께하는 개발환경 금단의 영역에 손을 대다 에디터, IDE뿐 아니라 업무에 관련된 새로운 도구가 나오면 꼭 써봐야 직성이 풀리는 성격이었지만 언젠가부터 그놈이 그놈이고 저놈이 그놈이고 새로운 기능이 있어도 개발을 할 때 사용하는 기능들은 매우 한정적이라는 사실을 깨닫게 되었다.…
Spark가 아파치 프로젝트로 릴리즈 된지 3년이 지난 지금, 데이터 배치 처리에 있어서 Spark는 이제 가장 많이 쓰이는 프로젝트가 되었다. Spark가 인기가 있는 이유는 여러가지가 있지만 그 중에서도 엔진의 빠른 속도와, 그 엔진을 기반으로 한 GraphX, MLlib, Stre…
블라인드 채용으로 관심을 모은 카카오 신입 공채의 세 번째 테스트가 지난 10월 29일(일), 오후 2시부터 6시까지 네 시간에 걸쳐 오프라인으로 치러졌습니다. 두 차례의 온라인 테스트를 통과한 지원자들이 한 자리에 모여 다시 한번 실력을 검증하는 자리를 가졌습니다. 세 번째 관문 오프…
연재의 첫 시작인 오늘은 Mobile APP 보안을 어떻게 접근해야 할지부터 소개해 드리겠습니다. 이 글은 주로 Mobile APP 개발 경험자를 대상으로 하지만, 개발 경험이 없는 분들도 충분히 이해할 수 있도록 작성했으니 찬찬히 읽어보세요. 1. WHAT–무엇이 문제인가? 왜 공격자…
우린 Git-flow를 사용하고 있어요 안녕하세요. 우아한형제들 배민프론트개발팀에서 안드로이드 앱 개발을 하고 있는 나동호입니다. 오늘은 저희 안드로이드 파트에서 사용하고 있는 Git 브랜치 전략을 소개하려고 합니다. ‘배달의민족 안드로이드 모바일 파트에서 이렇게 브랜치를 관리하고 있구…
Front-End 테스트 환경 (2) - 멀티 브라우저 테스트 환경 구축하기 멀티 브라우저 테스트 환경 구축하기 로컬 테스트 환경의 한계 이전 글에서는 단일 PC에서 테스트 환경을 구축하고 테스트를 실행하는 과정을 설명했다. 로컬 PC 내에서 브라우저 자동화 테스트를 수행하는 테스트의…
웹 기술로 구현하는 Adaptive HTTP Streaming 한국은 물론 세계적으로 엄청난 양의 동영상 콘텐츠가 소비되고 있다. 플래시가 대세였던 웹 동영상 기술이 점차 표준 기술인 HTML5 비디오로 전환되었고 요즘은 대부분의 동영상 서비스는 HTML5를 기반으로 서비스되고 있다.…
지난 10월 14일(토) 오후 2시부터 10시까지 8시간 동안 온라인 2차 코딩 테스트가 있었습니다. 1차 코딩 테스트와도 사뭇 다른 형식이라 신선했다는 의견도 있고, 당황한 지원자도 있었을 텐데요. 2차 문제에는 어떤 의도가 숨어있는지 살펴보겠습니다. 추가적으로 어떤 테스트를 해야할까…
Overview Part 1: 분산 웹 캐시에서는 카카오의 트래픽을 처리하고 있는 Wcache에 대한 간략한 소개를 하였습니다.이전 버전의 Wcache는 기본적으로 준수한 응답속도를 보이고 있었지만, metadata를 집중된 DB에 저장하는 방식 및 기타 구조상의 문제로 인한 성능 안정…
Overview 웹 서비스의 규모가 커지고 이용자의 수가 늘어날수록 서비스 제공자는 scalability 이슈에 직면합니다.그중에서도 실제 ‘로딩 속도’의 차이를 느끼게 해 주고 트래픽의 대부분을 차지하는 정적 컨텐츠의 신속한 제공은 서비스 품질을 좌우하는 중요한 요소가 되곤 합니다.…
최신 애플리케이션 개발 트렌드 최근 애플리케이션 개발 트렌드 관련 용어 중 Cloud Native, Microservices, Container 등에 대해서 많이 들어봤을 겁니다. 이 용어들은 서로 밀접한 관련이 있는 듯 보이지만 정작 어떤 관계인지를 설명하기란 쉽지 않습니다. 용어들…
자바스크립트에서 타임존 다루기 (2) 자바스크립트에서 타임존 다루기 (2) - 이전 글 : 자바스크립트에서 타임존 다루기 (1) 이 글은 2부로 구성된 '자바스크립트에서 타임존 다루기'의 두 번째 글이다. 1부에서는 타임존과 오프셋에 대한 개념과 IANA timezone Database…
자바 직렬화, 그것이 알고싶다. 실무편 자바의 직렬화 기술에 대한 대한 두 번째 이야기입니다. 실제 자바 직렬화를 실무에 적용해보면서 주의해야 할 부분에 대해 이야기해보려고합니다. 자바 직렬화 실제 업무에서 사용해보기 자바 직렬화는 자바 개발자 입장에서는 상당히 쉽고 빠르게 사용할 수…
자바 직렬화, 그것이 알고싶다. 훑어보기편 자바의 직렬화 기술에 대한 대한 이야기입니다. 간단한 질문과 답변 형태로 자바 직렬화에 대한 간단한 설명과 직접 프로젝트를 진행하면서 겪은 경험에 대해 이야기해보려 합니다. 자바 직렬화가 무엇(what)인가요?? - 자바 직렬화란 자바 시스템…
배민 ‘앱 친구’의 스프린트 이야기 📩 다음 릴리즈를 준비할 때가 왔음을 알리는 메일이 도착했네요. 배달의민족 앱 개발자들은 주로 다음 과제와 관련된 메일을 받고 다음 앱 업데이트 준비를 시작합니다. 여러분의 한 단위 앱 업데이트를 위한 과정은 어떻게 시작되시나요? 이터레이션이라고 부르…
지그재그 서비스는 모놀리식 아키텍처(Monolithic Architecture)에서 마이크로서비스 아키텍처(Microservice Architecture)로 전환중에 있습니다. 이번 글에서는 그 과정을 설명하려고 합니다. 크로키는 2012년 중반에 첫 서비스 개발을 시작했습니다. 웹 서…
‘블라인드’ 전형으로 실시되어 시작부터 엄청난 화제를 몰고 온 카카오 개발 신입 공채. 그 첫 번째 관문인 1차 코딩 테스트가 지난 9월 16일(토) 오후 2시부터 7시까지 장장 5시간 동안 온라인으로 치러졌습니다. 지원자들의 개발 능력을 잘 검증하기 위해 출제 위원들이 한 땀 한 땀…
Gerrit을 이용한 코드 리뷰 시스템 - 사용자 환경 설정 - 등록일 - 2017.09.26 - | - 코멘트 - 15624 "Gerrit을 이용한 코드 리뷰 시스템 - 사용자 권한 관리(1)"에서는 개발자가 각각의 역할에 맞는 업무를 진행할 수 있게 Gerrit 관리자가 그룹과 프로…
hbase-packet-inspector 이번에 카카오에서 오픈소스로 공개한 hbase-packet-inspector (이하 HPI) 는 HBase 리젼서버의 네트워크 패킷을 분석해 요청과 응답 정보를 추출하는 툴입니다. 기존의 모니터링 툴을 통해서는 알 수 없었던 보다 상세한 정보들을…
데일리 미팅! 플래닝 포커! 회고! 안녕하세요. 저는 우아한형제들 FC플랫폼개발팀에서 서버개발을 하고 있는 이경원입니다. 오늘은 글로 배운 애자일 방법론을 도입하고 진행했던 경험담을 기록하고자 합니다. 사실 저는 애자일 방법론에 대해서 잘 알지 못하고, 제가 도입을 시도한 것도 아닙니다…
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을 이야기 하는 것이 다소 순서가…
Web Components(4): Template Element & HTML Imports - Web Components(1): Keep calm and #UseThePlatform - Web Components(2): Custom Elements - Web Components(3):…
우아한테크캠프: 좋은 개발자가 되고 싶다면 안녕하세요, 지난 8월 31일을 끝으로 우아한테크캠프 – iOS 개발 인턴 과정을 마친 김다인입니다. 두 달동안 진행되었던 인턴십 프로그램을 통해 제가 무엇을 배웠고 경험할 수 있었는지를 공유해드리고자 합니다. 교육형 인턴십 프로그램 우아한테크…
Front-End 테스트 환경 (1) 간단하게 테스트 환경 구축하기 이 글에서는 간단하게 Front-End 테스트 환경을 구축하는 방법에 대해 공유하고자 한다. 참고) 본 글은 Karma 설정과 Jasmine의 API에 대해서는 깊게 다루지 않는다. 우선 Front-End 테스트를 실행…
넌 강해졌다, 돌격해! 들어가며 안녕하세요. 우아한 테크캠프 iOS 개발 인턴이었던 김준영입니다. 지난 8월 31일에 우아한 테크캠프를 마쳤습니다. 좋은 책을 다 읽은 것처럼 아쉬움과 기분좋은 여운이 남아있네요. 테크캠프에서 배운 점이 학부에서의 몇년보다 많아서 꼽기 어렵습니다만, 그래…
- blog Parallel Programming and Applicative in Scala Monolithic 아키텍쳐로 개발하기 Monolithic 아키텍쳐로 개발시에는 일반적으로 하나의 저장소만 고려해야 하는 경우가 많았습니다. Monolithic 아키텍쳐를 사용하면 편리한점이…
자바스크립트에서 타임존 다루기 (1) 최근 나는 팀에서 관리하는 자바스크립트 캘린더 라이브러리에 타임존 기능을 추가하는 작업을 한 적이 있다. 자바스크립트의 타임존 지원이 다른 언어에 비해 부실하다는 얘기는 이미 들어 알고 있었지만, 기존 Date 객체를 잘 추상화하면 어렵지 않게 구현…
2014년 합병 이후, 카카오의 첫 신입 개발자 공채가 시작됩니다. 학력, 전공무관! 웹, 모바일 서비스에 열정이 있다면 누구나 지원 가능한 카카오의 첫 ‘블라인드 신입 개발자 공채’! [2018 카카오 블라인드 신입 개발자 공채] ▶모집 분야 : 웹/모바일/서버개발 ▶접수 기간 : 8…
Mqtt Stress Test 아래의 링크의 글을 읽고 오시면 이 글을 읽는데 도움이 됩니다.(아마도?) MQTT 적용을 통한 중계시스템 개선 조만간 Mqtt를 사용하는 새로운 업주용 솔루션이 늦어도 올해안에는 출시될 예정입니다. 그동안 RESTFul API 기반의 주문정보 조회시스템은…
Spring Boot Test 간단히 Spring Boot의 테스트 기능에 대해서 정리한 글입니다. 그저 Spring Boot 공식 문서를 정리한 수준이지만 앞으로 Spring Boot 에플리케이션을 개발하고 테스트하실 때 많은 도움이 되었으면 합니다~ Spring Boot에서 테스트를…
Hystrix! API Gateway를 도와줘! 들어가기 안녕하세요. 배민FRESH 서비스를 개발하고 있는 조건희입니다. 오늘은 API Gateway를 사용하면서 겪은 뼈아픈(?) 장애 사례와 해결 과정을 간단히 공유하고자 합니다. 너무 자세하게 쓰지는 않았습니다. 관련된 링크를 충분히…
개발환경을 한 방에! 쉘 스크립트의 힘 들어가며… 안녕하세요. 우아한형제들 서비스개발실 주문시스템개발팀의 라태웅입니다. 어느 개발 조직이건 새로운 사람이 들어오면 그 사람의 PC에 새롭게 개발 환경을 셋팅해야 합니다. 이 때, 저는 세 가지 경우를 경험했는데요. - 문서에 정리된 개발…
MQTT 적용을 통한 중계시스템 개선 어떤 필요에 의해서? 주문중계채널은 개별 디바이스들이 중계서버에 일정시간에 한번씩 API polling을 하는 구조로 운영되고 있습니다. 신규주문 뿐만 아니라 주문의 취소나 상태변경과 같은 정보를 전달 받기 위해 API polling을 수행합니다.…
Elastic Beanstalk Configuration files(.ebextensions) Elastic Beanstalk 사내 서버 인프라가 거의 대부분 AWS 환경으로 넘어가면서 신규로 구축되는 많은 시스템들이 배포 및 확장, 관리등의 용이성 때문에 Elastic Beanstal…
Gerrit을 이용한 코드 리뷰 시스템 - 사용자 권한 관리(2) - 등록일 - 2017.08.04 - | - 코멘트 - 7818 이전 글에서는 그룹과 프로젝트를 생성하고 권한을 설정하는 방법을 살펴봤습니다. 그러나 사용 방법보다 더 중요한 것은 이런 기능을 활용해 원칙을 수립하는 일입…
최근 1년 간 뱅크샐러드 웹은 많은 변화가 있었습니다. 새로운 금융상품 추천부터 어려운 금융지식을 풀어쓰는 매거진 까지 다양한 기능을 제공하고 많은 사용자들이 방문하기 시작했습니다. 거대해진 프로젝트 규모에 따라 보다 안정적인 코드베이스를 지향하게 되었고, 최근에 개발된 CMA 추천을…
Gerrit을 이용한 코드 리뷰 시스템 - 사용자 권한 관리(1) - 등록일 - 2017.08.02 - | - 코멘트 - 29834 "Gerrit을 이용한 코드 리뷰 시스템 - 인증 환경 설정"에서는 Gerrit에 접근하는 사용자를 인증할 수 있는 방법을 살펴봤습니다. 다음 단계는 인증…
인(人)턴(Turn) – 당신 인생의 전환점 우아한 테크 캠프 흔히 인턴이라고 하면 단기간 회사에서 정식 구성원이 되기 위해 실습 훈련을 밟는 일원을 말합니다. 말이 실습 훈련이지 막상 회사에 가면 짧게는 2개월, 길게는 6개월, 1년 동안 제대로 된 실습 훈련을 받지는 못합니다. 개발…
Swift가 진화하는 법 누구? 안녕하세요. FC 서비스 개발팀에서 육아(샤워 전문)와 iOS 앱(배민프레시) 개발을 담당하고 있는 최광훈입니다. 발단 배민프레시 2.0.0 iOS버전을 무사히 올리고, 아기 샤워를 마치고, 밥을 먹이고, 잠을 재우고(그러나 새벽에 다시 깨었지. 30분을…
로그 데이터로 유저 이해하기 0. 들어가며 우아한형제들 데이터서비스팀 송훈화입니다. 제 업무는 로그를 설계/정의하고 데이터를 분석하는 것입니다. 궁극적으로, 유저가 남긴 로그로부터 유저의 경험을 추정하고 니즈를 파악해 서비스 개선에 필요한 인사이트를 제공하는 것입니다. 이를 위해 로그…
non-blocking socket에 OpenSSL 적용하기 이 문서에서 사용하는 OpenSSL 버전은 1.0.1u이다. 하트블리드 취약점을 피하려면 1.0.1g 이상을 사용해야 한다. - 공식 OpenSSL 페이지 : https://www.openssl.org/ - 공식 문서 : ht…
Web Components(3): Shadow DOM 이 글은 웹 컴포넌트 소개 연재로 그중 세 번째인 쉐도우 돔에 대한 글이다. 아마도 이전 글의 커스텀 엘리먼트 글을 읽고 온 분은 여러 스펙, API, 기억해 두어야 할 것들로 질렸을지도 모르겠다.(두 번으로 잘라서 글을 썼으면 좋았…