[모바일 플랫폼 기반계획 및 학습인지 모델 프레임워크 기술 개발]
본 프로젝트는 안드로이드 기반 상황 인지 스마트폰 애플리케이션들의 유기적인 결합을 위한 프레임워크에 관한 것입니다. 상황 인지 시스템에 필요한 독립적인 모듈이 존재하지만, 기존의 안드로이드는 이를 통합하여 유기적으로 결합할 적절한 방법을 제시하지 못했습니다.
따라서 안드로이드 플랫폼을 감추고, 유기적인 결합을 위한 복잡도를 최소화시켜 개발자에게 편의를 제공하는 프레임워크를 개발하는 것이 필요했습니다. 이를 위해 각 컴포넌트가 동시에 접근하여 데이터를 공유하기 위해 필요로 하는 공유 정보 저장소인 블랙보드 구현했습니다. 이는 개발자가 어떤 형태의 데이터를 기록할지 모르므로 기록 가능한 데이터의 종류에 제한을 두지 않았습니다.
또한, 각 컴포넌트가 동시에 데이터값을 기록하거나 가져갈 수 없도록 동기화했습니다. 블랙보드를 사용하기 위해서 블랙보드와 컴포넌트 간의 동기적 호출이 필요했습니다. 이는 프로세스 범위를 넘어서는 독립적인 애플리케이션 간의 통신이므로 AIDL을 사용해 컴포넌트와 블랙보드 간 서비스 바인딩을 통한 원격지 함수 호출이 가능하도록 했으며, 블랙보드를 접근하기 위해 싱글톤 형태로 객체를 얻도록 했습니다.
또한, 블랙보드에서 값 변경 알림을 전달하기 위한 컴포넌트 간의 비동기적 호출로서 인텐트 방송을 사용했으며, 웹 서비스 요청은 쓰레드를 사용했습니다. 동기적, 비동기적 호출을 위한 서비스 바인딩, 브로드케스트 리시버를 등록하는 과정은 사용자에게 일련의 과정이 보이지 않도록 했습니다. 이러한 서비스를 사용하기 위해 서로 필요한 연결 및 등록 과정만을 거치도록 하여 복잡도를 낮출 수 있도록 라이브러리로 배포했습니다.
[NFC를 이용한 학교 방문자 출입 관리 시스템]
본 프로젝트는 스마트폰 애플리케이션 및 NFC 태그를 이용하여 학교를 출입하는 외부인 출입 허가 시스템입니다. 외부 방문자가 웹 페이지 또는 애플리케이션을 통해서 방문 신청을 했다면 관리자는 이를 확인하여 신청 승인을 합니다.
이 경우에 교문에 설치되어있는 SM5 보드에 유효값이 전송되고 이후 방문자가 출입하여SM5 보드에 연결된 NFC 리더기에 스마트폰 혹은 NFC 태그를 접촉 시 값을 읽어서 유효성을 판단합니다. 이러한 서비스를 제공하기 위해 APMSETUP을 이용해 서버를 구축했고 제로보드 XE를 바탕으로 학교 웹 페이지를 통한 회원가입 및 비회원 서비스를 만들었습니다.
또한, 웹 페이지 회원에 대한 정보를 기록하기 위한 DB와 애플리케이션 사용자를 위한 DB를 구축했습니다. 이후 스마트폰 사용자를 위한 알림과 SM5 보드에 유효값을 전달하기 위해 GCM 통신 환경 및 서버 Push 기능을 구현했습니다.
[안드로이드 애플리케이션을 이용한 임베디드 데이터베이스 관리 툴 개발]
본 프로젝트는 임베디드 데이터베이스에 대한 이해와 활용을 위해 SQLite Library에서 지원되는 API를 이용하여 JNI 작성을 바탕으로 애플리케이션을 개발했습니다.
SQLite에서 제공하는 주요 API로 데이터베이스 연결 객체를 위한 생성자 역할인 open() 함수부터 prepare(), step(), finalize(), open() 함수 호출에 의해 생성된 데이터베이스 연결을 종료하는 close() 함수 등을 사용했습니다.
먼저 Java Class에서 C로 작성된 JNI native 함수와 연결할 메소드를 native 키워드를 이용하여 선언했고, 이에 대한 헤더파일을 생성하여 JNI native 함수를 구현할 .c 파일을 생성했습니다. 이후 Cygwin과 NDK를 설치하여 .so 파일을 생성했고, 이를 사용하기 위한 액티비티를 구현했습니다.
글자수 1,835자3,036Byte