• 검색 결과가 없습니다.

An Authoring Tool for Hangul Soft Keyboard in Android

N/A
N/A
Protected

Academic year: 2021

Share "An Authoring Tool for Hangul Soft Keyboard in Android"

Copied!
10
0
0

로드 중.... (전체 텍스트 보기)

전체 글

(1)

http://dx.doi.org/10.7236/JIIBC.2015.15.3.225

JIIBC 2015-3-32

안드로이드 한글 소프트 키보드 저작 도구 구현

An Authoring Tool for Hangul Soft Keyboard in Android

황기태 * , 정인환 **

Kitae Hwang * , In-Hwan Jung **

요 약 스마트폰이나 탭 컴퓨터 등과 같은 대부분의 모바일 기기는 LCD 스크린의 터치를 통해 사용자의 입력을 받 는 소프트 키보드를 사용하고 있다. 모바일 기기의 LCD 패널은 크기가 작기 때문에, 가능하면 적은 수의 키를 사용하 고, 입력이 효율적인 소프트 키보드를 개발하고자 하는 많은 노력들이 진행 중이다. 한글 키보드의 경우, 특별히, 키 조 합이나 중복키로부터 키를 입력받아 한글 문자를 인식하는 한글 오토마타를 작성하는데 많은 시간과 노력이 들어가며 전문성을 필요로 한다. 본 논문은 일반 사용자들도 자신만의 한글 소프트 키보드를 쉽게 만들 수 있는 저작 도구를 설 계하고 구현한 내용에 대해 소개한다. 본 저작 도구로 제작한 소프트 키보드는 바로 사용자의 단말기에 탑재하여 실행 할 수 있다.

Abstract

Most mobile devices such as smartphones and tablets have a soft keyboard implemented on the LCD touch screen to receive text inputs from the user. Because the size of the LCD screen is small, many efforts are going on to develop efficient soft keyboard with less key buttons. Especially, Hangul soft keyboard needs much time, effort, and deep software technology in developing an Hangul automata program module. This paper introduces design and implementation details of our authoring tool for Hangul soft keyboard running in Android.

The tool supports the user to build an unique soft keyboard easily. The authoring tool downloads the soft keyboard app to the user’s smartphone and makes it run immediately.

Key Words :

Android, Soft keyboard, Authoring, Mobile Device, Touch screen

*

정회원, 한성대학교 컴퓨터공학과(교신저자)

**

정회원, 한성대학교 컴퓨터공학과

접수일자 2015년 3월 5일, 수정완료 2015년 4월 22일 게재확정일자 2015년 6월 12일

Received: 5 March, 2015 / Revised: 22 April, 2015 / Accepted: 12 June, 2015

*

Corresponding Author: [email protected]

Dept. of Computer Engineering, Hansung University, Korea

Ⅰ. 서 론

스마트 폰을 비롯하여 태블릿 PC, 노트북, 올인원 컴 퓨터에 이르기까지 현재 개발되고 있는 모바일 단말기나 컴퓨터는 디스플레이 장치에 터치를 통해 키를 입력할 수 있는 소프트 키보드를 장착하고 있다. 특별히 터치 스 크린 키 입력 방식은 모바일 단말기의 확산과 발전에 많 은 영향을 주었다[1].

하지만, 모바일 단말기는 휴대에 적합한 정도의 작은

디스플레이를 사용하고 있기 때문에, 소프트 키보드에 충분한 개수의 키를 배치하기 어렵다. 그러므로 하나의 키 버튼을 여러 키 입력에 중복 사용하거나, 키 버튼의 크기를 작게 설계함으로써, 인접한 키가 눌리거나 오타 가 발생하는 등 여러 문제점이 나타나고 있다[2,3].

이러한 문제를 줄이고 한글 입력이 용이하고, 오타 입

력이 적은 새로운 소프트 키보드를 만들려는 시도들이

증가하고 있다[4,5,6]. 그러나 한글 키보드의 경우, 새로운

키보드에 대한 아이디어 생겼다고 하더라도, 고급 기술

(2)

