cloud ide를...

38
cloud IDE 이용한 모바일 개발의 가능성과 전망 성균관대학교 IT융합학과 박사과정 류성태 1

Upload: sung-tae-ryu

Post on 23-Jun-2015

684 views

Category:

Documents


3 download

TRANSCRIPT

Page 1: Cloud ide를 이용한_모바일_개발의_가능성과_전망

cloud IDE 를 이용한

모바일 개발의 가능성과 전망

성균관대학교 IT융합학과

박사과정 류성태

1

Page 2: Cloud ide를 이용한_모바일_개발의_가능성과_전망

발표자 소개

• 류성태[email protected]@[email protected]

– 성균관대학교 전자전기공학과 학사 졸업

– 성균관대학교 전자전기컴퓨터공학과 석사 졸업

– 성균관대학교 IT융합학과 박사과정 재학 중

– 연구 분야: 파일 시스템• NVMFS를 위한 신뢰성 보장 기법 연구 중

– 활동

• 소프트웨어 마에스트로 1기

• 클라우드 통합 개발 환경 goormIDE Project Founder

– 저서

• 실시간 웹 애플리케이션 개발을 위한 Node.js 프로그래밍

수상

–삼성전자 휴대폰 아이디어 경진대회 성균관대학교 대상/본선 입선

–한국소프트웨어저작권협회 주관 제3회 SW저작권 보호 아이디어 경진대회 은상 입상

–다음, 구글 주관 위젯=가젯 경진대회 우수상 입상

–한국 MS 주관 비스타 리뷰 공모전 대상 입상

– Naver, Daum, MS, Yahoo, 주관 대한민국 매쉬업 경진대회 우수상입상

– SKT-MS-Samsung 주관 T옴니아 소프트웨어 개발 경진대회 은상입상

–특허청/공학한림원 주관 캠퍼스 특허전략 유니버시아드 특허청장상

–한국 소프트웨어공학 학술대회 우수논문상

– 2010 한국 공개 소프트웨어 공모대전 학생부/자유주제 은상 입상

– 2011 한국 공개 소프트웨어 공모대전 대상 입상

– 2011 한국 공개 소프트웨어 공모대전 베스트 업그레이드상 입상

–성균관대학교 모바일앱 공모전 수상

– 2012 한국 공개 소프트웨어 공모대전 베스트 업그레이드상 입상

–제7회 한중일 공개소프트웨어 동북아 포럼 - 특별 기술상

2

Page 3: Cloud ide를 이용한_모바일_개발의_가능성과_전망

Contents

• DaaS / DevaaS 와 Cloud IDE 소개

• 관련 현황

• 모바일 개발 with Cloud IDE

• Cloud IDE를 이용한 모바일 개발의 전망

• 국내 동향 - goormIDE 소개

3

Page 4: Cloud ide를 이용한_모바일_개발의_가능성과_전망

DAAS/DEVAAS 와CLOUD IDE 소개

cloud IDE 를 이용한

모바일 개발의 가능성과 전망

4

Page 5: Cloud ide를 이용한_모바일_개발의_가능성과_전망

DaaS / DevaaS ??

• Development as a Service

– 개발과 관련된 대부분의 서비스를 클라우드로 제공

– 커뮤니티 도구

– 웹기반 개발 도구

– 테스팅 도구

– 이슈 트래킹 도구

– CI 서버

– 이러한 여러 도구들의 매쉬업

5

Page 6: Cloud ide를 이용한_모바일_개발의_가능성과_전망

DaaS / DevaaS ??

6

Page 7: Cloud ide를 이용한_모바일_개발의_가능성과_전망

Cloud IDE

• 클라우드 통합 개발 환경

– 웹브라우저만 있으면 언제 어디서나 개발 가능

– 별도의 설치 과정이 불필요

– 온라인 실시간 협업 지원

– 빌드/디버깅 지원

– 다양한 프로그래밍 언어 지원

• http://www.ciokorea.com/slideshow/16491/슬라이드쇼+'꼭+PC에서+개발할+필요는+없잖아%3F'+브라우저+기반+클라우드+IDE+10선

• http://www.ciokorea.com/news/16671?page=0,1

7

Page 8: Cloud ide를 이용한_모바일_개발의_가능성과_전망

Cloud IDE

8

Page 9: Cloud ide를 이용한_모바일_개발의_가능성과_전망

관련 현황

