-
[2018.09.04] if(kakao) dev2018후기/세미나 2018. 9. 25. 22:14728x90반응형
새 회사 입사 2주만에 직전 회사의 컨퍼런스에 가게 되었다. 운좋게 추첨에 당첨되었기도 했고 휴가 사용 없이도 컨퍼런스에 참가할 수 있었기 때문에 더더욱 가고 싶었다. 카카오의 여러 가지 서비스들에 사용된 기술과 그것들을 사용함에 있어서의 고민들, 가치 등이 궁금했다. 또한 마지막 세션에는 토비님이 나온다고 하니 더더욱 가볼 수 밖에!
타임 테이블은 아래와 같다.
시간 세션명 09:30 참가 등록 10:00 Keynote 11:00 PDF
맵매칭 (부정확한 GPS포인트들로부터 경로 추정하기)PDF
텐서플로로 OCR 개발해보기: 문제점과 문제점과 문제점PDF
AI시대에 맞는 서비스 개발PDF
카프카, 산전수전 노하우PDF
다음 모바일 첫 화면 개선기12:00 PDF
카카오의 광고지능 (Intelligence on Kakao Advertising)PDF
Query by Image (이미지로 이미지 검색하기)PDF
딥러닝을 이용한 얼굴 인식PDF
카카오 봇 플랫폼 소개PDF
Kakao Cloud Native Platform, 9rumPDF
카카오뱅크 모바일앱 개발 이야기12:45 점심시간 14:00 PDF
Unify data and model using Apache S2Graph and GraphQL.PDF
무엇이든 물어보세요, 지식그래프 : 카카오미니와 검색 적용 소개PDF
눈으로 듣는 음악 추천 시스템PDF
오픈소스를 사용하고, 준비하는 개발자를 위한 가이드PDF
Klaytn: Service-Oriented Enterprise-Grade Public Blockchain PlatformPDF
카카오 광고 플랫폼 MSA 적용 사례 및 API Gateway와 인증 구현에 대한 소개15:00 PDF
TOROS N2 - lightweight approximate Nearest Neighbor libraryPDF
비디오 특성 분석 및 딥러닝을 이용한 실시간 인코딩 효율 최적화PDF
카카오톡의 서버사이드 코틀린PDF
액티브X 없는 블록체인 기반 PKI 시스템PDF
모바일 게임플랫폼과 인프라 구축 경험기16:00 PDF
딥러닝을 활용한 뉴스 메타 태깅PDF
카카오가 가지고 있는 음성처리 기술PDF
스프링5 웹플럭스와 테스트 전략PDF
글로벌 게임 플랫폼에서 무정지, 무점검 서버 개발과 운영 사례PDF
다음웹툰의 UX(Animation, Transition, Custom View)17:00 행사 종료 데뷰와 비교했을 때 약간 임팩트가 적은 느낌이 있었지만 이미 생활속 곳곳에 들어온 카카오들의 서비스를 만든, 개선한, 노력한 것들을 들을 수 있어서 좋았다.
당시의 사진들과 정리한 필기들을 그대로 첨부한다.
기조연설 (10:00 / 신정환, 김병학)
- 기조 (신정환)
- 세상은 전부 개발거리
- 수많은 생활의 접점에서 편리한 삶을 위해 카카오 기술을 사용
- 가치 네 가지
- Stability
- User Experience: if (tech+design) -> user
- Data
- Next Innovation
- AI (김병학)
- kakao i: kakao mini에 들어가는 AI 기술
- kakao i open builder
- AI 플랫폼
- 쉽게 AI 서비스 개발 가능
- 챗봇 개발 가능
- 이동
- 현대 자동차에 들어감 (2019년 예정)
- 집
- kakao home: GS건설, POSCO건설과 제휴
- 오픈 플랫폼화
- kakao i developers: 2018년 12월 베타 오픈 예정
- 커뮤니티 (신정환)
- 개발자 커뮤니티 + 카카오
- 블라인드 채용
- 기술 블로그
- 커뮤니티 지원
다음 모바일 첫 화면 개선기 (11:00 / R5, 고재성)
- 다음 모바일 첫 화면
- 아직도 다음 많이 쓰나요?
- WAU 750만, MAU 1700만
- 무엇이 바뀌었나?
- Content
- 콘텐츠 수집
- 과거: 수집관리 시스템 + Human Power -> 링크와 제목을 인력이 수동으로 관리
- 중간: 크롬 extension으로 클릭
- 개선: 시스템을 통한 모든 서비스 컨텐츠 수집
- 특정 이슈 발생 시: 뉴스나 콘텐츠 양이 증가 -> docker + mesos로 scale out
- 콘텐츠 분류
- 과거: Human Power
- 사람이 일일이 분류
- 비일관적 분류
- 오랜시간 소요
- 개선
- 머신러닝을 이요한 자동 분류 시스템
- 기술: 텐서플로우, fast Text, TF-ITF, word to back..
- 빠름, 자체 학습셋 구축
- 과거: Human Power
- 콘텐츠 선정
- 과거: Human Power
- 직접 선택, 타이틀 편집
- 개선: 추천 알고리즘 + Human Power
- 유저 반응 개선
- 다시 학습셋으로 사용
- 과거: Human Power
- 콘텐츠 노출
- 과거: 서버 렌더링
- 개인별 추천 적용 이전
- 모두 똑같은 화면
- 대규모 트래픽에 적합
- 고성능 시스템
- 장애에 강함
- 개선: 추천 API를 노출이 대다수
- 추천 API를 통한 관리
- 추천 API 제공 시스템에서 응답을 받아서 보여줘야 함
- circuit breaker 패턴: NETFLIX의 HYSTRIX 사용
- 추천 API 시스템이 응답을 못주면 미리 세팅된 Fallback message를 돌려줌
- 노출 관리, 품질 관리
- 노출 이력관리
- 데드링크 관리
- 이미지 크기 관리
- 과거: 서버 렌더링
- 앞으로는?
- 더 많은 시도 예정 (했던 것: 동물, 평창, 추천탭 등)
- 수집 -> 분류 -> 선정 -> 노출
- 관리 -> 분석!
- 콘텐츠의 노출 플랫폼 별 결과까지 관리
- 관심 있어할 만한
- 중복되지 않는 콘텐츠 노출
이미지로 이미지를 검색하기(Query by Image) (12:00 / R2, 이주영)
- 텍스트로 원하는 이미지를 검색할 수 있지 않을까?
- ex. 2018년 9월 4일 xxx가 공항에서 입은 검은색 티셔츠가 무엇인가요??
- 방법
- 단어 뽑아냄
- 해당 단어들로 검색
- 하지만 사진만 올리는 경우, 특정 단어들이 포함 안되는 경우 등... -> 검색 안됨
- 쿼리 앵커를 가지고 일정 거리 안에 있는 결과들을 보여줌
- 이미지 앵커와 positive의 거리가 이미지 앵커와 negative의 거리보다 가까운 것 고르기 : 이 함수를 찾기!
- Triplet Loss. CNN을 통과해 Similiarity 계산
- 카톡 #검색으로 이미지 검색
딥러닝을 이용한 얼굴 인식 (12:00 / R2, 신종주)
- 얼굴인식? : 주어진 영상에서 얼굴을 인식하여 누군지 알려줌
- 과정
- Detection
- Alignment
- Normalization: 돌아가거나 사이즈 등을 조절, 특징점 봅음
- Recognition
- 얼굴 인식 분류
- Identification vs. Verification
- Identification
- 입력된 얼굴과 등록된 얼굴들을 비교해서 판단
- Top-1&5 accuracy
- Verification
- 주어진 두 얼굴이 같은지를 판단
- TAR@FAR=0.001
- LFW (Labeled Faces in the Wild)
- 6000장의 이미지 pair에 대해 성능을 측정
- 사람의 성능: 97.53%
- 현재 기계의 성능: 99.77%
- Identification
- Identification vs. Verification
- 학습 방법
- Feature Embedding for Face Recognition
- Train
- conv, bn, act, pooling -> FC -> Softmax, Metric learning
- Test
- 피쳐 2개에 대해서 Euclidean distance, Cosine similarity
- Train
- Feature Embedding for Face Recognition
- 최근 얼굴 인식 연구 방향
- Metric Learning
- Trplet loss (CVPR 2015)
- Contrastive loss (NIPS 2014)
- Center loss (ECCV 2016)
- Ring loss (CVPR 2018)
- Angluar classification
- NormFace
- Recent Databases
- MSCeleb-1M (ECCV 2016)
- 10만명, 약 1000만장
- VGGFace2 (FG 2018)
- 9131명, 331만장
- 대부분 서양인
- MSCeleb-1M (ECCV 2016)
- Metric Learning
- 카카오의 얼굴 인식
- 영상 모으자! -> Kakao Dataset
- 한국인 + 외국인으로 측정: 92%, 99%
- 모으고, GT 찍고, 성능 높이고 반복 -> 자동화 예정
- 연내 API 오픈 계획
카카오 지식그래프 (14:00 / R2, 남기훈)
- 기존: 색인어 기반으로 검색. Text일뿐
- 지식그래프에서의 검색어: 의미를 가진 오브젝트
- 각 속성들을 그래프로 쪼개서 구성
- 카카오가 가진 콘텐츠들을 적재: Fact, 관계, 위치/시간 기준 탐색
- 카카오미니 적용
- ex. 트와이스 리더의 나이가 몇이야?
- -> 음성인식 -> 도메인 분류 -> 정보검색봇 -> Cruize QA -> CruiseQL -> Cruise KG
- -> 트와이스의 리더 나이는 만 21세예요
- 할 수 있는 것
- 정답검색
- 새로운 관계 찾기
- ...
- 검색 적용
- 두 인물의 관계 검색: ex. 김준현 정상훈의 관계
- 공통 속성 검색: ex. 160cm이상의 가수
- 지식그래프 쿼리와 색인어의 조합
- 지식그래프에서 연결을 어떻게 할까?
- Defiant
- 같은 객체 찾기
- 객체 분류
- Defiant
- 외부 데이터 연결 확장
- ontology로 구축된 데이터 구축
- 광고와 서비스의 연결
- 지식그래프의 추천 및 개인화
눈으로 듣는 음악 추천 시스템 (14:00 / R2,최규민)
- Song Vector
- Melon Data를 가지고 모델링
- 유저들의 Feedback data: Collaboration Filter
- CF의 대표 기술인 Matrix Factorization
- CBF: 장르 Classficiation Model
- 카카오에서의 Song Vector
- Stream Data, Word2Vec, User Playlist, DJ Playlist, Audio를 활용하여 추천
- Song Vector 탐색을 위한 전처리 작업
- Sampling -> Dimension Reduction -> Song Meta Mapping -> Song Segmentation
액티브X 없는 블록체인 기반 PKI 시스템 (15:00 / R4, 이한욱 카카오페이)
- 카카오페이 인증
- history: RSA, X.509, PKCS#1, 전자서명법 제정, Bitcoin, Hyperledger, 카카오인증 기획서 v0.1, 카카오페이 인증 오픈
- PKI(public key infrastructure) 소개
- 공개키 기반 암호화
- 전자서명
- 인증서
- HTTPS
- 기존 공인인증서의 문제점과 해결
- 액티브X
- IE에 플러그인 형태로 작은 실행파일로 동작
- 액티브X를 통해 비밀키를 사용
- 설치를 하지 않으면 기능을 쓸 수 없음. 어쩔 수 없이 설치
- 비밀키의 관리
- NPKI 폴더 복사 가능
- 해결
- 카카오페이에서 서버 검증 추가
- 액티브X
- 블록체인
- 비트코인 공개 네트워크 활용
- OP_RETURN 스크립트: 제한적인 사이즈의 데이터 저장 가능
- 사용자 인증서의 해시값을 여기다가 저장
- Finality of Bitcoin.
- 블록생성 10분 소요
- 최소 6개의 승인이 되야 안전
- 블록포함 시점 불분명
- 하이퍼레저 패브릭
- 특징
- Enterprise
- Private & Permissioned Network
- No coin But Asset
- Immediate Finality
- 특징
- 비트코인 공개 네트워크 활용
스프링 웹플럭스와 테스트 전략 (16:00 / R3, 토비)
- 스프링 웹 플러스
- 스프링 5.0에 새로 등장한 웹 프레임워크 + 리액티브 스택
- 플럭스 <-> 리액티브
- 웹 플럭스 vs MVC
- 도입 이유
- 100% 논블록킹 개발
- 확장성과 고효율성이 매우 중요
- 업, 다운 스트리밍과 Back pressure가 팔요
- 고속 서비스 오케스트레이션 개발
- 유사한 프로그래밍 모델의 경험
- 유연하게 커스터마이징이 가능한 웹 프레임워크 구성
- 본격적인 함수형 프로그래밍 모델 사용
- 사용하지 않는 게 좋은 이유
- 웹 플럭스가 왜 필요한지 분명하게 모름
- 볼로킹이 서버, 코드, 라이브러리에 존재
- SpringMVC로 개발했더니 아무 문제 없음
- 웹 플럭스는 MVC로 시작해도 됨
- 스프링5 MVC는 웹 플럭스에서 제공되는 다양한 기능과 프로그래밍 모델 제공
- MVC에서 WebClient 사용이 가장 좋은 출발점
- RestTemplate을 대체
- 리액티브 (함수형) 프로그래밍
- 인터넷시대의 복잠함을 해결하기 위해
- CompletableFuture vs Reactor Flux/Mono
- Flux/Mono가 장점이 많음
- 테스트
- block() + assert로 가능하긴 함
- StepVerifier를 사용!
- 리액티브 HTTP API 호출 테스트
- WebClientd
- 원격 리액티브 API 호출 - 러닝서버 통합테스트
- Flux 테스트로 작성 - StepVerifier
- 단위 테스트가 가능하지만 너무 복잡함
- 테스트용 MockServer를 사용
- 웹 플럭스의 새로운 아키텍처
- 기존 MVC는 서블릿 스펙과 서버의 제약 위에 개발
- 웹 플럭스는 독자적인 아키텍처를 가지는 프레임워크
- Functional Endpoint
- DH + Functional Endpoint
- Micro Web Framework : 스프링 컨테이너 없이 웹서버를 띄울 수 있음
- 함수형 엔드포인트 테스트 방법
- bindToRouterFunction
- @WebFluxTest
- 함수 단위 테스트
반응형'후기 > 세미나' 카테고리의 다른 글
[2019.06.25] 널리 세미나 (7차) (0) 2019.06.27 [2018.10.11~12] Deview 2018 (0) 2018.10.22 [2018.06.30] 2018 오픈소스 개발자 이야기 (1) 2018.07.07 [2018.06.19] Google I/O Extended @Suwon (0) 2018.06.20 [2018.05.26] [카프카, 데이터 플랫폼의 최강자] 저자 직강 세미나 (0) 2018.05.28 - 기조 (신정환)