Top Banner
50

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

Jan 25, 2017

Download

Technology

NAVER D2
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: [1D4]오타 수정과 편집 기능을 가진 Android Keyboard Service 개발기
Page 2: [1D4]오타 수정과 편집 기능을 가진 Android Keyboard Service 개발기

조상희

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

큐키 소개

패턴매칭 알고리즘

오타 수정을 넘어서

키보드 기술의 확장

스타트업에서의 기술 개발

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

큐키 소개

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

큐키 키보드

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

모바일에서의 입력은 편리한가?

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

우리가 지금 하고 있는 입력

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

1. 사용자의 터치를 OS에 전달하는 단순한 프로그램

2. 한 번 설치하면, 모든 앱에서 동시에 사용하게 되는공통적인 관문

3. 사용자의 기기 사용 경험을 좌우할 수 있는기본적이고 범용적인 어플리케이션

고찰 1. 과연 키보드란 뭘까?

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

1. 텍스트 박스와의 상호작용입력편집시각적 상호작용

2. 새로운 Activity의 런칭

3. 다른 어플리케이션과의 상호작용

고찰 2. 안드로이드 OS는 무엇을 제공하는가?

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

1. 입력 자체에 너무 집중을 했을까? 키보드는 입력 도구이므로?

2. 너무 급진적이었을까? 키보드가 편집기능을 가진다는 것이?

결론 : 무주공산

고찰 3. 왜 이런 것이 없었는가?

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

패턴매칭 알고리즘

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

김대표가 어느 날 찾아왔다.

오타 많이 나지 않냐?오타 난 것과, 원래 입력하려고 했던 것이 비슷할 텐데,백스페이스 안 누르고 오타 수정할 수 있지 않을까?

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

너 몸 좀 개ㅗㄴ찬ㅗ아 괜찮아개ㅗㄴ찬ㅗ아 ≓ 괜찮아

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

기획자 들이란기술 개발은 그리 간단하지 않단다그래도 재미있을거 같은데

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

가장 중요한 고려사항

사용자의 기대 대로 동작하는 알고리즘

유저가 대치하고 싶어하는 부분을자동으로 찾는 것이 최우선 과제

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

후보 알고리즘

= θ =𝐴∙𝐵

𝐴 |𝐵|θ

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

후보 알고리즘

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

후보 알고리즘

순서가 바뀐 입력에 대처 불가

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

후보 알고리즘

유사성 방법은 좋은 방법이 아님

이웃 자판의 오타일 경우에는 정확한 결과전체적으로 손가락이 밀렸을 경우도 정확한 결과

오른손과 왼손이 다르게 밀렸을 경우는 적합한 결과가 나오지 않음두 철자의 위치를 뒤바꿨을 경우도 만족스럽지 못한 결과

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

후보 알고리즘

에 대처하기 어려움한 자리 건너 교차된 오타를 검출하기 어려움

비교 대상을 작은 조각으로 나누어 그 조각의 공통부분을 계산

와 결합문자열의 나열이 아닌 벡터 합을 Shingle로 쪼갬

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

를 로 바꿈를 로 바꿈를 추가

과 간의

몇 번의 편집과정을 통해서 다른 스트링으로 변화시킬 수 있는지를 계산하는 알고리즘

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

변형

다양한 계산 공식들이 존재하지만어느 것도 다음의 모두를 만족시키지 못했다

오타가 난 의 비교

다양한 키보드 레이아웃에 따라 바로 변화

사용자에 따라 개인화

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

변형

편집 거리는 오타에 의한 의 유사성과는 관계없는 기술

그러나 유저의 기대는

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

큐키의 공식

무조건적인 명제 사용자의 입력 의도에 맞는 매칭

삽입 삭제 대치 키보드상 이웃한 철자의 대치 앞 뒤 교환

이 값들을 구하기 위해 다양한 사용자 테스트와 실험혁신적인 사용자 경험 추구

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

큐키의 공식

오타 수정에 필요한 의 범위 정의

사용자의 오타는 단어에 따라 크게 다르지 않다

오히려 타이핑 습관에 달려 있으며오타를 낸 음운은 개개인에 따라 그 빈도가 다르다

은 어떤 사람에겐 의 오타이며 어떤 사람에게는 오타이다

음운 단위의 변경

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

큐키의 공식

다양한 키보드에 적용키보드 천지인 나랏글 베가한글

한 키를 연속해서 누르는 경우가 많다 이웃 키 오타가 적다

키보드한 키를 연속해서 누르기를 강요하는 상황이 없다 이웃 키 오타가 많다

단모음 키보드각각의 중간

기본 알고리즘은 변화하지 않는다 가중치는 변화한다이것만으로도 대응이 가능

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

안 알랴줌

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

안 알랴줌 려

안 알려줌

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

지난 분이 보내 드린 자료 번에

지난 번에 보내 드린 자료

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

이제 좀 되는군

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

오타 수정을 넘어서

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

김대표가 말했다.

영어는 자동수정이 꽤 잘되네.그러고 보니, 오타 수정 말고도 백스페이스를 누를 일 많잖아.중요한 편의 기술을 추가로 발굴해보자.

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

김대표가 말했다.

영어는 자동수정이 꽤 잘되네.그러고 보니, 오타 수정 말고도 백스페이스를 누를 일 많잖아.중요한 편의 기술을 추가로 발굴해보자.

... 알았다.

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

우리 기술은사용자의 의도에 따라서,텍스트 박스에 있는 내용을 가져다가,사용자가 원하는 형태로 재구성하여텍스트 박스에 되돌려 놓는 것.

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

손쉬운 편집 기술

뒤에 있는 단어로 앞에 있는 단어를 지우고 대치 오타 수정

특정 단어를 타겟팅해서 수정

단어 단위 삭제

단어 단위의 이동

추가 큐키 실험실의 기능

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

손쉬운 편집 기술

뒤에 있는 단어로 앞에 있는 단어를 지우고 대치 오타 수정

특정 단어를 타겟팅해서 수정

단어 단위 삭제

단어 단위의 이동

추가 큐키 실험실의 기능

이 모든 기능을 손쉬운 방향 제스처로 제공

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

ㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋ

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

의 탄생

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

키보드 기술의 확장

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

큐키의 다음 목표

잘못된 음성인식은 어떻게 수정하지 백스페이스로

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

1.뒷 수정

큐키의 다음 목표

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

1.뒷 수정

큐키의 다음 목표

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

큐키의 다음 목표

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

스타트업에서의 기술개발

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

1. 사용자의 터치를 OS에 전달하는 단순한 프로그램

2. 한 번 설치하면, 모든 앱에서 동시에 사용하게 되는공통적인 관문

3. 사용자의 기기 사용 경험을 좌우할 수 있는기본적이고 범용적인 어플리케이션

고찰 1. 과연 키보드란 뭘까?

우리는 키보드에서파괴적인 혁신을 이루고 싶었다.

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

오타 수정 기술

혁신적인 키보드

음성 인식으로의 확장

단순한아이디어

완전한솔루션패키지

적용 기술 분야의확대

다음은

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

사람들이 필요로 하는 기술을최대한 사람들이 잘 사용할 수 있는 방법으로기술을 개발한다.

빠른 검증, 새로운 기술적 사상 실험,세상에 없었던 작아도 새로운 기술을 개발하기.

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

순쉬운

오타 수정 방법

큐키, 손

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