No Image

카카오 신입 공채 3차 코딩 테스트 문제 해설

2017-11-14 KENNETH 0

카카오 신입 공채 3차 코딩 테스트 문제 해설 블라인드 채용으로 관심을 모은 카카오 신입 공채의 세 번째 테스트가 지난 10월 29일(일), 오후 2시부터 6시까지 네 시간에 걸쳐 오프라인으로 치러졌습니다. 두 차례의 온라인 테스트를 통과한 지원자들이 한 자리에 모여 다시 한번 실력을 검증하는 자리를 가졌습니다. 세 번째 관문 오프라인 코딩 테스트는 온라인 코딩 테스트와는 사뭇 달랐습니다. 1차와 2차 코딩 테스트에서 상위권의 우수한 성적을 거뒀던 지원자가 3차 코딩 테스트의 관문을 통과하지 못한 경우도 있었습니다. 현장에 와서 다른 지원자와 함께 경쟁한다는 긴장감도 있을 테고요. 자신이 쓰던 집이나 학교의 컴퓨터가 아니어 불편했을 겁니다. OS나 IDE 등의 개발 환경도 평소 자신이 쓰던 것과 달랐을 겁니다. 특히나 문제를 풀다가 막혔을 때 애용하던 “검색 찬스”도 쓸 수 없을 테고요. 1차 코딩 테스트에서 Java 언어 사용자들이 고전했다면, 2차와 3차 코딩 테스트에서는 C++ 사용자들이 힘들어했습니다. 1차 응시자들은 대부분 3차 코딩 테스트에서도 같은 언어로 시험을 봤습니다. 다만, 1차에서 여러 언어를 [ more… ]

카카오 신입 공채 2차 코딩 테스트 문제 해설

2017-10-24 KENNETH 0

카카오 신입 공채 2차 코딩 테스트 문제 해설 지난 10월 14일(토) 오후 2시부터 10시까지 8시간 동안 온라인 2차 코딩 테스트가 있었습니다. 1차 코딩 테스트와도 사뭇 다른 형식이라 신선했다는 의견도 있고, 당황한 지원자도 있었을 텐데요. 2차 문제에는 어떤 의도가 숨어있는지 살펴보겠습니다. 추가적으로 어떤 테스트를 해야할까? 1차 코딩 테스트는 어려운 알고리즘 문제가 아닌 자료구조, 알고리즘 등의 전산학 기초에 대해 충분히 학습하였다면 누구나 풀 수 있을만한 “구현” 위주의 문제들로 구성을 하였고, 총 7문제 중 4문제 이상 푼 지원자들에게 2차 기회가 주어졌습니다. 즉, 기본적인 구현 역량은 보유하고 있다고 할 수 있습니다. 그렇다면 추가적으로 테스트 해야하는 것은 무엇일까요? 온라인 2차 코딩 테스트 문제 출제 위원회에서는, 탄탄한 기본기를 바탕으로 새로운 것을 빠르게 습득하는 역량 요구사항을 꼼꼼하게 분석하고, 트레이드오프를 감안하여 디자인하여 구현하는 역량 결과를 모니터링하며 점진적으로 개선해나가는 역량 을 테스트할 수 있도록 2차 문제에 녹여내고자 하였습니다. 문제에 어떤 장치들이 있었는지 살펴볼까요? 이미지 특징값을 수집하는 Crawler 구현 REST [ more… ]

No Image

분산 웹 캐시 (Wcache)의 개선과정 – Part 2

2017-10-23 KENNETH 0

