Smart Touch 개발자를 위한 통합 개발환경 소개

안녕하세요, 지난 포스팅에서는 Smart Touch 플랫폼 에 대해서 소개해 드렸는데요.

소개 드린 이후 “스마트터치 개발자 Day” 도 성공적으로 진행 되었고요 Smart Touch 플랫폼을 사용한 “스마트터치 앱“도 출시 되었습니다. 향후 Smart Touch 플랫폼을 사용한 다양한 서비스가 나타날 것으로 기대가 됩니다.

이번에는  Smart Touch 플랫폼을 이용하시는 프로세스에 대해 상세히 설명드리려고 합니다.

Smart Touch 플랫폼 이용 프로세스

Smart Touch 플랫폼 이용을 원하는 제휴사는 Smart Touch Developer사이트 에 회원 가입 후, 개발 가이드 및 IDE를 다운로드 받아 애플릿 및 애플리케이션을 개발할 수 있습니다.

그림 1. Smart Touch 플랫폼 이용프로세스

Smart Touch 통합개발환경 (IDE, Integrated Development Environment)

Smart Touch플랫폼은 애플리케이션과 애플릿 통합 개발 환경(IDE)을 각각 제공하고 있습니다.  애플리케이션 및 애플릿 개발을 원하는 개발자들은 Smart Touch IDE를 다운로드 받아, 실행하여 원하는 NFC Android 애플리케이션과 애플릿을 만들 수 있습니다.

Applet  IDE

애플릿통합 개발 환경은 Smart Touch 에서 제공되는 통합 개발 환경으로 서비스 사업자 및 3rd Party 개발자들의 개발이 용이하도록 제공됩니다.

그림 2. Applet IDE 구조

