SlideShare a Scribd company logo
[1D4]오타 수정과 편집 기능을 가진 Android Keyboard Service 개발기
조상희
큐키소개패턴매칭알고리즘오타수정을넘어서키보드기술의확장 
스타트업에서의기술개발
큐키소개
큐키키보드
모바일에서의입력은편리한가?
우리가지금하고있는입력
1.사용자의터치를OS에전달하는단순한프로그램 
2.한번설치하면,모든앱에서동시에사용하게되는공통적인관문 
3.사용자의기기사용경험을좌우할수있는기본적이고범용적인어플리케이션 
고찰1.과연키보드란뭘까?
1.텍스트박스와의상호작용 
입력 
편집 
시각적상호작용 
2. 새로운Activity의런칭 
3. 다른어플리케이션과의상호작용 
고찰2. 안드로이드OS는무엇을제공하는가?
1.입력자체에너무집중을했을까? 키보드는입력도구이므로? 
2.너무급진적이었을까? 키보드가편집기능을가진다는것이? 
결론: 무주공산 
고찰3. 왜이런것이없었는가?
패턴매칭알고리즘
김대표가어느날찾아왔다. 
오타많이나지않냐? 
오타난것과, 원래입력하려고했던것이비슷할텐데, 
백스페이스안누르고오타수정할수있지않을까?
≓ 
너몸좀개ㅗㄴ찬ㅗ아괜찮아 
개ㅗㄴ찬ㅗ아≓괜찮아
기획자들이란 
기술개발은그리간단하지않단다 
그래도재미있을거같은데
가장중요한고려사항 
사용자의기대대로동작하는알고리즘 
유저가대치하고싶어하는부분을 
자동으로찾는것이최우선과제
후보알고리즘=θ= 퐴∙퐵 퐴|퐵| 
θ
후보알고리즘
후보알고리즘 
순서가바뀐입력에대처불가
후보알고리즘유사성방법은좋은방법이아님 
이웃자판의오타일경우에는정확한결과 
전체적으로손가락이밀렸을경우도정확한결과 
오른손과왼손이다르게밀렸을경우는적합한결과가나오지않음 
두철자의위치를뒤바꿨을경우도만족스럽지못한결과
후보알고리즘에대처하기어려움 
한자리건너교차된오타를검출하기어려움 
비교대상을작은조각으로나누어그조각의공통부분을계산와결합 
문자열의나열이아닌벡터합을Shingle로쪼갬
를로바꿈를로바꿈를추가과간의 
몇번의편집과정을통해서다른스트링으로변화시킬수있는지를계산하는알고리즘
[1D4]오타 수정과 편집 기능을 가진 Android Keyboard Service 개발기
변형 
다양한계산공식들이존재하지만 
어느것도다음의모두를만족시키지못했다 
오타가난의비교 
다양한키보드레이아웃에따라바로변화 
사용자에따라개인화
변형 
편집거리는오타에의한의유사성과는관계없는기술 
그러나유저의기대는
큐키의공식 
무조건적인명제사용자의입력의도에맞는매칭 
삽입삭제대치키보드상이웃한철자의대치앞뒤교환 
이값들을구하기위해다양한사용자테스트와실험 
혁신적인사용자경험추구
큐키의공식 
오타수정에필요한의범위정의 
사용자의오타는단어에따라크게다르지않다 
오히려타이핑습관에달려있으며 
오타를낸음운은개개인에따라그빈도가다르다은어떤사람에겐의오타이며어떤사람에게는오타이다 
음운단위의변경
큐키의공식 
다양한키보드에적용키보드천지인나랏글베가한글 
한키를연속해서누르는경우가많다이웃키오타가적다키보드 
한키를연속해서누르기를강요하는상황이없다이웃키오타가많다단모음키보드 
각각의중간 
기본알고리즘은변화하지않는다가중치는변화한다 
이것만으로도대응이가능
안알랴줌
안알랴줌려 
안알려줌
지난분이보내드린자료번에 
지난번에보내드린자료
이제좀되는군
오타수정을넘어서
김대표가말했다. 
영어는자동수정이꽤잘되네. 
그러고보니,오타수정말고도백스페이스를누를일많잖아. 
중요한편의기술을추가로발굴해보자.
김대표가말했다. 
영어는자동수정이꽤잘되네. 
그러고보니,오타수정말고도백스페이스를누를일많잖아. 
중요한편의기술을추가로발굴해보자. 
... 알았다.
우리기술은 
사용자의의도에따라서, 
텍스트박스에있는내용을가져다가, 
사용자가원하는형태로재구성하여 
텍스트박스에되돌려놓는것.
손쉬운편집기술뒤에있는단어로앞에있는단어를지우고대치오타수정특정단어를타겟팅해서수정단어단위삭제단어단위의이동추가큐키실험실의기능
손쉬운편집기술뒤에있는단어로앞에있는단어를지우고대치오타수정특정단어를타겟팅해서수정단어단위삭제단어단위의이동추가큐키실험실의기능 
이모든기능을손쉬운방향제스처로제공
ㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋ 
ㅋ
의탄생
키보드기술의확장
큐키의다음목표 
잘못된음성인식은어떻게수정하지백스페이스로
1.뒷수정 
큐키의다음목표
1.뒷수정 
큐키의다음목표
큐키의다음목표
스타트업에서의기술개발
1.사용자의터치를OS에전달하는단순한프로그램 
2.한번설치하면,모든앱에서동시에사용하게되는공통적인관문 
3.사용자의기기사용경험을좌우할수있는기본적이고범용적인어플리케이션 
고찰1.과연키보드란뭘까? 
우리는키보드에서 
파괴적인혁신을이루고싶었다.
오타수정기술 
혁신적인키보드 
음성인식으로의확장 
단순한아이디어 
완전한솔루션패키지 
적용기술분야의확대 
다음은
사람들이필요로하는기술을 
최대한사람들이잘사용할수있는방법으로기술을개발한다. 
빠른검증, 새로운기술적사상실험, 
세상에없었던작아도새로운기술을개발하기.
순쉬운 
오타수정방법 
큐키, 손
[1D4]오타 수정과 편집 기능을 가진 Android Keyboard Service 개발기

