간단하게 구축해 보는 JavaScript 개발 환경 - 등록일 - 2019.04.18 - | - 코멘트 - 43013 프로그래밍은 다양한 문제를 해결할 수 있는 한 가지 방법입니다. 하지만 해결해야 하는 문제가 크고 복잡해지면서 혼자 소프트웨어를 만들며 프로그래밍으로 문제를 해결하기는…
저녁 11시까지 주문하면 Full-Cold Chain을 통해서 다음날 7시까지 배송해주는 마켓컬리 서비스 구성에 대해서 상세하게 소개 드립니다. 마켓컬리 서비스는 크게 사용자가 신선식품을 포함한 각종 상품을 앱과 웹을 통해서 쇼핑할 수 있는 이커머스 서비스와 주문한 상품을 물류 센터내에…
웹사이트를 SPA로 만들 때의 장점 중 하나는 자바스크립트의 실행 컨텍스트가 날아가지 않기 때문에 화면이 전환될 때에도 애니메이션 처리를 할 수 있다는 점입니다. #GatsbyJS GatsbyJS는 리액트 정적 웹사이트 생성기입니다. 정적파일로 떨궈주기 때문에 S3에 올리기만 하면 웹사…
실용적인 프론트엔드 테스트 전략 (2) 1부에서는 테스트 자동화와 테스트 전략의 중요성, 시각적 테스트를 자동화하는 것이 어려운 이유 등을 살펴보았다. 사실 시각적 테스트를 자동화하는 것이 불가능하지는 않지만, 현재 우리가 가진 도구로는 기대하는 만큼 효용을 얻기가 어렵다. 이 글은 "…
최신 브라우저의 내부 살펴보기 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…
필자는 지난 2월 20일부터 미국 오클랜드에서 3일간 진행된 ‘DeveloperWeek 2019’ 컨퍼런스에 참석했습니다. DeveloperWeek은 매년 8000여명의 개발자와 엔지니어, 경영진 등 다양한 인력들이 참석하여 최신 개발 기술의 현황과 업적 등을 공유하는 자리로, 금년도…
고객과 직접 마주하는 웹페이지는 다양한 크기의 장치에서 잘 보여야 합니다. 특히나 모바일 게임 회사의 웹페이지는 다양한 크기의 휴대폰에서 잘 보여야 합니다. #괴로운 지점 보통 대응해야되는 화면마다 미디어쿼리를 작성해서 반응형 처리를 합니다. 하지만 그렇게 구현하면 대응하지 않은 중간…
Spring 웹 애플리케이션에서 사용하지 않는 API를 찾아보자 안녕하세요. 배민주문서버개발팀 송정훈입니다. 이 글에서는 스프링 웹 애플리케이션에서 사용자 요청에 대한 로그를 수집하고, 사용되고 있지 않는 API를 쉽게 확인하는 방법에 대해서 설명하고자 합니다. 이 많은 API 들을 다…
‘우아한테크코스 – 웹 백엔드’ 과정에 참여할 사람을 모집합니다. 우아한테크코스가 뭔가요? 우아한테크코스는 프로그래밍을 배워 프로그래머로서의 삶을 살고 싶은 사람들을 대상으로 하는 프로그래밍 교육 과정입니다. 한마디로 프로그래머로 취업하고 싶은 사람들을 위한 직업 전문 학교와 같다고 생…
NAVER Tech Talk: FE devtalk 13회 (2018년 12월) - 등록일 - 2019.02.08 - | - 코멘트 - 2924 NAVER에서는 다양한 FE 기술에 대한 테크톡을 주기적으로 진행하고 있는데요. 2018년 12월에 진행한 FE devtalk 영상을 공유합니다…
오픈소스 프로젝트를 운영하며.. 2018년은 FE개발랩에 좋은 일이 많은 한 해였다. 랩에서 내놓은 오픈소스 프로젝트들이 좋은 반응을 얻었고, 몇 가지 의미있는 성과를 얻었다. 아직 오픈소스 생태계에서 큰 역할을 하지 못하는 대한민국에서 좋은 오픈소스 프로젝트들이 많이 나왔으면 하는 바…
실용적인 프론트엔드 테스트 전략 (1) 바야흐로 자바스크립트의 시대이다. 최근 2~3년 동안 자바스크립트는 가장 인기있는 언어 순위 1위를 유지하고 있고, 여전히 빠른 속도로 성장하고 있다. 10여년 전, 웹 표준이라는 개념조차 없을 때부터 프론트엔드 개발을 해 오던 나 같은 개발자에게…
NAVER Tech Talk: UIT 개발 밋업 (2018년 9월) - 등록일 - 2019.01.10 - | - 코멘트 - 4301 NAVER에서는 다양한 기술에 대한 테크톡을 주기적으로 진행하고 있는데요. 2018년 9월에 진행한 사내 UIT 개발 밋업 발표 영상을 공유합니다. 웹 애…
React와 Apollo, Parcel 기반 서비스 개발 - 등록일 - 2019.01.07 - | - 코멘트 - 40663 웹 서비스를 개발하는 기술은 매우 빠르게 변하고 있습니다. 매년 기존 플랫폼의 단점을 개선한 새로운 플랫폼이 등장하고, 신규 서비스를 개발할 때는 어떤 기술을 사용…
flexbox로 만들 수 있는 10가지 레이아웃 - 등록일 - 2019.01.03 - | - 코멘트 - 425413 마크업 개발자들은 종종 "이 레이아웃은 구현이 불가능합니다.", "CSS만으로는 안될 것 같습니다. 개발 처리가 필요합니다."라고 이야기합니다. 이 말은 사실입니다. 일반…
React에서 Mobx 경험기 (Redux와 비교기) 안녕하세요 딜리버리플랫폼팀 김찬정입니다. 이 글의 목적 React와 함께 사용하는 State(상태)관리 라이브러리중 가장 많이 사용되고 있는 Redux와 또 다른 라이브러리인 Mobx를 직접 사용하여 개발해 보고 느낀 차이점과 Mob…
기존 Express 서버에 Vue.js 적용해보기 (feat.EJS) 도입 이유 팀에서 쓰는 관리자 페이지에 추가 작업을 할 것이 몇 가지 있었습니다. 반복되는 복잡한 코드와 화면 구조가 바뀔 시 걸리는 작업의 시간 그리고 유지보수 측면의 이유로 인해 많은 고민을 하다 Vue.js 를…
웹 폰트 사용과 최적화의 최근 동향 - 등록일 - 2018.12.22 - | - 코멘트 - 112804 2018년 6월 8일부터 9일까지 Webconf.asia 2018이 열렸습니다. Webconf.asia는 웹 분야의 전문가들이 최신 기술과 노하우, 철학 등을 공유해 더 높은 수준의…
NAVER Tech Talk: FE devtalk 12회 (2018년 8월) - 등록일 - 2018.12.11 - | - 코멘트 - 2966 NAVER에서는 다양한 FE 기술에 대한 테크톡을 주기적으로 진행하고 있는데요. 2018년 8월에 진행한 FE devtalk 영상을 공유합니다.…
파일럿 프로젝트와 함께 우아한개발자 되어가기 들어가며 안녕하세요! 배민서버개발팀 김다인입니다. 지난 10월 신입 개발자로 입사한 후 약 5주간에 걸쳐 파일럿 프로젝트를 진행했는데요, 그동안 제가 경험하고 느낀 것들을 공유해 드리고자 합니다. 시작 설렘 반, 긴장 반으로 입사한 당일, 팀…
먼 미래에 범용 인공지능(GAI: General AI)이 개발된다면 우리 생활에 어떤 변화가 올까요? 마치 사람이 복잡한 문제를 해결하듯이, 인공지능도 아무리 복잡한 문제라도 알아서 작게 나눠서 해결하고, 이를 종합해 전체 문제를 해결하게 될 것입니다. 하지만 안타깝게도 아직까지 어떠한…
프로젝트가 장난이야?! 안녕하세요. 저는 배달의 민족 주문시스템을 개발하고 있는 권용근입니다. (출처 : 타요장난감 타요학교와 꼬마버스타요 버스 친구들:지호토이TV) 저는 개발자의 개인 장난(감)인 프로젝트인 토이 프로젝트에 대해서 이야기해보려고 합니다. 저는 웹 개발 입문과 거의 동시…
네이버 메인 페이지의 트래픽 처리 - 등록일 - 2018.11.05 - | - 코멘트 - 101551 스마트폰이나 PC를 보유한 사람이라면 누구나 한 번 정도는 네이버 메인 페이지에 접속해 봤을 것입니다. 네이버 메인 페이지의 트래픽은 평소에도 많은 편이지만 사회적으로 주목을 받는 일이…
지난 아티클에서 정적 분석의 작동 방식과 Rollbar에서 발표한 실제 오류 사례 중 일부를 살펴보았고, 이제 깃허브에 있는 수천 개의 공용 자바스크립트 및 타입스크립트 프로젝트를 분석하여 정적 분석 도구로 수집한 코드 결함 사례와 정적 분석 도구를 선택할 때 고려해야 할 사항들을 살펴…
LC3 참관기 - 등록일 - 2018.08.07 - | - 코멘트 - 6085 LC3는 LinuxCon, ContainerCon, CloudOpen 세 가지 콘퍼런스가 하나로 합쳐져 동시에 진행되는 콘퍼런스로, 지난 2015년부터 시작됐습니다. 개발자, 아키텍트, 시스템 어드민뿐만 아니…
나를 술푸게 하는 고민들 안녕하세요, 배민프론트서버개발팀의 개그 신동이자 귀염둥이 이신은입니다. 저는 작년 12월 신입 개발자 공채를 통해, 백엔드 개발자로 우아한형제들에 합류했습니다. 취업준비생에서 7개월 차 삐약삐약 병아리개발자가 된 지금까지, 지난 1년을 돌아보며 제가 했던 고민을…
100,000개의 아이템도 거뜬한 셀렉트박스 만들기 (1/2) 안녕하세요. 분석서비스팀 심준식입니다. 거의 모든 웹사이트에 있다시피 한 셀렉트박스는 매우 쉽게 구현할 수 있는 간단한 컴포넌트이지만, '잘' 만들기는 어려운 컴포넌트이기도 합니다. 아이템의 갯수가 10~100개 정도일 때에…
Proxy와 가상 돔을 사용하여 나만의 프레임워크 만들기 Javascript Proxy Proxy는 ES2015에 소개된 기능이다. IE11을 제외하고는 모던 브라우저에서 지원하고 있어서 사용할 수 있다. babel 트랜스파일로도 지원되고 있지 않지만, 구글에서 폴리필을 만들어 공개하고…
요즘 잘나가는 프론트엔드 개발환경 만들기(2018): ES6 본 시리즈의 이전 아티클에서는 웹팩4에 대해 다루면서 바로 쓸 수 있는 환경을 만들어봤다. 이번편에는 그 환경 그대로 이용해 ES6 개발 환경을 추가한다. ES6는 이제 충분히 써도 될만한 시기라고 생각한다. "나는 프런트 개…
우아한 개발자 경력 공채 우아한형제들/우아한신선들에서 개발자 경력 공채를 진행합니다. 왜 경력 개발자 공채를 진행하는가? 많은 회사들과 마찬가지로, 우아한형제들에서도 개발자 분들을 열심히 채용하고 있습니다. 많은 좋은 분들이 함께 해 주고 계시지만, 사업과 서비스의 성장 속도가 더 빨라…
NAVER Tech Talk: FE devtalk 11회 (2018년 4월) - 등록일 - 2018.06.25 - | - 코멘트 - 5055 NAVER에서는 다양한 FE 기술에 대한 테크톡을 주기적으로 진행하고 있는데요, 2018년 4월에 진행한 FE devtalk 영상을 공유합니다.…
2018년과 이후 JavaScript의 동향 - 브라우저 밖의 JavaScript - 등록일 - 2018.06.22 - | - 코멘트 - 42998 JavaScript는 단지 브라우저 안에만 머물러 있지 않습니다. 다양한 영역에서 그 힘을 발휘하고, 오히려 브라우저에서보다 더 큰 가능성…
백엔드 개발자를 꿈꾸는 학생개발자에게 - 등록일 - 2018.06.21 - | - 코멘트 - 521820 D2에서는 D2 CAMPUS를 통해 만난 학생개발자를 대상으로 정기적으로 Tech meet-up을 진행하고 있습니다. 금번에는 백엔드 개발을 주제로 진행하였는데요, 미래의 백엔드 개…
우아한테크캠프를 통해 내가 얻은 것들 안녕하세요! 작년 12월에 우아한형제들에 입사한 신입 개발자 배민프론트개발팀의 박예준입니다! 딱 작년 이맘때에 즈음 우아한테크캠프 지원서를 작성하고 있었는데, 이렇게 기술 블로그에 글을 남기려니 기분이 이상하네요. 2018우아한테크캠프를 앞두고 있습…
배민찬은 Vue를 어떻게 사용하나요? 이 글은 제이쿼리, PHP 기반의 쇼핑몰 서비스에 Vue를 도입한 사례를 정리한 내용입니다. 서비스에 Vue 도입을 고민 중이신 분들을 위해 경험기를 공유합니다. 배경 배민찬은 푸드 커머스 사업에 혁신을 만들어가는 스타트업 서비스다. 우리 개발팀은…
- blog 사용하면서 알게 된 Reactor, 예제 코드로 살펴보기 Reactor는 Pivotal의 오픈소스 프로젝트로, JVM 위에서 동작하는 논블럭킹 애플리케이션을 만들기 위한 리액티브 라이브러리입니다. Reactor는 RxJava 2와 함께 Reactive Stream의 구현체이…
요즘 잘나가는 프론트엔드 개발 환경 만들기(2018): Webpack 4 요즘 잘나가는 프론트엔드 개발 환경 만들기(2018): Webpack 4 최근에 새로운 프로젝트를 진행하게 되면서 기존에 간만 살짝 보고 있던 뷰(Vue, 이하 뷰)를 본격적으로 도입하게 되었다. 사실 팀에서는 리…
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)만에 끝내도록 튜닝 필…
내 서버에는 누가 들어오는 걸까 - Apache 액세스 로그를 Elastic Stack으로 분석하기 - 등록일 - 2018.04.30 - | - 코멘트 - 59115 웹 서비스를 운영하는 서버 관리자라면 외부에서 어떤 요청이 들어오는지 그리고 어떤 사용자가 있는지에 대한 정보를 담고 있…
우아한개발자가 되기 위한 우아한테크캠프 우아한(Woowa) 개발자가 되고 싶은 이들을 위한 우아한테크캠프 2기를 소개합니다. 우아한테크캠프 2017 우아한테크캠프는 대학생들의 여름 방학 기간에 맞춰서 2017년에 진행했던 교육형 인턴 과정입니다. 한 달은 정해진 커리큘럼에 따라 개발 관…
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 네이버의 콘텐츠 통계 서비스는 네이버의 콘텐츠를 사용자가 얼마나 소비했는지에 대한 통계를 콘텐츠 생산자에게 제공합니다. 예를 들어 블로그 관리자가 볼 수 있는 통계 메뉴…
SIL(Swift Intermediate Language)을 통한 Swift debugging - 이 문제는 이슈 [SR-7249], commit을 통해 해결되었고, swift 4.2 브랜치에 머지 되었습니다. Episode III 몇일 전 그렇게 멀지않은 방이동, 경복궁 건물 6층 배…
NAVER Tech Talk: FE devtalk 9, 10회 (2017년 9월, 12월) - 등록일 - 2018.03.08 - | - 코멘트 - 3893 NAVER에서는 다양한 FE 기술에 대한 테크톡도 주기적으로 진행하고 있는데요, 2017년 9월, 12월에 진행한 FE devtal…
웹 워드프로세서 기초 만들어 보기(2) 웹 워드프로세서(이하 웹 워드)는 브라우저만 있으면 어디서나 문서 편집을 할 수 있다는 장점이 있어 매력적인 소프트웨어이다. 아직 네이티브 워드프로세서로 할 수 있는 모든 기능을 다 지원하는 것은 아니지만 가까운 미래에는 가능하리라고 믿는다. 2년…
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일 이 프로젝트의…
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이…
카드형 UI와 eg.InfiniteGrid 3.0 - 등록일 - 2018.01.04 - | - 코멘트 - 18648 모바일 웹이 보편화되기 이전에는 웹 사이트의 콘텐츠를 대부분 게시판 형식으로 소비했습니다. 제목이 나열된 목록이 있고, 목록에서 항목을 선택하면 상세 페이지가 열리는 형식…
웹 워드프로세서 기초 만들어 보기(1) 웹 워드프로세서 기초 만들어 보기(1) 웹 워드프로세서(이하 웹 워드)는 생각보다 오래된 역사를 가지고 있다. 구글 독스가 2006년에 소개되면서 많이 알려졌으니 벌써 십여 년의 역사가 있는 소프트웨어 분야이다. 씽크프리는 자바 애플릿 기반으로 동…
리액트 HOC 집중 탐구 (1) 리액트 HOC 집중 탐구 (1) 리액트가 정식으로 릴리즈된 지도 벌써 4년이 훌쩍 지났다. 얼마전 나온 16.0 버전에 이르기까지 내부적으로도 많은 발전이 있었고, 수 많은 리액트 관련 라이브러리들이 나오는 등 외부적으로도 많은 발전이 있었다. 지금은 거…
Redux-Saga: 사이드 이펙트 관리 Redux-Saga: 사이드 이펙트 관리 지난 1년 6개월 동안 리액트, 리덕스를 공부하고 활용해 웹 애플리케이션을 개발했다. 지금도 개발하고 있고, 여전히 비동기 처리와 같은 사이드 이펙트(Side effects)를 고민하고 있다. 리액트, 리…
JBake로 API문서 관리하기 1. 프로젝트 배경 및 목적 - 배경 1. Java는 가장 인기있는 프로그래밍 언어로 많은 회사에서 주력언어로 선택하고 있음 2. 대부분의 CMS(Content Management System)는 Python, JavaScript 언어로 되어 있어, Ja…
HTML diff HTML diff란? - MS워드의 '변경 내용 추적'기능처럼 HTML의 렌더링 결과 화면의 변경 부분을 탐지하고 해당 내용을 시각화하여 표시해주는 기능이다. - HTML 텍스트에서 태그와 속성 데이터를 파싱하여 트리같은 자료구조로 구조화하고 구조화한 트리를 비교해서…
HTTPS 전환 과정에서 read timeout 오류 해결 과정 - 등록일 - 2017.12.05 - | - 코멘트 - 79060 네이버는 최근에 서비스에서 사용하는 프로토콜을 HTTP에서 HTTPS로 전환하고 있습니다. 네이버 카페와 '좋아요' 플랫폼 사이의 통신에 사용하는 프로토콜도…
이맥스와 함께하는 개발환경 금단의 영역에 손을 대다 에디터, IDE뿐 아니라 업무에 관련된 새로운 도구가 나오면 꼭 써봐야 직성이 풀리는 성격이었지만 언젠가부터 그놈이 그놈이고 저놈이 그놈이고 새로운 기능이 있어도 개발을 할 때 사용하는 기능들은 매우 한정적이라는 사실을 깨닫게 되었다.…
블라인드 채용으로 관심을 모은 카카오 신입 공채의 세 번째 테스트가 지난 10월 29일(일), 오후 2시부터 6시까지 네 시간에 걸쳐 오프라인으로 치러졌습니다. 두 차례의 온라인 테스트를 통과한 지원자들이 한 자리에 모여 다시 한번 실력을 검증하는 자리를 가졌습니다. 세 번째 관문 오프…
Front-End 테스트 환경 (2) - 멀티 브라우저 테스트 환경 구축하기 멀티 브라우저 테스트 환경 구축하기 로컬 테스트 환경의 한계 이전 글에서는 단일 PC에서 테스트 환경을 구축하고 테스트를 실행하는 과정을 설명했다. 로컬 PC 내에서 브라우저 자동화 테스트를 수행하는 테스트의…
웹 기술로 구현하는 Adaptive HTTP Streaming 한국은 물론 세계적으로 엄청난 양의 동영상 콘텐츠가 소비되고 있다. 플래시가 대세였던 웹 동영상 기술이 점차 표준 기술인 HTML5 비디오로 전환되었고 요즘은 대부분의 동영상 서비스는 HTML5를 기반으로 서비스되고 있다.…
Overview 웹 서비스의 규모가 커지고 이용자의 수가 늘어날수록 서비스 제공자는 scalability 이슈에 직면합니다.그중에서도 실제 ‘로딩 속도’의 차이를 느끼게 해 주고 트래픽의 대부분을 차지하는 정적 컨텐츠의 신속한 제공은 서비스 품질을 좌우하는 중요한 요소가 되곤 합니다.…
자바스크립트 함수(3) - Lexical Environment 자바스크립트 함수(3) - Lexical Environment 지난 글을 통해 함수의 생성과 함수의 호출 과정에 대해 간략히 알아보았다. 앞선 글(함수의 호출)에서 간단히 설명한 Execution Context에는 Lexic…
지그재그 서비스는 모놀리식 아키텍처(Monolithic Architecture)에서 마이크로서비스 아키텍처(Microservice Architecture)로 전환중에 있습니다. 이번 글에서는 그 과정을 설명하려고 합니다. 크로키는 2012년 중반에 첫 서비스 개발을 시작했습니다. 웹 서…
Google I/O 2017 참관기 - Kotlin - 등록일 - 2017.09.13 - | - 코멘트 - 9143 Google에서 마침내 Android의 공식 언어를 추가했습니다. 바로 Kotlin입니다. Kotlin이 새로운 공식 언어로 채택됐다고 발표하던 순간이 키노트 발표에서 가…
실시간 서비스 경험기(배달운영시스템) 경험기 들어가기 앞서 이 글은 신기술 사용기 또는 소개가 아닌 실시간 서비스 즉 배민라이더스 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일에 우아한 테크캠프를 마쳤습니다. 좋은 책을 다 읽은 것처럼 아쉬움과 기분좋은 여운이 남아있네요. 테크캠프에서 배운 점이 학부에서의 몇년보다 많아서 꼽기 어렵습니다만, 그래…
우아한테크캠프 – 8월의 일기 프로젝트 시작 – 플래닝, 스크럼, 개발 Iteration, Demo와 회고의 반복 유난히도 더웠던 8월. 7월에 배운 교육 과정을 바탕으로 참가자 분들이 스스로 프로젝트를 기획하고 개발하는 실습 과정을 가졌습니다. 이번 프로젝트는 나 혼자 개발이 아닌 함…
- blog Parallel Programming and Applicative in Scala Monolithic 아키텍쳐로 개발하기 Monolithic 아키텍쳐로 개발시에는 일반적으로 하나의 저장소만 고려해야 하는 경우가 많았습니다. Monolithic 아키텍쳐를 사용하면 편리한점이…
자바스크립트 함수 (2) - 함수 호출 저번 글을 통해 함수가 어떻게 생성되는지 대략 살펴보았다. - 함수는 일반 객체의 확장이다. - 함수 생성 시점에 그 함수의 역할이 어느 정도 결정될 수 있다. (callable과 constructor) - 함수 생성 시점에 저장하는 데이터들을 통…
최근 1년 간 뱅크샐러드 웹은 많은 변화가 있었습니다. 새로운 금융상품 추천부터 어려운 금융지식을 풀어쓰는 매거진 까지 다양한 기능을 제공하고 많은 사용자들이 방문하기 시작했습니다. 거대해진 프로젝트 규모에 따라 보다 안정적인 코드베이스를 지향하게 되었고, 최근에 개발된 CMA 추천을…
인(人)턴(Turn) – 당신 인생의 전환점 우아한 테크 캠프 흔히 인턴이라고 하면 단기간 회사에서 정식 구성원이 되기 위해 실습 훈련을 밟는 일원을 말합니다. 말이 실습 훈련이지 막상 회사에 가면 짧게는 2개월, 길게는 6개월, 1년 동안 제대로 된 실습 훈련을 받지는 못합니다. 개발…
웹 어셈블리를 보다 쉽게 웹 어플리케이션에 적용하는 방법 본 글은 웹 어셈블리를 보다 쉽게 웹 어플리케이션에 적용하는 방법을 소개하고, 자바스크립트와 WebAssembly의 간단한 성능 테스트 결과를 공유한다. 세상에는 많은 프로그래밍 언어들이 있고 여러 가지 측면에서 장단점을 이야기…
Web Components(3): Shadow DOM 이 글은 웹 컴포넌트 소개 연재로 그중 세 번째인 쉐도우 돔에 대한 글이다. 아마도 이전 글의 커스텀 엘리먼트 글을 읽고 온 분은 여러 스펙, API, 기억해 두어야 할 것들로 질렸을지도 모르겠다.(두 번으로 잘라서 글을 썼으면 좋았…
자바스크립트 함수 (1) - 함수 객체, 함수 객체 생성 자바스크립트로 유명한 개발자 Douglas Crockford의 말을 빌리면, 자바스크립트는 지구에서 가장 오해하고 있는 프로그래밍 언어다. 물론 지금 글을 작성하는 2017년에는 그 오해가 많이 풀리긴 했지만, 여전히 자바스크립트…
똑똑, 프로젝트에 코틀린을 도입하려고 합니다. 이 글은 2017년 4월, 배민프레시에 코틀린 도입하는 과정에서 작성된 글을 바탕으로 재구성되었습니다. 시작하며 2017년 4월, 모바일 플랫폼에서 사용자 경험 극대화를 위한 여정의 첫발로 메인 개편 프로젝트를 시작했습니다. 이 프로젝트의…
GitHub 환경에서의 실전 Git 레시피 저희 팀은 Git으로 소스를 관리하고, GitHub로 코드 리뷰를 진행하고 있습니다. 또한, 저희 팀 상황에 맞춰 변형한 Git Flow 전략으로 브랜치 관리를 하고 있죠. 하지만 Git을 사용하며 개발을 하다 보면 종종 뭔가 잘못되거나, 예상…
Web Components(2): Custom Elements 오늘은 이전에 썼던 글 WebComponents: Keep calm and #UseThePlatform에 이어지는 것으로, Web Components의 주요 표준 중 하나인 Custom Elements에 대한 글이다. TL;…
배달의민족 안드로이드 7.27.0 장애 회고 시작하며 지난 5월 23일 주소개편과 주문페이지 업데이트를 진행하였다. 기존 주소설정페이지는 외식배달과 일반업소에서 서로 다른 화면을 사용 중이었으나 이번 개편작업으로 통합하게 되었다. 통합하는 과정에서 일반업소에서도 보다 정확한 주소입력을…
Redux-Saga에서의 WebSocket(socket.io) 이벤트 처리 React(이하 리액트), Redux(이하 리덕스) 생태계에서 소켓과 같은 외부 이벤트 처리는 개발에 많은 고민을 안겨준다. 똑같은 외부 이벤트가 발생하더라도 앱의 상태에 따라 다르게 처리하고 싶을 수도 있고,…
Web Components(1): Keep calm and #UseThePlatform Web Components: Keep calm and #UseThePlatform 이 포스터(Keep Calm and Carry On)은 영국 정부가 제2차 세계 대전이 발발하기 전 대규모 공중 폭격…