자가 아닌 경우, 아이디어대로 작동하는 한글 키보드의 한글 오토마타를 작성하는 작업은 쉽지 않다[5,7]. 또한 일반인이 남과 다른 자신만의 독특한 키보드를 가지고 싶지만, 개발이 용이하지 않기 때문에, 그림 1과 같이 자 신만의 아이디어와 개성을 가진 소프트 키보드를 가질 수 없는 현실이다.

그림 1. 사용자만의 독특한 소프트 키보드 Fig. 1. User’s unique soft keyboard

본 논문에서는 사전의 기초 연구를 거쳐[7] 누구든지 사용자가 자신의 아이디어대로 안드로이드 단말기에서 작동하는 소프트 키보드를 쉽게 만들 수 있는 저작 도구 를 설계하고 구현한 내용을 소개한다.

본 논문에서 개발한 저작 도구를 이용하면, 쉽고 간단 하게 다양한 모양과 기능을 갖춘 자신만의 한글 소프트 키보드를 만들 수 있다. 본 저작 도구는 사용자가 설계한 한글 입력 방식대로 작동하는 한글 오토마타 프로그램을 자동으로 생성하여 소프트 키보드 앱 내에 장착된다.

본 논문은 다음과 같이 구성된다. 2 장에서 연구 배경 을 소개하고, 3 장에서는 저작 도구의 설계에 대해 소개 한다. 4 장에서는 구현 내용을 소개하고 5 장에서 결론을 맺는다.

Ⅱ. 연구 배경

1. 소프트 키보드

현재 개발되어있는 한글 소프트 키보드를 보면 그림 2 와 같이 여러 종류가 있다. PC 키보드를 그대로 만든 쿼 티(qwerty) 키보드, 피처폰(feature phone)에서 사용되던 천지인 키보드, 새로운 방식을 생각하여 만들어진 딩굴 키보드, 형통 키보드 등 다양하다[7].

그림 2. 여러 안드로이드 소프트 키보드 Fig. 2. Some Android soft keyboards

2. 안드로이드 소프트 키보드의 작동 원리

IME(Input Method Editor)는 안드로이드에서 사용자 가 문자 입력을 할 수 있도록 해 주는 사용자 콘트롤이며, 안드로이드 소프트 키보드 역시 하나의 IME(Input Method Editor)이다. 안드로이드 플랫폼은 사용자가 작 성한 IME를 인식하고 문자 입력을 받는 방법을 제공한 다[8].

안드로이드에서 소프트 키보드 IME를 작성하려고 하 면, 안드로이드 플랫폼에서 요구하는 명세를 맞추기 위 해 반드시 InputMethodService라는 클래스를 상속하여 자신만의 클래스를 만들어야 한다. IME는 그림 3과 같은 생명 주기로 동작한다[8].

그림 3. 안드로이드 소프트 키보드의 생명 주기

Fig. 3. Life cycle of an Android soft keyboard

(3)

안드로이드 플랫폼은 키가 입력될 때마다 InputMethodService에서 키 ID를 받아 어떤 키가 눌려졌 는지 확인하여 알맞은 처리를 한다. 안드로이드는 소프 트 키보드를 만들기 위해 필요한 기본 샘플 코드를 제공 하며, 이 샘플을 수정하여 누구든지 안드로이드 소프트 키보드는 만들 수 있다. 본 논문 역시 샘플 코드를 수정 하여 사용하였다.

Ⅲ. 소프트 키보드 저작 도구 설계

1. 설계 개요

본 논문은 사용자가 원하는 모양과 방식으로 작동하 는 안드로이드 소프트 키보드를 빠르고 쉽게 제작할 수 있도록 지원하는 저작 소프트웨어를 설계 제작한 내용을 기술한다.

소프트 키보드 저작 도구를 설계함에 있어 다음의 원 칙을 둔다.

첫째, 안드로이드 운영체제 환경에서만 작동하는 소프 트 키보드에 한정한다.

둘째, 저작 도구는 PC에서만 작동한다.