분산 웹 캐시 (Wcache)의 개선과정 – Part 2 Overview Part 1: 분산 웹 캐시에서는 카카오의 트래픽을 처리하고 있는 Wcache에 대한 간략한 소개를 하였습니다. 이전 버전의 Wcache는 기본적으로 준수한 응답속도를 보이고 있었지만, metadata를 집중된 DB에 저장하는 방식 및 기타 구조상의 문제로 인한 성능 안정성 문제, 그리고 기능상의 문제들이 잠재되어 있었습니다. 본 포스트에서는 이전 버전의 Wcache에서 어떠한 구조적 문제가 있었는지, 또한 이를 어떻게 해결하였는지를 다룹니다. Part 2: Wcache 저장 구조 변경 저장 구조 변경 – 성능 안정화 기존 BigFile 저장방식의 문제점 이전 포스트에 나와있듯이 Wcache는 metadata 정보를 컨텐츠와는 별도로 DB에 저장해 두고 있었습니다. 메모리에 올라와 있는 LRU hashtable에 원하는 컨텐츠가 캐싱되어 있지 않다면, SQLite DB에 컨텐츠 키를 가지고 어떤 BigFile에 있는지, 헤더의 길이는 얼마나 되는지 등의 정보들을 조회를 해야 하는 것이죠. 위 과정은 평상시 읽는 과정에서는 문제가 없었지만, block 단위로 컨텐츠를 디스크에 저장할 때와 BigFile이 가득 차 오래된 BigFile block들을 replace 할 [ more… ]

No Image

분산 웹 캐시 (Wcache)의 개선과정 – Part 1

2017-10-23 KENNETH 0

분산 웹 캐시 (Wcache)의 개선과정 – Part 1 Overview 웹 서비스의 규모가 커지고 이용자의 수가 늘어날수록 서비스 제공자는 scalability 이슈에 직면합니다. 그중에서도 실제 ‘로딩 속도’의 차이를 느끼게 해 주고 트래픽의 대부분을 차지하는 정적 컨텐츠의 신속한 제공은 서비스 품질을 좌우하는 중요한 요소가 되곤 합니다. 이런 수많은 컨텐츠들(Javascript, css, image 등)을 빠르게 제공하기 위해 클라이언트와 서버 사이에 위치하며 컨텐츠를 임시로 저장하는 Middlebox를 웹 캐시(web cache)라고 합니다. 웹 캐시의 기능은 Apache Traffic Server, Nginx, Squid와 같은 어플리케이션에서 지원하고 있으며, 대량의 컨텐츠를 처리하기 위한 전용 하드웨어 형태의 상용 솔루션도 있습니다. 본 포스트에서는 카카오에서 자체적으로 개발하여 운영 중인 웹 캐시, Wcache에 대한 간략한 소개를 진행하고 올해 상반기에 진행되었던 대대적인 구조 개편 내역을 다음 포스트에 설명하고자 합니다. Part 1: 분산 웹 캐시, Wcache 개발 배경 및 기본적인 기능 기존에 웹 캐시로 사용되던 상용 솔루션의 문제점은 아래와 같았습니다. 장비 대수가 증가함에 따라 늘어나는 라이센스 비용. 버그 수정 [ more… ]

카카오 신입 공채 1차 코딩 테스트 문제 해설

2017-09-27 KENNETH 0

카카오 신입 공채 1차 코딩 테스트 문제 해설 ‘블라인드’ 전형으로 실시되어 시작부터 엄청난 화제를 몰고 온 카카오 개발 신입 공채. 그 첫 번째 관문인 1차 코딩 테스트가 지난 9월 16일(토) 오후 2시부터 7시까지 장장 5시간 동안 온라인으로 치러졌습니다. 지원자들의 개발 능력을 잘 검증하기 위해 출제 위원들이 한 땀 한 땀 독창적이고 다양한 문제들을 만들어 냈고 문제에 이상은 없는지, 테스트케이스는 정확한지 풀어보고 또 풀어보며 만반의 준비를 기했습니다. 먼저, 가장 궁금해하실 1차 합격 기준부터 알려드립니다. 1차 합격 기준은 총 7 문제 중 4 문제 이상을 풀이한 분들입니다. 참고로 각 문제는 배점이 동일하므로 어떤 문제를 풀었던지 간에 관계는 없습니다. 문제는 쉬운 난이도에서 어려운 난이도 순으로 풀 수 있도록 차례대로 배치했는데요. 앞서 얘기했듯 모든 문제는 배점이 동일하며 부분 점수는 없습니다. 즉, 채점 테스트케이스를 하나만 틀려도 오답으로 처리가 됩니다. 하지만 입출력 예제에 대부분의 예외 사항을 포함했고 따라서 입출력 테스트를 정상적으로 통과했다면 채점도 무리 없이 통과할 [ more… ]