[후기] if kakao 개발자 컨퍼런스 2018

if kakao 2018

카카오에서 개발자 컨퍼런스를 개최했다. 너무 운 좋게도 참가자로 선정되어 다녀왔다. 주변에 선정된 사람이 극히 드문 걸 보면 경쟁률이 치열했던 모양이다. COEX 그랜드볼룸에서 진행됐고, 오전 10시 5분에 키노트로 시작해서 총 5개의 세션을 포함 오후 5시에 끝났다. 유익하게 잘 들었다. 잊기 전에 내가 들었던 세션들에 대해 간략하게 정리해두려 한다. (들으면서 동시에 필기를 해두지 않아서 상당 부분 기억에 의존한 글이라 불확실할 수 있다.)

카프카, 산전수전 노하우 / 고승범(peter.ko)

카프카로 책까지 출간하신 분께서 발표하셨다. 아마 경험 있는 사람이 들었으면 꽤나 유용하고 깊이 있었으리라. 나는 갓 서버 개발자로 일을 시작한 터라 카프카 잘 모른다. 회사 위키에서 잠깐 맛보기 해봤다고 궁금해서 들어 본 세션이다. 그래도 의미있었다. 회사에 가서 위키를 다시 보면 조금 더 수월하게 이해할 수 있지 않을까.

클러스터, 파티션, 토픽, 프로듀서, 컨슈머 등의 주요 개념들과 직접 겪었던 문제에 대해 소개해주셨다. 프로듀서는 PUSH 하고 컨슈머는 PULL 하는 그 가운데에 중개자로 카프카가 있다. 프로듀서와 컨슈머의 속도가 다르기 때문에, 카프카가 컨슈머로 PUSH 하는 방식은 사용하지 않는다고 한다. 카프카가 컨슈머들의 속도를 체크해서 보내는 것은 비효율적이니까.

컨슈머가 PULL 할 때는 offset을 기반으로 하는데, 이로 인해 파티션이 여러 개가 되면 순서를 보장할 수 없다고 한다. 파티션 내에서의 순서는 offset 값으로 보장되지만 파티션 간의 순서는 보장되지 않아서. 따라서 카프카를 사용하면서 순서를 반드시 보장해야 하는 경우, 파티션을 한 개만 사용해야 한다.

리더와 팔로어 그리고 Replication에 대한 소개도 있었는데, 리더가 다운되었을 때 팔로어가 리더를 위임받고 복제가 어떻게 이루어지는가에 대한 설명들이었다. 팔로어가 여럿일 수 있으니까 다양한 상황에 대해 하나하나 설명하셨다.

카카오에서는 사용하지 않는 토픽이 늘어만 가는 것을 막기 위해 모니터링?도 하고 있다고 했다. 조건을 두고 (예를 들면 몇 일 이상 사용하지 않는 토픽) 그에 부합하면 삭제 후보가 되어 알리는 방식이다. 중요한 토픽이 삭제되는 경우를 막기 위해 삭제 예정일 몇 일 전부터 알림을 주고 있다고.

카카오 봇 플랫폼 소개 / 황지수(mario.h)

제일 넓은 공간에서 진행됐다. 카카오에서 그만큼 중요하게 생각한다는 건가. 사람도 많았다. 플러스 친구로 서비스 되고 있는 카카오 챗봇에 대해 소개하는 세션이었다. 현재 적용된 챗봇 서비스를 동영상으로 보여주고 해당 서비스가 어떻게 구현되었는지 설명하셨다.

오늘 판교 날씨 어때? 같은 간단한 예제로 시작해서 각 모듈?에 대한 설명이 이어졌다. 여기서 오늘이나 판교 같은 특정 값들은 다른 값으로 치환될 수 있으니까 모든 경우를 하나하나 처리하지 않고 하나의 파라미터로 활용을 하는 것이다.

즉, @시간 @도시 날씨 어때? 와 같은 패턴이 되는 것이다. 어때? 라는 어미도 어떠하다 라는 원형으로 치환이 되는 것이라고 했다. 당연하겠지만, 결국 자연어 처리가 핵심인 것 같았다.

고객 응대를 챗봇으로 부분 대체하면서 상담원 문의량이 줄어든 것이 큰 성과라고 했다. 주문도 챗봇을 통해 할 수 있다고.

카카오 오픈 빌더는 키노트 때도 강조됐던 내용인데 카카오에서 AI 관련해서 많은 투자를 하고 있다고 느껴졌다. 오픈 빌더는 12월 베타 공개 예정이라고 했나. 오픈 빌더를 통해 챗봇 커스텀이 가능하다는 건데 궁금하다. 카카오 계정이랑 연동해서 편하게 쓸 수 있지 않을까 싶다.