셋째, 사용자가 키보드를 저작하여 생성한 안드로이드 키보드 앱을 사용자 휴대폰에 바로 설치하여 작 동시키는 일체의 과정이 그림 4와 같이 원스톱 으로 자동 처리한다.

그림 4. 저작 도구를 이용하는 사례

Fig. 4. Process to author an android soft keyboard

넷째, 사용자가 제작한 소프트 키보드는 언제든지 수 정가능하다.

다섯째, 사용자가 소프트 키보드의 모양과 글자 위치, 크기, 색 등을 보면서 제작할 수 있는 WISWIG 방식의 UI로 구현한다.

여섯째, 컴퓨터에 대한 비전문가도 소프트 키보드를 저작할 수 있도록 쉽게 만든다.

일곱째, 키보드를 구성하는 키 버튼 수나 키 중복 방법 에는 제한이 없다.

여덟째, 한글 영문 모두 가능하도록 한다.

본 논문에서 구현한 저작 도구를 이용하면, 천지인 키 보드, 쿼티(qwerty) 키보드, 피처폰(feature phone)에서 사용하는 다양한 키보드 등 어떤 키보드도 10분 정도이 면 간단히 쉽게 제작할 수 있다.

2. 저작 도구 구성

본 연구에서 작성한 저작 도구의 소프트웨어 모듈은 그림 5와 같이 구성된다.

그림 5. 소프트 키보드 저작 도구 구성

Fig. 5. Structure of the Soft Keyboard Authoring Tool

그림에서 *로 표시된 모듈은 본 연구에서 작성한 것들 이며, **로 표시된 모듈은 본 저작 도구가 실행하여 생성 한 파일이나 자료이고, ***로 표시된 모듈은 안드로이드 SDK 샘플을 수정하여 본 연구에서 만든 프로그램이다.

가. Key Layout Manager

Key Layout Manager는 저작 도구 UI의 일부로서,

(4)

GUI를 통해 사용자로부터 키 버튼들과 한글 음소 정보를 입력 받아 사용자가 저작한 전체 키보드 정보를 ‘사용자 키 배치 테이블’에 저장한다.

키 버튼에 대한 정보는 키 버튼에 새겨지는 문자열, 키 버튼의 크기, 키 버튼의 위치, 색, 키 버튼의 배경 이미지 등이다. 또한 ‘사용자 키 테이블’ 파일에는 한글 각 음소 를 구성하는 키 버튼과 키 버튼의 입력 순서가 저장된다, 예를 들면 ㄱ 음소의 버튼이 1번 키 버튼이라면, ㄲ 음소 는 1번 키 버튼을 연속적으로 두 번 누르는 경우, ㅋ 음소 는 1번 키 버튼을 세 번 누르는 경우 등이 정보화되어 저 장된다.

나. Phoneme Recognizer Generator

Phoneme Recognizer Generator는 사용자가 설계한

‘사용자 키 배치 테이블’을 참고하여 소프트 키보드가 동 작 중에 입력되는 키 버튼들로부터 어떤 한글 음소를 입 력하고 있는지 판단하는 자바 프로그램 소스 (PhonemeRecognizer.java)를 생성한다. 이 소스 파일은 추후 소프트 키보드 앱을 빌드할 때, 함께 컴파일된다.

사용자마다 서로 다른 키 배치 테이블을 만들기 때문 에 PhonemeRecognizer.java 파일은 사용자마다 달리 생 성된다.

다. APK Builder

APK는 안드로이드 실행 파일 즉 앱이다. APK Builder는 소프트 키보드 앱 실행 파일을 생성하는 모듈 이다. 여기서 생성된 안드로이드 소프트 키보드 앱은 사 용자 스마트폰에 바로 설치되어 키보드로 작동된다.

라. Android 소프트 키보드의 기본 자바 소스 파 일들

