회고 2018년의 아리아는 무얼 했나

06 January 2019

To. 아리아 2018년은 어떻게, 뭘 하며 보냈니? 스스로 칭찬해주고 싶은 것, 반성하고 싶은 것, 아쉬운 게 있었는지 생각해보면 2019년을 알차게 보내볼 수 있지 않을까? From. 아리아 생각보다 1년이 빠르게 지나갔다. 세월이 지날수록 1년이 호로록 지나간다는 엄마의 말이 머릿속에 스쳐 지나갔다. 집-회사 만으로는 지루해! 타임라인 2018.12 Facebook DevC x PS 스터디를...

Architecture MSA란 무엇인가

21 December 2018

기초적인 Monolithic Monolithic은 일반적으로 한 프로젝트(서비스)에서 모든 기능을 서빙하는 것을 이야기한다. 매우 기초적인 방법론으로 빠르고 쉽게 서비스를 구성할 수 있지만, 서비스에 요구되는 것들이 점점 무거워짐에 따라 하나의 프로젝트에서 모든 기능을 서빙하는 것을 비효율을 야기하게 된다. Monolithic의 문제점 100명 정도가 모여 하나의 앱을 서비스한다고 가정해보자. 하나의 앱이므로 monolithic하다는 것은 하나의 프로젝트에...

Jekyll 지킬에 댓글 기능 플러그인 추가하기

15 November 2018

Jekyll에 댓글 기능 추가하기 Disqus라는 플러그인을 사용하여 블로그에 댓글을 달아보자! Disqus에서 회원 가입을 한다. 플랜을 선택한다. 개인 운영을 위한 사이트일 경우 광고 없는 무료 플랜을 선택할 수 있다. 2018-11-15 기준 YAML Front Formatter에 아래와 같이 추가한다. 나는 _layouts/post.html에 추가했다. --- layout: default comments: true # other options --- _includes/disqus.html 파일...

Network 배달하는 비둘기로 설명하는 HTTPS

01 November 2018

암호화(Cryptography)는 이해하기 어려운 주제일 수 있다. 수학적인 증명들로 가득 차있다. 하지만, 당신이 암호화 시스템을 개발하는게 아니라면, 내부에서 무슨 일이 일어나고 있는지 고도의 수준으로 복잡한 것들을 이해할 필요는 없다. 만약 차세대 HTTPS 프로토콜을 만들기 위해 이 글을 열었다면, 비둘기로는 충분하지 않을 것이다. 그런 분이 아니라면, 커피를 끓이고 이 글을 즐겨보자. Alice,...

Deview 2018 네이버에서 사용되는 여러가지 Data Platform, 그리고 MongoDB

11 October 2018

발표자료 네이버에서의 Data Platform 초창기에는 거의 모든 서비스가 2-tier 구조(Web server-RDBMS server) 서비스가 점점 커지면서, 빠른 응답을 보장하기 위해 cache 추가(Redis, ARCUS) 지표를 저장하기에는 RDBMS는 sharding이 되지 않아 공간과 비용적 문제가 발생. 원활한 데이터 처리를 위해 HBase(Hadoop) 사용 중. MongoDB가 네이버에서 어떤 경우 대안이 되고 있는가? 2.0 지원 Coverage 확대...

Deview 2018 Learn how Material Design makes it easier and faster to build apps without compromising quality

11 October 2018

발표자료 What is material design? Material is an adaptable design system - backed by open source code - that helps teams easily build high quality digital experiences. Why material design? Speed is very important. Time is money. Easier, faster to customize Organize the world’s information and make it universally accessible....

Deview 2018 Javascript 배틀그라운드로부터 살아남기

11 October 2018

발표자료 The birth 1995년 Netscape에서 개발 당시 웹은 정적, DOM 인터렉션을 통해 다이나믹한 웹을 만들고자 하는 비전. 새롭게 개발된 이유 기존 언어를 채택할 수도 있었지만, java스럽게 보여야 함과 java를 돋보이게 하는 마케팅적 측면 압력 Mocha -> Livescript -> javascript 파생버전 JScript: MS의 JS 구현 엔진, java와의 상표권 문제 충돌을 회피하기...

Deview 2018 Reading AI: From the Bottom to the Learning of a Foreign Lang

11 October 2018

발표자료 Background 글자를 읽는 단계 사람이 읽는 단계: DEVIEW -> (D,E,V,I,E,W) -> 소리내어 읽기 AI가 읽는 단계: DEVIEW -> (44, 45, 56, 49, 45, 57) -> TTS Text Localization -> Text Recognition -> TTS 글자를 읽는다 = 글자 찾기 + 글자 인식 = OCR OCR 정복하기 1단계: 기술 트렌드 파악...

web SVG on Web

20 September 2018

