Todo list 만들기는 이제 그만 안녕하세요. 만화경 프론트엔드 개발자 한민호입니다. realworld.io 오픈소스에 기여한 이야기를 해보려 합니다. 여러분은 새로운 기술을 배울 때 어떤 방법을 선호하시나요? 1. 두꺼운 교과서 같은 책을 사서 처음부터 끝까지 독파한다. (하지만…
[모집] 우아한테크캠프 3기 우아한개발자가 되고 싶은 이들을 위한 우아한테크캠프 3기 모집이 시작됩니다. 우아한테크캠프는 여름방학 기간에 맞춰 진행되며 정해진 커리큘럼에 따라 개발 관련 지식을 공부하고, 다양한 미니 프로젝트를 통해 실제 서비스를 만들며 개발 지식을 익히는 교육형 인턴…
Service Monitoring 서비스 소개 (TOAST Service 들여다 보기) 2019년 7월 말에 출시된 TOAST Service Monitoring 서비스에 대해 소개합니다. 서비스 개발자에게 중요한 도구 중의 한 가지는 모니터링 도구일 것입니다. 서비스가 안정적으로 동작하…
지난 3월 11일 세계보건기구(WHO, World Health Organization)의 코로나바이러스 팬데믹 선언 이후, 원격근무에 대한 수요가 급격하게 증가하고 있습니다. [그림 1]에서 보는 바와 같이, Google Trends에서 'remote work' 검색 키워드의 변화 추이…
'디지털 트랜스포메이션 시대에 주목받는 증강현실'에 이어, 이번 편에서는 '산업 현장에서 활용 가능한 증강현실'에 대해 살펴 보겠습니다. 지금까지는 증강현실을 가능하게 하는 하드웨어적 변화를 중심으로 살펴보았습니다. 기기의 디스플레이에는 현실 세계와 가상 세계가 잘 정합되어 그려져야 합…
Maps 서비스 소개 (TOAST Service 들여다 보기) Maps API는 오랫동안 내비게이션 기술을 축적해 온 아이나비의 25년간의 자체 기술력과 노하우가 집적된 지도, LBS 솔루션을 기반으로 쉽고 정확한 지도, 통합 검색, 경로탐색 등 다양한 기능을 HTTP REST API로…
혹시 다들 뱅크샐러드 채용 사이트 보셨나요? 🙋🏻♂️ 안녕하세요, 이번에 뱅크샐러드 채용 사이트와 기술 블로그를 새롭게 개발한 Web Engineer 이동근입니다. 뱅크샐러드는 마이데이터 서비스 제공을 위해 다양한 직군에서 많은 인원을 채용하고 있습니다. 이에 맞춰 뱅크샐러드의 비전과…
들어가며 중요한 리서치, 비즈니스 그리고 사회적 문제들은 흩어져 있는 데이터를 모을 때 문제에 대한 답을 찾을 수 있습니다. 최근 COVID-19로 인해 전 세계가 어려움을 겪고 있습니다. 심각한 것은 향후 COVID-19와 같은 유사한 전염병이 더욱 활성화될 것이라는 전망입니다. 이러…
Heimdall - 로그 수집 관제 시스템 이번 블로그에서는 로그수집과 관제알림을 위해서 구축된 관제시스템 "Heimdall"에 대해서 공유하고자 합니다. 1. Heimdall 개요 사람인HR에서 사용하던 기존 관제시스템에서 UI 및 기능을 개선한 관제시스템입니다. Heimdall 유래…
새로운 마크다운 파서가 필요한 이유 최근 개발자들이 가장 선호하는 문서 형식을 하나 꼽으라면 단연 마크다운일 것이다. 마크다운은 깃허브(GitHub), 깃랩(GitLab), Bitbucket등 업무나 이슈 관리를 지원하는 대부분의 서비스에서 기본 문서 형식으로 사용되고 있다. 또한 In…
- blog 두 달 간의 신입 개발자 온보딩 과정을 돌아보며 - 신입 개발자들과의 인터뷰 안녕하세요! 기술기획팀 Candice입니다. 지난 두 편의 포스팅을 통해서 카카오 신입 개발자 온보딩 프로그램이 어떻게 진행되었는지 살펴 보았는데요, 이번 편에서는 실제 온보딩에 참여했던 신입 개발…
사람인HR에서 Elastic APM을 적용한 경험에 대해서 공유하고자 합니다. 사람인HR에서 서비스 모니터링을 위한 APM시스템을 구축 하였습니다. 시스템을 구축하며 조사한 자료에 대해서 공유 하고자 합니다. « Elastic APM 소개 및 설치와 관련된 내용은 1편을 참고해 주세요»…
사람인HR에서 Elastic APM을 적용한 경험에 대해서 공유하고자 합니다. 사람인HR에서 서비스 모니터링을 위한 APM시스템을 구축 하였습니다. 시스템을 구축하며 조사한 자료에 대해서 공유 하고자 합니다. « Elasti APM 도입시의 장점 및 Newrelic과의 비교는 2편을 참…
지난 1월, 치열한 경쟁을 뚫고 블라인드 신입 공채에 합격한 신입 개발자들이 카카오에 입사했습니다. 이후 두 달간의 온보딩 과정을 마치고 드디어! 카카오의 개발자로 첫발을 내딛게 되었지요. 올해 온보딩 프로그램은 제주 본사 방문을 비롯하여 기술 교육 및 행사, 그리고 프로젝트 등 다양한…
은닉을 향한 자바스크립트의 여정 ECMAScript 클래스 필드(class field) 명세중에 Private field 즉 Private Property (이하 Private 속성) 가 있다. 클래스 필드 스펙은 Stage 3(Candidate)까지 올랐으니 아마 곧 Stage 4(F…
카카오의 미래 주역, 카카오는 이렇게 맞이합니다. 들어가는 글 안녕하세요! 저는 카카오에서 개발자 성장을 기획하고 실행하는 아론이라고 합니다. 카카오에서는 온보딩(On-Boarding)이라는 프로그램을 통해 새롭게 합류하는 크루들이 카카오를 잘 이해하고 적응할 수 있도록 돕고 있습니다.…
휴먼 포즈 에스티메이션(Human Pose Estimation) 컴퓨터 비전(Computer Vision)은 컴퓨터를 사용하여 인간의 시각적인 인식 능력을 구현하는 것을 목표로 합니다. 카메라로 촬영된 이미지나 영상을 분석하여 정보를 추출하는 것이 핵심이다 보니 객체의 위치와 방향을 탐…
개발자를 위한 레디스 튜토리얼 04 이것만은 하지 마세요! 이제 많은 분이 요청주셨던 레디스의 장애 포인트에 대해서 말씀드리려고 합니다. 레디스, 잘 몰라도 괜찮으니 요구사항 파악하기 (캐시용? 저장소용?) 서비스에서 레디스의 도입을 고민할 때, 캐시용으로 사용할 것인지, 혹은 저장소용…
Kurly에서 주문을 모니터링 하는 법 Legacy 시스템에서 주문 모니터링을 Elasticsearch로 이전했습니다. 주문을 모니터링 하는 개발팀, 출처 : GIPHY 들어가며 컬리 개발팀은 24시간 운영되는 마켓컬리 쇼핑몰과 잠들기 전에 주문한 상품을 다음 날 아침 바로 받아 볼 수…
바로가기 > KCDC 질병관리본부 채널 어떻게 시작했나 안녕하세요. 봇플랫폼파트 Bart (이철민)입니다. 코로나19 로 인한 많은 우려 속에 정부(질병관리본부)에서 카카오쪽에 지원 요청이 들어 왔습니다. 코로나19의 제대로된 정보 제공과 대응책을 안내할 수 있도록 해달라는 요청이었죠.…
구상준 백영민 김준성 이주홍 장성보 정다운 | 2020년 03월 16일 | #Machine_Learning 새해가 밝은 지 얼마 되지도 않았는데 벌써 2020년도 1/6이나 지나갔습니다. 그 짧은 시간에도 수많은 좋은 논문들이 발표되었습니다. 우리의 불쌍한 핑퐁팀 ML 사이언티스트들은…
#1. 시작하며 이슈(Issue)를 추적관리하는 업무는 QA 직군이 반드시 해야 하는 필수 업무 중 하나입니다. 탄생(생성)부터 죽음(완료)까지 이슈의 생애를 각종 정보들을 통해 지켜봄으로서 이들의 처리가 원활하도록 관리해야 합니다. 이슈는 또 일종의 일감으로, 전체 프로젝트 마일스톤(…
전면 재택근무 하는 오늘 일어나 이 닦고 세수한 후 출근까지 걸린 시간 3초. 출근을 방구석으로 하였습니다. 직장인들에게 꿈같은 이야기 현실이 되어가고 있습니다. 안녕하세요, 뱅크샐러드 데이터 파운데이션을 이끌고 있는 천인우입니다. 데이터 드리븐 의사 결정을 위한 사용자 및 금융 데이터…
안녕하세요, 뱅크샐러드 Engineering Foundation의 Front End Team 소속 Web Engineer 이소영입니다. 뱅크샐러드는 사용자의 데이터를 기반으로 가장 최적의 금융 상품을 추천하기 위해 여러 금융사와 제휴하여 다양한 상품을 확보해나가고 있습니다. 웹팀은 추천…
1. 마이크로서비스 아키텍처 도입을 고민 중인 당신에게 IT 업계에서 마이크로서비스 아키텍처(Microservices Architecture, MSA)가 대세로 떠오르면서 엔터프라이즈 서비스 개발 프로젝트에 활발하게 채택되고 있습니다. 애플리케이션을 보다 빠르게 개발하고 성능을 지속적으…
개발자를 위한 레디스 튜토리얼 03 Replication 지금부터는 레디스의 HA (High Availability)에 대해서 알아보겠습니다. 레디스는 Master - Replica 형태의 복제를 제공합니다. 복제 연결이 되어있는 동안 마스터 노드의 데이터는 실시간으로 리플리카 노드에…
알람에 관하여 안녕하세요. 우아한형제들에서 DBA로 근무하고 있는 이재웅입니다. 오늘은 누구나 알고 있는 알람에 관해 이야기를 하려고 합니다. 인프라나 데이터베이스를 운영하게 되면 수많은 알람을 만나게 됩니다. 우아한형제들의 데이터베이스 또한 많은 알람이 설정되어 있습니다. 사실 알람이…
DevOps 엔지니어의 Redis Test 분투기 - Part 1 Redis 테스트를 진행했습니다. - 계기: Redis 성능 측정과 Key/Value 값 저장 문제 - 측정/테스트 도구를 찾아보자 - 테스트 전에 Redis 용도를 정리해보자 - API를 사용해 테스트를 시작 - 테스트…
계기: Redis 성능 측정과 Key/Value 값 저장 문제 최근 서비스 고도화를 위해 회사의 중요 서비스들을 MSA로 변환하던 중, 성능 향상 및 용도를 이유로 개발팀은 Redis 도입을 고려하고 있었습니다. 그러다 최근 api 하나의 버전이 업데이트된 이후 덜컥 장애가 발생했습니다…
개발자를 위한 레디스 튜토리얼 01 레디스? 레디스는 REmote DIctionary Server 의 약자입니다. 아마 이 글을 읽으시는 대부분의 분들은 레디스를 사용해보신 경험이 있을 것이고, 적어도 어떤건지 들어는 보셨을 것이라고 생각합니다. Who uses Redis? 레디스는 오…
Validation 어디까지 해봤니? 머리말 애플리케이션을 개발할 때, 데이터의 유효성을 검사하는 것은 일반적으로 애플리케이션 전체에서 발생합니다. TOAST Cloud의 메시징 플랫폼 상품인 Notification은 메시지, 이메일 주소 형식, 수신/발신자의 번호 등 클라이언트의 입력…
Database Driven Development에서 진짜 DDD로의 선회 -1- DDD에 대한 오해에서 벗어나고 개발의 즐거움을 깨달은 이야기 들어가며 - 과거의 내 모습 이 글은 DDD(Domain Driven Design 또는 Development)에 대해 아무런 고민도 없던 제가…
정산지기를 향한 첫걸음 (feat. 파일럿 프로젝트) 안녕하세요-! 우아한형제들 정산시스템팀 신입 개발자 박우빈입니다. 예전부터 계속 눈팅만 하면서 구경하던 우아한형제들 기술블로그에 제가 지금 localhost:4000을 띄우고 글을 작성하고 있다니 쉽게 믿기지 않네요ㅎㅎ 오늘은 제가…
들어가며 - 과거의 내 모습 이 글은 DDD(Domain Driven Design 또는 Development)에 대해 아무런 고민도 없던 제가 현장에서 DDD를 팀원들과 함께 실천하며 깨달은 것(주로 경험)에 대한 이야기 입니다.(내용이 길어지고 하고 싶은 이야기가 많아져서 디테일한 이…
안녕하세요, 뱅크샐러드 Engineering Foundation의 Framework Team 소속 Server Engineer 안석찬입니다. 실리콘밸리의 벤처 캐피털은 테크 기업에 투자를 고려할 때 그 기업이 확장 가능한 기술 역량을 보유하고 있는지 판단합니다. 이때 판단에 활용되는 지…
안녕하세요, 뱅크샐러드 엔지니어링 파운데이션의 정겨울입니다. 뱅크샐러드는 마이크로 서비스 환경에서 다양한 언어와 프로토콜을 활용해 서비스를 운영하고 있습니다. 하나의 서비스는 요청을 처리하기 위해 다른 서비스의 API를 호출하는데 대부분의 기존 서비스는 REST API를 통해 JSON으…
모바일 애플리케이션 개발자들 사이에서 테스트 코드가 뜨거운 감자 🔥🥔🔥 인 것은 반박 불가능한 사실입니다. 안드로이드 애플리케이션을 개발할 때 테스트 코드는 어떤 코드에 대해서 얼마나 작성되어야 할까요? 사용자의 입력에 따라 원하는 행동을 하고, 원하는 뷰가 노출되는지를 확인하는 것 정…
Spring WebFlux와 Armeria를 이용하여 Microservice에 필요한 Reactive + RPC 동시에 잡기 - 등록일 - 2020.02.19 - | - 코멘트 - 55605 Monolithic 아키텍처는 오랫동안 많은 개발자들이 좋아하며 사용한 아키텍처입니다. 하나의…
배달의민족 최전방 시스템! ‘가게노출 시스템’을 소개합니다. 안녕하세요 우아한형제들 프론트검색서비스팀 권용근입니다. 저는 "먼데이 프로젝트" 라는 2019년 대형 프로젝트에서 요란하게 탄생하였고, 탄생한 순간부터 지금까지 배달의민족 최전방에서 활약 중인 2019년 4월 1일생 가게노출…
응용프로그램을 작성하다 보면 여러 가지 환경 설정(configuration)이 필요합니다. 이번 글에서는 TypeScript에서 환경 설정을 관리하는 저희의 방법을 설명합니다. 프로젝트 초기에는 환경 설정을 코드 중간에 넣어서 개발하는 경우가 많을 것으로 생각합니다. 그러다가 규모가 커…
네이버 검색의 SRE 시스템 - 등록일 - 2020.02.11 - | - 코멘트 - 42126 네이버 검색은 국내 최대 규모의 트래픽과 데이터를 다루는 대용량 분산 시스템입니다. 수만 대의 서버에서 수백 개의 검색 서비스가 운영되고 있으며, 하루에도 몇 번씩 크고 작은 신규 개발과 유지…
AWS 멀티 계정 환경에서 취약한 Security Group 설정 모니터링 들어가며 클라우드 서비스의 장점은 리소스의 탄력적 사용, 비용 절감, 운영에 대한 부담 감소에 있다. 하지만 보안 관점에서는 이러한 클라우드 서비스의 장점이 취약점으로 작용한다. 클라우드 환경에서는 개발자가 직접…
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 라이브러리를 만들…
Gradle 프로젝트에 JaCoCo 설정하기 안녕하세요. 상품시스템팀에서 서버 개발(..새발)을 하고 있는 연철입니다. 프로젝트 세팅 중에 찾아보고 삽질했던 내용들이 도움이 될까 하여 남깁니다. JaCoCo는 Java 코드의 커버리지를 체크하는 라이브러리입니다. 테스트코드를 돌리고 그…
지속 가능한 소프트웨어를 위한 코딩 방법 - 세 번째 앞서 이야기한 것들. 앞서 이야기한 것들을 정리해보겠습니다. - DRY 원칙으로 중복 코드를 줄여봅시다. - 중복 코드가 있으면, 비즈니스 로직이 여러 군데 흩어진 것과 같습니다. - 그래서 버그를 수정해도, 여전히 존재하는 같은 버…
지속 가능한 소프트웨어를 위한 코딩 방법 - 마지막 맺음말. 멱등성 (Idempotent) 전산학이나 수학에서 사용하는 용어입니다. 연산을 여러 번 적용하더라도 결과가 달라지지 않는 성질을 의미합니다. 함수 f(x)를 예를 들면 다음과 같은 등식이 성립됩니다. 즉 메서드가 여러 번 실행…
지속 가능한 소프트웨어를 위한 코딩 방법 - 못다한 이야기 가끔 개발자들과 이야기하다 보면, 요즘엔 RDBMS를 저장소로 사용하는 프로젝트는 대부분 JPA를 사용한다고 합니다. 저도 마찬가지고요. 그런데 몇몇 분들은 JPA에 대한 오해를 하고 계시더군요. 그리고 JPA를 잘못 사용하는…
지속 가능한 소프트웨어를 위한 코딩 방법 - 네 번째 불변 클래스 (Immutable Class) 불변 클래스는 객체가 생성된 후에는 그 값을 변경할 수 없는 것을 의미합니다. 자바에서는 대표적인 불변 클래스는 String입니다. Integer, Double 같은 프리미티브 타입을 감싸…
지속 가능한 소프트웨어를 위한 코딩 방법 - 두 번째 디미터의 법칙 DIY 원칙이 지켜진 코드는 중복 코드를 최소화하고, 직교성이 있는 클래스들은 서로 결합도가 줄어듭니다. 그러면 도대체 직교성이 있는 코드를 만들려면 어떻게 해야 하는가?라고 되물을 수 있습니다. 디미터의 법칙을 이용하…
ELK 셋팅부터 알람까지 안녕하세요. 저는 상품시스템팀에서 개발업무를 맡고 있는 이중석입니다. 최근 팀 내에서 로그엔트리를 ELK 로 전환하고 필요한 알람을 셋팅하는 작업을 진행했습니다. 이 과정중 알람을 설정하는 부분이 어렵진 않지만 쉽지도 않았습니다. 그 과정에서 알게된 것들이 다른…
Tim sort에 대해 알아보자 - 등록일 - 2020.01.10 - | - 코멘트 - 76943 정렬이라는 주제는 처음 프로그래밍을 배울 때 간단한 정렬을 구현해보는 것으로 접하기 시작하여, 자료구조론, 알고리즘론을 통하여 다양한 정렬 알고리즘의 시간 복잡도와 동작 원리에 대해서 배우…
지속 가능한 소프트웨어를 위한 코딩 방법 - 첫 번째 서론 소프트웨어 시스템의 모든 함수 및 메서드는 어떤 일을 합니다. 8비트 페미콤 시절에는(너무 아재스럽나요?) 함수 하나로 화면에 * 를 출력하는 소프트 웨어를 만들었습니다. 하지만 지금은 롤 플레임 게임이나 상품 추천과 같은 복잡…
Object Mapping 어디까지 해봤니? 머리말 TOAST Notification에서는 API 버전 별 객체와, 비즈니스 로직, 레이어 간 객체와 객체 간 매핑(Mapping) 시 MapStruct를 사용하고 있습니다. 이 글에서는 Object Mapping 라이브러리인 MapStr…
Cucumber + Appium을 통해 Android 앱 테스트 안녕하세요! Android 앱이 UI 자동화 테스트되는 과정의 일부에 대한 동영상입니다 🙂 저는 앱서비스팀에서 Android/iOS의 배달의민족 앱 QA를 담당하고 있는 최윤주입니다. 배달의 민족 앱은 2주 단위로 정기 업…
구상준 | 2020년 01월 03일 | #Machine_Learning 이번 블로그에서는 2017년에 발표되어 자연어처리 분야의 한 획을 그었던 Transformer 구조와 이를 활용한 GPT / BERT 구조에 대해서 다룹니다. 아울러 어떠한 문제들이 있었고 연구자들이 어떻게 그 문제…
feign 좀더 나아가기 안녕하세요. 저는 상품시스템팀에서 개발하고 있는 고정섭입니다. 이 글에서는 배달의민족 광고시스템 백엔드에서 feign 을 적용하면서 겪었던 것들에 대해서 공유 하고자 합니다. 이 글은 이전에 작성된 게시글에서 추가 보완사항에 대해서 작성되었습니다. http cl…
메인 데이터베이스 IDC 탈출 성공기 안녕하세요. 우아한형제들 시스템신뢰성개발팀 박주희입니다. 2019년을 마무리하는 시점에 우아한형제들이 어떻게 메인 데이터베이스를 IDC 환경에서 탈출시켰는지, 그 과정을 공유하려고 합니다. 발단 2010년 6월 출범한 배달의민족은 (2018년 12월…
Spock Extension과 Elasticsearch + Kibana 조합으로 테스트 결과를 빠르게 피드백 받기 안녕하세요. 우아한형제들 주문마케팅회원서비스팀 장진우입니다. 모든 테스트는 중요하고 가치가 높은 활동입니다. 특히 개발을 지원하기 위한 기술 중심의 테스트가 조금 더 중요하…
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는 자체적인 반응형 시스템을 구축하여 데이터의 상태 관리를 하고 있다. 데이터가 변경되면 반응형 시스템이 변경을 감지하고 있는 다른 데이터 속성들도 자동으로 갱신해주기 때문에 데이터의 변경 관리를 편리하…
뱅크샐러드의 서버 엔지니어 1명과 데이터 엔지니어 1명이 한국시간으로 2019년 11월 29일 금요일부터 2019년 12월 7일 토요일까지 미국 라스베가스에서 열린 AWS re:Invent 2019 행사에 출장을 다녀왔습니다. 행사 티켓과 항공편, 숙박은 AWS 글로벌 파트너사인 베스핀…
들어가며 안녕하세요. 카카오 FE플랫폼팀의 Joah입니다. 최근에 팀에서 사용하는 JavaScript 스타일 가이드를 개선하는 업무에 참여했습니다. 업무를 하며 스타일 가이드에서 사용하고 있는 ESLint에 관심이 생기게 되었고, 어떻게 동작하는지 소스코드를 분석해보다가 ESLint에…
Aurora MySQL를 운영하면서 알면 좋을 것 같은 미세한 팁 들어가며 안녕하세요. 우아한형제들에서 DBA로 근무하고 있는 유영근입니다. 저희는 AWS환경에서 RDS로 수많은 요청을 처리하고 저장하며 Aurora MySQL을 주력으로 사용하고 있습니다. 한정된 사람구하기 힘든 DBA…
AI 동향 2012년 국제영상인식대회인 ILSVRC(ImageNet Large Scale Visual Recognition Challenge, 이미지넷)를 통해 심층학습(Deep Learning)의 성능이 학계 및 산업계에 입증된 이후, AI는 2차 암흑기(AI Winter)를 지나 다…
바닥부터 시작하는 Vue 테스트와 리팩토링 from if kakao 들어가며 안녕하세요. 카카오 FE플랫폼팀 Lumi입니다. 얼마 전 열렸던 kakao FE(Front end) meetup 행사에서 '바닥부터 시작하는 Vue 테스트와 리팩토링’이라는 주제로 발표를 맡았고, 그때 발표했던…
카카오커머스를 지탱하는 Angular from if kakao 카카오커머스의 FE개발파트는 React나 순수 JS로 개발되어있던 선물하기, 쇼핑하기 등 각 서비스 프레임웍을 모두 Angular로 전환하고 있습니다. 이 글에서는 이 결정을 하게 된 배경과 Angular가 어떤 프레임웍이고…
안녕하세요, 여러분! 며칠 전 핑퐁팀 ML 엔지니어들은 홍콩에서 열린 EMNLP 2019에 다녀왔습니다. 지난번 포스트에서는 EMNLP 에 Accept 된 논문 중에 관심이 있었던 페이퍼들을 학회에 가기 전에 미리 보고 리뷰를 해봤었는데요. (https://tech.scatterlab.…
이 글은 <카카오 나우>의 콘텐츠를 인용했습니다. ‘세상을 조금 더 좋아지게 만드는 사람들’ 기술 발전 속도가 거세짐에 따라 더 많은 개발자들이 보다 나은 내일을 만드는데 기여하고 있습니다. 수천만 명이 사용하는 카카오 서비스들의 이면에도 여러 개발자들이 한 땀 한 땀 엮어놓은 알고리듬…
브라우저 싸움에 등 터지는 개발자들을 위한 HTTP쿠키와 톰캣 쿠키 프로세서 이야기 무심코 프로젝트의 라이브러리를 버전 업하다가 예상치 못한 에러가 발생한 경험이 다들 있을 것입니다. 주로 이런 에러는 성가신 호환성 문제이거나 버전 별 버그가 원인이지만, 가끔은 버전과 세월을 따라 발전…
당신의 자바스크립트 API 문서는 안녕하신가요? 이 글을 읽고 있을 개발자라면 적어도 한 번쯤 API 문서를 작성해 본 경험이 있으리라 생각한다. "오전까지 100개 함수에 대한 API 문서를 만들어주세요."라는 업무가 주어졌다고 가정해보자. 이때 어떤 그림이 그려지는가? 워드 또는 엑…
스프링부트에서 DbUnit 을 이용하여 DB 테스트해 보기 안녕하세요. 상품시스템팀 권순규입니다. 저희 팀에서 DB 테스트를 위해 사용하고 있는 DbUnit 의 설정 및 사용에 대해 알려드리고자 합니다. DbUnit 을 사용하지 않고 스프링부트만을 이용하여 테스트하기 아래와 같은 관계를…
장성보 백영민 정다운 이주홍 구상준 김준성 | 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…
2019년 10월, 영국 컨설팅업체 헨리앤드파트너스가 발표한 여권지수(Henley Passport Index)에 따르면 한국의 비자면제 방문국 수는 188개국으로 독일, 핀란드와 함께 공동 2위에 올랐습니다. 이는 우리나라의 위상이 그만큼 높아졌다는 것을 뜻할 뿐 아니라, 여권이라는 세…
올해 오프라인으로 진행된 2차 코딩 테스트 문제는 가상의 SNS 카카오팔로잉을 위한 팔로잉 추천 시스템을 구현하는 것이었습니다. 카카오팔로잉 카카오팔로잉은 팔로우 기반의 구독형 SNS로, 팔로잉(팔로우 중인 상대 사용자)의 글과 사진을 볼 수 있는 서비스입니다. 이 서비스는 다음과 같이…
웹 프론트엔드 프레임워크 개요 과거와 달리 최근에는 자바스트립트 진영에서도 프레임워크를 이용한 개발이 필수로 여겨지고 있습니다. 2017년까지만 해도 개발자들은 프로젝트에 Angular와 React 중 어느 것을 사용해야 하는지 여부를 주로 토론했으나, 2018년 이후 Vue.js라는…
[K8S] kubernetes POC를 위한 portainer, rancher 소개 및 설치 등록일 2019.10.16 조회수 12107 들어가는 말 - docker와 kubernetes(이하 k8s)를 간단하게 활용해 보기 위한 portainer와 rancher를 소개합니다. 대상 -…
‘우아한테크코스 – 웹 백엔드’ 2기 과정에 참여할 사람을 모집합니다. ‘우아한테크코스 – 웹 백엔드’ 2기를 모집합니다. 아무 것도 없는 상태에서 우아한테크코스 1기 모집 글을 쓸 때가 어제 일 같은데 벌써 2기 모집 글을 쓰네요. 1기 모집 글을 쓸 때는 막막함과 약간의 두려움이 있…
기업은 사업을 영위하는 과정에서 다양한 고객 데이터를 축적합니다. 과거에는 데이터를 쌓아두기만 했던 기업들이 최근 들어 360º 고객 View 기반 인사이트 확보, 전략적 의사결정 및 디지털 혁신 역량을 높이기 위해 그간 축적해 둔 데이터를 분석, 활용하는데 적극 나서고 있습니다. 특히…
2018년 7월, 서버리스(Serverless) 아키텍처의 오류 감지 및 모니터링 솔루션 업체인 대시버드(Dashbird)의 SEO 매니저 존 데미안(John Demian)은 자사 홈페이지에 흥미로운 글을 게시했습니다. 코카콜라가 아마존 웹 서비스(Amazon Web Service, 이…
올해에도 2020이라는 멋진 숫자와 함께, 카카오의 신입 개발자 채용을 시작했습니다! 그 여정 중 첫 단계로 1차 코딩 테스트가 지난 9월 7일 토요일 오후 2시부터 오후 7시까지 5시간 동안 진행됐는데요. 저희 준비위원들도 설렘과 긴장 속에 원활한 진행을 위해 노력했고, 무사히 1차…
주니어 개발자의 클린 아키텍처 맛보기 안녕하세요 딜리버리플랫폼팀 송인태입니다. 우아한테크캠프를 마치고 팀에서 들어온 지 1년 정도 되면서 개발을 할 때 어떻게 하면 유지 보수하기 쉽게 개발할지 고민을 하던 도중 Robert C. Martin이 블로그에 기재한 Clean Architect…
좌충우돌 Terraform 입문기 안녕하세요, 저는 신사업부문의 오지산이라고 합니다. 저희 신사업부문은 배달의민족과는 조금 다른… 시장의 문제를 해결하기 위해 다양한 신규 서비스들이 개발되는 곳입니다. 그 중에는 아직 출시되지 않은 서비스도 있고, 배달의민족과 비교적 관련성이 적은 서비…
개발자 머피의 법칙 안녕하세요, 우아한형제들 광고시스템팀의 손권남입니다. 이 글은 기술적인 내용도 아니고 우아한형제들 회사에 관한 이야기도 아닌, 순전히 저의 개인적인 경험을 다룹니다. 매우 긴 글이므로, 맨 앞과 맨 뒤, 그리고 제목 정도만 읽어도 대략의 핵심 주제는 파악 가능합니다.…
System Monitoring 서비스 소개 (TOAST Service 들여다 보기) System Monitoring이란? 지난 7월 말에 System Monitoring 서비스가 새롭게 출시되었습니다. 클라우드에서 VM 인스턴스를 생성하여 그 위에 서비스를 구축하게 되면 가장 중요한…
메일 시스템 구조개선을 진행하면서 kafka를 사용하며 부딪혔던 문제와 해결했던 방법을 공유하여 같은 문제를 겪을 수 있는 분들에게 도움이 되고자 작성하게 되었습니다. 최근 시스템솔루션개발파트에서는 MSA구조로 개선하는 프로젝트를 진행하고 있습니다. 이에 일환으로 메일 시스템의 구조개선…
병아리 개발자의 걸음마 한 발짝 (feat. 파일럿 프로젝트) 지원서에서 발췌한 내용 … 나름대로 제일 좋은 방법이라고 생각했던 해결책이 경험 많은 개발자분들이 보시기에는 어떤지, 시니어 개발자분들은 문제가 생겼을 때 어떻게 접근하고 어떻게 해결하는지 등도 항상 궁금해 왔습니다. … 파…
우아한테크코스 : 나만의 항로 찾기 안녕하세요. 교육코스개발팀 이원미입니다. 지난 6월, 우아한테크코스 (이하, 우테코) 의 글쓰기 교육에 대한 소개를 드렸습니다. 한 달 생활기에 이어, 우테코에서 찾은 나만의 효과적인 학습법 이라는 주제를 가지고 두 번째 글쓰기를 진행하였는데요. 4개…
Load Balancer 통계 기능 (TOAST Service 들여다 보기) 로드밸런서는 유입된 트래픽을 인스턴스로 분배하기 위해 사용하는 서비스입니다. TOAST 로드밸런서 서비스를 이용하면 인스턴스 하나로 처리하기 힘든 부하를 여러 대의 인스턴스로 분산하여 처리량을 높일 수 있고,…
글로벌 네트워크 에뮬레이터 prism_pacman 소개 - 등록일 - 2019.08.28 - | - 코멘트 - 15250 해외 서비스에서 현지 네트워크 상황을 고려하여 최적화된 서비스를 제작하고 튜닝하는 일은 쉽지 않습니다. 전송 속도가 낮아서 서비스 전체적인 응답 속도가 떨어져 답답하…
지난 8월에 런칭한 대량 메일 컨텐츠 생성 시스템 개발을 진행하며, 경험했던 것들을 공유하고자 이 포스트를 작성합니다. 먼저, 이번에 개발된 시스템은 이전에 포스팅된 분산처리 시스템 구조개선 프로젝트와 동일한 아키텍쳐를 바탕으로 개발되어 있습니다. 구조가 궁금하시다면 이전 포스트를 참고…
새로워진 kakao Tech를 소개합니다. 카카오의 대표적인 기술 채널로 발돋움하고자, "지식 공유, 가치 창출, 공개 성장, 기술 상생"이라는 4개 주제에 맞춰 사이트를 개편했습니다. 또한, 카카오와 카카오 공동체의 채용 정보도 발빠르게 전달하는 섹션을 추가했습니다. 앞으로도 카카오는…
안녕하세요. 당근마켓 머신러닝 엔지니어 Young입니다. 이번에 글쓰기 화면에 들어간 카테고리 추천 기능의 모델을 개발한 과정을 정리해 봤습니다. 아래의 순서로 정리해 봤습니다. - 카테고리 추천 모델 개발의 목적 - 카테고리 분류 방법들 - 카테고리 추천 모델 개발을 위한 데이터셋 -…