이 파일들은 안드로이드 SDK에 소프트 키보드를 만 들기 위한 기본 샘플로 주어지는 자바 소스 파일들을 수 정하여 본 저작 도구에 맞도록 수정한 프로그램 코드들 이다. 이들은 안드로이드 LCD 화면에 키 이미지를 출력 하고, LCD에 사용자가 터치한 위치에 어떤 키가 있는지 키 버튼의 ID를 넘겨받는 작업을 진행한다. 또한 텍스트 입력을 기다리는 안드로이드 컴포넌트와 연결하여 입력 된 문자 값을 전달하는 역할도 한다[8]. key.xml에는 키 보드를 구성하는 모든 키에 관한 크기, 위치 등의 여러 정보가 들어 있으며, 이 정보를 바탕으로 안드로이드 플

랫폼은 LCD 화면에 키보드 이미지를 출력한다.

이 소스들은 본 연구에서 작성된 key.xml, PhonemeRecognizer.java, HangulAutomata.java와 함께 컴파일되어 소프트 키보드 앱이 탄생된다.

3. 키 배치 및 키보드 저작

본 저작 프로그램은 사용자 키 버튼을 마음대로 생성 할 수 있도록 한다. 사용자가 8 개의 키 버튼을 두든지, 30 개의 키 버튼을 두든지, 크기와 위치 등, 모든 것을 GUI 방식으로 마음대로 배치할 수 있다.

그러고 나면, 이제 저작 프로그램은 한글의 자음, 모음, 중모음, 이중 모음의 순서로 각 음소가 어떤 키 버튼의 조 합으로 이루어지는지 사용자에게 하나씩 묻고 사용자는 간단히 마우스로 자신이 만든 키 버튼을 클릭함으로써 이 를 알린다. 저작 프로그램은 이것을 ‘사용자 키 배치 테이 블’에 기록하고, 사용자의 키 배치가 완료될 때, 안드로이 드 IME에서 필요로하는 key.xml 파일을 생성한다.

‘사용자 키 배치 테이블’에는 한글 각 자음, 단모음, 중 모음, 이중모음 들이 어떤 키 버튼의 순서와 조합으로 구 성되는지 정보가 들어 있다.

4. 한글 음소 인식

본 저작 도구 아이디어의 핵심은 한글 음소를 인식하 는 과정과 한글 오토마타를 분리시키는데 있다. 한글 음 소를 인식하는 과정은 사용자가 ‘사용자 키 배치 테이블’

에 설계한 대로 기계적으로 작동하게 하고, 한글의 각 글 자를 인식하는 오토마타는 소프트 키보드의 키 배치나 중복 키 등 키의 특성과 완전히 분리시켜, 음소들을 입력 으로 받아 한글 글자를 인식하는 매우 일반화된 코드로 작성한다. 이 원리를 통해, 본 저작 도구는 사용자가 설계 하는 한글 키보드의 구성을 한글 오토마타와 독립시켜 어떤 키보드라도 사용자가 설계할 수 있도록 한다.

그러므로 소프트 키보드는 작동 중에 사용자가 누르 는 키 버튼들을 입력받아 어떤 음소를 입력하고 있는지 판단하는 기능이 구비되어야 한다. 본 저작 도구는 Phoneme Recognizer Generator 모듈을 갖추고, 이 모듈 이 ‘사용자 키 배치 테이블’을 참조하여 사용자로부터 입 력되는 일련의 키 버튼들로부터 한글 음소를 판단하는 프로그램의 소스 코드 PhonemeRecognizer.java를 생성 한다.

이 자바 코드는 예를 들어 만일 사용자가 천지인과 비

(5)

슷한 키보드들 저작하고 있다고 하면, ‘ㄱ’ 키 버튼을 한 번 누르면, ‘ㄱ’ 음소이고, 두 번 누르면 ‘ㄲ’이고, 세 번 누 르면, ‘ㅋ’임을 인식한다. 이 정보는 ‘사용자 키 배치 테이 블’에 이미 들어 있다.

5. key.xml 생성

안드로이드에서 SDK를 통해 배포하는 소프트 키보드 샘플 코드는 필수적인 각 키의 모양, 크기, 위치 등을 담 은 xml 파일을 필요로 한다. 안드로이드 소프트 키보드 는 key.xml 파일을 파싱하여 전체 키보드의 모양을 하나 의 이미지로 생성하고 이 이미지를 LCD 화면에 출력함 으로써 사용자에게 키보드가 보이게 한다.

