- blog 인증아이템 : 카카오크루의 모바일사원증 Digitalization/Digital transformation 과 신원/자격/권리/행위 인증 Digitalization은 세상에 존재하고 있던 도메인을 기술과 데이터를 활용하여 디지털의 세계에 구현하는 것을 의미합니다. 그리고 이…
- blog 2020 카카오 인턴십 for Tech developers 문제해설 2020년 카카오의 여름 인턴십이 시작 되었습니다. 여름 인턴십의 첫번째 관문인 코딩 테스트가 2020년 5월 9일 오후 2시부터 6시까지 진행되었는데요, 온라인으로 진행되었기 때문에 코로나19로부터 안전하…
안녕하세요, 클라우드기술팀 ssup이라고 합니다. 카카오에서는 DKOS라고 불리는 Kubernetes 기반 Container Platform을 개발 & 운영하고 있습니다. DKOS를 안정적으로 운영하기 위해서 Kubernetes를 분석하는 도중, Kubernetes의 Cgroup Dri…
- blog 데이터를 기반으로 새로운 경험을 선사하는 추천팀 이야기 추천팀은 세상 모든 정보와 사용자에 대한 이해를 바탕으로 정보를 소비하고 발견하는 새로운 경험의 길을 찾고 있습니다. ’공동체데이터센터’, 그리고 '추천팀’은 사용자를 이해하는 모든 걸음을 함께하고 있습니다. 공동체데이…
- blog 실시간 댓글 개발기(part.3) - Spring의 동시성 접근 제어에 발목 잡힌 이야기 전편(실시간 댓글 개발기(part.2) – 험난했지만 유익했던 웹소켓 스트레스 테스트 및 안정화 작업)에서 공유 드린 바와 같이 다양한 모니터링 및 디버깅 툴의 실제 활용 사례인 Spr…
- blog 실시간 댓글 개발기(part.2) - 험난했지만 유익했던 웹소켓 스트레스 테스트 및 안정화 작업 전편(실시간 댓글 개발기(part.1) -DAU 60만 Alex 댓글의 실시간 댓글을 위한 이벤트 기반 아키텍처) 에서는 기본적인 테스트 환경 구축에 대한 설명을 드렸다면, 이번…
- blog 실시간 댓글 개발기(part.1) - DAU 60만 Alex 댓글의 실시간 댓글을 위한 이벤트 기반 아키텍처 안녕하세요! 콘텐츠플랫폼개발팀 briony입니다. 제가 속한 팀 내 인터랙션플랫폼셀에서는 작년 한 해동안 '실시간 댓글’이라는 신규 기능을 위해 조직 구성원 모두 그…
서비스와 개발자가 함께 성장하는 카카오 FE플랫폼팀입니다. 사용자가 만나는 카카오의 처음엔 FE플랫폼팀이 있습니다. FE개발자는 서비스의 가장 앞에서 사용자와 직접 만나는 영역을 개발합니다. 특히 카카오처럼 여러 서비스들이 유기적으로 연결되어 있는 경우, 복잡한 비즈니스와 기능들을 사용…
‘모든 서비스 개발의 시작’이라 할 수 있는 ‘클라우드 기술’을 담당하는 클라우드플랫폼팀을 소개합니다. 카카오의 모든 서비스 개발, 그 시작엔 클라우드플랫폼팀이 있습니다. 카카오톡부터 멜론, 다음 등 카카오의 다양한 서비스들은 어떻게 만들어질까요? 카카오의 모든 서비스를 개발하기 위해…
코로나19를 이겨내기 위한 카카오맵의 역할은 무엇일까? 코로나19가 수많은 사람들을 힘들게 할 때, 우리는 생각했습니다. "코로나19를 이겨내기 위한 카카오맵의 역할은 무엇일까?" 코로나19로 대부분의 사람들이 집 밖으로 나오지 못하는 그 때에도 누군가는 진료를 받기 위해 선별진료소에…
- blog - events 멜론 플레이리스트 데이터 탐색 – 카카오 아레나 3회 대회(Part.2) 이 글은 멜론 플레이리스트 데이터 탐색 – 카카오 아레나 3회 대회(Part.2)라는 이름으로 카카오 정책산업연구 브런치에 동시 개제되었습니다. 카카오 아레나 3회 대회가 개최되었습니다…
- blog - events 멜론에서 음악 추천을 어떻게 할까? – 카카오 아레나 3회 대회(Part.1) 이 글은 멜론에서 음악 추천을 어떻게 할까? 카카오 아레나 3회 대회(Part.1)라는 이름으로 카카오 정책산업연구 브런치에 동시 개제되었습니다. 자신이 잘 모르는 분야에서 새로운…
들어가기 전에 안녕하세요. 2019 카카오 겨울 인턴십의 인턴으로 시작해 정직원으로 근무한 지 2달이 되어가는 파트너서비스개발 파트 의 로빈입니다. 저는 이번 겨울 인턴십을 진행하며 기술을 익히고, 문제에 맞닥뜨렸을 때 해결해나간 과정과 카카오에서 일하는 방식을 경험하고 배운 과정에 대…
들어가며 커피 한잔 (2020.01) 안녕하세요! 저는 2019 카카오 겨울 인턴십을 통해 입사한 톡FE파트의 프레드입니다 :) 2019년 12월 26일부터 2020년 2월 28일로 마무리된 2019 카카오 겨울 인턴십에 참여하였는데요, 어떤 과정이 있었고, 그 시간동안 무엇을 경험했는…
개발자로서의 첫걸음을 카카오에서 시작한다는 것은… 안녕하세요. 저는 2019 카카오 겨울 개발자 인턴십 프로그램에 참여했던 vivi 라고 합니다 :D 지금은 인턴십을 모두 마치고 온 국민이 사용하는 카카오톡 서비스의 아이폰 클라이언트 개발을 맡고 있답니다. 지난 겨울 제게는 정말 많은…
- blog 2019 카카오 개발자 겨울 인턴십 코딩 테스트 문제 해설 “2019년 카카오 개발자 겨울 인턴십” 공개 채용을 위한 1차 코딩 테스트가 지난 2019년 11월 9일 오후 2시부터 6시까지 총 4시간에 걸쳐 진행되었습니다. '19년 신입공채 1차 코딩 테스트 시에 7문제가…
- blog 두 달 간의 신입 개발자 온보딩 과정을 돌아보며 - 신입 개발자들과의 인터뷰 안녕하세요! 기술기획팀 Candice입니다. 지난 두 편의 포스팅을 통해서 카카오 신입 개발자 온보딩 프로그램이 어떻게 진행되었는지 살펴 보았는데요, 이번 편에서는 실제 온보딩에 참여했던 신입 개발…
지난 1월, 치열한 경쟁을 뚫고 블라인드 신입 공채에 합격한 신입 개발자들이 카카오에 입사했습니다. 이후 두 달간의 온보딩 과정을 마치고 드디어! 카카오의 개발자로 첫발을 내딛게 되었지요. 올해 온보딩 프로그램은 제주 본사 방문을 비롯하여 기술 교육 및 행사, 그리고 프로젝트 등 다양한…
카카오의 미래 주역, 카카오는 이렇게 맞이합니다. 들어가는 글 안녕하세요! 저는 카카오에서 개발자 성장을 기획하고 실행하는 아론이라고 합니다. 카카오에서는 온보딩(On-Boarding)이라는 프로그램을 통해 새롭게 합류하는 크루들이 카카오를 잘 이해하고 적응할 수 있도록 돕고 있습니다.…
바로가기 > KCDC 질병관리본부 채널 어떻게 시작했나 안녕하세요. 봇플랫폼파트 Bart (이철민)입니다. 코로나19 로 인한 많은 우려 속에 정부(질병관리본부)에서 카카오쪽에 지원 요청이 들어 왔습니다. 코로나19의 제대로된 정보 제공과 대응책을 안내할 수 있도록 해달라는 요청이었죠.…
안녕하세요. 저는 멜론상품개발셀의 Bob(밥)입니다. 작년 신입 공채로 입사하여 어느덧 만 1년이 지났네요. 2019년도 입사할 때부터 지금까지 카카오의 서버 개발자로 1년간 배우고 느꼈던 저의 경험에 대해 이야기해보려 합니다. 입사 전 - 2018년 12월 당시 카카오에서는 신입 공채…
들어가며 안녕하세요. 카카오 FE플랫폼팀의 Joah입니다. 최근에 팀에서 사용하는 JavaScript 스타일 가이드를 개선하는 업무에 참여했습니다. 업무를 하며 스타일 가이드에서 사용하고 있는 ESLint에 관심이 생기게 되었고, 어떻게 동작하는지 소스코드를 분석해보다가 ESLint에…
바닥부터 시작하는 Vue 테스트와 리팩토링 from if kakao 들어가며 안녕하세요. 카카오 FE플랫폼팀 Lumi입니다. 얼마 전 열렸던 kakao FE(Front end) meetup 행사에서 '바닥부터 시작하는 Vue 테스트와 리팩토링’이라는 주제로 발표를 맡았고, 그때 발표했던…
카카오커머스를 지탱하는 Angular from if kakao 카카오커머스의 FE개발파트는 React나 순수 JS로 개발되어있던 선물하기, 쇼핑하기 등 각 서비스 프레임웍을 모두 Angular로 전환하고 있습니다. 이 글에서는 이 결정을 하게 된 배경과 Angular가 어떤 프레임웍이고…
프렌즈타임 웹앱 삽질기 from if kakao 안녕하세요, 카카오게임즈에서 프렌즈타임 클라이언트를 개발하고 있는 mark입니다. 지난 11월 13일 진행된 kakao FE meetup에서 ‘프렌즈타임 웹앱 삽질기’ 라는 주제로 발표한 내용을 옮긴 글입니다. 주니어 개발자로 팀에 합류하…
이 글은 <카카오 나우>의 콘텐츠를 인용했습니다. ‘세상을 조금 더 좋아지게 만드는 사람들’ 기술 발전 속도가 거세짐에 따라 더 많은 개발자들이 보다 나은 내일을 만드는데 기여하고 있습니다. 수천만 명이 사용하는 카카오 서비스들의 이면에도 여러 개발자들이 한 땀 한 땀 엮어놓은 알고리듬…
안녕하세요? 카카오 기술전략팀 candice입니다. 지난 11월13일, 카카오 프론트엔드 개발자들이 우수한 서비스를 완성하기 위해 어떤 치열한 고민을 했는지 다양한 인사이트를 공유하는 ‘kakao FE(Front end) meetup’을 개최하였습니다. 밋업 형식으로 개발자 분들과 함께…
올해 오프라인으로 진행된 2차 코딩 테스트 문제는 가상의 SNS 카카오팔로잉을 위한 팔로잉 추천 시스템을 구현하는 것이었습니다. 카카오팔로잉 카카오팔로잉은 팔로우 기반의 구독형 SNS로, 팔로잉(팔로우 중인 상대 사용자)의 글과 사진을 볼 수 있는 서비스입니다. 이 서비스는 다음과 같이…
올해에도 2020이라는 멋진 숫자와 함께, 카카오의 신입 개발자 채용을 시작했습니다! 그 여정 중 첫 단계로 1차 코딩 테스트가 지난 9월 7일 토요일 오후 2시부터 오후 7시까지 5시간 동안 진행됐는데요. 저희 준비위원들도 설렘과 긴장 속에 원활한 진행을 위해 노력했고, 무사히 1차…
지난주 금요일이었던, 9월 6일에 열린 KafkaKRU(Kafka 한국사용자 모임) 제3회 미니 밋업에 참여하였습니다. Apache Kafka 관련 소식과 운영 노하우 등을 공유하는 자리였으며, 카카오가 후원하였습니다. 밋업 행사에 참여하지 못한 분들을 위하여 해당 내용을 소개합니다.…
새로워진 kakao Tech를 소개합니다. 카카오의 대표적인 기술 채널로 발돋움하고자, "지식 공유, 가치 창출, 공개 성장, 기술 상생"이라는 4개 주제에 맞춰 사이트를 개편했습니다. 또한, 카카오와 카카오 공동체의 채용 정보도 발빠르게 전달하는 섹션을 추가했습니다. 앞으로도 카카오는…
GraphQL은 페이스북에서 만든 쿼리 언어입니다. GrpahQL은 요즘 개발자들 사이에서 자주 입에 오르내리고 있으나, 2019년 7월 기준으로 얼리스테이지(early-stage)임은 분명합니다. 국내에서 GraphQL API를 Open API로 공개한 곳은 드뭅니다. 또한, 해외의…
- blog - support 참여 후기: Open Infrastructure & Cloud Native Days Korea 2019 지난 주 18일부터 19일까지 양일간 진행된 Open Infrastructure & Cloud Native Days Korea 2019 행사에 카카오가…
이 글은 카카오 아레나 2회 대회(Part.1) - 브런치 데이터의 탐색과 시각화라는 이름으로 카카오 정책산업연구 브런치에 동시 개제되었습니다. 브런치 이용자의 취향을 분석하라 지난해 11월 개최된 카카오 아레나 1회 대회에 이어 카카오 아레나 2회 대회가 개최되었습니다. 첫 번째 대회…
Kubernetes는 컨테이너 오케스트레이션 영역에서 거의 표준으로 자리 잡은 오픈소스 시스템입니다. kubernetes를 사용하게 되면 여러대의 노드를 하나의 클러스터로 묶어서 사용가능하게 됩니다. 클러스터를 구성하는 노드들중에 일부에 장애가 발생하더라도 장애가 난 곳에 있던 컨테이너…
- blog - events 문제 해결을 위한 머신러닝 오픈 플랫폼, 카카오 아레나 이 글은 카카오 정책산업연구 브런치에 동시에 개제되었습니다. 지난 2018년 11월 카카오는 머신러닝으로 문제를 해결하고 최적의 솔루션을 찾는 대회를 시작했다. 이 대회는 ‘카카오 아레나’라는 공간을 통…
- blog - open source kakao의 오픈소스 Ep9 - Khaiii : 카카오의 딥러닝 기반 형태소 분석기 “카카오의 오픈소스를 소개합니다” 아홉 번째는 jamie.lim과 자연어 처리 파트 동료들이 함께 개발한 **khaiii(Kakao Hangul Analyzer II…
지난 10월 6일(토) 2019 블라인드 공채 오프라인 2차 코딩테스트가 진행되었습니다. 작년에는 8시간 동안 온라인으로 진행한 것과는 달리 오프라인으로 5시간 동안 치러졌는데요, 어떤 의도로 출제하였는지 살펴보겠습니다. 작년 2차 코딩테스트 회고 작년 문제 출제 의도를 기억하시는지요?…
지난 9월 4일, 코엑스 그랜드볼룸에서 카카오의 개발자 콘퍼런스인 if kakao 2018이 성황리에 마쳤습니다. 카카오 이름을 건 첫 번째 개발자 콘퍼런스인 if kakao 2018은 인공지능, 메신저, 택시, 결제/송금, 검색 등 수많은 영역에서 쌓은 카카오의 기술과 노하우를 외부에…
작년에 이어 올해도 블라인드 전형으로 카카오 개발 신입 공채가 시작되었습니다! 그 첫 번째 관문으로 1차 온라인 코딩 테스트가 지난 9월 15일(토) 오후 2시부터 7시까지 5시간 동안 치러졌는데요. 지원자분들 만큼이나 준비위원들도 테스트가 문제없이, 공정하게 치러질 수 있도록 많은 준…
2018 코드 페스티벌, 뜨거운 열기와 함께 본선 시작! 지난 8월 25일 토요일, 카카오 코드 페스티벌 오프라인 본선이 진행됐습니다. 예선에서의 엄청난 경쟁률을 뚫고 당당히 본선에 진출한 64명의 실력자들이 함께 했는데요. 작년과는 다르게 카카오 판교 오피스에서 행사를 개최하여 더 뜻…
카카오는 여전히 같은 생각입니다.개발자가 자신의 가치를 증명할 수 있는 것은 자소서나 스펙이 아니라 코드라고 말이죠! 올해는 카카오를 포함하여 5개 기업이 함께 합니다.지금 바로 도전하세요! new developer coming! [2019 카카오 블라인드 신입 개발자 공채] ▶ 접수…
카카오 코드 페스티벌 예선전, 많은 관심 감사합니다! 작년에 이어 두 번째로 진행된 카카오 코드 페스티벌, 온라인 예선이 지난 8월 4일 토요일에 진행됐습니다. 작년보다 더욱 많은 6,000여 명의 참가자들이 6시간 동안 뜨거운 열정을 발휘했는데요, 특히 실시간으로 바뀌는 스코어보드를…
용어 정리 이 설명에서는 인덱스의 정렬 순서와 데이터 읽기 순서 등 방향에 대한 단어들이 혼재하면서, 여러 가지 혼란을 초래하기 쉬운 설명들이 있을 것으로 보인다. 그래서 우선 표준 용어는 아니지만, 나름대로 몇 개 단어들에 대해서 개념을 정립하고 그 단어를 번역 없이 영어로 그대로 표…
- blog 사용하면서 알게 된 Reactor, 예제 코드로 살펴보기 Reactor는 Pivotal의 오픈소스 프로젝트로, JVM 위에서 동작하는 논블럭킹 애플리케이션을 만들기 위한 리액티브 라이브러리입니다. Reactor는 RxJava 2와 함께 Reactive Stream의 구현체이…
파이썬은 놀라운 생산성을 발휘하는 언어입니다. 하지만 성능 문제는 늘 발목을 잡게 합니다. 이 문제를 극복하는 방법으로 일반적으로 C Extension을 작성하는 방법이 권장되며, 여기서는 표준 편차를 구하는 함수를 작성하여 순수 파이썬의 성능과 NumPy, 각종 C++ Extensio…
블라인드 채용으로 관심을 모은 카카오 신입 공채의 세 번째 테스트가 지난 10월 29일(일), 오후 2시부터 6시까지 네 시간에 걸쳐 오프라인으로 치러졌습니다. 두 차례의 온라인 테스트를 통과한 지원자들이 한 자리에 모여 다시 한번 실력을 검증하는 자리를 가졌습니다. 세 번째 관문 오프…
지난 10월 14일(토) 오후 2시부터 10시까지 8시간 동안 온라인 2차 코딩 테스트가 있었습니다. 1차 코딩 테스트와도 사뭇 다른 형식이라 신선했다는 의견도 있고, 당황한 지원자도 있었을 텐데요. 2차 문제에는 어떤 의도가 숨어있는지 살펴보겠습니다. 추가적으로 어떤 테스트를 해야할까…
Overview Part 1: 분산 웹 캐시에서는 카카오의 트래픽을 처리하고 있는 Wcache에 대한 간략한 소개를 하였습니다.이전 버전의 Wcache는 기본적으로 준수한 응답속도를 보이고 있었지만, metadata를 집중된 DB에 저장하는 방식 및 기타 구조상의 문제로 인한 성능 안정…
Overview 웹 서비스의 규모가 커지고 이용자의 수가 늘어날수록 서비스 제공자는 scalability 이슈에 직면합니다.그중에서도 실제 ‘로딩 속도’의 차이를 느끼게 해 주고 트래픽의 대부분을 차지하는 정적 컨텐츠의 신속한 제공은 서비스 품질을 좌우하는 중요한 요소가 되곤 합니다.…
‘블라인드’ 전형으로 실시되어 시작부터 엄청난 화제를 몰고 온 카카오 개발 신입 공채. 그 첫 번째 관문인 1차 코딩 테스트가 지난 9월 16일(토) 오후 2시부터 7시까지 장장 5시간 동안 온라인으로 치러졌습니다. 지원자들의 개발 능력을 잘 검증하기 위해 출제 위원들이 한 땀 한 땀…
hbase-packet-inspector 이번에 카카오에서 오픈소스로 공개한 hbase-packet-inspector (이하 HPI) 는 HBase 리젼서버의 네트워크 패킷을 분석해 요청과 응답 정보를 추출하는 툴입니다. 기존의 모니터링 툴을 통해서는 알 수 없었던 보다 상세한 정보들을…
- blog Parallel Programming and Applicative in Scala Monolithic 아키텍쳐로 개발하기 Monolithic 아키텍쳐로 개발시에는 일반적으로 하나의 저장소만 고려해야 하는 경우가 많았습니다. Monolithic 아키텍쳐를 사용하면 편리한점이…
2014년 합병 이후, 카카오의 첫 신입 개발자 공채가 시작됩니다. 학력, 전공무관! 웹, 모바일 서비스에 열정이 있다면 누구나 지원 가능한 카카오의 첫 ‘블라인드 신입 개발자 공채’! [2018 카카오 블라인드 신입 개발자 공채] ▶모집 분야 : 웹/모바일/서버개발 ▶접수 기간 : 8…
함께 축제를 즐겨주신 모든 분들께 감사드립니다! 지난 8월 5일 토요일, 카카오 코드 페스티벌의 온라인 예선이 개최되었습니다. 합병 후 카카오라는 이름으로 처음 열리는 개발자 행사인 만큼, 여러 카카오 크루들이 긴장되지만 신나는 마음으로 대회를 준비했습니다. 이번 예선전에는 총 6개의…
- blog - open source kakao의 오픈소스 Ep7 - CMUX: CLI에 날개를 달자! “카카오의 오픈소스를 소개합니다” 일곱 번째는 jon.kwon과 동료들이 개발한 CMUX입니다. CMUX는 Cloudera Manager 기반의 하둡 클러스터를 관리하는데 필요한 대화…
- blog - open source 오픈소스 간단 리뷰 - nomad : 가벼운 스케쥴러, 강력한 성능 Introduction 서비스 스케줄러는 클러스터 내의 컴퓨팅 리소스를 관리하고 사용자 애플리케이션을 어느 호스트에서 서비스할지 결정하는 시스템 소프트웨어입니다. 컨테이너 스케줄러로…
Overview 대부분의 초기 스타트업은 컨텐츠를 저장할 저장소에 대한 별다른 고민을 하지 않습니다. 여유가 있다면 NAS 장비를 구매해서 사용하고, 아니라면 NFS와 RAID를 구성해서 사용하게 됩니다. 하지만 서비스가 점점 커짐에 따라 하루 동안 저장되는 컨텐츠의 용량이 커지고, 네…
2016년 개편된 Daum영화 프론트엔드 개발에는 ReactiveX의 JavaScript 라이브러리 RxJS 4를 사용했습니다. ReactiveX는 ReactiveX Introduction에서 callback의 문제점에 도움을 주는 것으로 소개가 되어 있습니다. 웹에서는 Angular…
- blog - open source kakao의 오픈소스 Ep6 - Cite “카카오의 오픈소스를 소개합니다” 여섯번째는 niko.bellic이 개발한 Cite입니다. Cite는 Container as a Service(CaaS)로서 소스코드를 빌드하고 배포하며 운영하는 일련의 과정을…
KEMI(Kakao Event Metering & monItoring)는 카카오의 전사 리소스 모니터링 시스템 입니다.서버, 컨테이너와 같은 리소스의 메트릭 데이터를 수집해서 보여주고 설정한 임계치에 따라 알림을 보내주는 KEMI-STATS과 ETL을 통해 수집한 log를 대시보드 형태…
어쩌다보니 키스톤! 지난 8월 13일(토)부터 이틀간 코엑스 그랜드에서 열렸던 PyCon 2016 APAC에서 카카오 부스를 지켰던 iolo.fitzowen 입니다. 키스톤 스폰서 자격으로 행사장에서 가장 큰 부스를 운영하게되었는데, 거대한 부스를 어떻게 활용할 것인가를 오랫동안 고민했…
- blog 개발자를 위한 SSD (Coding for SSD) - Part 6 : A Summary – What every programmer should know about solid-state drives 이번 챕터에서는 지금까지 언급했던 내용들을 간략히 요약해서 정리해 보았다.조…
- blog 개발자를 위한 SSD (Coding for SSD) - Part 5 : 접근 방법과 시스템 최적화 지금까지 SSD 드라이브의 내부적인 작동 방식에 대해서 살펴 보았다.또한 SSD를 접근할 때 어떤 방식이 사용되어야 하며, 그리고 그 접근 방법이 다른 방법보다 왜 나은지 등의…
- blog 개발자를 위한 SSD (Coding for SSD) - Part 4 : 고급 기능과 내부 병렬 처리 이번 챕터에서는 SSD의 주요 기능인 TRIM과 Over-provisioning에 대해서 간단히 살펴보도록 하겠다.또한 SSD의 내부 병렬 처리와 클러스터링 블록에 대해서도…
- blog 개발자를 위한 SSD (Coding for SSD) - Part 3 : 페이지 & 블록 & FTL(Flash Translation Layer) 이번 챕터에서는 데이터 쓰기가 Block과 Page 레벨에서 어떻게 처리되는지,그리고 쓰기 시에 발생하는 “Write Amplica…
- blog 개발자를 위한 SSD (Coding for SSD) - Part 2 : SSD의 아키텍처와 벤치마킹 이 챕터에서는 NAND 플래시 메모리의 기본적인 내용과 셀 타입 그리고 SSD의 기본적인 내부 아키텍처에 대해서 살펴보고,추가로 SSD의 벤치마킹 방법과 벤치마킹 결과를 해석…
- blog 개발자를 위한 SSD (Coding for SSD) - Part 1 : 목차 Introduction 현재 개발중인 Key/Value Store가SSD를 최적으로 사용하도록 하기 위해서는 SSD의 내부적인 특성이나 작동 방식에 대해서 정확한 이해가 필요했다.인터넷에는 이미 많…
- blog ADT 활용 예제1: MySQL Shard 데이터 재분배 샤딩의 한계 카카오의 많은 서비스들이 데이터베이스로써 MySQL을 사용합니다. 그리고 서비스 규모가 커지면 대용량 분산을 위해 샤딩을 합니다. 카카오에서 많이 사용하는 샤딩 방법으로 크게 두 가지 방식이 있습니다. -…
- blog 루빅스(RUBICS) - kakao의 실시간 추천 시스템 루빅스는 실시간으로 사용자 반응을 분석하여 콘텐츠를 추천하는 카카오의 추천 시스템입니다. 2015년 5월에 다음 포털 뉴스 서비스의 일부 사용자를 대상으로 뉴스 기사를 추천하기 시작했고, 한달 뒤인 6월부터 전체 사용…
**Weekly Links**에서는 지난 한 주, 카카오의 기술 블로그 담당자가 구독하는 기술 뉴스레터들에서 “인간의 눈”으로 선별한 링크들을 짧은 코멘트와 함께 공유합니다. 포함된 뉴스레터 목록은 awesome-tech-newsletters에서 확인하실 수 있습니다. 2016년 4월…
트래픽이 많은 웹 서비스를 운영하다보면 CPU는 여유가 있지만 웹서버가 응답을 제대로 처리하지 못하고 먹통이 되는 경우를 종종 보게 됩니다. 여러가지 이유가 있겠지만, 이 글에서는 가장 대표적인 경우인 CLOSE_WAIT 상태를 재현하고 원인과 문제점 그리고 해결책을 알아봅니다. 나아가…
하나의 모바일 앱이 마켓에 출시되기까지는 수많은 빌드와 배포 과정을 거치게 됩니다. 더 자주, 더 빠르게, 더 높은 품질의 서비스를 출시하기 위해서는 효율적인 빌드와 배포는 필수적입니다.카카오에는 모바일 앱을 지속적으로 통합(Continuous Integration)하고 지속적으로 배포…
개요 MySQL의 InnoDB에는 Adaptive Hash Index 기능이 있는데, 어떤 상황에서 효과가 있고 사용 시 반드시 주의를 해야할 점에 대해서 정리하도록 하겠습니다. InnoDB B-Tree 인덱스 MySQL의 InnoDB의 대표적인 인덱스는 B-Tree입니다. 데이터는 P…
**Weekly Links**에서는 지난 한 주, 카카오의 기술 블로그 담당자가 구독하는 기술 뉴스레터들에서 “인간의 눈”으로 선별한 링크들을 짧은 코멘트와 함께 공유합니다. 포함된 뉴스레터 목록은 awesome-tech-newsletters에서 확인하실 수 있습니다. 2016년 4월…
이번 글에서는 DNS 기반의 Redis HA에 대한 이야기를 해보려고 합니다. DNS TTL이 무엇인지 그리고 그것을 어떻게 이용해서 Redis HA를 구현했는지 살펴보겠습니다. 도메인의 TTL 먼저 도메인의 TTL에 대해 이야기해 보겠습니다. TTL은 Time To Live의 약자로…
- blog - open source kakao의 오픈소스 Ep3 - HBase Region Inspector “카카오의 오픈소스를 소개합니다” 세번째는 jg.choi와 동료들이 개발한 HBase Region Inspector입니다. HBase Region Inspector는 HBase…
Redis의 기능 중에 쓰면 안되지만, 그 단맛에 끌려 어쩔 수 없이 치게 되는 명령이 KEYS입니다. KEYS를 쓰는 순간, Redis는 이 명령을 처리하기 위해서 멈춰버립니다. 특히 트래픽이 많은 서버는 이 KEYS 명령 하나 때문에 많은 장애를 내게 됩니다. 그런데 어느 순간(!)…
함수형 언어에 대해서 공부를 하다보면 언제나 Monad라는 녀석을 마주치게 됩니다. [Category Theory][1]의 수학적인 개념이 바탕이 되어 있는 Monad를 접하면 어렵고 난해해서, 많은 사람들이 Monad를 학습하는 과정에서 함수형 언어를 포기합니다. 하지만 Monad라는…
vimrc 건드리기 좋은 목요일입니다. ;) 기술 블로그 담당자가 글을 내놓으라고 닥달하니, 예전에 만들었던 플러그인이나 한번 꺼내볼까 합니다: vim-github-dashboard 실행 화면 Vim 상에서 GitHub API를 이용해 dashboard 페이지를 보여주는 플러그인입니다.…
얼마 전, 렘(Realm)의 기술 블로그에 올라온 코드리뷰, Github로 바로 적용하기 - Realm에서의 코드리뷰 소개라는 글이 많이 회자되었죠. 카카오는 어떻게 하고 있을까~ 궁금해서 수소문을 했더니, 사내에서도 깃헙 잘 쓰기로 소문 난 카카오스토리 웹 클라이언트팀은 코드 리뷰도…
- blog - open source kakao의 오픈소스 Ep1 - 대용량 분산 그래프DB “S2Graph” “카카오의 오픈소스를 소개합니다” 첫번째는 shon.0와 동료들이 개발한 S2Graph입니다. S2Graph는 카카오에서 1년 여의 개발을 거쳐 카카오톡, 카카오스토리, 카카오…
개요 현재 카카오에서 대부분의 웹서버는 L3DSR (Direct Server Return)구성의 L7 HealthCheck 방식을 사용 중입니다. L7 HealthCheck 방식은 앞서 블로그에서 기술한적이 있는 것처럼 OSI 7Layer 중 Layer7 계층의 어플리케이션 응답을 체크…
Overview 네트워크 기술 하나 중 Anycast 는 DNS 서비스에서 주로 사용하고 있지만 KAKAO는 Anycast 기술을 확장하여 여러가지 어플리케이션 서비스에 사용되고 있습니다. 특히 서버에서 Quagga 오픈소스를 이용하여 KAKAO 자체 망을 이용한 각 글로벌 POP 에…
Overview 서비스 웹서버 Load Balancing을 위한 메커니즘으로 KAKAO에서는 L3DSR 방식을 사용하고 있습니다. 멀티IDC에서 L3DSR 방식을 활용, IDC 위치나 서버의 물리적인 위치에 따른 제한없이 서비스 웹서버 Load Balancing이 가능하도록 구성하고 있…