cloud IDE 를 이용한

모바일 개발의 가능성과 전망

9

Page 10: Cloud ide를 이용한_모바일_개발의_가능성과_전망

Cloud IDEs

• Cloud 9 IDE

– http://c9.io

• Eclipse Orion Project

– http://www.eclipse.org/orion/

• Koding

– http://koding.com

• Icenium

– http://www.icenium.com

• goormIDE

– http://goorm.io

– http://demo.goorm.io / http://book.nodejs.goorm.io

10

Page 11: Cloud ide를 이용한_모바일_개발의_가능성과_전망

Cloud IDEs

• Codeanywhere

– https://codeanywhere.net/

• Coderun Studio

– http://coderun.com/

• ShiftEdit

– https://shiftedit.net/

• codenvy

– https://codenvy.com/

11

Page 12: Cloud ide를 이용한_모바일_개발의_가능성과_전망

Cloud IDEs

• Google Apps Script

– http://www.google.com/script/start/

12

Page 13: Cloud ide를 이용한_모바일_개발의_가능성과_전망

모바일 개발WITH CLOUD IDE

cloud IDE 를 이용한

모바일 개발의 가능성과 전망

13

Page 14: Cloud ide를 이용한_모바일_개발의_가능성과_전망

Cloud IDE를 이용한 모바일 개발

Q. 지금 당장 Cloud IDE를 이용하여 모바일 개발을 시작할 수 있나?

14

A1. 현재 대부분의 Cloud IDE는 웹 애플리케이션 개발에

초점을 맞추고 있음

A2. 웹기반 모바일 애플리케이션 개발은

가까운 시기에 지원하는 Cloud IDE가 등장할 것

http://apps.icenium.com

멀지 않은 시기에

"gmail / google docs 에서 느끼고 있는 유용함 그대로"

클라우드 환경에서 모바일 애플리케이션 개발이 가능해질 것

Page 15: Cloud ide를 이용한_모바일_개발의_가능성과_전망

Cloud IDE의 장점

• 효율적인 협업 가능

– SCM과 잘 결합된 실시간 편집 (Google Docs 처럼)

15

Page 16: Cloud ide를 이용한_모바일_개발의_가능성과_전망

Cloud IDE의 장점

• 플랫폼/디바이스 독립성 - 어디서나 개발 가능

– 인터넷에 연결 가능한 데스크탑, 노트북, 테블릿만 있으면

– OS나 웹브라우저에 상관없이

16

Page 17: Cloud ide를 이용한_모바일_개발의_가능성과_전망

Cloud IDE의 한계

• 기능/성능

– 상용 개발 도구에 비해 부족한 기능과 성능

– 이클립스에 비하면? 아직까지는 많이 부족하고 비실용적인 기능들 위주

• 대규모 프로젝트 수행

– 성공 사례 뿐만 아니라 아직까지 시도된 사례도 부족

– 안정성 / 보안에 대한 미검증

17

Page 18: Cloud ide를 이용한_모바일_개발의_가능성과_전망

Cloud IDE를 이용한 모바일 개발

• 분명한 한계점

– 실제 디바이스에서 실행 및 테스트를 할 수 없다.

– GUI 설계 및 개발이 어렵다.

• UI Authoring Tool 지원 미비

• GUI가 포함된 애플리케이션 개발 자체가 어렵다.(웹기반 애플리케이션을 제외하고)

– 애플리케이션의 배포 및 판매 과정이 불편하다.

– 플랫폼 개발이 어렵다.

• ex) Android PDK 기반의 ROM 빌드

18

Page 19: Cloud ide를 이용한_모바일_개발의_가능성과_전망

Cloud IDE를 이용한 모바일 개발

• 몇 가지 해결책

– 기능적 한계 극복

• 디바이스 에뮬레이터 -> WebVNC

• 원격 디버깅 (루팅을 해야 하고, 같은 네트워크에 연결되어 있어야)

– 장치에 설치되는 애플리케이션 기반으로 클라우드 서비스화 가능

– 성능적 한계 극복

• 분산 컴파일

• 분산 테스팅

• 분산 정적 분석

19

Page 20: Cloud ide를 이용한_모바일_개발의_가능성과_전망

하이브리드 앱

• HTML5, CSS3, Javascript 중심의 최신 웹기술이 각광

– 플랫폼이나 장치에 거의 의존성을 가지지 않는 기술들

