2019년과 이후 JavaScript의 동향 - WebAssembly - 등록일 - 2019.06.24 - | - 코멘트 - 32354 WebAssembly는 C와 C++ 같은 프로그래밍 언어를 컴파일해 어느 브라우저에서나 빠르게 실행되는 바이너리 형식(low-level language…
Spring Boot에서 Repository로 DynamoDB 조작하기 (2) – Gradle을 활용해 실행 & 테스팅 환경 구축 이전 글에서 DynamoDB를 조작할 수 있는 다양한 API를 알아봤습니다. 애플리케이션을 실행하거나 테스트하기 위해 docker로 DynamoDB를 띄우는…
2019년과 이후 JavaScript의 동향 - JavaScript(ECMAScript) - 등록일 - 2019.06.12 - | - 코멘트 - 34323 JavaScript의 인기는 이제는 굳이 언급할 필요가 없어 보일 만큼 계속되고 있습니다. GitHub의 보고서인 Octoverse…
데브시스터즈는 Kubernetes 기반의 게임 개발 및 테스트 인프라를 성공적으로 구축하여 게임 출시에 이르는 모든 과정들을 효율적으로 처리하고 있습니다. 다년간의 성공적인 운영 경험을 바탕으로 Windows Server 기반의 Workload를 지원하기 위한 R&D 작업을 진행하였고,…
Spring Boot에서 Repository로 DynamoDB 조작하기 (1) – 설정부터 실행까지 안녕하세요, 미래사업부문 김명재입니다. 작년 10월에 우아한형제들에 입사하고 행복한 주니어 개발자 생활을 하고 있습니다. 현재 개발중인 시스템의 NoSQL DB를 MongoDB에서 Dyn…
[Kotlin] 메모리릭 방지하기 | Kotlin, Lambda의 강력함 | Lambda는 진리입니다. 안녕하세요. 이번 시간에는 제가 사랑하는 Kotlin과 Lambda/SAM가 제공하는 수많은 장점 중, memory leak 을 회피하는 것에 대해서 살펴보고자 합니다. 안드로이드 중…
[Kotlin | Android] 테스트 코드 작성이 힘든 이유와 테스트 가능 코드에 대한 고민 안녕하세요. 요새 저는 테스트 코드 작성에 혈안 집중을 하고 있는데요, 많은 분들이 '테스트 코드' 작성이 힘들다고 생각하시며, 과연 그게 '필요한가' 하는 고민까지 하는 것을 보았습니다.…
데브시스터즈는 Kubernetes 기반의 게임 개발 및 테스트 인프라를 성공적으로 구축하여 게임 출시에 이르는 모든 과정들을 효율적으로 처리하고 있습니다. 다년간의 성공적인 운영 경험을 바탕으로 Windows Server 기반의 Workload를 지원하기 위한 R&D 작업을 진행하였고,…
입사 후, 벌써 1년 작은 SI 회사 개발자에서 우아한형제들로 이직 1년 안녕하세요. 배민플랫폼실 결제정산개발팀에서 정산 업무를 맡고 있는 이호진입니다. 이 글은 SI 회사에서 우아한형제들로 이직한 후 1년간 있었던 변화에 대한 이야기입니다. 5월 14일, 입사 1년이 되는 날을 맞아…
우아한 feign 적용기 안녕하세요. 저는 비즈인프라개발팀에서 개발하고 있는 고정섭입니다. 이 글에서는 배달의민족 광고시스템 백엔드에서 feign 을 적용하면서 겪었던 것들에 대해서 공유 하고자 합니다. 소개 - Feign 은 Netflix 에서 개발된 Http client binder…
#안전하고 안심할 수 있는 게임을 만들고 싶어 게임은 소프트웨어 프로그램 중에서도 특히나 여러가지 요소가 유기적으로 작용하는 아주 복잡한 콘텐츠다. 그만큼 엮어진 부분들이 많기 때문에 버그도 많이 발생하는 편이다. 슬프게도 테스트를 통해 찾는 버그도 매우 많지만 그만큼 찾지 못하는 버그…
도움이 될수도 있는 JVM memory leak 이야기 도움이 될지도 모르는 JVM memory leak 얘기인데 제목을 뭐라고 하지? 안녕하세요. 배민 플랫폼실 주문중계 시스템팀 오민철입니다. 이 글은 몇 줄의 코드와 어디서 걸렸는지 모를 dependency library로 발생한 m…
크롬 네이티브 레이지 로딩 레이지 로딩이란? 좋은 기회로 2019년 구글 I/O에 참석했다. 웹 기술 세션 중에는 크게 눈에 띄는 세션은 없었지만, 일부 세션에서 소개된 웹과 관련 기술 몇 가지는 흥미로웠다. Native Lazy Loading, Portals, Duplex, Rich…
5월 우아한 Tech 세미나 후기 안녕하세요. 교육코스개발팀 이동규입니다. 저희 팀은 5월 7일부터 우아한테크코스 교육을 진행하고 있습니다. 교육과 관련하여서는 이전의 포스팅에서 모집글과, 프리코스관련 글을 확인하실 수 있습니다. 현재 우아한형제들은 다양한 DR (Developer Re…
이전 글로 딥러닝 기반 개인화 추천 시스템의 모델에 대한 부분을 소개 했었어요. 이번에는 당근마켓에서 추천 시스템을 지속적으로 업데이트하는 파이프라인과 서빙 시스템을 구축한 내용을 소개하려고 합니다. Kubeflow Pipelines Kubeflow Pipelines은 Kubernete…
당근마켓 첫화면은 동네 사람들이 사용하는 다양한 물품을 보는 재미가 있어요. 누군가에겐 이제 필요없지만 나에게 유용한 물건들을 발견하게 되고 더불어 저렴하게 득템 할 기회도 종종 있죠. 매일 새로운 글이 올라오는 첫 화면의 스크롤을 내리며 탐색하는 즐거움이 일상이 되어가고 있습니다. 이…
목적의식 있는 연습을 통한 효과적인 학습 나는 우아한형제들에서 우아한테크코스(이하 우테코) 교육 과정을 진행하고 있다. 우테코를 설계하면서 고민스러웠던 부분 중의 하나는 ‘선발 과정을 어떻게 하면 의미 있는 시간으로 만들 것인가?’였다. 보통의 선발 과정은 경쟁을 통해 누군가를 선발해야…
‘Gradle Kotlin DSL’ 이야기 Developer life is Coding between Build and Deploy. 개발자 인생은 (프로젝트) 빌드와 배포 사이 삽질(=코딩)이다. — #월급쟁이개발자 허니몬 빌드도구(Build tool) 이야기 새로운 프로젝트를 시작하…
최신 브라우저의 내부 살펴보기 4 - 컴포지터가 사용자 입력을 받았을 때 - 등록일 - 2019.04.30 - | - 코멘트 - 13333 이 글은 Google Developers 사이트에 공개된 Mariko Kosaka의 "Inside look at modern web browser"…
AngularJS에서 Vue로 전환하면서 배운 것 프롤로그 나는 NHN에서 협업도구인 Dooray!를 개발하고 있다. 프로젝트, 메일, 메신저, 캘린더, 드라이브, 위키, 주소록, 칸반 등 방대한 기능을 담은 서비스이며 약 5년 전부터 개발되기 시작하여 현재까지 잘 유지되고 있는 서비스…
Packer와 Ansible을 이용한 표준 AMI 만들기 안녕하세요 저는 작년 우아한테크캠프 2기를 마치고 10월에 시스템신뢰성개발팀에 입사한 김규남이라고 합니다. 이번 글에서는 팀 내에서 Packer와 Ansible을 이용해 AMI를 코드레벨로 어떻게 관리하고 있는지에 대해 공유드리려…
실용적인 프론트엔드 테스트 전략 (3) 2부에서는 스토리북을 사용해서 시각적 요소에 대한 테스트를 자동화하는 방법에 대해 알아보았다. 기억을 되살리기 위해 우리가 작성하고 있는 할 일 관리 애플리케이션의 실행 단계를 다시 정리해보자. 애플리케이션이 실행되면 화면에 기본 UI를 보여준다.…
간단하게 구축해 보는 JavaScript 개발 환경 - 등록일 - 2019.04.18 - | - 코멘트 - 43013 프로그래밍은 다양한 문제를 해결할 수 있는 한 가지 방법입니다. 하지만 해결해야 하는 문제가 크고 복잡해지면서 혼자 소프트웨어를 만들며 프로그래밍으로 문제를 해결하기는…
Kubernates에 Pod 기반의 IAM Role 접근 제어 통합하기 Hyojun Kim — 김효준 @therne 왜 Kiam인가? Kiam의 구조 kiam은 마스터 노드에 붙는 서버와 각 노드에 붙는 에이전트로 나뉘어진다. 파드에서 어떤 IAM Role을 쓰고 싶을땐 어떻게 할까?…
파일럿 프로젝트를 통한 배치경험기! 들어가며 안녕하세요 ! 우아한 테크캠프 2기를 통해 1월에 결제정산개발팀에 합류하게 된 최유성입니다. 입사 후 총 5주간 신입 개발자의 팀 적응을 위한 파일럿 프로젝트를 진행하였습니다. 지금부터 그 5주간의 파일럿 프로젝트에 대한 경험을 공유하겠습니다…
실용적인 프론트엔드 테스트 전략 (2) 1부에서는 테스트 자동화와 테스트 전략의 중요성, 시각적 테스트를 자동화하는 것이 어려운 이유 등을 살펴보았다. 사실 시각적 테스트를 자동화하는 것이 불가능하지는 않지만, 현재 우리가 가진 도구로는 기대하는 만큼 효용을 얻기가 어렵다. 이 글은 "…
리모트 컨피그 앱 개발기 안녕하세요. 우아한형제들 배민앱개발팀에서 안드로이드 앱을 개발을 하고 있는 이민형입니다. 배달의민족 앱에서 앱의 다양한 설정 값들을 앱 배포없이 적용할 수 있는 리모트 컨피그 기능에 대해 공유하고 리모트 컨피그를 어떻게 사용하고 있는지에 대한 내용을 공유드리려…
Aurora 로컬 스토리지 성능 테스트 안녕하세요 시스템신뢰성개발팀에서 DBA로 근무하고 있는 오윤택입니다. 오로라를 사용할때 그동안 로컬스토리지의 성능이슈로 인하여 구 모델인 R3 인스턴스를 사용해왔습니다. 최근 오로라에 R5 인스턴스가 추가된 만큼, 계속 R3 인스턴스를 사용하는게…
개발 미션과 함께 읽는 클린 코드 들어가며 안녕하세요, 미래사업부문의 오지산이라고 합니다. 저는 작년 10월 우아한형제들에 신입 개발자로 입사하면서 처음으로 Spring 위에서 코드를 작성하는 경험을 했습니다. 0의 지식으로 부딪혀야 하는 상황이었는데요. 거기에 신규 서비스를 개발해야…
로봇 개발 어떻게 해야되죠? (1/2) – AWS RoboMaker 따라하기 (ROS 어플리케이션 개발과 시뮬레이션 편) AWS RoboMaker를 사용해 ROS 어플리케이션 개발부터 시뮬레이션, Fleet 관리, OTA 배포까지 쭉~ 따라 해봅니다. by Jinyong Park(박진용…
코드리뷰 적응기(feat. 파일럿 프로젝트) 안녕하세요. 결제정산개발팀의 권세희입니다. 저는 정산업무를 맡게 되었는데, 정산은 데이터 정합성과 트랜잭션, 도메인 주도 개발, Entity 간의 연관 관계, 대용량 데이터 처리가 핵심인 시스템입니다. 정산 도메인과 기술셋에 대한 경험이 없어…
테스트 코드 없이 레거시 코드를 다 감수하시겠습니까? 부서 이동을 하다 2018년 말미, 결제/정산 파트에서 주문중계 파트로 부서 이동하게 되었습니다. 인사 발령을 받고 나서 팀 이동을 하게 되면 누구나 직면하게 되는 상황이 발생하는데요. 그것은 바로 레거시 코드의 인수 인계입니다. 처…
‘우아한테크코스 – 웹 백엔드’ 과정에 참여할 사람을 모집합니다. 우아한테크코스가 뭔가요? 우아한테크코스는 프로그래밍을 배워 프로그래머로서의 삶을 살고 싶은 사람들을 대상으로 하는 프로그래밍 교육 과정입니다. 한마디로 프로그래머로 취업하고 싶은 사람들을 위한 직업 전문 학교와 같다고 생…
스마트 제조 분석의 현재와 한계 제조업, 특히 하이테크 제조분야에서는 인더스트리 4.0(Industry 4.0)과 스마트 공장(Smart Factory)과 같은 새로운 방법의 모색을 통하여 끊임없이 변화하는 시장 요구사항에 대응함으로써 혁신적인 제품을 더 빨리 제공할 수 있는 방법을 찾…
응? 이게 왜 롤백되는거지? 이 글은 얼마 전 에러로그 하나에 대한 호기심과 의문으로 시작해서 스프링의 트랜잭션 내에서 예외가 어떻게 처리되는지를 이해하기 위해 삽질을 해본 경험을 토대로 쓰여졌습니다. 스프링의 트랜잭션의 세부적인 동작방식을 살펴보기 때문에 코드가 많고 설명이 조금 긴…
세상은 데이터로 넘쳐납니다. 데이터 홍수의 시대죠. 사람들은 데이터를 수집, 정렬 및 분석하여 정확한 정보를 바탕으로 비즈니스 전략에 대한 결정을 내립니다. 효과적인 전자상거래 전략으로 디지털 공간을 장악하고 있는 기업들은 고객의 데이터를 적재적소에 활용할 줄 알죠. 오프라인 소매상들은…
오픈소스 프로젝트를 운영하며.. 2018년은 FE개발랩에 좋은 일이 많은 한 해였다. 랩에서 내놓은 오픈소스 프로젝트들이 좋은 반응을 얻었고, 몇 가지 의미있는 성과를 얻었다. 아직 오픈소스 생태계에서 큰 역할을 하지 못하는 대한민국에서 좋은 오픈소스 프로젝트들이 많이 나왔으면 하는 바…
실용적인 프론트엔드 테스트 전략 (1) 바야흐로 자바스크립트의 시대이다. 최근 2~3년 동안 자바스크립트는 가장 인기있는 언어 순위 1위를 유지하고 있고, 여전히 빠른 속도로 성장하고 있다. 10여년 전, 웹 표준이라는 개념조차 없을 때부터 프론트엔드 개발을 해 오던 나 같은 개발자에게…
NAVER Tech Talk: 구글 AMP, PWA 소개 - 등록일 - 2019.01.16 - | - 코멘트 - 4881 NAVER에서는 다양한 기술에 대한 테크톡을 주기적으로 진행하고 있는데요. 2018년 8월,10월에 구글 개발자 분들이 발표한 AMP, PWA 소개 영상을 공유합니다…
React에서 Mobx 경험기 (Redux와 비교기) 안녕하세요 딜리버리플랫폼팀 김찬정입니다. 이 글의 목적 React와 함께 사용하는 State(상태)관리 라이브러리중 가장 많이 사용되고 있는 Redux와 또 다른 라이브러리인 Mobx를 직접 사용하여 개발해 보고 느낀 차이점과 Mob…
Spring Rest Docs 적용 안녕하세요? 우아한형제들에서 정산시스템을 개발하고 있는 이호진입니다. 지금부터 정산시스템 API 문서를 wiki 에서 Spring Rest Docs 로 전환한 이야기를 해보려고 합니다. 1. 전환하는 이유 현재 정산시스템은 API 문서를 wiki 로…
DB도 형상관리를 해보자! 개발 코드는 VCS(Version Control System)로 형상 관리를 하는데, DB 이력은 형상 관리를 할 수 있을까? 하고 고민하셨던 적이 있으신가요? 여기 DB 이력도 형상 관리를 할 수 있는 오픈 소스 도구 Flyway를 소개합니다. 버전별 DB…
지난 11월19일, 삼성SDS Campus 파스칼홀에서 열린 정지훈교수의 '인공지능, 상상을 초월한 세계 ' 강연 현장에 다녀왔습니다. 그 동안 가지고 있던 AI에 관한 궁금증 해결은 물론 강연을 통해 얻은 새로운 Insight를 간단하게 공유하려고 합니다. #1. 당장 증명할 수 없다…
테스트를 통한 고품질 확보는 소프트웨어 개발에 있어 매우 중요한 활동입니다. 특히, 다른 테스트에 비해 적은 비용으로 수행할 수 있는 단위 테스트는 소프트웨어의 품질을 향상시키는 데 중요한 역할을 합니다. 개발 초기부터 적용하여 빠르게 수행 결과를 확인함으로써 개발자의 생산성을 높이는…
우아한 파일럿 프로젝트 2기(feat.고독한개발자) 들어가며 안녕하세요. 저는 우아한테크캠프를 통해 우아한형제들에 합류한 배민서버개발팀의 김민지입니다. 이 글을 통해 저희 팀에서 진행하고 있는 신입 교육의 일환인 Show me the code라는 파일럿 프로젝트를 진행한 경험을 공유하고…
파일럿 프로젝트와 함께 우아한개발자 되어가기 들어가며 안녕하세요! 배민서버개발팀 김다인입니다. 지난 10월 신입 개발자로 입사한 후 약 5주간에 걸쳐 파일럿 프로젝트를 진행했는데요, 그동안 제가 경험하고 느낀 것들을 공유해 드리고자 합니다. 시작 설렘 반, 긴장 반으로 입사한 당일, 팀…
지난 10월 18일 삼성SDS West Campus 마젤란홀에서 전일 행사로 개최된 'OKKY Conference 2018' 행사의 참관기 입니다. 이번 ‘OKKYCON: 2018’ 개발자 컨퍼런스의 주제는 'The Real TDD – TDD(Testable-code-driven Dev…
지난 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을 적용한 사례를 공유하고자 합니다…
작년에 이어 올해도 블라인드 전형으로 카카오 개발 신입 공채가 시작되었습니다! 그 첫 번째 관문으로 1차 온라인 코딩 테스트가 지난 9월 15일(토) 오후 2시부터 7시까지 5시간 동안 치러졌는데요. 지원자분들 만큼이나 준비위원들도 테스트가 문제없이, 공정하게 치러질 수 있도록 많은 준…
지난 아티클에서 정적 분석의 작동 방식과 Rollbar에서 발표한 실제 오류 사례 중 일부를 살펴보았고, 이제 깃허브에 있는 수천 개의 공용 자바스크립트 및 타입스크립트 프로젝트를 분석하여 정적 분석 도구로 수집한 코드 결함 사례와 정적 분석 도구를 선택할 때 고려해야 할 사항들을 살펴…
카카오는 여전히 같은 생각입니다.개발자가 자신의 가치를 증명할 수 있는 것은 자소서나 스펙이 아니라 코드라고 말이죠! 올해는 카카오를 포함하여 5개 기업이 함께 합니다.지금 바로 도전하세요! new developer coming! [2019 카카오 블라인드 신입 개발자 공채] ▶ 접수…
LC3 참관기 - 등록일 - 2018.08.07 - | - 코멘트 - 6085 LC3는 LinuxCon, ContainerCon, CloudOpen 세 가지 콘퍼런스가 하나로 합쳐져 동시에 진행되는 콘퍼런스로, 지난 2015년부터 시작됐습니다. 개발자, 아키텍트, 시스템 어드민뿐만 아니…
나를 술푸게 하는 고민들 안녕하세요, 배민프론트서버개발팀의 개그 신동이자 귀염둥이 이신은입니다. 저는 작년 12월 신입 개발자 공채를 통해, 백엔드 개발자로 우아한형제들에 합류했습니다. 취업준비생에서 7개월 차 삐약삐약 병아리개발자가 된 지금까지, 지난 1년을 돌아보며 제가 했던 고민을…
콘퍼런스 참가 신청 기능 개발기 - 등록일 - 2018.06.28 - | - 코멘트 - 18353 이 글은 네이버 사내 행사로 시작하여 국내 최대의 개발자 콘퍼런스로 성장한 DEVIEW 2016의 참가 신청 기능 개발기입니다. 국내 최대의 개발자 행사인 만큼 신청 인원이 많기 때문에 매…
2018년과 이후 JavaScript의 동향 - 브라우저 밖의 JavaScript - 등록일 - 2018.06.22 - | - 코멘트 - 42998 JavaScript는 단지 브라우저 안에만 머물러 있지 않습니다. 다양한 영역에서 그 힘을 발휘하고, 오히려 브라우저에서보다 더 큰 가능성…
백엔드 개발자를 꿈꾸는 학생개발자에게 - 등록일 - 2018.06.21 - | - 코멘트 - 521820 D2에서는 D2 CAMPUS를 통해 만난 학생개발자를 대상으로 정기적으로 Tech meet-up을 진행하고 있습니다. 금번에는 백엔드 개발을 주제로 진행하였는데요, 미래의 백엔드 개…
용어 정리 이 설명에서는 인덱스의 정렬 순서와 데이터 읽기 순서 등 방향에 대한 단어들이 혼재하면서, 여러 가지 혼란을 초래하기 쉬운 설명들이 있을 것으로 보인다. 그래서 우선 표준 용어는 아니지만, 나름대로 몇 개 단어들에 대해서 개념을 정립하고 그 단어를 번역 없이 영어로 그대로 표…
앱실행속도 개선을 위한 최적화 가이드 (1) 1. 들어가는 말 우리 게임은 왜 이렇게 로딩 시간이 긴 거야 ?! 경쟁사 게임은 이펙트도 화려하고 브금도 좋은데 왜 빠른 거고 ? [킹덤스토리] 작년 측정기록 24초에 비해 약 3초 개선되어 21초로 측정 되었다. 입장 버튼 터치 후 게임화…
- blog 사용하면서 알게 된 Reactor, 예제 코드로 살펴보기 Reactor는 Pivotal의 오픈소스 프로젝트로, JVM 위에서 동작하는 논블럭킹 애플리케이션을 만들기 위한 리액티브 라이브러리입니다. Reactor는 RxJava 2와 함께 Reactive Stream의 구현체이…
요즘 잘나가는 프론트엔드 개발 환경 만들기(2018): Webpack 4 요즘 잘나가는 프론트엔드 개발 환경 만들기(2018): Webpack 4 최근에 새로운 프로젝트를 진행하게 되면서 기존에 간만 살짝 보고 있던 뷰(Vue, 이하 뷰)를 본격적으로 도입하게 되었다. 사실 팀에서는 리…
주소검색서버(woowahan-juso) 개발기(上) 부제: SpringBoot Batch를 이용하여 주소DB 구축하기 안녕하세요 라이더스개발팀 정세빈 입니다 🙂 BROS(Baemin Riders Operating System)에 주소검색을 위한 주소검색서버 개발 및 배포 경험을 공유 드…
오픈소스는 전 세계 사람들이 참여하는 다양한 컨트리뷰션 활동을 통해 발전하며 현재와 같은 모습으로 완성 되었고, 지금도 계속 발전하고 있습니다. 소프트웨어 개발회사는 상품 개발과 운영 등 많은 분야에 오픈소스를 활용하고 있습니다. # 오픈소스 컨트리뷰션은 무엇인가요? 오픈소스 컨트리뷰션…
(Spring Boot)Logging과 Profile 전략 서론 spring-boot 에서는 Logback을 확장해서 편리한 logging 설정을 할 수 있다. application.yml 의 설정을 읽어 오거나 특정 profile의 동작을 수행할 수 있다. 이 글에서는 Spring B…
파이썬은 놀라운 생산성을 발휘하는 언어입니다. 하지만 성능 문제는 늘 발목을 잡게 합니다. 이 문제를 극복하는 방법으로 일반적으로 C Extension을 작성하는 방법이 권장되며, 여기서는 표준 편차를 구하는 함수를 작성하여 순수 파이썬의 성능과 NumPy, 각종 C++ Extensio…
결제 시스템 성능, 부하, 스트레스 테스트 안녕하세요. 우아한형제들에서 결제시스템을 개발하고 있는 권용근입니다. 입사한 지 4개월 만에, 드디어 우아한형제들 기술 블로그에 글을 남기게 되어 감회가 새롭습니다. 저는 최근 결제 시스템 의 개비를 진행하며 경험한 성능, 부하, 스트레스 테스…
우아한개발자가 되기 위한 우아한테크캠프 우아한(Woowa) 개발자가 되고 싶은 이들을 위한 우아한테크캠프 2기를 소개합니다. 우아한테크캠프 2017 우아한테크캠프는 대학생들의 여름 방학 기간에 맞춰서 2017년에 진행했던 교육형 인턴 과정입니다. 한 달은 정해진 커리큘럼에 따라 개발 관…
Java, max user processes, open files 안녕하세요? 우아한 형제들에서 결제/정산 시스템을 개발하고 있는 이동욱입니다. 올해 사내 블로그 포스팅 주제로 Linux의 open files, max user processes 설정에 대해 정리하게 되었습니다. 계기는…
동영상 플랫폼 개발 프레임워크의 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는 라이더를 배차하고 음식을 픽업하여 고객에게 전달하는 서비스를 지원하는 배달 플랫폼…
신입개발자 교육 후기 들어가며 작년 12월 말에 입사한 후 1월부터 9주 동안 진행된 신입 개발자 교육을 마쳤습니다! 교육이 어떤 식으로 진행되었는지, 무엇을 배웠는지 짧게나마 공유해드리고자 합니다. 일정 - 1주차 ~ 2주차: 웹 프론트엔드 학습 - 3주차 ~ 6주차: 웹 백엔드 학습…
Kudu를 이용한 빅데이터 다차원 분석 시스템 개발 - 등록일 - 2018.03.22 - | - 코멘트 - 45018 네이버의 콘텐츠 통계 서비스는 네이버의 콘텐츠를 사용자가 얼마나 소비했는지에 대한 통계를 콘텐츠 생산자에게 제공합니다. 예를 들어 블로그 관리자가 볼 수 있는 통계 메뉴…
쿠버네티스를 이용해 테스팅 환경 구현해보기 실제로 서비스에 도입해보기 전에 쿠버네티스를 유용하게 사용해 볼 수 있는 방법 중에 하나가 아닐까. 시작하며 이 글은 앞으로 우리가 관리하는 서비스(배민찬)의 아키텍처가 컨테이너 기반의 마이크로 서비스를 지향할 것으로 결정한 후 이를 위해 우선…
Gerrit을 이용한 코드 리뷰 시스템 - CI 연동, SVN 마이그레이션 - 등록일 - 2018.03.10 - | - 코멘트 - 20061 네이버에서는 CI(continuous integration) 도구를 Gerrit과 연동해 리뷰 대상 소스 코드에 대한 기본적인 검증 작업을 자동으…
Spock으로 테스트코드를 짜보자 Spock으로 테스트코드를 작성한 경험을 공유합니다. 안녕하세요! 우아한형제들 배달의민족/배민라이더스 주문시스템 팀 정용준입니다. 여러분은 어떻게 테스트 코드를 작성하고 계신가요? 일정 지키기도 힘든데 무슨 테스트코드냐 하시는 분들도 계신가요? 저도 아…
MySQL에서 ‘a’ = ‘a ‘가 true로 평가된다? DB 알못의 어떤 리서치 목차(이 링크는 목차를 링크합니다) 개요 안녕하세요 기계인간 이종립입니다. FC플랫폼개발팀에서 배민찬 백엔드를 개발하고 있습니다. DB알못인 저는 업무 중에 우연히 MySQL에서 'a' = 'a ' 의 결…
AWS에서 네트워크 공격 자동차단 하기 Introduction Summary 최근 Public cloud 시장이 활성화 되면서 많은 기업들이 Cloud 도입을 시작하고 있으며, 한국의 경우 대표적으로 Amazon Web Service(AWS)를 사용하고 있다. 그리고 한국의 Seoul…
Gerrit을 이용한 코드 리뷰 시스템 - 코드 리뷰 방법(2) - 등록일 - 2018.02.21 - | - 코멘트 - 27885 이전 글에서는 Gerrit에서 생성한 프로젝트를 Eclipse에서 불러와서 코드를 작성한 다음 코드 리뷰를 요청하는 방법과 코드 리뷰를 요청받은 리뷰어가 G…
AI에 관한 일반적인 오해 최근 IT 업계 뿐 아니라 사회 전반에 걸쳐 인공지능(AI) 혁명이 일어나고 있지만 동시에 다음과 같은 인공지능 전반에 관한 오해도 공존하고 있습니다. (1) 딥러닝을 통해 AI가 인간의 지능 수준까지 도달할 수 있다. (2) 알파고의 놀랄만한 성공을 보면,…
Redux-Saga: 제너레이터와 이펙트 지난 글에서 Redux-Saga와 사이드 이펙트를 가지고 공부 겸 정리 겸 글을 작성했다. 이번 글에선 Redux-Saga에서 사용하는 제너레이터함수, 이펙트에 대해 정리해보려 한다. 제너레이터함수는 협력적이고, run-to-completion이…
카드형 UI와 eg.InfiniteGrid 3.0 - 등록일 - 2018.01.04 - | - 코멘트 - 18648 모바일 웹이 보편화되기 이전에는 웹 사이트의 콘텐츠를 대부분 게시판 형식으로 소비했습니다. 제목이 나열된 목록이 있고, 목록에서 항목을 선택하면 상세 페이지가 열리는 형식…
웹 워드프로세서 기초 만들어 보기(1) 웹 워드프로세서 기초 만들어 보기(1) 웹 워드프로세서(이하 웹 워드)는 생각보다 오래된 역사를 가지고 있다. 구글 독스가 2006년에 소개되면서 많이 알려졌으니 벌써 십여 년의 역사가 있는 소프트웨어 분야이다. 씽크프리는 자바 애플릿 기반으로 동…
Redux-Saga: 사이드 이펙트 관리 Redux-Saga: 사이드 이펙트 관리 지난 1년 6개월 동안 리액트, 리덕스를 공부하고 활용해 웹 애플리케이션을 개발했다. 지금도 개발하고 있고, 여전히 비동기 처리와 같은 사이드 이펙트(Side effects)를 고민하고 있다. 리액트, 리…
지난 시간에는 최근 악성코드의 위협 현황과 기존 사전차단 체계의 문제점에 대해 알아보았습니다. 이번 시간에는 기존 시그니처 백신의 취약성에 대한 실험 결과와 시그니처 백신의 대안으로 급부상하고 있는 인공지능 기반 백신에 대해 살펴보겠습니다. 1. 시그니처 백신, 얼마나 취약한가? 시그니…
HTML diff HTML diff란? - MS워드의 '변경 내용 추적'기능처럼 HTML의 렌더링 결과 화면의 변경 부분을 탐지하고 해당 내용을 시각화하여 표시해주는 기능이다. - HTML 텍스트에서 태그와 속성 데이터를 파싱하여 트리같은 자료구조로 구조화하고 구조화한 트리를 비교해서…
블라인드 채용으로 관심을 모은 카카오 신입 공채의 세 번째 테스트가 지난 10월 29일(일), 오후 2시부터 6시까지 네 시간에 걸쳐 오프라인으로 치러졌습니다. 두 차례의 온라인 테스트를 통과한 지원자들이 한 자리에 모여 다시 한번 실력을 검증하는 자리를 가졌습니다. 세 번째 관문 오프…
연재의 첫 시작인 오늘은 Mobile APP 보안을 어떻게 접근해야 할지부터 소개해 드리겠습니다. 이 글은 주로 Mobile APP 개발 경험자를 대상으로 하지만, 개발 경험이 없는 분들도 충분히 이해할 수 있도록 작성했으니 찬찬히 읽어보세요. 1. WHAT–무엇이 문제인가? 왜 공격자…
Front-End 테스트 환경 (2) - 멀티 브라우저 테스트 환경 구축하기 멀티 브라우저 테스트 환경 구축하기 로컬 테스트 환경의 한계 이전 글에서는 단일 PC에서 테스트 환경을 구축하고 테스트를 실행하는 과정을 설명했다. 로컬 PC 내에서 브라우저 자동화 테스트를 수행하는 테스트의…
지난 10월 14일(토) 오후 2시부터 10시까지 8시간 동안 온라인 2차 코딩 테스트가 있었습니다. 1차 코딩 테스트와도 사뭇 다른 형식이라 신선했다는 의견도 있고, 당황한 지원자도 있었을 텐데요. 2차 문제에는 어떤 의도가 숨어있는지 살펴보겠습니다. 추가적으로 어떤 테스트를 해야할까…