SVG(Scalable Vector Graphics) SVG는 2차원 그래픽을 표현하기 위해 만들어진 XML 파일 형식의 마크업 언어이다. 1999년 W3C의 주도하에 개발된 표준 벡터 그래픽 파일 형식이다. SVG 파일은 어도비 일러스트레이터와 같은 벡터 드로잉 프로그램을 사용하여 편집이 가능하며, XML 형식이므로 문서 편집기로도 가능하다. 성능은 어떨까? 파일 용량을 줄여 보자 참고 https://svgontheweb.com/ko/

Ruby on Rails Activerecord-import with Sidekiq

06 September 2018

background에서 ActiveRecord 인스턴스를 대량 생성하기 위해 activerecord-import gem과 sidekiq을 사용하고 있다. activerecord-import를 사용하면 activerecord의 counter_cache 기능을 사용할 수 없다. 하여, counter_cache 기능을 직접 구현하기 위해 아래와 같은 로직으로 구성했다. 인스턴스 bulk import! CouponInstance.import!(attributes) ensure block 내에서 인스턴스 카운트 집계 및 instance_count attribute를 업데이트 한다. # ... ensure count = CouponInstance.where(condition).count...

if-kakao tensorflow로 OCR 개발기

04 September 2018

모델 개발을 위한 초석 Testing is all you need 테스트가 필요한 이유 데이터도 모델도 이상이 없는데 결과가 모호하게 나올 때 모델을 학습시키는데 데이터의 반정도 돌다가 갑자기 죽음. Jupyter를 이용해서 점진적인 모델을 개발하고 테스트하기에 용이, 하지만 서비스하는 입장에서는 취약 Module test 모델 내부의 모듈은 input/output 결과를 대변하기 힘들다. 하지만 dimension test...

if-kakao 딥러닝을 활용한 뉴스 메타 태깅

04 September 2018

배경 메타데이터: 컨텐츠의 특성 메타데이터 생성과 활용이 잘 되려면 데이터의 유통이 간단해야 한다. 메타데이터의 흐름을 시스템화 하자. 1. 기사 형태 분류하기 (#텍스트분류, #딥러닝모델) 기사 형태 분류 사실 전달형과 해설/묘사형을 나누는 문제로 정의 사실 전달형 육하원칙 위주로 기술 Straight articles 해설/묘사형 기사 사건, 인물에 대한 심층 취재 기사 르포, 스케치, 인터뷰...

if-kakao Face Recognition with deep learning

04 September 2018

얼굴 인식 과정 Detection Alignment: Facial Landmark Detection Normalization 특정 스케일로 변환하거나 영상/이미지를 회전시켜 정규화시킴. Recognition 얼굴 인식 분류 Identification 입력 얼굴과 등록된 얼굴들을 비교해서 누구인지 알려줌. Gallery DB 내에서 Probe(입력 영상)을 조회하는 것 Gallery DB를 구축하면서 문제가 많이 발생한다. 엔지니어링이 필요. (DB 상에서 top1, top2를 뽑을 때 기본적으로는 kNN(k-Nearest...

if-kakao Toros - N2, KNN library

04 September 2018

Nearest Neighbor Search 이 글과 유사한 글을 추천하자. 벡터모델 각 아이템을 f-차원의 벡터로 표현 벡터로 표현하면, 거리 계산 가능. 거리가 가장 가까운 아이템을 찾으면 됨.(Euclidean distance) 벡터로 표현? 텍스트: word2vec 이미지: 학습된 네트워크에서 특정 데이터 가져오기 kNN(k-Nearest Neighbor search) ex: 글 A와 유사한 것 10개 찾아줘 유사 아이템(글, 사진, 유저)...

if-kakao Query by Image

04 September 2018

텍스트로 검색을 하면 안되나? 사진을 잘 표현하는 단어들을 뽑아내서 색인해 볼 수 있다. 하지만 문제가 있다. 해당 사진을 설명하는 문장이 필요하다. 사람들이 올리는 글에서는 사진과 글이 매칭된다고 장담할 수 없다! (주목받기 위해 사용하는 노이즈성 단어들) 이미지로 검색을 해보자 Undirected graph로 표현, user의 input을 anchor로 취급하여, 관련 있는 노드는 positive, 관련...

TIL About TIL

30 August 2018

TIL(Today I Learned) Today I solve(이하 TIS)는 매일 하나 이상의 문제를 고민하고, 고민한 것을 기록하는 프로젝트이다. 어디에 기록하나? 각자 편한 공간에 기록하면 된다. 개발자가 TIL을 진행할 경우에는 깃헙(github)을 추천한다. 나는 https://github.com/aria-grande/TIL 에 커밋을 하고 있다. [1차 시도] 2017년 12월 중 ~ 2018년 1월 초 혼자서 한달 정도 진행했다. 브런치에 쓴...