4. 상용 Web IDE 공통 기능
• 프로젝트(파일) 관리
• 워크스페이스 제공
• 프로젝트 템플릿 제공
• 파일 업로드/다운로드
• 프로젝트 내보내기/가져오기
• 편집기(문법 검사,
코드 하이라이팅,
자동 완성 등)
• 자동 저장 및 리비전(SCM과는 별개)
• 개발,
빌드 및 실행을 위한 VM(Container)
제공
• 협업
• 프로젝트 공유/멤버 관리
• IDE내 메신저
• 동시 협업 코딩 등
• SSH
터미널 제공 (대부분 sudo
명령어 지원)
• 형상관리 연동(Git/Mercurial/SVN)
• UI 사용자화(창,
창 분할,
테마 사용자화 등)
5. 실행(테스트) 환경 관련
• VM(Container)
기반 워크스페이스
• 실행 및 빌드 시에만 VM(Container)
생성
• 웹 서비스 테스트를 위한 호스팅(Public
URL)
제
공
• 배포는 별도
6. • Docker
기반 컨테이너 제공
• 프로젝트 실행 시에만 컨테이너(Runner) 동작
• 프로젝트 실행 시 웹 SSH
Terminal을 통해 접속 가능
• 웹 UI를 통한 데이터베이스 연동
• 언어 지원 :
C/C++,
Javascript,
Java,
PHP,
Python,
Ruby
• 템플릿 프로젝트 제공
• 언어별 빌드툴에 대한 빌더 인터페이스 제공
• 언어별 다양한 실행환경 제공
• 형상관리 제공(Git,
Subversion)
17. • 형상관리 시스템에 밀접하게 연동
• 프로젝트 생성 시 형상관리 시스템을 먼저 선택
• UI상에서 Package
management
제공
• npm,
pip,
bower
등
• 개발용 데이터베이스 제공
• Heroku
개발 특화
• Heroku
앱 템플릿 제공(Node,
Django)
18.
19.
20.
21.
22.
23.
24. • VM
기반 -‐
VM에 대한 Public
IP
제공
• 편집기 위주의 화면 구성
• 빌드,
테스트 등은 터미널을 통해 명령어/스크립트로 수행
• 그림판(Drawing
Board)
편집기 제공
• 메신저(개인 Direct
Message/채널)
• 채널의 경우 Public,
다른 사용자들과 의견 공유
• VM
관리
• VM
Spec,
Disk
Usage,
Domain,
VM
Share,
Snapshot,
..
• 외부 VM
사용 가능 –
해당 VM에서 셋업 스크립트 실행
25.
26.
27.
28.
29.
30. • 컨테이너,
FTP/SFTP/SSH,
Git/
스토리지 서비스를 통해 프
로젝트 생성 및 파일 관리 가능
• 자체 제공 컨테이너 :
언어 및 프레임워크별 이미지 제공
• Github/Bitbucket
연동 또는 Git
URL
• 3rd
Party
스토리지 서비스 :
Amazon
S3,
Dropbox,
Google
Drive
• 프로젝트 템플릿은 제공하지 않음
• 컨테이너의 언어(프레임워크)
스택에 따라 웹 서버 실
행
• 스택에 필요한 패키지 설치 후 커스텀 스택으로 저장
• 협업은 다른 사용자에게 프로젝트를 공유 기능 지원
• 프로젝트/컨테이너 등의 설정은 JSON
형식의 파일을 직
접 수정
31.
32.
33.
34. • 컨테이너 베이스
• REPL(Javascript)
제공
• WAS에 대한 로그 콘솔 제공
• 로컬 IDE와 유사한 수준의 디버깅 제공
• 컨테이너 리소스 모니터링 및 프로세스 관리 가능
• HTML
페이지,
마크다운,
이미지 파일 등의 프리뷰 지원
43. • 국내 웹 IDE
• 컨테이너 기반(Amazon
EC2
Container)
워크스페이스
• *.goorm.io
/
*.compute.amazonaws.com
Public
URL
제공
• Java
교육용 컨텐츠(예제/템플릿) 제공
• 로컬 IDE와 유사한 수준의 디버깅 기능 제공
• Git/Subversion
연동 (불안정)
• 문서뷰어 제공(Slideshare.net,
PDF)
• 작업 내역(리비전)
기록 및 해당 리비전에 대한 작
업 내역 재생 기능
51. 오픈소스 Web IDE 목록
• Eclipse
Che
• Eclipse
Orion
• Eclipse
Dirigible
• Eclispe
Flux
• Codebox
• Codiad
(프론트엔드 언어만)
52.
53. Eclipse Che
• Codenvy에서 이클립스 재단에 기여
• Codenvy에서 제공하는 대부분의 기능 제공(UI
포함)
http://www.eclipse.org/che/
54. Eclipse Orion
• CloudFoundry
와 연동
• 편집 기능 제공
• Git
연동
• Shell
제공 (지정된 명령어만 사용가능)
• Public
URL
제공
• manifest.yml
편집 및 유효성 검사 기능 제공
55.
56.
57.
58.
59.
60.
61.
62.
63.
64. Eclipse Dirigible
• SAP에서 이클립스 재단에 기여
• Perspec+ve를 통한 화면 구성
• Database,
Debug,
Generic,
Registry,
Repository,
Worksp
ace,
Help
• Sandbox를 통한 호스팅 제공
• 데이터베이스 스키마 편집 Perspec+ve
제공
• Plugin
Lazy
Load
• 전체적으로 UI
반응성이 떨어짐
• UI
구성이 일반적인 IDE와 차이가 있음
http://www.dirigible.io/index.html#about
65.
66.
67.
68.
69.
70.
71.
72. Codebox
• 테스트 서버 현재 회원가입 제한 상태..
• Node.js
기반,
Apache
라이센스
• Java,
Python,
Ruby,
Go
등의 언어 지원
• 개발 중지된 것으로 보임(마지막 커밋 7개월 전
)
https://www.codebox.io
73.
74. Scenario
• 자바 웹 애플리케이션 개발 및 배포
• 빌드 도구 :
Maven
• 의존성 관리 이슈 –
외부 Lib,
다른 Project
연결
• Classpath
관리
• 형상관리 :
Git
(Internal/External)
• Run
Configura+on
–
VM
옵션,
Run+me
Env,
etc,.
• 배포 대상 :
Open
PaaS(CF)
Run+me
• 서비스팩 바인딩?
• 애플리케이션 관리(속성)
75. 기타/참고사항
• UI
상에서 사용자에게 지원하지 않는 기능의 일
부는 터미널을 통해 필요한 것을 설치하거나
사용할 수 있음
• 배포 시 Target
Space
지정?
• 하나의 프로젝트를 다른 Target
Space에 배포할 경우
• 개별 프로젝트에서 하나의 Remote
Git
Repository
설
정으로 해결 가능
• Service/Applica+on
관리
76. IDE
사용자 인터페이
스
모니터링/감사
관리
사용자 인터페이
스
자원/사용자/프로
젝트 관리
파일 관리
/리비전
언어 확장
(프레임워크
/빌드 툴 등)
UAA
연동
(사용자 인증/권한
)
협업
CF
연동
(서비스팩/애플리
케이션/배포)
형상관리 연동
개발(테스트/빌드)
환경