Key Layout Manager는 사용자가 키보드를 저작하는 동안 생성하고 배치한 모든 키 버튼을 key.xml로 자동 생성한다.

6. 한글 오토마타

한글 오토마타는 한글 각 음소가 계속 입력되는 동안 조합을 통해 한글 글자를 인식하고 안드로이드 IME에 알려주는 모듈로서, 키보드를 프로그래밍하는 모든 엔지 니어들은 반드시 자신의 키보드에 맞는 한글 오토마타를 작성하여야 한다. 그러므로 천지인 한글 오토마타와 쿼 티 자판의 한글 오토마타는 상호 다르다.

한글 오토마타를 작성하는 것은 상당한 프로그램 개 발자가 아니면 어려운 작업이므로, 새로운 키보드를 개 발하고자 하는 비전문가가 바로 이 부분에서 큰 어려움 을 만나게 된다.

일반적으로 한글 오토마타를 작성하기 어려운 것은, 키 버튼들로부터 음소를 인식하는 부분과 음소로부터 한 글 글자를 인식하는 두 부분을 함께 구현하기 때문이다.

본 연구에서는 이 두 부분을 분리시킴으로써, 이 문제 를 해결하였다. 본 저작 도구에서 한글 오토마타는 일련 의 한글 음소로부터 한글 글자를 인식하고, 한글 글자의 문자 값을 리턴하는 블록으로 취급한다. 그러므로 본 연 구의 한글 오토마타는 어떤 한글 키보드에서도 작동하는 만능 한글 오토마타로 작성하였으며, 상태 전이도는 그 림 6과 같다. 상태 전이도는 사전 연구를 통해 완성되었 다[7].

한글 오토마타에서 이뤄지는 한글 조합은 초성, 중성, 종성 각각의 index에 고유한 값을 연산하여 하나의 문자 를 완성시킨다.

그림 6. 본 논문에서 설계 작성된 한글 오토마타의 상태 전이도

Fig. 6. State diagram of Hangul automata

7. APK Builder

본 저작 도구는 그림 5에 설명한 자바 소스들을 컴파 일하여 안드로이드 소프트 키보드 앱을 생성한다. 자바 소스들과 리소스들을 관리하기 위해, 안드로이드 개발 도구로 많이 사용되는 이클립스(eclipse)[9]의 프로젝트 구조를 도입하였다. 그러나 이클립스를 사용하는 것은 아니다.

APK Builder는 먼저 안드로이드 키보드 앱을 생성하기

위해 이클립스 프로젝트를 하나 생성하고, 이 프로젝트에

그림 5의 소스와 xml 파일들을 배치한다. 그러고 나서 그

림 7에 묘사된 대로 안드로이드 APK를 생성하는 긴 과정

[10]을 사용자에게 보이지 않게 내부적으로 처리한다.

(6)

그림 7. APK Builder의 처리 과정

Fig. 7. Process to build an Android soft keyboard by APK Builder

안드로이드에서 제공하는 aapt를 통하여 R.java를 생 성하고, 생성된 R.java 및 모든 자바 파일을 컴파일 시킨 다. R.java는 프로젝트의 모든 리소스를 ID로 선언하여 다른 자바 소스에서 접근할 수 있도록 하는 안드로이드 내부 파일로서, 사용자가 생성할 수 없는 파일이다.

그러고 나서 자바 컴파일러를 이용하여 자바 소스를 컴파일한다. 그 후 dex를 통하여 자바 컴파일러로 컴파 일된 바이트 코드를 dalvik 코드로 변환한다. 이는 안드 로이드에서는 자바 가상 기계(Java Virtual Machine) 대 신, 이를 개선하고 안드로이드의 특성에 맞춘 달빅 가상 기계(Dalvik Virtual Machine)를 사용하기 때문에, 자바 컴파일러로 컴파일된 자바 바이트 코드를 dalvik 코드로 변환시켜주어야 하기 떄문이다.

