TensorFlow를 활용한 네이버쇼핑의 상품 카테고리 자동 분류 - 등록일 - 2019.05.02 - | - 코멘트 - 80529 네이버쇼핑은 네이버가 제공하는 쇼핑 포털 서비스입니다. 네이버쇼핑은 상품을 체계적으로 구성하고 사용자가 보다 쉽게 검색할 수 있도록 상품을 카테고리에 매칭…
‘Gradle Kotlin DSL’ 이야기 Developer life is Coding between Build and Deploy. 개발자 인생은 (프로젝트) 빌드와 배포 사이 삽질(=코딩)이다. — #월급쟁이개발자 허니몬 빌드도구(Build tool) 이야기 새로운 프로젝트를 시작하…
2016년 중반 마이크로서비스로의 전환을 결정했습니다. 마이크로서비스는 이론상 다른 서비스에 영향을 주지 않고 내부 기술을 바꿀 수 있습니다. 하지만 마이크로서비스 간의 통신 방법은 한번 결정하면 쉽게 바뀌기 어려울 것 같아서 가장 많이 고민했습니다. 그리고 Thrift를 선택했습니다.…
AngularJS에서 Vue로 전환하면서 배운 것 프롤로그 나는 NHN에서 협업도구인 Dooray!를 개발하고 있다. 프로젝트, 메일, 메신저, 캘린더, 드라이브, 위키, 주소록, 칸반 등 방대한 기능을 담은 서비스이며 약 5년 전부터 개발되기 시작하여 현재까지 잘 유지되고 있는 서비스…
최신 브라우저의 내부 살펴보기 3 - 렌더러 프로세스의 내부 동작 - 등록일 - 2019.04.22 - | - 코멘트 - 32193 이 글은 Google Developers 사이트에 공개된 Mariko Kosaka의 "Inside look at modern web browser"(최신…
Packer와 Ansible을 이용한 표준 AMI 만들기 안녕하세요 저는 작년 우아한테크캠프 2기를 마치고 10월에 시스템신뢰성개발팀에 입사한 김규남이라고 합니다. 이번 글에서는 팀 내에서 Packer와 Ansible을 이용해 AMI를 코드레벨로 어떻게 관리하고 있는지에 대해 공유드리려…
실용적인 프론트엔드 테스트 전략 (3) 2부에서는 스토리북을 사용해서 시각적 요소에 대한 테스트를 자동화하는 방법에 대해 알아보았다. 기억을 되살리기 위해 우리가 작성하고 있는 할 일 관리 애플리케이션의 실행 단계를 다시 정리해보자. 애플리케이션이 실행되면 화면에 기본 UI를 보여준다.…
간단하게 구축해 보는 JavaScript 개발 환경 - 등록일 - 2019.04.18 - | - 코멘트 - 43013 프로그래밍은 다양한 문제를 해결할 수 있는 한 가지 방법입니다. 하지만 해결해야 하는 문제가 크고 복잡해지면서 혼자 소프트웨어를 만들며 프로그래밍으로 문제를 해결하기는…
동영상 플랫폼 개선기 2 - 신규 동영상 플랫폼 구축 - 등록일 - 2019.04.15 - | - 코멘트 - 16393 "동영상 플랫폼 개선기 1 - 신규 동영상 플랫폼의 구성"에서는 기존 동영상 플랫폼의 구성과 문제점, 새로운 동영상 플랫폼의 구성을 살펴보았습니다. 새로운 동영상 플랫…
저녁 11시까지 주문하면 Full-Cold Chain을 통해서 다음날 7시까지 배송해주는 마켓컬리 서비스 구성에 대해서 상세하게 소개 드립니다. 마켓컬리 서비스는 크게 사용자가 신선식품을 포함한 각종 상품을 앱과 웹을 통해서 쇼핑할 수 있는 이커머스 서비스와 주문한 상품을 물류 센터내에…
동영상 플랫폼 개선기 1 - 신규 동영상 플랫폼의 구성 - 등록일 - 2019.04.11 - | - 코멘트 - 22771 네이버의 동영상 플랫폼은 2007년에 네이버 블로그에 동영상 서비스를 처음으로 지원했습니다. 현재는 약 60여 개의 네이버 서비스를 지원하고 있으며, 동영상 처리를…
Kubernates에 Pod 기반의 IAM Role 접근 제어 통합하기 Hyojun Kim — 김효준 @therne 왜 Kiam인가? Kiam의 구조 kiam은 마스터 노드에 붙는 서버와 각 노드에 붙는 에이전트로 나뉘어진다. 파드에서 어떤 IAM Role을 쓰고 싶을땐 어떻게 할까?…
웹사이트를 SPA로 만들 때의 장점 중 하나는 자바스크립트의 실행 컨텍스트가 날아가지 않기 때문에 화면이 전환될 때에도 애니메이션 처리를 할 수 있다는 점입니다. #GatsbyJS GatsbyJS는 리액트 정적 웹사이트 생성기입니다. 정적파일로 떨궈주기 때문에 S3에 올리기만 하면 웹사…
TOAST IAP 소개 (TOAST Service 들여다 보기) In App Purchase란? In App Purchase는 Google Play, Apple App Store 등의 스토어에서 설치한 앱 안에서, 상품을 유료로 구매하는 것을 의미합니다. 혹은 앱 밖에서 구매할 수도 있…
파일럿 프로젝트를 통한 배치경험기! 들어가며 안녕하세요 ! 우아한 테크캠프 2기를 통해 1월에 결제정산개발팀에 합류하게 된 최유성입니다. 입사 후 총 5주간 신입 개발자의 팀 적응을 위한 파일럿 프로젝트를 진행하였습니다. 지금부터 그 5주간의 파일럿 프로젝트에 대한 경험을 공유하겠습니다…
실용적인 프론트엔드 테스트 전략 (2) 1부에서는 테스트 자동화와 테스트 전략의 중요성, 시각적 테스트를 자동화하는 것이 어려운 이유 등을 살펴보았다. 사실 시각적 테스트를 자동화하는 것이 불가능하지는 않지만, 현재 우리가 가진 도구로는 기대하는 만큼 효용을 얻기가 어렵다. 이 글은 "…
최신 브라우저의 내부 살펴보기 2 - 내비게이션 과정에서 일어나는 일 - 등록일 - 2019.03.26 - | - 코멘트 - 23162 이 글은 Google Developers 사이트에 공개된 Mariko Kosaka의 "Inside look at modern web browser"(최…
리모트 컨피그 앱 개발기 안녕하세요. 우아한형제들 배민앱개발팀에서 안드로이드 앱을 개발을 하고 있는 이민형입니다. 배달의민족 앱에서 앱의 다양한 설정 값들을 앱 배포없이 적용할 수 있는 리모트 컨피그 기능에 대해 공유하고 리모트 컨피그를 어떻게 사용하고 있는지에 대한 내용을 공유드리려…
개발 미션과 함께 읽는 클린 코드 들어가며 안녕하세요, 미래사업부문의 오지산이라고 합니다. 저는 작년 10월 우아한형제들에 신입 개발자로 입사하면서 처음으로 Spring 위에서 코드를 작성하는 경험을 했습니다. 0의 지식으로 부딪혀야 하는 상황이었는데요. 거기에 신규 서비스를 개발해야…
TOAST Object Storage 소개 (TOAST Service 들여다 보기) TOAST Object Storage는 여러 서비스의 백엔드 스토리지로 사용되고 있습니다. Dooray!, TOAST File, TOAST Image 등 비정형 데이터를 저장하는 많은 서비스의 근간이라고…
3월 우아한 Tech 세미나 후기 스프링 리액티브 세미나 후기 안녕하세요! 우아한 형제들에서 결제/정산/포인트/비즈머니를 담당하는 결제정산개발팀 이동욱입니다. 사내에서는 다양한 DR (Developer Relations) 활동을 하고 있습니다. 여러 활동 중 이번엔 토비의 스프링의 저자…
구글플레이 권한 정책 지키기 안녕하세요. 우아한형제들 배민앱개발팀에서 배달의민족 안드로이드 앱을 개발을 하고 있는 나동호입니다. 구글플레이에서 보안 및 개인 정보 보호 정책을 강화하면서 민감한 권한을 제거하며 겪은 이야기를 작성한 글입니다. 이 글에서 나온 버전 코드 및 몇몇 정보들은…
aop를 이용한 oauth2 캐시 적용하기 서론 저는 현재 미래사업부문에서 신규 서비스를 만들고 있으며, 신규 서비스는 기존 우아한 형제들에서 서비스중인 배달의민족과 디펜던시를 갖지 않는 독립적인 서비스다 보니 모든 것을 처음부터 새 판에서 고민하며 만들어 가고 있습니다. 이 글에서는…
코드리뷰 적응기(feat. 파일럿 프로젝트) 안녕하세요. 결제정산개발팀의 권세희입니다. 저는 정산업무를 맡게 되었는데, 정산은 데이터 정합성과 트랜잭션, 도메인 주도 개발, Entity 간의 연관 관계, 대용량 데이터 처리가 핵심인 시스템입니다. 정산 도메인과 기술셋에 대한 경험이 없어…
도메인 별 프로세스와 구조개선을 통해 나아진점을 설명 앞선 포스트에서 설명드렸듯이 기존 시스템의 Engine이 가지고 있던 기능들을 도메인으로 역할을 분리했고, 컨테이너화를 통해 독립적인 애플리케이션으로 구축을 진행했습니다. 저희가 운영중인 시스템에는 캠페인 정보, Push 메시지 생성…
행사소개 필자는 [Deep Learning Summit 2019, “Deep Learning Stage”]를 기고한 정지원 프로와 함께 1월 24일부터 25일까지 2일간, 샌프란시스코에서 열린 Deep Learning Summit 2019 행사에 참석했습니다. 본 컨퍼런스는 Deep L…
구조개선을 하려 했던 이유와 전체 시스템 설계에 대한 설명, 주요 기술, 빌드, 배포에 대해 공유 이 포스트는 저희가 2년여간 운영해온 분산처리 시스템의 구조개선 프로젝트에 대해서 시스템 구축에 사용한 기술과 경험을 공유하고자 합니다 구조개선 하려는 시스템은 IMDG 플랫폼 Apache…
리모트 컨피그 서버 구축기 안녕하세요. 저는 배민서비스개발실에서 웹어플리케이션 서버를 개발하는 강홍구입니다. 이 글에서는 배달의민족 앱에서 사용되는 여러가지 설정값들을 관리하기 위한 리모트 컨피그 서버를 구축한 내용에 대해 공유 하고자 합니다. 왜 리모트 컨피그 서버가 필요했을까? 브라…
Spring 웹 애플리케이션에서 사용하지 않는 API를 찾아보자 안녕하세요. 배민주문서버개발팀 송정훈입니다. 이 글에서는 스프링 웹 애플리케이션에서 사용자 요청에 대한 로그를 수집하고, 사용되고 있지 않는 API를 쉽게 확인하는 방법에 대해서 설명하고자 합니다. 이 많은 API 들을 다…
‘우아한테크코스 – 웹 백엔드’ 과정에 참여할 사람을 모집합니다. 우아한테크코스가 뭔가요? 우아한테크코스는 프로그래밍을 배워 프로그래머로서의 삶을 살고 싶은 사람들을 대상으로 하는 프로그래밍 교육 과정입니다. 한마디로 프로그래머로 취업하고 싶은 사람들을 위한 직업 전문 학교와 같다고 생…
배달아~ 배달 가는길 알려줘!(단호함) 서론 배민라이더스에서는 배달거리를 업소와 고객의 주소 정보를 이용해서 지구는 적당히(?) 둥글다는 계산으로 거리계산을 하고 있습니다. ~대충대충코드~ double theta = from.getLongitude() - to.getLongitude()…
스마트 제조 분석의 현재와 한계 제조업, 특히 하이테크 제조분야에서는 인더스트리 4.0(Industry 4.0)과 스마트 공장(Smart Factory)과 같은 새로운 방법의 모색을 통하여 끊임없이 변화하는 시장 요구사항에 대응함으로써 혁신적인 제품을 더 빨리 제공할 수 있는 방법을 찾…
응? 이게 왜 롤백되는거지? 이 글은 얼마 전 에러로그 하나에 대한 호기심과 의문으로 시작해서 스프링의 트랜잭션 내에서 예외가 어떻게 처리되는지를 이해하기 위해 삽질을 해본 경험을 토대로 쓰여졌습니다. 스프링의 트랜잭션의 세부적인 동작방식을 살펴보기 때문에 코드가 많고 설명이 조금 긴…
SQL Server 에게 String 이란? (NVARCHAR 인가 VARCHAR 인가) SQL Server JDBC Driver 를 사용하면서 배운, 그리고 주의해야 할 특징 안녕하세요. 비즈상품개발팀에서 광고시스템을 개발하고 있는 김승영입니다. 현재 광고시스템의 일부분이 Spring…
AWS에서 보안 감사 및 이상징후 탐지 Introduction Summary AWS에서는 유용하게 사용 할 수 있는 log들이 있다. 그 중에서도 cloudtrail log를 수집/분석하여 정보보안 및 운영의 효율성을 높이는데에 도움이 되는 기술을 공유하고자 한다. Backbround…
오토스케일(Autoscale)의 이해와 예제를 통한 구성(TOAST 서비스 들여다보기) 오토스케일은 인스턴스의 부하를 모니터링해서 특정 이벤트에 대해 인스턴스를 추가/삭제하는 기능을 제공하는 서비스 입니다. 예를 들어, 급작스러운 서비스 트래픽의 증가 상황에서 운영자의 개입없이 자동으로…
오픈소스 프로젝트를 운영하며.. 2018년은 FE개발랩에 좋은 일이 많은 한 해였다. 랩에서 내놓은 오픈소스 프로젝트들이 좋은 반응을 얻었고, 몇 가지 의미있는 성과를 얻었다. 아직 오픈소스 생태계에서 큰 역할을 하지 못하는 대한민국에서 좋은 오픈소스 프로젝트들이 많이 나왔으면 하는 바…
실용적인 프론트엔드 테스트 전략 (1) 바야흐로 자바스크립트의 시대이다. 최근 2~3년 동안 자바스크립트는 가장 인기있는 언어 순위 1위를 유지하고 있고, 여전히 빠른 속도로 성장하고 있다. 10여년 전, 웹 표준이라는 개념조차 없을 때부터 프론트엔드 개발을 해 오던 나 같은 개발자에게…
클린 아키텍처와 함께하는 배민앱 (Android) 배민마켓 개발하기 안녕하세요, 배민앱개발팀에서 안드로이드 앱 개발을 하고 있는 강경완입니다. 안드로이드 파트로 온 지 얼마 되지 않아 미션이 떨어졌습니다. 기존에 음식 배달만을 하던 배달의민족 서비스에 배민마켓이라는 새로운 형태의 서비스…
지난 1편에서는 어떻게 Spark에서 클러스터 컴퓨팅 작업들이 처리되는지를 이해하고, 이를 기반으로 Spark Context를 잘 관리함으로써 얻을 수 있는 장점들에 대해 소개를 해드렸습니다. 이번 시간에는 이를 바탕으로 Spark에서 제공하는 Fair Scheduler와 Dynamic…
React와 Apollo, Parcel 기반 서비스 개발 - 등록일 - 2019.01.07 - | - 코멘트 - 40663 웹 서비스를 개발하는 기술은 매우 빠르게 변하고 있습니다. 매년 기존 플랫폼의 단점을 개선한 새로운 플랫폼이 등장하고, 신규 서비스를 개발할 때는 어떤 기술을 사용…
빅데이터 엔지니어링의 중심에 있는 Spark 2003년 Google에서 GFS 논문이 발표되고, 이를 참고하여 개발된 Hadoop 프로젝트가 2006년에 오픈소스로 공개되었습니다. Hadoop을 통해 일반 PC로도 빅데이터를 다룰 수 있게 된 덕분에, 우리는 본격적인 빅데이터 시대를 맞…
Legacy DB의 JPA Entity Mapping (복합키 매핑 편) 안녕하세요. 우아한형제들에서 배달의민족 서비스의 광고시스템을 개발하고 있습니다. 시스템을 점진적으로 Spring Boot / JPA 기반으로 이관하면서 경험했던 내용을 공유하고자 합니다. Legacy DB의 JPA…
Spring 의 Cache 추상화를 사용하면서, 단건/다건 key 에 대한 동일 저장소 사용하기 들어가며 이전에는 Google 의 Guava 를 이용하여 Local Cache 기능을 구현을 했습니다. ‘guava’ 단순하게 Key/Value 에 대해서 가장 쉽게 사용을 할 수 있는 것중…
flexbox로 만들 수 있는 10가지 레이아웃 - 등록일 - 2019.01.03 - | - 코멘트 - 425413 마크업 개발자들은 종종 "이 레이아웃은 구현이 불가능합니다.", "CSS만으로는 안될 것 같습니다. 개발 처리가 필요합니다."라고 이야기합니다. 이 말은 사실입니다. 일반…
React에서 Mobx 경험기 (Redux와 비교기) 안녕하세요 딜리버리플랫폼팀 김찬정입니다. 이 글의 목적 React와 함께 사용하는 State(상태)관리 라이브러리중 가장 많이 사용되고 있는 Redux와 또 다른 라이브러리인 Mobx를 직접 사용하여 개발해 보고 느낀 차이점과 Mob…
우아한형제들 JPA 강의 소감과 적용 사례 우아한형제들에 외부 개발자분들을 초대해서 JPA 기본기를 강의한 소감 배달의민족 내부 시스템 JPA 적용 사례 공유 안녕하세요. 프론트서버개발팀 김영한입니다. 이번에 외부 개발자분들을 초대해서 JPA 강의를 진행한 소감과 우아한형제들이 실제 J…
Spring Rest Docs 적용 안녕하세요? 우아한형제들에서 정산시스템을 개발하고 있는 이호진입니다. 지금부터 정산시스템 API 문서를 wiki 에서 Spring Rest Docs 로 전환한 이야기를 해보려고 합니다. 1. 전환하는 이유 현재 정산시스템은 API 문서를 wiki 로…
안녕하세요, 뱅크샐러드 iOS 엔지니어 김찬울입니다. 오늘은 iOS 개발자라면 누구나 듣고 싶어 할 내용이지만, 많은 분이 경험하지 못하셨을 경험을 공유해보고자 합니다. 기존에 뱅크샐러드 제품팀은 Apple로부터 몇 번 연락을 받아 Artwork 등을 제출하여 App Store 한국팀에…
클라우드를 분류할 때 흔히 IaaS(Infra as a Service), PaaS(Platform as a Service), SaaS(Software as a Service)로 분류합니다. 클라우드를 활용한 서비스를 제공하기 위해서는 주로 IaaS, PaaS 등을 활용해 어플리케이션을…
기존 Express 서버에 Vue.js 적용해보기 (feat.EJS) 도입 이유 팀에서 쓰는 관리자 페이지에 추가 작업을 할 것이 몇 가지 있었습니다. 반복되는 복잡한 코드와 화면 구조가 바뀔 시 걸리는 작업의 시간 그리고 유지보수 측면의 이유로 인해 많은 고민을 하다 Vue.js 를…
Kubernetes는 컨테이너 오케스트레이션 영역에서 거의 표준으로 자리 잡은 오픈소스 시스템입니다. kubernetes를 사용하게 되면 여러대의 노드를 하나의 클러스터로 묶어서 사용가능하게 됩니다. 클러스터를 구성하는 노드들중에 일부에 장애가 발생하더라도 장애가 난 곳에 있던 컨테이너…
웹 폰트 사용과 최적화의 최근 동향 - 등록일 - 2018.12.22 - | - 코멘트 - 112804 2018년 6월 8일부터 9일까지 Webconf.asia 2018이 열렸습니다. Webconf.asia는 웹 분야의 전문가들이 최신 기술과 노하우, 철학 등을 공유해 더 높은 수준의…
DB도 형상관리를 해보자! 개발 코드는 VCS(Version Control System)로 형상 관리를 하는데, DB 이력은 형상 관리를 할 수 있을까? 하고 고민하셨던 적이 있으신가요? 여기 DB 이력도 형상 관리를 할 수 있는 오픈 소스 도구 Flyway를 소개합니다. 버전별 DB…
HTTP 쿠키와 톰캣 버전별 이슈 HTTP 쿠키 - HTTP 쿠키는 서버가 사용자의 웹 브라우저에 전송하는 데이터 조각입니다. - 브라우저는 이 데이터 조각들을 저장할 수 있고 다음 요청 시에 전송할 수 있으며 방문자의 상태를 저장하는 용도로 사용합니다. 쿠키의 목적 1. 세션 관리 (…
Big things in JDK 11 Java 11 2018년 09월 25일에 final release된 신규 버전의 jdk 입니다. 신규 features는 아래의 JEPS에서 살펴보실 수 있습니다. jdk 11 버전에는 약 90개의 신규 feature들이 공개되었는데요, 그 중 몇 가…
Big things in JDK 10 JDK 10 2018년 3월 20일에 발표된 JDK 10에서 추가된 전체 기능은 아래의 JDK Enhancement Proposals(JEPS)에서 살펴볼 수 있습니다. 약 109개의 신규 기능들로 이루어져있으며, 대표적으로 var 를 사용한 지역변…
우아한 파일럿 프로젝트 2기(feat.고독한개발자) 들어가며 안녕하세요. 저는 우아한테크캠프를 통해 우아한형제들에 합류한 배민서버개발팀의 김민지입니다. 이 글을 통해 저희 팀에서 진행하고 있는 신입 교육의 일환인 Show me the code라는 파일럿 프로젝트를 진행한 경험을 공유하고…
파일럿 프로젝트와 함께 우아한개발자 되어가기 들어가며 안녕하세요! 배민서버개발팀 김다인입니다. 지난 10월 신입 개발자로 입사한 후 약 5주간에 걸쳐 파일럿 프로젝트를 진행했는데요, 그동안 제가 경험하고 느낀 것들을 공유해 드리고자 합니다. 시작 설렘 반, 긴장 반으로 입사한 당일, 팀…
지난 11월 7일, 미국 샌프란시스코 Moscone Center에서 ‘SDC 2018(Samsung Developer Conference 2018)’이 개최되었습니다. 기술의 발전으로 IT 개발자들이 배워야 할 것이 늘어남에 따라 다양한 기술 정보를 공유할 수 있는 장이 필요해졌습니다.…
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월 6일(토) 2019 블라인드 공채 오프라인 2차 코딩테스트가 진행되었습니다. 작년에는 8시간 동안 온라인으로 진행한 것과는 달리 오프라인으로 5시간 동안 치러졌는데요, 어떤 의도로 출제하였는지 살펴보겠습니다. 작년 2차 코딩테스트 회고 작년 문제 출제 의도를 기억하시는지요?…
신규 포인트 시스템 전환기 #2 – 오픈 준비 단계 포인트 시스템 개편기 #2 – 오픈 준비 이 글은 이전편에서 이어집니다. 기존에 프로시저만 수행되던 시스템을 API 기반으로 전환하기 위해서 모든 API는 2개씩 준비해야만 했습니다. - 레거시 프로시저를 랩핑한 API - 신규 도메인…
신규 포인트 시스템 전환기 #1 – 개발 단계 포인트 시스템 개편기 #1 – 개발 안녕하세요? 우아한 형제들에서 결제/정산 (+포인트와 비즈머니) 시스템을 개발하고 있는 이동욱입니다. ‘사내 블로그에 글을 더 쓸 일이 있을줄이야’ 라는 마음으로 VS Code로 글을 쓰고 있습니다. 저는…
Real-time Service Configuration으로 Consul을 신주소 서비스에 적용한 사례 안녕하세요. 배민프론트서버개발팀 박제현입니다. 주소 검색 서비스를 개선하면서 Real-time Service Configuration으로 consul을 적용한 사례를 공유하고자 합니다…
Storage Security ' Cloud DB Encryption ' 본 아티클에서는 DB 암호화 기술을 소개하고자 합니다. DB 암호화 기술은 새로운 기술이 아니라 이미 오랫동안 on-prem 환경에서 사용돼 왔습니다. 그러나 클라우드 환경에서라면, 또 다른 이슈들에 대해서 고민해…
혁신 속의 혁신 최근 몇 년 동안 혁신의 방법 자체가 혁신이 되어왔고, 이러한 ‘혁신 속의 혁신’으로 인해 시장 선두 기업들도 업무 방식을 탈바꿈하고 있습니다. 폐쇄형 혁신에 그치지 않고 개방형 혁신이 새로운 스타일의 혁신을 주도하게 된 것입니다. 이러한 개방성은 반드시 기업 바깥으로…
Push 광고성 메시지 수신 동의 여부 처리방법 안내(TOAST 서비스 들여다보기) 필요성 광고 메시지를 전송할 때, 광고 전송 사업자는 정보통신망법의 의무사항을 준수해야 합니다. KISA 가이드에 따르면 영리목적의 광고성 정보를 전송하는 경우에는 "광고"라는 문구와 발송자의 연락처,…
작년에 이어 올해도 블라인드 전형으로 카카오 개발 신입 공채가 시작되었습니다! 그 첫 번째 관문으로 1차 온라인 코딩 테스트가 지난 9월 15일(토) 오후 2시부터 7시까지 5시간 동안 치러졌는데요. 지원자분들 만큼이나 준비위원들도 테스트가 문제없이, 공정하게 치러질 수 있도록 많은 준…
분산 데이터베이스 환경에서 RoutingDataSource 사용 시 JTA를 이용한 트랜잭션 처리 - 등록일 - 2018.09.14 - | - 코멘트 - 34918 트랜잭션은 모든 작업이 성공한 경우에만 작업이 커밋되어 데이터베이스에 반영되고, 하나의 작업이라도 도중에 실패하면 모든 작…
1. 들어가며 시스템 성능 개선을 위한 요구사항 기업이 관리하고 활용하는 데이터는 지속적으로 증가하고 있으며, 이들 데이터에 대한 실시간 처리 요구 또한 증대하고 있다. 글로벌 기업들은 고객의 수요 동향을 파악하고, 공장 생산을 관리해야 하며, 복잡한 공급망을 비롯하여 최신 트렌드 분석…
Proxy 모드 로드밸런서 이용시 클라이언트 IP 로깅하기(TOAST 서비스 들여다보기) 로드밸런서란? 기본적으로 LB는 외부로 부터 들어온 요청에 대해 내부에 있는 서버들로 부하를 분산하는 용도로 사용이 됩니다. 자체적으로 내부에 있는 서버들의 상태를 체크해서, 서비스가 불가능한 서버…
블록체인과 비트코인 이 글은 2017년 5월 사내에서 발표한 자료 입니다. 지금과는 다른 내용이 포함되어 있을 수 있습니다. 들어가기에 앞서 (이미지 출처: https://www.blockchain.com/) 블록 체인 기술이 왜 화제가 되고, 매커니즘은 어떻게 되는지, 어떤 분야에 적…
안녕하세요! 저는 개발팀의 오형준입니다. 앞선 글에서 데이터팀의 지형님께서 ‘분석용 이벤트 로그 점검/정리하기’라는 Task가 어떤 Task이며, 왜 중요한지에 대해 다루었다면, 이번 글에서는 이번 Task의 프로세스, 앱개발팀과 데이터팀 간의 협업 방식, 각 팀의 업무 방식 등에 대해…
제조업의 체질을 바꾸는 디지털 혁신 기술들 클라우드 글로벌 공급망 관리를 살펴볼 때 가장 대표적인 변화는 클라우드를 중심으로 진행되고 있다. 자원을 로컬 서버에 두지 않고 고속 네트워크를 통해 수요가 발생하거나 필요할 때마다 불러오는 클라우드의 특성을 살려, 액세스 권한을 얻은 모든 사…
JDBC로 실행되는 SQL에 자동으로 프로젝트 정보 주석 남기기 이 글은 Java기반에서 JDBC와 이를 기반으로 한 Persistence Framework를 이용해 SQL을 실행할 수 있는 개발자를 대상으로 모든 JDBC를 통해 실행되는 SQL 구문에 애플리케이션 정보를 주석으로 넣는…
LC3 참관기 - 등록일 - 2018.08.07 - | - 코멘트 - 6085 LC3는 LinuxCon, ContainerCon, CloudOpen 세 가지 콘퍼런스가 하나로 합쳐져 동시에 진행되는 콘퍼런스로, 지난 2015년부터 시작됐습니다. 개발자, 아키텍트, 시스템 어드민뿐만 아니…
나를 술푸게 하는 고민들 안녕하세요, 배민프론트서버개발팀의 개그 신동이자 귀염둥이 이신은입니다. 저는 작년 12월 신입 개발자 공채를 통해, 백엔드 개발자로 우아한형제들에 합류했습니다. 취업준비생에서 7개월 차 삐약삐약 병아리개발자가 된 지금까지, 지난 1년을 돌아보며 제가 했던 고민을…
혁신의 원동력 클라우드 컴퓨팅은 많은 산업을 근본적으로 변화시켰고 소프트웨어를 개발하고 제공하는데 새로운 패러다임을 만들었습니다. 기업과 스타트업은 클라우드 네이티브 기반의 아키텍처에 투자하여 고객에게 보다 안정적이고 탄력적인 서비스를 제공하는 한편 비용 절감으로 혁신에 속도를 내고 있…
Proxy와 가상 돔을 사용하여 나만의 프레임워크 만들기 Javascript Proxy Proxy는 ES2015에 소개된 기능이다. IE11을 제외하고는 모던 브라우저에서 지원하고 있어서 사용할 수 있다. babel 트랜스파일로도 지원되고 있지 않지만, 구글에서 폴리필을 만들어 공개하고…
정보 보호 기술은 거대하고 지능화된 해커 집단의 보안 위협에 대응하여, 지난 수년간 비약적인 발전을 거듭해왔습니다. 하지만 인터넷에 연결되는 각종 디바이스와 이와 관련된 서비스의 활용이 빠르게 증가하면서 보안 위협의 경로, 공격 대상 및 범위, 공격 실행 방법에 변화가 일었고, 그에 따…
필자는 6월 12일부터 15일까지 4일간 샌프란시스코 모스콘 센터에서 열린 도커콘(DockerCon SF 18)이라는 콘퍼런스에 참여했습니다. 모르시는 분들을 위해 참고로 말씀드리면, ‘도커’는 컨테이너 기반의 OS 레벨 가상화 플랫폼입니다. 그리고 ‘컨테이너’는 네모난 화물 수송용 박…
Log&Crash Search의 Network Insight 기능 소개 Log&Crash Search의 Network Insight 기능 소개 Network Insight 기능은 앱과 서버 간의 네트웍 품질을 살펴볼 수 있는 기능입니다. Log&Crash Search의 [Settings…
요즘 잘나가는 프론트엔드 개발환경 만들기(2018): ES6 본 시리즈의 이전 아티클에서는 웹팩4에 대해 다루면서 바로 쓸 수 있는 환경을 만들어봤다. 이번편에는 그 환경 그대로 이용해 ES6 개발 환경을 추가한다. ES6는 이제 충분히 써도 될만한 시기라고 생각한다. "나는 프런트 개…
우아한 개발자 경력 공채 우아한형제들/우아한신선들에서 개발자 경력 공채를 진행합니다. 왜 경력 개발자 공채를 진행하는가? 많은 회사들과 마찬가지로, 우아한형제들에서도 개발자 분들을 열심히 채용하고 있습니다. 많은 좋은 분들이 함께 해 주고 계시지만, 사업과 서비스의 성장 속도가 더 빨라…
AWS에서 서버(EC2) 패킷 미러링 하기 Introduction Summary Public cloud의 문제점중 하나는, 가시성 확보가 어렵다 이다. 보안을 위해서 여러 Layer의 가시성 확보가 필요한대, 특히 Network 트래픽 데이터에 대해서는 필수이다. on-premise 환…
콘퍼런스 참가 신청 기능 개발기 - 등록일 - 2018.06.28 - | - 코멘트 - 18353 이 글은 네이버 사내 행사로 시작하여 국내 최대의 개발자 콘퍼런스로 성장한 DEVIEW 2016의 참가 신청 기능 개발기입니다. 국내 최대의 개발자 행사인 만큼 신청 인원이 많기 때문에 매…
라이더스 개발팀 모바일에서 CI/CD 도입 이 글은 CI/CD를 안드로이드에 도입하게 되면서 정리한 내용입니다. 구축 및 운영하고자 하시는 분에게 경험을 공유하고자 합니다. 안녕하세요 라이더스 개발팀 장인수 입니다. 소개 우선 라이더스 개발팀이 하는 일을 소개 합니다. 저희 라이더스 개…
2018년과 이후 JavaScript의 동향 - 브라우저 밖의 JavaScript - 등록일 - 2018.06.22 - | - 코멘트 - 42998 JavaScript는 단지 브라우저 안에만 머물러 있지 않습니다. 다양한 영역에서 그 힘을 발휘하고, 오히려 브라우저에서보다 더 큰 가능성…
백엔드 개발자를 꿈꾸는 학생개발자에게 - 등록일 - 2018.06.21 - | - 코멘트 - 521820 D2에서는 D2 CAMPUS를 통해 만난 학생개발자를 대상으로 정기적으로 Tech meet-up을 진행하고 있습니다. 금번에는 백엔드 개발을 주제로 진행하였는데요, 미래의 백엔드 개…
용어 정리 이 설명에서는 인덱스의 정렬 순서와 데이터 읽기 순서 등 방향에 대한 단어들이 혼재하면서, 여러 가지 혼란을 초래하기 쉬운 설명들이 있을 것으로 보인다. 그래서 우선 표준 용어는 아니지만, 나름대로 몇 개 단어들에 대해서 개념을 정립하고 그 단어를 번역 없이 영어로 그대로 표…