More Related Content

PDF
[1B2]자신있는개발자에서훌륭한개발자로
PDF
[1B5]github first-principles
PDF
132 deview 2013 프로그래머로 산다는 것 유석문
PDF
Deview 2013 - 나는 왜 개발자인데 자신이 없을까?
PPTX
[RAPA/C++] 1. 수업 내용 및 진행 방법
PDF
[데브루키] 이벤트 드리븐 아키텍쳐
PDF
NDC12 인디게임 개발 시 주의할 점
PPTX
왜 우리는 개발자에 집중하지 않는가?
[1B2]자신있는개발자에서훌륭한개발자로
[1B5]github first-principles
132 deview 2013 프로그래머로 산다는 것 유석문
Deview 2013 - 나는 왜 개발자인데 자신이 없을까?
[RAPA/C++] 1. 수업 내용 및 진행 방법
[데브루키] 이벤트 드리븐 아키텍쳐
NDC12 인디게임 개발 시 주의할 점
왜 우리는 개발자에 집중하지 않는가?

What's hot (9)

PPTX
프로그래머를 꿈꾸는 학부 후배들에게
PPTX
이야기로 그리는 소프트웨어(부모 고학년용)
PDF
(독서광) 1일 1로그 100일 완성 IT 지식
PDF
국내인디게임개발자의현실
PDF
1.코드장인의길
PPTX
내 마음대로 정리 해 본 ndc 발표 자료
PPTX
01 소프트웨어교육, 왜 어떻게 해야하나
PDF
프로그래머가 되고 싶으세요
PPTX
ndc14 포춘시리즈개발자의 풀타임인디개발생존기
프로그래머를 꿈꾸는 학부 후배들에게
이야기로 그리는 소프트웨어(부모 고학년용)
(독서광) 1일 1로그 100일 완성 IT 지식
국내인디게임개발자의현실
1.코드장인의길
내 마음대로 정리 해 본 ndc 발표 자료
01 소프트웨어교육, 왜 어떻게 해야하나
프로그래머가 되고 싶으세요
ndc14 포춘시리즈개발자의 풀타임인디개발생존기
Ad

Viewers also liked (20)