– 비교적 쉽고 명확하게 개발할 수 있다는 장점

– (W3C) Device API 등으로 인해 장치와의 연동성도 향상되고 있음

– 다양한 모바일 UI 프레임워크의 등장

• jQuery Mobile, Sencha Touch, ...

• 모바일 애플리케이션들도 웹기술 기반으로 개발 가능

– 다양한 오픈 소스 프로젝트나 제품이 존재

• APACHE CORDOVA

• PHONEGAP

• APPSPRESSO

• ...

20

Page 21: Cloud ide를 이용한_모바일_개발의_가능성과_전망

icenium mist

• 아파치 코도바(Apache Cordova) 프로젝트 기반의 모바일 앱 개발을 위한 브라우저 툴

21

Page 22: Cloud ide를 이용한_모바일_개발의_가능성과_전망

CLOUD IDE를 이용한모바일 개발의 전망

cloud IDE 를 이용한

모바일 개발의 가능성과 전망

22

Page 23: Cloud ide를 이용한_모바일_개발의_가능성과_전망

개발과 관련된 모든 것들을 서비스로!

23

테스트하기 귀찮다.오늘은 머리가 안 돌아가, 네가 대신 코드 좀 짜줘

아 까먹고 커밋을 안했네 Android SDK 다시깔아야돼 ㅜㅜ

Android 또새 버전 나왔어?

단말기가왜이렇게 많아!

김 책임님, 어제 버그 수정하신 거땜에 오늘 버그 더 생겼지 말입니다.

제 자리 와서코드 좀 봐주세요~

인간은 귀찮음의 동물!!!

하지만 욕심의 동물!!!

지금 출장 중이라 노트북뿐이라서... 수정은 힘들 듯...

다시 회사로오시랍니다.

Page 24: Cloud ide를 이용한_모바일_개발의_가능성과_전망

디바이스 테스팅

• 다양한 장치의 분산 테스팅

– Unit Test

– Acceptance Test

– Device Test

24

Page 25: Cloud ide를 이용한_모바일_개발의_가능성과_전망

디바이스 테스팅