카카오 광고 플랫폼 MSA 적용 사례 및 API Gateway와 인증 구현에 대한 소개 / 황민호(robin.hwang)

점심 시간 후에 이어진 세션인데, 나름 늦지 않게 갔는데도 룸이 꽉 차있어서 듣지 못하고 중간에 나왔다… 서서 들으려고 찰나 고민하다 한 턴 쉬고 가는 걸로… 듣지 못해 아쉽다. 나중에 올라오면 들어봐야지.

비디오 특성 분석 및 딥러닝을 이용한 실시간 인코딩 효율 최적화 / 여욱형(jaden.y)

그나마 배경 지식이 조금 있다고 제일 재밌게 들었던 세션이다. 각 기반 기술들(딥 러닝이나 인코딩)에 대한 지식이 깊지 않지만 맥락을 따라갈 수 있었다. HLS 경력을 더 깊게 전문적으로 이어 갔다면 비슷한 고민과 시도를 하는 순간이 오지 않았을까. 물론 내가 이러한 고민과 시도를 할 수 있는 훌륭한 조직에 있을 것이라는 전제가 필요하겠다.

제목 그대로 비디오 특성 분석이 선행하고 그에 맞추어 인코딩 값을 설정하겠다는 것이 포인트다. NetflixYoutube 도 그러한 흐름으로 변화하고 있다고 한다. 영상 특징에 따라 비트레이트를 배분하는 것이다. 스트리밍을 하기 위해선 스트림에 대한 인코딩이 필요한데, 그 앞 단에 초적의 인코딩 파라미터를 찾는 딥러닝을 선행한다. 이를 통해, 예를 들면, 정적인 화면과 동적인 화면에서 할당하는 비트레이트를 다르게 하여 효율은 높이고 손실은 최소화 할 수 있게 된다.

영상을 분석의 요소들도 굉장히 다양했는데, 앞서 예로 들었던 움직임도 하나고 해상도나 프레임을 구성하는 블록 및 파티션 사이즈 분포 등도 있었다. 약 20여가지의 데이터를 가지고 영상을 분석한다고 했다. 또한 평균 비트레이트를 의미하는 ABR(Average Bit-Rate) 과 비교하며 이 방식에 대한 장/단점을 소개해주셨다.

동영상 서비스가 늘어나는 만큼 중요하고 필요한 일이겠다는 생각이 들었다. 유익한 세션이었다.

글로벌 게임 플랫폼에서 무정지, 무점검 서버 개발과 운영 사례 / 김태현

이 세션은 유일하게 블리자드 시니어 개발자님께서 발표하셨다. 선물로 키 체인과 스타크래프트 리마스터 팩을 👍

무정지, 무점검 서버 개발이라는 매혹적인 문구에 듣게 된 세션이다. 발표자님께서 유쾌하셔서 분위기가 제일 좋았던 세션이다. 무정지, 무점검을 어렵게 하는 것들을 소개하고 블리자드에서는 어떻게 해결하고 있는지 소개하셨다.

  • 패치
    • Flipping 방식을 통해 패치 전/후 버전으로 Site를 두 벌 준비하고 그대로 뒤집기
    • 이를 통해 역으로 버전을 올렸다가 문제가 생겨서 낮추는 것도 쉽게 하고 있다고
  • 설정 변경 (config)
    • 설정 파일 자체를 서버에 두지 않고 Google Protobuf 프로토콜을 이용
  • 상수 변경
    • Var System 이라 부르는 것을 사용해서 외부에서 상수 값을 실시간으로 수정
    • 이것이 보안 취약점이 아니냐는 어떤 분의 예리한 질문이 있었는데 일단 망 분리가 되어 있고 문제 없이 쓰고 있다고 답변
  • 스케일링
    • 잘 기억나지 않는다.
  • 장애
    • 장애는 피할 수가 없으니 장애에서 빨리 복구하는 것을 중점으로 하고
    • 원인 모를 장애가 발생했을 땐 트러블 슈팅에 시간을 쏟기 전에 일단 Flipping을 통해 서버를 먼저 재배포
    • 그 후 장애가 발생한 서버는 서비스하지 않은 상태에서 트러블 슈팅을 진행

모든 서버의 상태를 체크할 수 있는 GUI를 활용하고 있다고 설명하셨고 DevOps를 하나의 문화로서 받아들이고 있다고도 설명하셨다. AI가 더 고도화되어 가는 시대에 기술이 어떻게 변할지에 대해서도 간략하게 본인의 생각을 말씀해주시고 세션을 마쳤다.


당장 활용할 수 있는 부분은 적을 것 같지만 견문을 넓히기엔 충분했다. 꾸준히 공부해야지. 🤓

jhgu