그 다음으로 dex 파일과 프로젝트의 모든 리소스들을 빌드하여 APK 파일을 생성한다. APK 파일이 사용자의 휴대폰에 설치되기 위해서는 Jarsigner와 zipalign을 통 해정상적인 APK 임을 APK 내에 기록하여야 한다. 이 과정을 거치면 최종적으로 안드로이드에서 사용 가능한 APK 파일이 생성된다.

Ⅳ. 구현

1. 저작 시스템 구현

본 저작 도구는 PC에서 실행되며, 자바 언어로 작성하 였고, 사용자 인터페이스는 스윙(Swing) 라이브러리를 이용하였다. 또한 안드로이드 사이트의 SDK에 포함된 소프트 키보드의 샘플 소스를 소프트 키보드의 기본 구 성으로 활용하였으며, 이를 본 저작 도구에 맞도록 수정 하였다. 한글 음소마다 특별한 코드를 부여하였으며, 한 글 오토마타는 일련의 한글 음소를 입력으로 받아 한글 문자 코드를 출력하도록 완전히 새로 작성하였다.

본 저작 도구는 사용자가 설계한 소프트 키보드의 자 바 소스를 컴파일하기 위해 이클립스 프로젝트의 형식을 이용하였다.

그림 8은 본 저작 도구를 이용하여 제작한 소프트 키 보드의 샘플이다. 이들을 제작하는데 10여분이면 충분하 다. 제작된 소프트 키보드는 사용자가 설계한 그대로 사 용자의 스마트폰에서 실행된다. 키 버튼의 크기나 위치 를 마음대로 배치할 수 있고, 키 버튼에 이미지를 삽입할 수 있으며, 어떤 키는 누르면 음소 대신, 문자열이 전달되 게 하는 핫키 기능을 하게 할 수도 있다. 예를 들어 그림 8의 첫 샘플에 보이는 ‘hello’ 키 버튼은 누르면 바로 hello 문자열이 입력되도록 한다.

그림 8. 본 논문의 저작 도구로 만든 키보드 샘플들 Fig. 8. Soft keyboard samples built by the authoring tool

(7)

그림 9. 소프트 키보드 저작 도구 실행 화면 Fig. 9. Screen shot of the authoring tool

2. 소프트 키보드 제작 과정 시연

가. 저작 도구 실행 및 키보드 배치

저작 도구는 그림 9와 같은 사용자 인터페이스를 가진 다. 2 개의 큰 창이 있으며, 왼쪽 창은 사용자가 키보드를 제작하는 창이다. 이 창에서 마우스로 키 버튼 삽입, 삭 제, 색 지정 등을 할 수 있다. 왼쪽 창의 상단부에 보이는 카톡 이미지는 실제 상황이 아니며, 저작 도구에 현실감 을 더하기 위해 삽입한 단순 이미지이다.

나. 각 한글 음소에 대해 키 버튼 지정

저작 도구에서 오른쪽 창의 역할은 그림 10에 보이는 바와 같이, 왼쪽 창에서 구성한 키 버튼들에 대해, 한글의 각 자음, 모음, 중모음, 이중 모음을 구성하는 키 버튼 조 합이나 순서를 지정하기 위해 사용한다. 예를 들어, ‘ㄱ’

키 버튼을 오른쪽 창에서 선택하고, 왼쪽 창에서 어떤 키 버튼 인지를 마우스 클릭하면 된다. 그리고 나면, 왼쪽 키 버튼에는 ‘ㄱ’이 출력된다. 만일 오른쪽 창에서 ‘ㄲ’ 음소 를 선택하여 ‘ㄲ’을 구성하는 키 버튼이 무엇인지를 지정 하고자 한다면, 왼쪽 창에서 ‘ㄱ’ 버튼을 두 번 클릭하고

완료 버튼을 클릭하면 된다. 이런 식으로 한글의 각 음소 에 대해 어떤 키 버튼이 어떤 순서로 입력되어야 하는지 사용자는 지정한다. 또한 오른쪽 창의 하단부에서 각 키 버튼의 세부 속성을 설정할 수 있으며, 이 정보는 key.xml을 구성하는데 이용된다.