• MonkeyTalk (http://www.gorillalogic.com/monkeytalk)

– MonkeyTalk는 자바스크립트로 테스트 코드를 기술하여자동화된 모바일 어플리케이션 테스팅을 할 수 있도록 해주는 도구

– Testing Services (http://www.gorillalogic.com/testing-services)

• 실제 장치가 없어도 Cloud Monkey 라는 자사의플랫폼을 이용하여 테스팅 결과를 리포팅

– Cloud Monkey (http://www.gorillalogic.com/cloudmonkey)

• 안드로이드와 iOS의 에뮬레이터들을 통해다양한 버전에서 테스팅할 수 있도록 해주는클라우드 플랫폼

25

Page 26: Cloud ide를 이용한_모바일_개발의_가능성과_전망

디바이스 테스팅

• MonkeyTalk (http://www.gorillalogic.com/monkeytalk)

26

Page 27: Cloud ide를 이용한_모바일_개발의_가능성과_전망

일반 사용자도 개발을!

• Google App Inventor

– http://appinventor.mit.edu/

– MIT에서 구글의 지원을 받아개발한 웹기반 안드로이드 앱개발 도구

– 일반 사용자도 쉽게 개발할 수있도록 Scratch를 기반으로 함

• S전자 T플랫폼

– 일반 사용자가 해당 플랫폼에서동작하는 웹기반 모바일 앱을쉽게 개발할 수 있는 클라우드통합 개발 환경을 원함

27

Page 28: Cloud ide를 이용한_모바일_개발의_가능성과_전망

일반 사용자도 개발을!

• Google Apps Script

28

Page 29: Cloud ide를 이용한_모바일_개발의_가능성과_전망

개발 프로세스 통합 관리

• 다양한 웹 기반 개발 프로세스 관리 도구들과 결합

– Continuous Integration

• Jenkins, Cruise Control, Continuum

– Acceptance Testing Tool

• FitNesse, STAF

– Issue Tracking Tool

• Trac, JIRA, Redmine

– Source Code Hosting Service

• github, sourceforge, google code

• Google Apps의 다양한 도구들과 결합

– Mavenlink, Draw.io, Do, ...

29

Page 30: Cloud ide를 이용한_모바일_개발의_가능성과_전망

오픈 소스 프로젝트 활성화

• 접근성이 뛰어난 개발 환경

– 누구나 쉽게 편리하게 소스 코드를 개선

– 오픈 소스 프로젝트 활성화에 기여

• 써드 파티 모바일 앱 개발자들의 경쟁력 향상

– 국적, 위치, 나이, 성별에 상관없는 평등한 위치

– 평등한 위치에서 꽤 수준 높은 유용한 앱들이 개발될 수도 있을 듯

30

Page 31: Cloud ide를 이용한_모바일_개발의_가능성과_전망

남겨진 이슈들...

• 개발 내용의 보안 문제

• 임베디드 또는 시스템 개발의 어려움

• 기존의 개발 방법론/테스팅 방법론들의 유효성

• 개발자의 익명성에 따른 문제

31

Page 32: Cloud ide를 이용한_모바일_개발의_가능성과_전망

국내 동향 – GOORM IDE

cloud IDE 를 이용한

모바일 개발의 가능성과 전망

32

Page 33: Cloud ide를 이용한_모바일_개발의_가능성과_전망

goormIDE 1.1

33

goormIDE v1.1Cloud Integrated Development Environment

온라인 소스 코드 편집(웹브라우저에서 소스 코드를 편집)

온라인 빌드/실행(웹브라우저에서 소스 코드를 빌드하고 실행)

온라인 디버깅(웹브라우저에서 프로그램을 디버깅)

교육용 기능 지원(퀴즈 시스템/자동 채점/유사도 분석)

온라인 편집 협업(구글 닥스처럼 소스 코드를 동시 편집)

프로젝트 공유 및 관리(프로젝트 단위의 쉽고 편리한 협업)

플러그인 엔진(다양한 개발언어/플랫폼 지원)

Page 34: Cloud ide를 이용한_모바일_개발의_가능성과_전망

goormIDE 프로젝트 소개

• 오픈 소스 프로젝트 (http://goorm.io)

– 모든 소스 코드가 공개되어 있음

– 듀얼 라이센스 (비상업 + 상업)

• 개인 사용자에겐 무료, 재배포 금지

• 단체, 기업 사용자에겐 유료

• NIPA 공개SW 커뮤니티 지원 사업 2년 연속 우수과제 선정

– 사업화를 위해 현재 법인 설립 완료

– 교육용 버전 -> 글로벌 서비스 버전 -> 기업용 버전

34

Page 35: Cloud ide를 이용한_모바일_개발의_가능성과_전망

goormIDE 프로젝트 소개

35

NAVER, DAUM, MS, Yahoo 주관

대한민국 매쉬업 경진대회2위 수상

지식경제부, NIPA 주관

공개 소프트웨어 공모대전학생부/자유주제 2위 수상

지식경제부, NIPA 주관

공개 소프트웨어 공모대전베스트 업그레이드상

2009 2010 2011 2012 2013

지식경제부, NIPA 주관

공개 소프트웨어 공모대전베스트 업그레이드상(2회 연속)

2011NIPA 공개소프트웨어개발 커뮤니티 지원사업

우수과제 선정

2012NIPA 공개소프트웨어개발 커뮤니티 지원사업

우수과제 선정

Page 36: Cloud ide를 이용한_모바일_개발의_가능성과_전망

goormIDE의 현황

• 교육용 버전

– 퀴즈 관리 / 자동 채점 / 소스 코드 유사도 측정

– 슬라이드 도구 지원

– 현재 성균관대학교 컴퓨터공학 실습1 에서 사용 중

– 2013년 하반기부터 타학교에도 점진적 확대 예정

– 전문 컴퓨터 서적의 예제 실행용 교육 플랫폼

• http://book.nodejs.goorm.io

• 글로벌 서비스 버전

– cloud9 등과 같은 모델과 유사하게 상용 서비스를 준비 중

– 구글 크롬 웹스토어 / 모질라 웹스토어 등에서 출시 예정

– 개인 사용자에게는 대부분의 기능을 포함한 무료 버전을 기본 제공

36

Page 37: Cloud ide를 이용한_모바일_개발의_가능성과_전망

goormIDE에서의 모바일 개발

• demo.goorm.io 서버

– C/C++ 개발 데모

• 파일시스템 & 스토리지 벤치마킹 도구 IOzone 편집 및 빌드

– Android App 개발 데모

• 간단한 애플리케이션 편집 및 빌드

• VNC를 이용하여 서버의 에뮬레이터에 연결

37