PDF
[1A1]행복한프로그래머를위한철학
PDF
[2D4]Python에서의 동시성_병렬성
PDF
[2B4]Live Broadcasting 추천시스템
PDF
[1D2]아이비컨과 공유기 해킹을 통한 인도어 IOT 삽질기
PDF
[2A1]Line은 어떻게 글로벌 메신저 플랫폼이 되었는가
PDF
[2C5]Map-D: A GPU Database for Interactive Big Data Analytics
PDF
[2C4]Clustered computing with CoreOS, fleet and etcd
PDF
한글 검색 질의어 오타 패턴 분석과 사용자 로그를 이용한 질의어 오타 교정 시스템 구축
PDF
[Hello world]nodejs helloworld chaesuwon
PDF
[Hello world]git internal
PDF
[Hello world]n forge
PDF
[Hello world]play framework소개
PDF
Deview2014 Live Broadcasting 추천시스템 발표 자료
PDF
[2D3]TurboGraph- Ultrafast graph analystics engine for billion-scale graphs i...
PDF
제2회 hello world 오픈세미나 collie html5-animationlibrary
PPTX
RHQ를 활용한 Legacy system 모니터링
PPT
IBM WAS ND v8.5.5 소개자료
KEY
Html5 performance
PDF
제2회 hello world 오픈세미나 Web Audio API-가능성엿보기
PDF
[Hello world 오픈세미나]소셜게임 a to z final
[1A1]행복한프로그래머를위한철학
[2D4]Python에서의 동시성_병렬성
[2B4]Live Broadcasting 추천시스템
[1D2]아이비컨과 공유기 해킹을 통한 인도어 IOT 삽질기
[2A1]Line은 어떻게 글로벌 메신저 플랫폼이 되었는가
[2C5]Map-D: A GPU Database for Interactive Big Data Analytics
[2C4]Clustered computing with CoreOS, fleet and etcd
한글 검색 질의어 오타 패턴 분석과 사용자 로그를 이용한 질의어 오타 교정 시스템 구축
[Hello world]nodejs helloworld chaesuwon
[Hello world]git internal
[Hello world]n forge
[Hello world]play framework소개
Deview2014 Live Broadcasting 추천시스템 발표 자료
[2D3]TurboGraph- Ultrafast graph analystics engine for billion-scale graphs i...
제2회 hello world 오픈세미나 collie html5-animationlibrary
RHQ를 활용한 Legacy system 모니터링
IBM WAS ND v8.5.5 소개자료
Html5 performance
제2회 hello world 오픈세미나 Web Audio API-가능성엿보기
[Hello world 오픈세미나]소셜게임 a to z final
Ad

More from NAVER D2 (20)

PDF
[211] 인공지능이 인공지능 챗봇을 만든다
PDF
[233] 대형 컨테이너 클러스터에서의 고가용성 Network Load Balancing: Maglev Hashing Scheduler i...
PDF
[215] Druid로 쉽고 빠르게 데이터 분석하기
PDF
[245]Papago Internals: 모델분석과 응용기술 개발
PDF
[236] 스트림 저장소 최적화 이야기: 아파치 드루이드로부터 얻은 교훈
PDF
[235]Wikipedia-scale Q&A
PDF
[244]로봇이 현실 세계에 대해 학습하도록 만들기
PDF
[243] Deep Learning to help student’s Deep Learning
PDF
[234]Fast & Accurate Data Annotation Pipeline for AI applications
PDF
Old version: [233]대형 컨테이너 클러스터에서의 고가용성 Network Load Balancing
PDF
[226]NAVER 광고 deep click prediction: 모델링부터 서빙까지
PDF
[225]NSML: 머신러닝 플랫폼 서비스하기 & 모델 튜닝 자동화하기
PDF
[224]네이버 검색과 개인화
PDF
[216]Search Reliability Engineering (부제: 지진에도 흔들리지 않는 네이버 검색시스템)
PDF
[214] Ai Serving Platform: 하루 수 억 건의 인퍼런스를 처리하기 위한 고군분투기
PDF
[213] Fashion Visual Search
PDF
[232] TensorRT를 활용한 딥러닝 Inference 최적화
PDF
[242]컴퓨터 비전을 이용한 실내 지도 자동 업데이트 방법: 딥러닝을 통한 POI 변화 탐지
PDF
[212]C3, 데이터 처리에서 서빙까지 가능한 하둡 클러스터
PDF
[223]기계독해 QA: 검색인가, NLP인가?
[211] 인공지능이 인공지능 챗봇을 만든다
[233] 대형 컨테이너 클러스터에서의 고가용성 Network Load Balancing: Maglev Hashing Scheduler i...
[215] Druid로 쉽고 빠르게 데이터 분석하기
[245]Papago Internals: 모델분석과 응용기술 개발
[236] 스트림 저장소 최적화 이야기: 아파치 드루이드로부터 얻은 교훈
[235]Wikipedia-scale Q&A
[244]로봇이 현실 세계에 대해 학습하도록 만들기
[243] Deep Learning to help student’s Deep Learning
[234]Fast & Accurate Data Annotation Pipeline for AI applications
Old version: [233]대형 컨테이너 클러스터에서의 고가용성 Network Load Balancing
[226]NAVER 광고 deep click prediction: 모델링부터 서빙까지
[225]NSML: 머신러닝 플랫폼 서비스하기 & 모델 튜닝 자동화하기
[224]네이버 검색과 개인화
[216]Search Reliability Engineering (부제: 지진에도 흔들리지 않는 네이버 검색시스템)
[214] Ai Serving Platform: 하루 수 억 건의 인퍼런스를 처리하기 위한 고군분투기
[213] Fashion Visual Search
[232] TensorRT를 활용한 딥러닝 Inference 최적화
[242]컴퓨터 비전을 이용한 실내 지도 자동 업데이트 방법: 딥러닝을 통한 POI 변화 탐지
[212]C3, 데이터 처리에서 서빙까지 가능한 하둡 클러스터
[223]기계독해 QA: 검색인가, NLP인가?

[1D4]오타 수정과 편집 기능을 가진 Android Keyboard Service 개발기