그림 10은 이 과정을 거쳐 설계 완료된 소프트 키보드 샘플이다.

다. 소프트 키보드 앱(APK) 생성

모든 한글 음소에 대한 키 버튼의 조합이 이루어지고 나면, 사용자는 소프트 키보드 앱 생성 메뉴를 선택하여 소프트 키보드 앱을 생성하게 할 수 있다.

그림 11은 APK Builder가 실행되는 화면으로서, 소프 트 키보드 앱이 생성되는 과정을 보여준다. 앞서 그림 7 에 설명한 전체 과정이 진행되면서 메시지가 출력되고 있다.

이 과정이 지나면, 앱이 생기고 이 앱은 사용자의 지시

에 따라 현재 PC에 연결된 안드로이드 기기에 다운로드

시킬 수 있다. 혹은 나중에 사용하기 위해 앱을 폴더에

저장해 둘 수도 있다.

(8)

그림 10. 한글 음소에 대한 키 버튼 조합 지정

Fig. 10. Creating combination of key buttons for each Hangul phoneme

그림 11. 사용자가 저작한 소프트 키보드 앱을 생성하는 과정 Fig. 11. Generating a soft keyboard app designed

by the user

라. 사용자 휴대폰에서 소프트 키보드 작동 사용자의 휴대폰에 자신이 설계한 소프트 키보드가 작동되는 모양을 사진으로 찍어 그림 12에 보였다. 그림 12(a)는 저작 도구로 설계한 모양이고, 그림 12(b)는 사용 자가 설계한 소프트 키보드가 실제 사용자 휴대폰에 설 치되어 작동되는 것은 볼 수 있다.

(a) 저작도구를 이용한 설계 (b) 설계된 대로 실제 휴대폰에 서 실행되는 모양

그림 12. 사용자 휴대폰에 소프트 키보드가 실행되는 스크

린 샷

Fig. 12. A screen shot of an android device running the soft keyboard authored by the user

(9)

V. 결 론

현재 스마트폰을 비롯한 다양한 모바일 기기들이 사 용되고 있으며, 이들 대부분은 터치스크린에 구현된 소 프트 키보드를 입력기로 사용하고 있다. 그러나 현재 배 포된 소프트 키보드들은 개인화할 수 없고, 주어진 그대 로 사용할 수밖에 없는 한계와 더불어, 새로운 키보드를 개발하는 작업은 상당한 수준의 전문가가 아니면 어려운 점이 있다.

이에 본 논문에서는 누구든지 안드로이드에서 작동가 능한 소프트 키보드를 쉽게 제작할 수 있는 저작 도구를 설계하고 구현한 내용을 설명하였다. 이 저작 도구는 사 용자가 크기, 위치, 색, 이미지 등 다양한 속성을 가진 키 버튼을 달아 키보드를 구성할 수 있게 하고, 한글의 자음, 모음, 중모음, 이중모음의 각 음소를 생성하는 키 버튼 조 합을 사용자가 쉽게 지정할 수 있게 한다.

본 논문의 핵심 아이디어는 키 버튼으로부터 한글 음 소를 인식하는 과정과 한글 음소들로부터 한글 문자를 구분하는 한글 오토마타를 분리시킴으로써, 사용자가 마 음대로 한글 키보드를 제작할 수 있게 하는데 있다.

이 저작 도구는 사용자가 원하는 모양과 크기로 자신 만의 소프트 키보드를 생성하는 목적뿐 아니라 오타가 적게 나는 효율적인 소프트 키보드를 작성하려는 많은 연구자들이 쉽게 자신의 아이디어를 구현해 볼 수 있는 큰 장점을 제공한다.

이 장점을 극대화하기 위해, 추후 본 저작 도구에 사용 자가 설계한 소프트 키보드의 성능을 테스트하는 모듈을 추가하고자 한다.

References