Smart Touch Applet IDE는 Eclipse의 플러그 인 형태로 제공되고 Eclipse 메뉴의 “Help > Install New Software…”를 통하여 간편한 설치가 가능합니다.(https://nrms.sksmarttouch.com:8443/resources/ide/applet-update/)

Smart Touch Applet IDE는 아래 기능을 지원합니다.

  • 개발자 POC 연동을 통한 Login/ Logout
  • 개발자 로그인 정보 설정 (Preferences)
  • Smart Touch 플랫폼 API 연동 기능
  • 신규 프로젝트 생성 마법사 (New Project Wizard)
  • Applet 관리 (Applet Manager) 기능
  • 통합 테스트 환경
  • 개발자 가이드 (Help)

Smart Touch Applet  IDE 를 통한 개발 프로세스

Applet 신규 개발 시 Smart Touch Applet IDE를 사용하여 개발이 가능 합니다.  생성된 결과물 또한 Applet IDE을 통해서 AID 발급, 정보등록, 검증요청 및 서비스가 가능합니다.

그림 3. Smart Touch Applet IDE를 통한 Applet 개발 프로세스

  • 신규 프로젝트 생성 마법사 (New Project Wizard)

Eclipse 의 “File > New >Project > Smart Touch Applet Project” 를 선택 하면 3가지 형태의 프로젝트 타입을 제공하여 개발의 편의를 돕고 있습니다.

그림 4. 신규프로젝트생성 마법사

  • User-defined project 사용(예)

Applet을 구성하는 데이터 형태 및 APDU 명령어 셋을 정의하여 초기 소스코드를 자동으로 생성하는 개발 모드 입니다.

Step 1 : 파일구조정의

파일은 동적으로 추가, 수정 그리고 삭제가 가능합니다.  파일 용량은 최대 20Kbyte까지 추가하실 수 있습니다. 입력하신 파일 이름과 record 크기 그리고 record 개수는 프로젝트 생성 완료 시 해당 값을 사용하여 소스가 자동으로 생성 됩니다.

    그림 5. 파일 생성/수정/삭제

Step 2 : API(APDU)정의

API 즉, 규격서에 명시한 APDU 명령어를 추가, 수정 그리고 삭제가 가능합니다. 해당 과정은 선택적으로 수행할 수 있습니다. 위 입력 값 중 API Name과 INS값은 필수 입력 사항이고 고유 값이어야 합니다. 그리고 INS값을 제외한 항목은 여러 값을 입력할 수 있으며 쉼표(,)로 구분합니다. 입력하신 API는 프로젝트 생성 완료 시 해당 값을 사용하여 소스 코드가 생성됩니다.

     그림 6. API(APDU) 생성/수정/삭제

Step 3 : 완료(프로젝트 생성)

선택하신 내용에 따라 소스코드가 자동으로 생성됩니다

생성된 소스코드를 기반으로 서비스 로직에 따라 상세 코드를 작성하시면 됩니다.

그림 7. 프로젝트 생성 완료

  • 통합 테스트 환경

Smart Touch Applet IDE에서 제공되는 AppletTC(안드로이드용 테스트 어플리케이션)을 통해 개발자가 개발단계에서 개발된 Applet을 검증할 수 있는 기능을 제공합니다.

테스트 어플리케이션은 Smart Touch 플랫폼 API 에서 제공하는 Applet 발급/삭제, Lock/Unlock을 비롯하여 직접 APDU 명령어를 입력하여 동작을 테스트해볼 수 있습니다.  핸드폰 뿐만 아니라 안드로이드 에뮬레이터 환경으로도 PC/SC 스마트카드 리더기를 통해 테스트할 수 있습니다.

그림 8. 통합테스트 환경 구성도

Application IDE

Smart Touch Application IDE는 Eclipse의 플러그 인 형태로 제공되고 Eclipse 메뉴의 “Help > Install New Software…”를 통하여 간편한 설치가 가능합니다.(https://nrms.sksmarttouch.com:8443/resources/ide/application-update/)

Smart Touch Application IDE는 아래 기능을 지원합니다.

  • 개발자 POC 연동을 통한 Login/ Logout
  • 개발자 로그인 정보 및 SDK 경로 설정 기능
  • 권한관리 서버 연동기능
  • 프로젝트 변환 마법사
  • 통합 테스트 환경
  • 개발자 가이드 (Help)

Smart Touch Application IDE 를 통한 개발 프로세스

  • Smart Touch Developer회원 가입

Smart Touch Application을 사용하기 위해서는 Smart Touch Developer 회원 가입이 되어 있어야 합니다.

  • SDK 다운로드

Smart Touch  Developer 사이트에 접속 후 SDK를 다운로드 받습니다. SDK는 ZIP 파일 형태로 구성되어 있으며, 다운로드 후 설치를 원하는 폴더에 저장 후 압축을 해제 하셔서 사용하시면 됩니다.

  • Application 등록

신규 Application을 등록합니다. 이 때, Package Name은 Application 관리 기본 단위이며, 해당 패키지 이름으로 Smart Touch Application 프로젝트를 생성하셔야 합니다.

그림 9. Smart Touch Developer 사이트 신규 Application 등록 화면

  • Component 권한 신청

등록된 Application 을 선택 하여 사용할 Component 의 권한을 신청합니다.

  • 프로젝트 생성

Smart Touch Application은 Android O/S에서 동작합니다. 그럼으로 Android 프로젝트를 먼저 생성합니다. 이 때 Application Name 과 Package Name 은 Smart Touch Developer 사이트에서 등록한 이름을 사용하셔야 정상적으로 component를 사용할 수 있습니다.

그림 10. Android 프로젝트 생성

  • 프로젝트 변환

Android 프로젝트를 Smart Touch Application 프로젝트로 변경합니다. 로그인 계정을 기반으로 각 Application 별로 사용 가능한 Smart Touch Component를 확인합니다.

프로젝트 이름을 선택한 후 오른쪽 마우스 버튼 또는 툴바에 있는 Convert Project 버튼을 누르면 실행됩니다.

그림 11. 변환 완료된 프로젝트 화면

지금 까지 Applet IDE 와 Application IDE의 사용법에 대해서 알아 보았습니다. 다음 포스트에서는 Smart Touch platform 을 사용하여 개발된 대표적인 NFC 기능 App 인 Smart Touch Application 을 소개하겠습니다.

정정용 Commerce기술개발팀

SK플래닛에서 NFC 플랫폼, NFC USIM 개발을 담당하고 있습니다.

공유하기

  • 신우섭

    NFC(Near Field Communication): 근거리 통신)

    뭐하는데 쓰는지 잘 모르겠다.