벌써 7년 프론트엔드 개발은 jQuery 전과 후로 나뉘고, React 전과 후로 나뉜다. jQuery는 웹 개발자라면 한 번쯤은 사용해 보셨을 테죠. 언제 Release 되었을까요? 2006년이군요. 도대체 얼마나 지난 거죠? 이토록 오랜 시간 전 세계 수많은 웹 개발자들의 애증? 의…
레디스 버전6 뉴피처와 주요 기능 테스트 안녕하세요. 데이터운영팀 김가림입니다. 얼마 전 4월 30일에 레디스 뉴 피처가 발표됐습니다. 레디스 오픈소스의 창시자인 Antirez는 이번 6버전이 그동안의 릴리즈중 가장 큰 변화라고 공식적으로 말했고, 도대체 얼마나 큰 변화인가! 궁금해져서…
Thiiing(띠잉) iOS 앱 개발기 안녕하세요. 저는 영상 기반 소셜 서비스인 Thiiing(띠잉) iOS 앱을 개발하고 있는 박태현입니다. 2019년 12월 띠잉셀에 합류하여 약 3개월 동안 개발하여 신규 서비스 Thiiing(띠잉) 앱을 출시하였는데요, 프로젝트 세팅부터 출시까지…
DB분산처리를 위한 sharding 소개 저희는 신사업부문에서 Thiiing(띠잉)서비스를 만들고 있는 송재욱/전병두입니다. 이번에는 두 명이 함께 기술블로그를 작성했습니다. 🙂 서비스 오픈전에 아름다운 J곡선 그래프를 바라는 마음은 모두 같을 겁니다. 그런 서비스 성장에 있어 중요한…
Email 보안 강화 기능 소개(SPF) 머리말 NHN Cloud Email은 이메일 보안 강화를 위한 다양한 기능을 제공합니다. 총 두 번에 걸쳐 이메일 보안 강화 기능에 대해 살펴봅니다. 이번 글은 이메일 보안을 강화할 수 있는 방법 중 하나인 SPF (sender policy fr…
안녕하세요, 클라우드기술팀 ssup이라고 합니다. 카카오에서는 DKOS라고 불리는 Kubernetes 기반 Container Platform을 개발 & 운영하고 있습니다. DKOS를 안정적으로 운영하기 위해서 Kubernetes를 분석하는 도중, Kubernetes의 Cgroup Dri…
1 들어가며 최근 많은 기업이 기존 모놀리식 아키텍처(Monolithic Architecture)의 한계를 극복하고 클라우드 환경에서 시스템 운영 이점을 극대화하기 위해 마이크로서비스 아키텍처(Microservices Architecture, 이하 MSA)를 채택하고 있습니다. 현재 뜨…
- blog 데이터를 기반으로 새로운 경험을 선사하는 추천팀 이야기 추천팀은 세상 모든 정보와 사용자에 대한 이해를 바탕으로 정보를 소비하고 발견하는 새로운 경험의 길을 찾고 있습니다. ’공동체데이터센터’, 그리고 '추천팀’은 사용자를 이해하는 모든 걸음을 함께하고 있습니다. 공동체데이…
- blog 실시간 댓글 개발기(part.3) - Spring의 동시성 접근 제어에 발목 잡힌 이야기 전편(실시간 댓글 개발기(part.2) – 험난했지만 유익했던 웹소켓 스트레스 테스트 및 안정화 작업)에서 공유 드린 바와 같이 다양한 모니터링 및 디버깅 툴의 실제 활용 사례인 Spr…
어서 와, SSR은 처음이지? - 도입 편 - 등록일 - 2020.06.19 - | - 코멘트 - 121065 2019년 5월 29일 "내 동영상 페이지"를 시작으로 Node.js 기반의 SSR(server-side rendering) 아키텍처가 네이버 모바일 블로그에 적용되고 있습니다…
prettier 2.0에서 달라진 옵션 살펴보기 prettier 2.0은 얼마 전(2020.3) 정식 릴리즈되었습니다. 바로 적용을 하려다 조금 기간을 두고 적용하자는 의견이 있어 쪼-금 두고 봤습니다. 두 달 정도 시간이 지나 Chart 4.0 개발에 Prettier2.0을 적용했고,…
- blog 실시간 댓글 개발기(part.2) - 험난했지만 유익했던 웹소켓 스트레스 테스트 및 안정화 작업 전편(실시간 댓글 개발기(part.1) -DAU 60만 Alex 댓글의 실시간 댓글을 위한 이벤트 기반 아키텍처) 에서는 기본적인 테스트 환경 구축에 대한 설명을 드렸다면, 이번…
코드 악취를 맡는 후각 훈련의 시간 한 달, 각 잡고 리팩토링하기 좋은 시간, 그 기록의 공유 리팩토링의 시작 모든 프로젝트에는 저마다의 사연이 있을 텐데요. 제가 담당하게 된 RMS(Receiving Management System - 입고관리 시스템)는 프로젝트 초기에 많은 부분이…
리팩토링의 시작 모든 프로젝트에는 저마다의 사연이 있을 텐데요. 제가 담당하게 된 RMS(Receiving Management System - 입고관리 시스템)는 프로젝트 초기에 많은 부분이 미흡한 상태에서 진행되었습니다. 성능이나 기능상 이슈는 없었지만, 프로젝트의 시작부터 함께하셨던…
- blog 실시간 댓글 개발기(part.1) - DAU 60만 Alex 댓글의 실시간 댓글을 위한 이벤트 기반 아키텍처 안녕하세요! 콘텐츠플랫폼개발팀 briony입니다. 제가 속한 팀 내 인터랙션플랫폼셀에서는 작년 한 해동안 '실시간 댓글’이라는 신규 기능을 위해 조직 구성원 모두 그…
라이트하우스 6.0에서 바뀐 성능 지표변화 지난 번역 글에서 라이트하우스의 향상된 기능들이 업데이트될 것이라고 소개하였다. 그리고 최근 5월에 이르러 라이트하우스 6.0이 정식으로 릴리즈되었고 최신 크롬 84에도 적용될 예정이다. 바로 써보고 싶은 사람은 크롬 나이틀리 빌드(카나리아)를…
1. "넷플릭스 당하다" "넷플릭스 당하다(Netflixed)"라는 말을 들어 보셨나요? 이는 실리콘밸리에서 기존 비즈니스 모델이 붕괴하였을 때 사용하는 표현입니다. 실제로 넷플릭스는 지난 20년간 대형 DVD 대여점과 케이블 TV 등 미디어 업계의 골리앗들을 차례대로 쓰러뜨렸습니다.…
깃헙 액션을 마켓에 등록해보자 지난 글에서는 github actions를 이용해 workflow를 만드는 법을 소개했다. 이번 시간은 Github Market place에 등록되어있는 액션들처럼 쉽게 가져다가 쓸 수 있는 액션을 만들어보려고 한다. 마켓에 등록하는 액션을 만드는 것은 기…
데브시스터즈에서는 여러 개의 쿠버네티스 클러스터를 구축해 게임 개발 및 운영, 데이터 분석, 로깅 등을 위한 인프라로서 활용하고 있습니다. 각 클러스터에서는 쿠버네티스의 기능을 확장하기 위해 약 20여개 이상의 애드온을 운영하고 있는데, 이번 글에서는 AWS EKS에서 포드(Pod)의…
Big things in JDK 13 Java 13 6개월마다 GA 배포되는 신규 버전으로, openjdk13은 2019년 9월 17일에 배포되었습니다. 주요 기능은 아래와 같습니다. - JEP350: Dynamic CDS Archives - JEP351: ZGC: Uncommit Un…
서비스와 개발자가 함께 성장하는 카카오 FE플랫폼팀입니다. 사용자가 만나는 카카오의 처음엔 FE플랫폼팀이 있습니다. FE개발자는 서비스의 가장 앞에서 사용자와 직접 만나는 영역을 개발합니다. 특히 카카오처럼 여러 서비스들이 유기적으로 연결되어 있는 경우, 복잡한 비즈니스와 기능들을 사용…
Database Driven Development에서 진짜 DDD로의 선회, 이벤트 스토밍 -2- DDD를 위한 첫걸음. Event Storming 들어가며 이번 편은 지난 글에 이어 이벤트 스토밍의 경험에 대해 세부적으로 다루고자 합니다. 학창 시절의 우리는 시험 문제를 풀기 위해서…
제조설계 단계에서 중요한 역할을 수행하고 있는 3D 데이터를 개발뿐만 아니라 생산, 운영, 유지보수를 포함한 프로세스 전반에 활용하고자 하는 니즈가 증가하고 있습니다. 현장의 니즈 “건설 분야에서 대표적인 A사는 설계, 조달, 시공 간 정보 연결성 부재로 정보 정합성의 이슈가 존재했습니…
JWT를 소개합니다. 머리말 토스트 클라우드 메시징 플랫폼 서비스 중 하나인 푸시에 추가될 APNs(Apple Push Notification service) JWT 인증 기능을 개발하면서 진행한 기술 조사 내용을 공유합니다. 이 글에서는 크게 'JWT 소개'와 'JWT 더 알아보기'…
‘모든 서비스 개발의 시작’이라 할 수 있는 ‘클라우드 기술’을 담당하는 클라우드플랫폼팀을 소개합니다. 카카오의 모든 서비스 개발, 그 시작엔 클라우드플랫폼팀이 있습니다. 카카오톡부터 멜론, 다음 등 카카오의 다양한 서비스들은 어떻게 만들어질까요? 카카오의 모든 서비스를 개발하기 위해…
코로나19를 이겨내기 위한 카카오맵의 역할은 무엇일까? 코로나19가 수많은 사람들을 힘들게 할 때, 우리는 생각했습니다. "코로나19를 이겨내기 위한 카카오맵의 역할은 무엇일까?" 코로나19로 대부분의 사람들이 집 밖으로 나오지 못하는 그 때에도 누군가는 진료를 받기 위해 선별진료소에…
간단하게 만드는 이상한 알람 안녕하세요. 우아한형제들에서 DBA로 근무하고 있는 이재웅입니다. 오늘은 간단한 이상점 탐지를 이야기 하려고 합니다. 장애 사례를 한가지 들어볼께요. 오전 8시 서버 배포 이후 DB의 CPU 사용률이 전일 대비 10% 정도 높아졌습니다. 아침에는 서비스 트래…
Log&Crash Search의 로그 외부 보관 설정 기능 (TOAST Service 들여다 보기) 소개 로그 외부 보관 설정 기능은 Log&Crash Search로 수집한 로그를 외부 오브젝트 스토리지에 저장할 수 있는 기능입니다. Log&Crash Search로 수집된 로그를 받아서…
팀 문화의 탄생 안녕하세요, 우아한형제들 상품시스템팀의 손권남입니다. 가끔씩 저는 우리팀의 팀 문화에 대한 질문을 받곤 합니다. 그때마다 매번 단편적인 답을 드리곤 하면서 한 번 정도 우리의 팀문화를 정리했으면 좋겠다고 생각했습니다. 하지만 우리팀이 행하는 팀 문화 자체보다는 그 문화가…
Spring REST Docs에 날개를… (feat: Popup) 안녕하세요? 우아한형제들에서 정산시스템을 개발하고 있는 이호진입니다. 2018년 12월 Spring REST Docs를 주제로 사내 블로그를 작성 후… 1년 이상이 지났습니다. Spring REST Docs를 적용 후 빠…
우아한테크코스 교육 설명회에 초대합니다. 나는 왜 교육자로 살고 있는가? 저는 20대 후반에 본격적으로 프로그래밍 학습을 시작했는데요. 제가 프로그래밍을 통해 무엇인가를 만들고, 문제를 해결하는 과정이 너무 재미있더라고요. 제가 앞으로 걸어가야할 길은 이 길이다라는 확신이 들었고, 정말…
코틀린에서 하이버네이트를 사용할 수 있을까? 신규 시스템을 개발하면서 코틀린과 하이버네이트를 함께 사용한 경험을 나누기 위해 작성해봅니다. 안녕하세요! 서비스플랫폼 팀에서 서버 개발을 하는 김지희, 김석홍입니다. 저희 팀은 이번에 사장님이 혜택을 관리할 수 있는 신규 프로젝트를 진행하면…
1. IT 현대화 개요 디지털 혁신 시대로 접어들면서 기업들은 빠르게 변하는 시장과 고객 요구에 대응하기 위해 IT 활용도를 높이고 있습니다. 이에 따라 기업 IT 인프라스트럭처(Infrastructure)는 더 신속하고 안정적인 서비스를 제공하기 위한 엔터프라이즈 플랫폼으로 진화하고…
PHP Development Roadmap In 2020 At Kurly 2020 컬리 PHP 개발자 로드맵 Where to go? 웹 front-end, back-end 개발자를 하면서 매년 바뀌는 기술스펙과 트랜드를 매번 따라가는 것이 쉽지 않다고 느꼈을때 도움이 되던 사이트가 있습…
Secure Key Manager 서비스 소개 (TOAST Service 들여다 보기) SecureKey Manager란 ? 지난 12월 말에 Secure Key Manager 서비스가 새롭게 출시되었습니다. 사용자의 중요 데이터(대칭키, 비대칭키, 기밀 데이터)를 안전하게 관리하고 사…
K8S 인프라 CI/CD 처리 사내 구축된 Kubernetes 인프라에 어플리케이션을 빌드하고 배포하는 프로세스에 대한 전반적인 설명 글입니다. 이 글은 Kubernetes 클러스터 환경 구축을 전제로 어플리케이션을 빌드하고 배포하는 과정의 프로세스를 설명하는 글이므로, 전반적인 Kub…
마켓컬리에서의 PHP 이야기 마켓컬리에서의 PHP 이야기 개발언어는 도구일 뿐이라고 말은 하지만, 솔직히 구인/구직의 경우 개발자의 실력보다 우선시 되어 판단되는 것이 개발 언어라고 보여집니다. PHP 개발자는 한국 개발자 커뮤니티에서 어떤 위치에 있을까? 혹은 어떤 평가를 받을까 고민…
개발언어는 도구일 뿐이라고 말은 하지만, 솔직히 구인/구직의 경우 개발자의 실력보다 우선시 되어 판단되는 것이 개발 언어라고 보여집니다. PHP 개발자는 한국 개발자 커뮤니티에서 어떤 위치에 있을까? 혹은 어떤 평가를 받을까 고민하던 중, 다음의 책을 읽고 많은 반성 지점 내지는 제가…
가게노출 파트의 조금은 색다른 파일럿 프로젝트, 그리고 첫 업무까지의 이야기 안녕하세요, 프론트검색서비스팀 신입 개발자 김덕수입니다. 입사한지 어느덧 네 달 가까이 시간이 흘렀는데요..! 조금 시간이 지나기는 하였지만, 파일럿 프로젝트를 진행하면서 배웠던 것들과 더불어 신입 개발자가 팀…
EasyCache 서비스 소개 (TOAST Service 들여다 보기) EasyCache 란? 2019년 12월에 출시된 EasyCache는 Redis(REmote DIctionary Server)를 클라우드 환경에서 제공하는 상품으로 간단한 설정으로 고가용성의 Redis 서버를 사용할…
CNCF(Cloud Native Computing Foundation)의 2019년 연간 리포트[1]에 의하면, 조사에 참여한 기업 중 84%가 프로덕션 환경에서 컨테이너를 활용 중이며, 89%가 다양한 형태의 쿠버네티스(퍼블릭 클라우드에서 제공하는 관리형 쿠버네티스나 온프레미스 환경의…
들어가기 전에 안녕하세요. 2019 카카오 겨울 인턴십의 인턴으로 시작해 정직원으로 근무한 지 2달이 되어가는 파트너서비스개발 파트 의 로빈입니다. 저는 이번 겨울 인턴십을 진행하며 기술을 익히고, 문제에 맞닥뜨렸을 때 해결해나간 과정과 카카오에서 일하는 방식을 경험하고 배운 과정에 대…
GSLB 서비스 소개(TOAST Service 들여다 보기) Global Server Load Balancing(GSLB)는 DNS 서비스 기반으로 사용자가 원하는 엔드포인트(서버 or 도메인) 및 정책을 이용해 안정적으로 트래픽을 로드밸런싱 해주는 서비스입니다. TOAST DNS Pl…
Linux 배포본이 몇 개나 있는지 정확히 아시는 분이 계실까요? [1] Red Hat, Ubuntu, CentOS, Oracle Linux 정도가 아마 익숙한 배포본 이름이지 않을까 싶습니다. 하지만, 어쩌면 지금 이 순간에도 지구 반대편의 누군가가 본인만의 Linux 배포본을 만들고…
홍승환 | 2020년 04월 17일 | #Machine_Learning #Engineering 핑퐁팀은 PyTorch뿐만 아니라 TensorFlow 2.0도 활발하게 사용하고 있습니다. 최근 팀 내에서 TPU를 활용하여 학습하는 프로젝트를 진행하고 있는데, 이 글에서는 TF 2.0을 기…
작년에 쓰여진 딥러닝 추천 시스템 in production 에서 소개한 당근마켓 딥러닝 추천시스템의 파이프라인과 서빙 시스템이 구축 후 1년 동안 운용하며 어떻게 관리되고 변경되었는지 간단히 소개하려고 합니다. 1. Pipeline 당근마켓은 여전히 Kubeflow Pipelines을…
Todo list 만들기는 이제 그만 안녕하세요. 만화경 프론트엔드 개발자 한민호입니다. realworld.io 오픈소스에 기여한 이야기를 해보려 합니다. 여러분은 새로운 기술을 배울 때 어떤 방법을 선호하시나요? 1. 두꺼운 교과서 같은 책을 사서 처음부터 끝까지 독파한다. (하지만…
서머타임과 배치작업 흔히 서머타임으로 불리지만 공식 명칭은 일광절약시간제(Daylight saving time)로 하절기에 표준시를 원래 시간보다 한 시간 앞당긴 시간을 쓰는 것을 말합니다. '여름엔 해가 기니까, 겨울보다 1시간씩 일찍 당겨서 생활하면 해가 떠 있는 동안 더 많은 일을…
[모집] 우아한테크캠프 3기 우아한개발자가 되고 싶은 이들을 위한 우아한테크캠프 3기 모집이 시작됩니다. 우아한테크캠프는 여름방학 기간에 맞춰 진행되며 정해진 커리큘럼에 따라 개발 관련 지식을 공부하고, 다양한 미니 프로젝트를 통해 실제 서비스를 만들며 개발 지식을 익히는 교육형 인턴…
우아한테크코스 : 새로운 시작 우테크루즈 : 우아한개발자가 되기위한 크루들이 탄 우주선 - Cruise의 사전적 의미는 ‘순항하다, 정속으로 나아가다’ 로, 우테크루즈는 ‘각자의 속도로 목표를 향해 꾸준히 나아가자’는 의미로 크루가 직접 지은 이름 안녕하세요. 교육코스개발팀 이원미입니다…
Service Monitoring 서비스 소개 (TOAST Service 들여다 보기) 2019년 7월 말에 출시된 TOAST Service Monitoring 서비스에 대해 소개합니다. 서비스 개발자에게 중요한 도구 중의 한 가지는 모니터링 도구일 것입니다. 서비스가 안정적으로 동작하…
컬리에서는 Slack API 이렇게도 활용해요 많은 IT기업과 스타트업에서 Slack을 기업용 메신저로 활용하고 있습니다. 컬리에 들어오기 전의 저는 딱딱한 이메일 대신 SNS를 이용하듯이 하고 싶은 말을 편하게 나눌 수 있는 용도로 Slack을 사용해왔습니다. 하지만, 컬리에서는 Sl…
Maps 서비스 소개 (TOAST Service 들여다 보기) Maps API는 오랫동안 내비게이션 기술을 축적해 온 아이나비의 25년간의 자체 기술력과 노하우가 집적된 지도, LBS 솔루션을 기반으로 쉽고 정확한 지도, 통합 검색, 경로탐색 등 다양한 기능을 HTTP REST API로…
혹시 다들 뱅크샐러드 채용 사이트 보셨나요? 🙋🏻♂️ 안녕하세요, 이번에 뱅크샐러드 채용 사이트와 기술 블로그를 새롭게 개발한 Web Engineer 이동근입니다. 뱅크샐러드는 마이데이터 서비스 제공을 위해 다양한 직군에서 많은 인원을 채용하고 있습니다. 이에 맞춰 뱅크샐러드의 비전과…
들어가며 커피 한잔 (2020.01) 안녕하세요! 저는 2019 카카오 겨울 인턴십을 통해 입사한 톡FE파트의 프레드입니다 :) 2019년 12월 26일부터 2020년 2월 28일로 마무리된 2019 카카오 겨울 인턴십에 참여하였는데요, 어떤 과정이 있었고, 그 시간동안 무엇을 경험했는…
Heimdall - 로그 수집 관제 시스템 이번 블로그에서는 로그수집과 관제알림을 위해서 구축된 관제시스템 "Heimdall"에 대해서 공유하고자 합니다. 1. Heimdall 개요 사람인HR에서 사용하던 기존 관제시스템에서 UI 및 기능을 개선한 관제시스템입니다. Heimdall 유래…
새로운 마크다운 파서가 필요한 이유 최근 개발자들이 가장 선호하는 문서 형식을 하나 꼽으라면 단연 마크다운일 것이다. 마크다운은 깃허브(GitHub), 깃랩(GitLab), Bitbucket등 업무나 이슈 관리를 지원하는 대부분의 서비스에서 기본 문서 형식으로 사용되고 있다. 또한 In…
사람인HR에서 Elastic APM을 적용한 경험에 대해서 공유하고자 합니다. 사람인HR에서 서비스 모니터링을 위한 APM시스템을 구축 하였습니다. 시스템을 구축하며 조사한 자료에 대해서 공유 하고자 합니다. « Elastic APM 소개 및 설치와 관련된 내용은 1편을 참고해 주세요»…
사람인HR에서 Elastic APM을 적용한 경험에 대해서 공유하고자 합니다. 사람인HR에서 서비스 모니터링을 위한 APM시스템을 구축 하였습니다. 시스템을 구축하며 조사한 자료에 대해서 공유 하고자 합니다. « Elasti APM 도입시의 장점 및 Newrelic과의 비교는 2편을 참…
지난 1월, 치열한 경쟁을 뚫고 블라인드 신입 공채에 합격한 신입 개발자들이 카카오에 입사했습니다. 이후 두 달간의 온보딩 과정을 마치고 드디어! 카카오의 개발자로 첫발을 내딛게 되었지요. 올해 온보딩 프로그램은 제주 본사 방문을 비롯하여 기술 교육 및 행사, 그리고 프로젝트 등 다양한…
카카오의 미래 주역, 카카오는 이렇게 맞이합니다. 들어가는 글 안녕하세요! 저는 카카오에서 개발자 성장을 기획하고 실행하는 아론이라고 합니다. 카카오에서는 온보딩(On-Boarding)이라는 프로그램을 통해 새롭게 합류하는 크루들이 카카오를 잘 이해하고 적응할 수 있도록 돕고 있습니다.…
개발자를 위한 레디스 튜토리얼 04 이것만은 하지 마세요! 이제 많은 분이 요청주셨던 레디스의 장애 포인트에 대해서 말씀드리려고 합니다. 레디스, 잘 몰라도 괜찮으니 요구사항 파악하기 (캐시용? 저장소용?) 서비스에서 레디스의 도입을 고민할 때, 캐시용으로 사용할 것인지, 혹은 저장소용…
Kurly에서 주문을 모니터링 하는 법 Legacy 시스템에서 주문 모니터링을 Elasticsearch로 이전했습니다. 주문을 모니터링 하는 개발팀, 출처 : GIPHY 들어가며 컬리 개발팀은 24시간 운영되는 마켓컬리 쇼핑몰과 잠들기 전에 주문한 상품을 다음 날 아침 바로 받아 볼 수…
바로가기 > KCDC 질병관리본부 채널 어떻게 시작했나 안녕하세요. 봇플랫폼파트 Bart (이철민)입니다. 코로나19 로 인한 많은 우려 속에 정부(질병관리본부)에서 카카오쪽에 지원 요청이 들어 왔습니다. 코로나19의 제대로된 정보 제공과 대응책을 안내할 수 있도록 해달라는 요청이었죠.…
전면 재택근무 하는 오늘 일어나 이 닦고 세수한 후 출근까지 걸린 시간 3초. 출근을 방구석으로 하였습니다. 직장인들에게 꿈같은 이야기 현실이 되어가고 있습니다. 안녕하세요, 뱅크샐러드 데이터 파운데이션을 이끌고 있는 천인우입니다. 데이터 드리븐 의사 결정을 위한 사용자 및 금융 데이터…
개발자들이 꺼려하는 까칠한 규식이 형 정규식(Regular Expression)과 슬랙 채널 공유로 주문서 이름에 특수 문자 입력을 막은 에피소드 태초에 미션이 있었다 주문자 이름에 특수 문자가 입력이 되지 않게 하라! 위와 같은 특명이 티켓과 함께 나에게 주어졌다. 주문자 이름에 특수…
태초에 미션이 있었다 주문자 이름에 특수 문자가 입력이 되지 않게 하라! 위와 같은 특명이 티켓과 함께 나에게 주어졌다. 주문자 이름에 특수 문자가 들어가면 백엔드 시스템에서 오류가 나고 있었던 상황이었다. 까칠한 규식이 형 여기서 잠깐 개발자들이 좀처럼 꺼려하는 까칠한 우리 규식이 형…
안녕하세요, 뱅크샐러드 Engineering Foundation의 Front End Team 소속 Web Engineer 이소영입니다. 뱅크샐러드는 사용자의 데이터를 기반으로 가장 최적의 금융 상품을 추천하기 위해 여러 금융사와 제휴하여 다양한 상품을 확보해나가고 있습니다. 웹팀은 추천…
1. 마이크로서비스 아키텍처 도입을 고민 중인 당신에게 IT 업계에서 마이크로서비스 아키텍처(Microservices Architecture, MSA)가 대세로 떠오르면서 엔터프라이즈 서비스 개발 프로젝트에 활발하게 채택되고 있습니다. 애플리케이션을 보다 빠르게 개발하고 성능을 지속적으…
개발자를 위한 레디스 튜토리얼 03 Replication 지금부터는 레디스의 HA (High Availability)에 대해서 알아보겠습니다. 레디스는 Master - Replica 형태의 복제를 제공합니다. 복제 연결이 되어있는 동안 마스터 노드의 데이터는 실시간으로 리플리카 노드에…
서진형 정욱재 황성구 | 2020년 03월 11일 | #Machine_Learning #Engineering 대화를 더 잘하기 위해 딥러닝 모델들은 점점 더 크고 무거워지고 있습니다. 그에 비례해서 빠르고 효율적으로 서비스하기 위한 난이도 또한 나날이 높아지고 있습니다. 이번 글에서는…
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은 메시지, 이메일 주소 형식, 수신/발신자의 번호 등 클라이언트의 입력…
정산지기를 향한 첫걸음 (feat. 파일럿 프로젝트) 안녕하세요-! 우아한형제들 정산시스템팀 신입 개발자 박우빈입니다. 예전부터 계속 눈팅만 하면서 구경하던 우아한형제들 기술블로그에 제가 지금 localhost:4000을 띄우고 글을 작성하고 있다니 쉽게 믿기지 않네요ㅎㅎ 오늘은 제가…
TOAST UI Grid에 Github Actions가 함께한다면? Github Actions란? Github Actions는 Github에서 작년 말 전체 공개되었으며 개발 workflow를 깃헙 자체적으로 자동화할 수 있게 도와주는 도구이다. 코드 버전 관리, 리뷰뿐만 아니라 테스트…
안녕하세요, 뱅크샐러드 Engineering Foundation의 Framework Team 소속 Server Engineer 안석찬입니다. 실리콘밸리의 벤처 캐피털은 테크 기업에 투자를 고려할 때 그 기업이 확장 가능한 기술 역량을 보유하고 있는지 판단합니다. 이때 판단에 활용되는 지…
안녕하세요, 뱅크샐러드 엔지니어링 파운데이션의 정겨울입니다. 뱅크샐러드는 마이크로 서비스 환경에서 다양한 언어와 프로토콜을 활용해 서비스를 운영하고 있습니다. 하나의 서비스는 요청을 처리하기 위해 다른 서비스의 API를 호출하는데 대부분의 기존 서비스는 REST API를 통해 JSON으…
안녕하세요. 뱅크샐러드, Advanced Financial Infra Team(이하 AFIT) 서지원 입니다. AFIT 은 최고의 개발환경을 구축한다 는 Vision 아래, IDC 에 Nutanix 를 올린 Private Cloud 환경을 멋지게 개선하고 있는 팀입니다. 이번 글은 AF…
모바일 애플리케이션 개발자들 사이에서 테스트 코드가 뜨거운 감자 🔥🥔🔥 인 것은 반박 불가능한 사실입니다. 안드로이드 애플리케이션을 개발할 때 테스트 코드는 어떤 코드에 대해서 얼마나 작성되어야 할까요? 사용자의 입력에 따라 원하는 행동을 하고, 원하는 뷰가 노출되는지를 확인하는 것 정…
Spring WebFlux와 Armeria를 이용하여 Microservice에 필요한 Reactive + RPC 동시에 잡기 - 등록일 - 2020.02.19 - | - 코멘트 - 55605 Monolithic 아키텍처는 오랫동안 많은 개발자들이 좋아하며 사용한 아키텍처입니다. 하나의…
배달의민족 최전방 시스템! ‘가게노출 시스템’을 소개합니다. 안녕하세요 우아한형제들 프론트검색서비스팀 권용근입니다. 저는 "먼데이 프로젝트" 라는 2019년 대형 프로젝트에서 요란하게 탄생하였고, 탄생한 순간부터 지금까지 배달의민족 최전방에서 활약 중인 2019년 4월 1일생 가게노출…
서비스를 운영하다 보면 주기적으로 실행이 필요한 작업이 생깁니다. 이런 작업을 실행하는 방법은 여러 가지가 있을 수 있습니다. 다음은 크로키에서 현재 선택해서 전환 중인 AWS Batch에 관해 설명합니다. 지그재그 서비스 초기에는 서버가 EC2 인스턴스 위에서 동작하고 있었습니다. 이…
네이버 검색의 SRE 시스템 - 등록일 - 2020.02.11 - | - 코멘트 - 42126 네이버 검색은 국내 최대 규모의 트래픽과 데이터를 다루는 대용량 분산 시스템입니다. 수만 대의 서버에서 수백 개의 검색 서비스가 운영되고 있으며, 하루에도 몇 번씩 크고 작은 신규 개발과 유지…
기술 블로그를 다시 디자인하며 컬리 기술 블로그에 생기가 돌아온다!! 발단: 제가 해보겠습니다 2020년 1월 30일 목요일. 컬리 통합 개발팀의 슬랙 대화방은 채용 공고 포맷에 대한 이야기로 들썩이고 있었습니다. 문득 저는 채용에 대한 이야기가 나온 김에 기술 블로그 재정비를 이야기하…
[TOAST FORWARD] '프런트엔드 테스팅 - 기초부터 실습까지' 지난 1월 15일 열다섯 번째 TOAST FORWARD를 개최했습니다. 2020년 첫 교육으로는 '프런트엔드 테스팅 - 기초부터 실습까지'라는 과정명으로 FE개발랩의 김동우 책임이 진행했습니다. 교육 내용과 이번 교…
AWS 멀티 계정 환경에서 취약한 Security Group 설정 모니터링 들어가며 클라우드 서비스의 장점은 리소스의 탄력적 사용, 비용 절감, 운영에 대한 부담 감소에 있다. 하지만 보안 관점에서는 이러한 클라우드 서비스의 장점이 취약점으로 작용한다. 클라우드 환경에서는 개발자가 직접…
문제의 발견 2019년 12월 17일경 약 11만 건의 쿠폰이 발급되었고 당일 저녁 10시 12분경 위와 같은 현상이 보고되었다. 위 오류는 사용할 수 없는 쿠폰을 사용 시도한 경우로 사용자 UI 상에서는 이뤄질 수 없는 시스템 오류 혹은 공격의 가능성이 있는 현상이기 때문에 분석을 진…
쿠폰과 할인으로 앞다리살 하나 더 판매한 이야기 왜 그 손님은 쿠폰을 사용하지 못했나 문제의 발견 2019년 12월 17일경 약 11만 건의 쿠폰이 발급되었고 당일 저녁 10시 12분경 위와 같은 현상이 보고되었다. 위 오류는 사용할 수 없는 쿠폰을 사용 시도한 경우로 사용자 UI 상에…
HikariCP Dead lock에서 벗어나기 (실전편) 1부 HikariCP Dead lock에서 벗어나기 (이론편)은 잘 보셨나요? 2부 HikariCP Dead lock에서 벗어나기 (실전편)에서는 실제 장애 사례를 기반으로 장애 원인을 설명하고 해결 사례를 공유하고자 합니다. 그…
HikariCP Dead lock에서 벗어나기 (이론편) 안녕하세요! 공통시스템개발팀에서 메세지 플랫폼 개발을 하고 있는 이재훈입니다. 메세지 플랫폼 운영 장애를 바탕으로 HikariCP에서 Dead lock이 발생할 수 있는 case와 Dead lock을 회피할 수 있는 maximum…