[1] Kye-Suk Lee, Hwan-Seung Yong, “Research on the Automatic Software Keyboard Based on Database”, Journal of Korea Multimedia Society, vol. 8, no. 1,pp.101-110, 2005.

[2] Asela Gunawardana, Tim Paek, Christopher Meek,

"Usability Guided Key-Target Resizing for Soft Keyboards", In proceedings of International conference of Intelligent User Interface, pp.111-118, 2010.

[3] L. Magnien, J. Bouraoui, and N. Vigouroux.

“Mobile text input with soft keyboards:

optimization by means of visual clues”, In Proceedings of Mobile HCI, pp.337–341, Springer-Verlag, 2004.

[4] Seongmin Kimo, Nahyun Kim, Woongsub Byun, Junhwan Choi, Taeseok Kim, “Soft Keyboard application for reducing the mis-typing ratio in the smartphones”, In Proceedings of Fall Conference, Korea Institute of Information Scientists and Engineers, vol. 38, no.2, pp.89-92, 2011.

[5] Kitae Hwang, Jae Moon Lee, “Preliminary Study on Soft Keyboard with Recommendation for Mobile Device”, The Journal of The Institute of Internet, Broadcasting and Communication, vol. 13, no. 6, pp.137-145, 2013.

[6] Kitae Hwang, Tae Wan Kim, Hye Kyung Cho,

“Performance Evaluation of Missless Soft Keyboard with Recommendation”, The Journal of The Institute of Internet, Broadcasting and Communication, vol. 14, no. 4, pp.187-195, 2014.

[7] Tae Wan Kim, Jin Shik Bae, Sung Hoon Park, Do Han Kim, Kitae Hwang, “A Design of Software Tool for Authoring Android Soft Keyboard”, Engineering Research, vol. 12, no. 1, 2014.

[8] http://developer.android.com/

guide/topics/text/creating-input-method.html [9] http://www.eclipse.org/

[10] https://developer.android.com/

tools/building/index.html

저자 소개

황 기 태(정회원)

∙서울대학교 컴퓨터공학과 학사 서울대학교 컴퓨터공학과 석사 서울대학교 컴퓨터공학과 박사

∙1994년 ~ 현재 : 한성대학교 컴퓨터 공학과 교수

∙University of Florida 방문 교수 <주관심분야 : 모바일 시스템, 추천 시스템, IoT>

(10)

※ 본 연구는 한성대학교 교내학술연구비 지원과제임

정 인 환(정회원)

∙2000년 : KAIST 정보및통신공학과 박사

∙1985 ~ 1998년 : 삼성전자 시스템사 업부 수석연구원

∙2001년 ~ 현재 : 한성대학교 컴퓨터 공학과 교수

<주관심분야 : 망관리, 멀티미디어통신, IoT>

수치

그림 2. 여러 안드로이드 소프트 키보드 Fig. 2. Some Android soft keyboards
Fig. 4. Process to author an android soft keyboard
Fig. 6. State diagram of Hangul automata
그림 7. APK Builder의 처리 과정
+3

참조

관련 문서

Osteomyelitis in the right distal femur with surrounding

※ Accessory spleen의 유무 확인 또는 Diaphragmatic rupture를 동반한 trauma후에 chest를 보기 위 한 검사일

식도의 통과검사는 환자가 삼킨 bolus가 식도를 통하여 위(stomach)로 내려가는 시간을 측정함으로써 식도 의 기능을 평가하는데 이용.. ④ 컴퓨터를

P.( Kidney

1 John Owen, Justification by Faith Alone, in The Works of John Owen, ed. John Bolt, trans. Scott Clark, &#34;Do This and Live: Christ's Active Obedience as the

An Android program generally forms a Java program with APIs in Android platform. Using the APIs, one can build user interfaces to make a phone call, play a game, and so on. An

Percutaneous endoscopic cervical discectomy (PECD) is an effective minimally invasivesurgery for soft cervical disc herniation in properly selected cases..

(1973), “An Experimental Investigation on The Similitude in The Consolidation of A Soft Clay, Including The Secondary Creep Settlement“, Proceedings, 8th International