SlideShare a Scribd company logo
1 of 25
지도 서비스용
웹앱
개발환경 사용기
이규영/시터스
2015-05-25
스마트휠
VGI : Volunteered geographic information
2014.04.01 ~ 2016.02.29
Q: 왜 만들고 있나?
A: 휠체어 사용자, 청각장애인, 고령자, 임산부
등 일상생활에서 걸어서 이동이 불편한 교통약
자들에게 도보용 길안내를 할 수 없을까?
Q: 누가 만들고 있나?
A: 서울대 유기윤교수팀이 장애인 서비스분석, 데이
터 모델, 인터페이스 디자인을 하고 시터스가 VGI 플
랫폼 및 웹앱 설계/구현
Q: 고민거리
오픈소스로 공개하려면 내부 라이브러리들의
라이선스도 중요하군요.
가장 중요한 고려사항
• 오픈소스로 만들 것.
• 클라이언트는 HTML5
웹앱으로 만들 것.
그래서 결심했습니다.
너무 많잖아 -.-;
그러나
이걸 한번에 해야 하는게
풀스택 개발자의 역할.
하나 하나 풀어 봅시다.
아키텍처
VGI서버
PostGIS
Wheelchair-Accessible
Features
WFS & WFS-T
OpenstreetMap
WMS
GeoServer
Extentions
OpenLayers
Ionic / Cordova / AngularJS
VGI Client
WebView/DeviceAppServer
VGI웹앱
RESTful
먼저 그림부터
개발환경
• Mac OS X
• iOS와 Android 동시 개발 가능
• 맥북프로 레티나 고급형 CTO 권장
• Ubuntu
• Android만 개발할거면
VirtualBox에 올려서 사용.
• Windows
• 개발환경 설정이 어려움.
• npm을 사용해야는데 이상하게 힘듬
npm은 Linux 모듈에 많이 의존
세미나 발표자료에 이런
멘트 한번 해줘야, 회사에
서 개발자들에게 좋은 장
비를 사줌.
다른 개발자에게 통째로
개발환경을 줘 버릴 수 있
음.
개발 머신 / 플랫폼
개발환경
• 멀티플랫폼 에디터
• 서버/클라이언트,
맥/리눅스/PC,
Java/Javascript/Go/CoffeeScript/…
등등
플랫폼과 언어를 넘나들며 코딩을 해야하는
풀스택 개발자에게 반드시 필요함.
• ex) Sublime Text, Bracket, Atom, Light Table
• 멀티플랫폼 웹브라우저
• 맥/리눅스/PC
• 웹 인스펙터/파이어버그/…
에디터, 디버거
개발환경
$ npm install -g cordova ionic
installed OK.
$ ionic start vgi tabs
made app’s template files.
$ cd vgi
$ ionic platform add android
...
$ ionic build android
...
$ ionic emulate android
...
$ The End
Advanced HTML5
Hybrid Mobile
App Framework
아이오닉
개발환경
아이오닉
• iOS-styled UX
• Sass -> CSS UI Controls
• AngularJS directive -> JS UI Controls
• Ionic 웹폰트 -> 아이콘으로 활용
하면 해상도에 따라 비트맵을 만
들 필요가 없다
• 하부 프레임워크는 AngularJS에 의
존
스페셜한 에포트없이도
스타일리쉬한 웹앱을 만
들 수 있다.
Ionic 스터디하면서
AngularJS가 물건임을
깨달음.
개발환경
아이오닉
• 문제점
• iOS 위주라 Android용 웹앱을 위한
HW back key를 hook해서 처리를 해줘야 함.
• release로 빌드할 경우 설치가 안됨.
• 구글링해 보니 한글 문제로 추정.
• Cordova Native 구현부가 완전히 한글화되어 있지 않음
• Ex) ImagePicker 사용할 때 영문 갤러리가 나옴.
• …
그러나
이 모든 문제점을 상쇄할 만큼
멋진
HTML5 모바일 프레임워크
이제 다 된건가?
지도란 무엇인가?
mappa mundi
지도 데이터 3대 요소
배경지도
시설물
네트워크
배경지도
OpenstreetMap
• Google Maps API – 무료이나 일일 최대
25,000번 지도로딩 제한
• 구글 어스 공익사업 프로그램을 이용할
수도 있었음.
• OpenstreetMap – 제한은 없으나 배경지도 품
질은 그닥 좋지 않음
• 배경지도를 직접 만들려고 해도 측량협회
“성과심사” 라는 무시무시한 복병이 있음
map = new ol.map({
layers: [new ol.layer.Tile({
source: new ol.source.OSM()
})],
...
});
결국 OpenstreetMap을 사
용하기로 함.
시설물
GeoServer
• GeoServer
• OSGeo 레퍼런스 서버
• 한국어 매뉴얼 -
http://www.osgeo.kr/149
• 따라서 상용서비스를 하
려면 튜닝 각오를 해야 함.
• 단독서버로 돌리지 말고
톰캣 에서 WAR로 돌릴 것.
• WFS & WFS-T
• 장애인 시설물 DB와 클라이언트와의 인터페이스를 위해 사용함.
• 이유는 GeoServer의 WFS와 WFS-T 프로토콜을 이용하기 위함임.
아니면 시설물 CURD를 위해 별도의 RESTFul API를 구현해야 함.
• HTTP/GML 조합의 OGC 프로토콜 (Web Feature Service)
네트워크
도로
보행자용으로 구축된
서울지역 네트워크 데이터 .
어찌보면 표현에 따라 무섭기도
하고 아름답기도 한 데이터다.
• 사용자에게 드러나지 않은 지도 데이
터로 경로안내를 위해 필요.
• Node와 Link로 이루어진 graph 형태
로 다루어진다.
• Topology 정보를 포함하고 있어 공간
DB에 저장해야 함.
• PostgreSQL DBMS에 PostGIS
extenstion 설치해서 네트워크 데이터
를 관리함.
• Back-End에서 Java나 Python으로 다룰
수 있다.
OpenLayers 3.0
OpenLayers/AngularJS
• 웹브라우저에서 지도 데이터를 다루는 Javascript 라이브러리
• 배경, 시설물, 네트워크
• FreeBSD 라이선스
• 3.0부터 아키텍처가 무척 나이스해졌음~
• 3.0 API는 완전하지 않아, 커뮤니티에서 열심히 개발하고 있음
• AngularJS directive 프로젝트가 있으나, 공부도 할 겸 AngularJS Factory로 직접
만듦
• 컨트롤러에서 언제든 지도를 표현할 수 있게 됨
• 역시 초기화 문제 등 자잘한 문제들이 있으나, 꼼수로 해결
이제
영혼까지 끌어 모아!
뭘!?
감상
• Ionic은 꽤 괜찮은 모바일용 웹앱 프레임워크.
• 프레임워크에서 제공하는 UI 기능만 쓴다면, 성능이 괜찮음
• UI 컴포넌트는 최대한 스케일러블 해야함.
SVG나 웹폰트로 다루니 다양한 레이아웃에 대응이 편함.
• AngularJS는 멋진 SPA 웹앱 프레임워크임을 새삼 느낌
• Declarative Programming – imperative 방법으로 개발하면 안됨.
• $scope /service/module를 통한 격리
• OpenLayers는 2.0에 비해 3.0이 아키텍처 상으로 훌륭함
모바일용으로도 손색이 없음
• 모바일에 특화한 Leaflet도 괜찮아 보임.
감상
• 늘 그러하듯 Ionic 프레임워크를 벗어나는 “갑”이 이상한 UI 기능을 요구하면
골치아픔
• OGC 프로토콜들은 RESTful API가 아니어서 거부감이 있음
• Map Design
• 배경지도에 스타일을 적용할 수 있는 웹지도 서비스를 찾아보기 힘듬.
• 국내 지도 성과심사에 대한 유감
• 구글을 포함한 포탈들은 자사의 서비스에 종속시키기 위해 별도의 독립
적인 배경지도 서비스를 하지 않음.
• CartoDB - https://cartodb.com/

More Related Content

What's hot

HTML5 & Hybrid App Trends
HTML5 & Hybrid App TrendsHTML5 & Hybrid App Trends
HTML5 & Hybrid App Trends욱래 김
 
Ionic2로 Type script+Angular2.0 따라하기 1
Ionic2로 Type script+Angular2.0 따라하기 1Ionic2로 Type script+Angular2.0 따라하기 1
Ionic2로 Type script+Angular2.0 따라하기 1이경주 이경주
 
2016 W3C Conference #8 : IONIC으로 하이브리드 앱 개발하기, 사례와 시사점
2016 W3C Conference #8 : IONIC으로 하이브리드 앱 개발하기, 사례와 시사점2016 W3C Conference #8 : IONIC으로 하이브리드 앱 개발하기, 사례와 시사점
2016 W3C Conference #8 : IONIC으로 하이브리드 앱 개발하기, 사례와 시사점양재동 코드랩
 
하이브리드 앱 개발 개요
하이브리드 앱 개발 개요하이브리드 앱 개발 개요
하이브리드 앱 개발 개요Sohee Jeong
 
NAVER 오픈세미나 대구 (2014.08.01) - 오픈소스 라이브러리를 활용한 네이티브 어플리케이션의 데이터 저장과 통신
NAVER 오픈세미나 대구 (2014.08.01) - 오픈소스 라이브러리를 활용한 네이티브 어플리케이션의 데이터 저장과 통신NAVER 오픈세미나 대구 (2014.08.01) - 오픈소스 라이브러리를 활용한 네이티브 어플리케이션의 데이터 저장과 통신
NAVER 오픈세미나 대구 (2014.08.01) - 오픈소스 라이브러리를 활용한 네이티브 어플리케이션의 데이터 저장과 통신Sungwoo Choo
 
Single-page Application
Single-page ApplicationSingle-page Application
Single-page ApplicationSangmin Yoon
 
C1 하이브리드 앱 어떻게 개발해야 하나
C1 하이브리드 앱 어떻게 개발해야 하나C1 하이브리드 앱 어떻게 개발해야 하나
C1 하이브리드 앱 어떻게 개발해야 하나NAVER D2
 
하이브리드앱
하이브리드앱하이브리드앱
하이브리드앱knight1128
 
Ionic으로 모바일앱 만들기 #5
Ionic으로 모바일앱 만들기 #5Ionic으로 모바일앱 만들기 #5
Ionic으로 모바일앱 만들기 #5성일 한
 
응답하라 반응형웹 - 4. angular
응답하라 반응형웹 - 4. angular응답하라 반응형웹 - 4. angular
응답하라 반응형웹 - 4. angularredribbon1307
 
[별천지 세미나] CSS3 Animation
[별천지 세미나] CSS3 Animation[별천지 세미나] CSS3 Animation
[별천지 세미나] CSS3 Animation양귀 김
 
[리뷰] 풀스택 개발자를 위한 MEAM 스택 입문
[리뷰] 풀스택 개발자를 위한 MEAM 스택 입문[리뷰] 풀스택 개발자를 위한 MEAM 스택 입문
[리뷰] 풀스택 개발자를 위한 MEAM 스택 입문종훈 박
 
Logcat과 함께 하는 모바일 웹 디버깅
Logcat과 함께 하는 모바일 웹 디버깅Logcat과 함께 하는 모바일 웹 디버깅
Logcat과 함께 하는 모바일 웹 디버깅JinKwon Lee
 
퓨즈[Fusetools] 소개 :: blog.Wonhada.com :: 최신 자료 (2016년)
퓨즈[Fusetools] 소개 :: blog.Wonhada.com :: 최신 자료 (2016년)퓨즈[Fusetools] 소개 :: blog.Wonhada.com :: 최신 자료 (2016년)
퓨즈[Fusetools] 소개 :: blog.Wonhada.com :: 최신 자료 (2016년)강민 원
 
자바스크립트의 또다른 발전, Backbone.js
자바스크립트의 또다른 발전, Backbone.js자바스크립트의 또다른 발전, Backbone.js
자바스크립트의 또다른 발전, Backbone.jsJinKwon Lee
 
Web Framework (웹 프레임워크)
Web Framework (웹 프레임워크)Web Framework (웹 프레임워크)
Web Framework (웹 프레임워크)Junsu Kim
 
모바일앱개발 교육자료
모바일앱개발 교육자료모바일앱개발 교육자료
모바일앱개발 교육자료JinHyuck Churn
 

What's hot (20)

Fuse소개
Fuse소개Fuse소개
Fuse소개
 
HTML5 & Hybrid App Trends
HTML5 & Hybrid App TrendsHTML5 & Hybrid App Trends
HTML5 & Hybrid App Trends
 
Ionic2로 Type script+Angular2.0 따라하기 1
Ionic2로 Type script+Angular2.0 따라하기 1Ionic2로 Type script+Angular2.0 따라하기 1
Ionic2로 Type script+Angular2.0 따라하기 1
 
2016 W3C Conference #8 : IONIC으로 하이브리드 앱 개발하기, 사례와 시사점
2016 W3C Conference #8 : IONIC으로 하이브리드 앱 개발하기, 사례와 시사점2016 W3C Conference #8 : IONIC으로 하이브리드 앱 개발하기, 사례와 시사점
2016 W3C Conference #8 : IONIC으로 하이브리드 앱 개발하기, 사례와 시사점
 
하이브리드 앱 개발 개요
하이브리드 앱 개발 개요하이브리드 앱 개발 개요
하이브리드 앱 개발 개요
 
NAVER 오픈세미나 대구 (2014.08.01) - 오픈소스 라이브러리를 활용한 네이티브 어플리케이션의 데이터 저장과 통신
NAVER 오픈세미나 대구 (2014.08.01) - 오픈소스 라이브러리를 활용한 네이티브 어플리케이션의 데이터 저장과 통신NAVER 오픈세미나 대구 (2014.08.01) - 오픈소스 라이브러리를 활용한 네이티브 어플리케이션의 데이터 저장과 통신
NAVER 오픈세미나 대구 (2014.08.01) - 오픈소스 라이브러리를 활용한 네이티브 어플리케이션의 데이터 저장과 통신
 
Single-page Application
Single-page ApplicationSingle-page Application
Single-page Application
 
C1 하이브리드 앱 어떻게 개발해야 하나
C1 하이브리드 앱 어떻게 개발해야 하나C1 하이브리드 앱 어떻게 개발해야 하나
C1 하이브리드 앱 어떻게 개발해야 하나
 
하이브리드앱
하이브리드앱하이브리드앱
하이브리드앱
 
Ionic으로 모바일앱 만들기 #5
Ionic으로 모바일앱 만들기 #5Ionic으로 모바일앱 만들기 #5
Ionic으로 모바일앱 만들기 #5
 
Overview
OverviewOverview
Overview
 
Ionic project guide
Ionic project guideIonic project guide
Ionic project guide
 
응답하라 반응형웹 - 4. angular
응답하라 반응형웹 - 4. angular응답하라 반응형웹 - 4. angular
응답하라 반응형웹 - 4. angular
 
[별천지 세미나] CSS3 Animation
[별천지 세미나] CSS3 Animation[별천지 세미나] CSS3 Animation
[별천지 세미나] CSS3 Animation
 
[리뷰] 풀스택 개발자를 위한 MEAM 스택 입문
[리뷰] 풀스택 개발자를 위한 MEAM 스택 입문[리뷰] 풀스택 개발자를 위한 MEAM 스택 입문
[리뷰] 풀스택 개발자를 위한 MEAM 스택 입문
 
Logcat과 함께 하는 모바일 웹 디버깅
Logcat과 함께 하는 모바일 웹 디버깅Logcat과 함께 하는 모바일 웹 디버깅
Logcat과 함께 하는 모바일 웹 디버깅
 
퓨즈[Fusetools] 소개 :: blog.Wonhada.com :: 최신 자료 (2016년)
퓨즈[Fusetools] 소개 :: blog.Wonhada.com :: 최신 자료 (2016년)퓨즈[Fusetools] 소개 :: blog.Wonhada.com :: 최신 자료 (2016년)
퓨즈[Fusetools] 소개 :: blog.Wonhada.com :: 최신 자료 (2016년)
 
자바스크립트의 또다른 발전, Backbone.js
자바스크립트의 또다른 발전, Backbone.js자바스크립트의 또다른 발전, Backbone.js
자바스크립트의 또다른 발전, Backbone.js
 
Web Framework (웹 프레임워크)
Web Framework (웹 프레임워크)Web Framework (웹 프레임워크)
Web Framework (웹 프레임워크)
 
모바일앱개발 교육자료
모바일앱개발 교육자료모바일앱개발 교육자료
모바일앱개발 교육자료
 

Viewers also liked

OpenStreetMap 기반의 Mapbox 오픈소스 매핑 서비스
OpenStreetMap 기반의 Mapbox 오픈소스 매핑 서비스OpenStreetMap 기반의 Mapbox 오픈소스 매핑 서비스
OpenStreetMap 기반의 Mapbox 오픈소스 매핑 서비스Kyu-sung Choi
 
오픈소스GIS 개론 과정 - OpenLayers 기초
오픈소스GIS 개론 과정 - OpenLayers 기초오픈소스GIS 개론 과정 - OpenLayers 기초
오픈소스GIS 개론 과정 - OpenLayers 기초HaNJiN Lee
 
오픈소스 GIS 개요
오픈소스 GIS 개요오픈소스 GIS 개요
오픈소스 GIS 개요slhead1
 
[FOSS4G KOREA 2014] 인포그래픽 맵 생성을 위한 솔루션 소개 (Solutions For Creating Infographic...
[FOSS4G KOREA 2014] 인포그래픽 맵 생성을 위한 솔루션 소개 (Solutions For Creating Infographic...[FOSS4G KOREA 2014] 인포그래픽 맵 생성을 위한 솔루션 소개 (Solutions For Creating Infographic...
[FOSS4G KOREA 2014] 인포그래픽 맵 생성을 위한 솔루션 소개 (Solutions For Creating Infographic...HaNJiN Lee
 
082303 장이현(sencha architecture)
082303 장이현(sencha architecture)082303 장이현(sencha architecture)
082303 장이현(sencha architecture)Yihyun Jang
 
실무자를 위한 ExtJS 엔터프라이즈 개발 노하우
실무자를 위한  ExtJS  엔터프라이즈 개발 노하우실무자를 위한  ExtJS  엔터프라이즈 개발 노하우
실무자를 위한 ExtJS 엔터프라이즈 개발 노하우미래웹기술연구소 (MIRAE WEB)
 
[FOSS4G Korea 2016] Workshop - Advanced GeoServer
[FOSS4G Korea 2016] Workshop - Advanced GeoServer[FOSS4G Korea 2016] Workshop - Advanced GeoServer
[FOSS4G Korea 2016] Workshop - Advanced GeoServerMinPa Lee
 
오픈소스GIS를 활용한 서버기반 공간분석과 시각화
오픈소스GIS를 활용한 서버기반 공간분석과 시각화오픈소스GIS를 활용한 서버기반 공간분석과 시각화
오픈소스GIS를 활용한 서버기반 공간분석과 시각화MinPa Lee
 
PyQGIS 개발자 쿡북(PyQGIS Developer Cookbook) 한국어 판
PyQGIS 개발자 쿡북(PyQGIS Developer Cookbook) 한국어 판 PyQGIS 개발자 쿡북(PyQGIS Developer Cookbook) 한국어 판
PyQGIS 개발자 쿡북(PyQGIS Developer Cookbook) 한국어 판 SANGHEE SHIN
 
[제86회 Open Technet]OGC 표준 기반의 공간자료 분석과 시각화 기술 개발
[제86회 Open Technet]OGC 표준 기반의 공간자료 분석과 시각화 기술 개발[제86회 Open Technet]OGC 표준 기반의 공간자료 분석과 시각화 기술 개발
[제86회 Open Technet]OGC 표준 기반의 공간자료 분석과 시각화 기술 개발MinPa Lee
 
GeoServer 2.4.x 한국어 사용자 지침서
GeoServer 2.4.x 한국어 사용자 지침서GeoServer 2.4.x 한국어 사용자 지침서
GeoServer 2.4.x 한국어 사용자 지침서SANGHEE SHIN
 
오픈소스 GIS 교육 - PostGIS
오픈소스 GIS 교육 - PostGIS오픈소스 GIS 교육 - PostGIS
오픈소스 GIS 교육 - PostGISJungHwan Yun
 
공간정보거점대학 - PyQGIS 및 플러그인 개발
공간정보거점대학 - PyQGIS 및 플러그인 개발공간정보거점대학 - PyQGIS 및 플러그인 개발
공간정보거점대학 - PyQGIS 및 플러그인 개발MinPa Lee
 
QGIS 기초
QGIS 기초 QGIS 기초
QGIS 기초 slhead1
 
웹-프론트엔드 프레임워크를 고르기 위한 팁
웹-프론트엔드 프레임워크를 고르기 위한 팁웹-프론트엔드 프레임워크를 고르기 위한 팁
웹-프론트엔드 프레임워크를 고르기 위한 팁WebFrameworks
 

Viewers also liked (17)

OpenStreetMap 기반의 Mapbox 오픈소스 매핑 서비스
OpenStreetMap 기반의 Mapbox 오픈소스 매핑 서비스OpenStreetMap 기반의 Mapbox 오픈소스 매핑 서비스
OpenStreetMap 기반의 Mapbox 오픈소스 매핑 서비스
 
오픈소스GIS 개론 과정 - OpenLayers 기초
오픈소스GIS 개론 과정 - OpenLayers 기초오픈소스GIS 개론 과정 - OpenLayers 기초
오픈소스GIS 개론 과정 - OpenLayers 기초
 
오픈소스 GIS 개요
오픈소스 GIS 개요오픈소스 GIS 개요
오픈소스 GIS 개요
 
[FOSS4G KOREA 2014] 인포그래픽 맵 생성을 위한 솔루션 소개 (Solutions For Creating Infographic...
[FOSS4G KOREA 2014] 인포그래픽 맵 생성을 위한 솔루션 소개 (Solutions For Creating Infographic...[FOSS4G KOREA 2014] 인포그래픽 맵 생성을 위한 솔루션 소개 (Solutions For Creating Infographic...
[FOSS4G KOREA 2014] 인포그래픽 맵 생성을 위한 솔루션 소개 (Solutions For Creating Infographic...
 
GeoServer 기초
GeoServer 기초GeoServer 기초
GeoServer 기초
 
082303 장이현(sencha architecture)
082303 장이현(sencha architecture)082303 장이현(sencha architecture)
082303 장이현(sencha architecture)
 
HTML5 와 미래웹기술 part 2
HTML5 와 미래웹기술 part 2HTML5 와 미래웹기술 part 2
HTML5 와 미래웹기술 part 2
 
실무자를 위한 ExtJS 엔터프라이즈 개발 노하우
실무자를 위한  ExtJS  엔터프라이즈 개발 노하우실무자를 위한  ExtJS  엔터프라이즈 개발 노하우
실무자를 위한 ExtJS 엔터프라이즈 개발 노하우
 
[FOSS4G Korea 2016] Workshop - Advanced GeoServer
[FOSS4G Korea 2016] Workshop - Advanced GeoServer[FOSS4G Korea 2016] Workshop - Advanced GeoServer
[FOSS4G Korea 2016] Workshop - Advanced GeoServer
 
오픈소스GIS를 활용한 서버기반 공간분석과 시각화
오픈소스GIS를 활용한 서버기반 공간분석과 시각화오픈소스GIS를 활용한 서버기반 공간분석과 시각화
오픈소스GIS를 활용한 서버기반 공간분석과 시각화
 
PyQGIS 개발자 쿡북(PyQGIS Developer Cookbook) 한국어 판
PyQGIS 개발자 쿡북(PyQGIS Developer Cookbook) 한국어 판 PyQGIS 개발자 쿡북(PyQGIS Developer Cookbook) 한국어 판
PyQGIS 개발자 쿡북(PyQGIS Developer Cookbook) 한국어 판
 
[제86회 Open Technet]OGC 표준 기반의 공간자료 분석과 시각화 기술 개발
[제86회 Open Technet]OGC 표준 기반의 공간자료 분석과 시각화 기술 개발[제86회 Open Technet]OGC 표준 기반의 공간자료 분석과 시각화 기술 개발
[제86회 Open Technet]OGC 표준 기반의 공간자료 분석과 시각화 기술 개발
 
GeoServer 2.4.x 한국어 사용자 지침서
GeoServer 2.4.x 한국어 사용자 지침서GeoServer 2.4.x 한국어 사용자 지침서
GeoServer 2.4.x 한국어 사용자 지침서
 
오픈소스 GIS 교육 - PostGIS
오픈소스 GIS 교육 - PostGIS오픈소스 GIS 교육 - PostGIS
오픈소스 GIS 교육 - PostGIS
 
공간정보거점대학 - PyQGIS 및 플러그인 개발
공간정보거점대학 - PyQGIS 및 플러그인 개발공간정보거점대학 - PyQGIS 및 플러그인 개발
공간정보거점대학 - PyQGIS 및 플러그인 개발
 
QGIS 기초
QGIS 기초 QGIS 기초
QGIS 기초
 
웹-프론트엔드 프레임워크를 고르기 위한 팁
웹-프론트엔드 프레임워크를 고르기 위한 팁웹-프론트엔드 프레임워크를 고르기 위한 팁
웹-프론트엔드 프레임워크를 고르기 위한 팁
 

Similar to 지도 서비스용 웹앱 개발환경 사용기

2011년 1월 Webdevmobile 세미나
2011년 1월 Webdevmobile 세미나2011년 1월 Webdevmobile 세미나
2011년 1월 Webdevmobile 세미나korea_simgoon
 
어흥~!이번발표
어흥~!이번발표어흥~!이번발표
어흥~!이번발표korea_simgoon
 
Webdevmobile 2011 01
Webdevmobile 2011 01Webdevmobile 2011 01
Webdevmobile 2011 01korea_simgoon
 
K모바일발표 111026 하이브리드ux_배포용
K모바일발표 111026 하이브리드ux_배포용K모바일발표 111026 하이브리드ux_배포용
K모바일발표 111026 하이브리드ux_배포용jinwook shin
 
HTML5/JSON 을 이용해 범용 2D 맵에디터 제작하기
HTML5/JSON 을 이용해 범용 2D 맵에디터 제작하기HTML5/JSON 을 이용해 범용 2D 맵에디터 제작하기
HTML5/JSON 을 이용해 범용 2D 맵에디터 제작하기Miyu Park
 
Javascript everywhere - Node.js | Devon 2012
Javascript everywhere - Node.js | Devon 2012Javascript everywhere - Node.js | Devon 2012
Javascript everywhere - Node.js | Devon 2012Daum DNA
 
my activities before getting a job
my activities before getting a jobmy activities before getting a job
my activities before getting a jobDeo Kim
 
초고속 웹사이트 개발을 위한 Codeigniter PHP Framework
초고속 웹사이트 개발을 위한 Codeigniter PHP Framework초고속 웹사이트 개발을 위한 Codeigniter PHP Framework
초고속 웹사이트 개발을 위한 Codeigniter PHP FrameworkInseok Lee
 
NRISE 개발스택
NRISE 개발스택NRISE 개발스택
NRISE 개발스택Moon Soo Kim
 
Droid knights 2019 - (Large-scale App을 위한) Android Architecture 총정리
Droid knights 2019 - (Large-scale App을 위한) Android Architecture 총정리Droid knights 2019 - (Large-scale App을 위한) Android Architecture 총정리
Droid knights 2019 - (Large-scale App을 위한) Android Architecture 총정리Sa-ryong Kang
 
[D2 오픈세미나]4.네이티브앱저장통신
[D2 오픈세미나]4.네이티브앱저장통신[D2 오픈세미나]4.네이티브앱저장통신
[D2 오픈세미나]4.네이티브앱저장통신NAVER D2
 
[W3C HTML5 2017] Electron과 TypeScript로 만드는 Visual Studio Code, 그리고 ProtoPie
[W3C HTML5 2017] Electron과 TypeScript로 만드는 Visual Studio Code, 그리고 ProtoPie[W3C HTML5 2017] Electron과 TypeScript로 만드는 Visual Studio Code, 그리고 ProtoPie
[W3C HTML5 2017] Electron과 TypeScript로 만드는 Visual Studio Code, 그리고 ProtoPie양재동 코드랩
 
HTML5 관점에서 본 2015년 웹개발 트렌드 및 인사이트
HTML5 관점에서 본 2015년 웹개발 트렌드 및 인사이트HTML5 관점에서 본 2015년 웹개발 트렌드 및 인사이트
HTML5 관점에서 본 2015년 웹개발 트렌드 및 인사이트Jun Ho Lee
 
[네이버오픈소스세미나] egjs-view360 개발기 - 김희재
[네이버오픈소스세미나] egjs-view360 개발기 - 김희재[네이버오픈소스세미나] egjs-view360 개발기 - 김희재
[네이버오픈소스세미나] egjs-view360 개발기 - 김희재NAVER D2
 
WHAT / WHY / HOW WE’RE ENGINEERING AT SMARTSTUDY
WHAT / WHY / HOW WE’RE ENGINEERING AT SMARTSTUDYWHAT / WHY / HOW WE’RE ENGINEERING AT SMARTSTUDY
WHAT / WHY / HOW WE’RE ENGINEERING AT SMARTSTUDYHyun-woo Park
 
[스마트스터디]스마트스터디는 무엇을 / 왜 / 어떻게 만들어 왔는가
[스마트스터디]스마트스터디는 무엇을 / 왜 / 어떻게 만들어 왔는가[스마트스터디]스마트스터디는 무엇을 / 왜 / 어떻게 만들어 왔는가
[스마트스터디]스마트스터디는 무엇을 / 왜 / 어떻게 만들어 왔는가smartstudy_official
 
HTML5 관점에서 2015년 웹 앱 개발 동향과 사례 및 2016년 발전 방향 저...
HTML5 관점에서 2015년 웹 앱 개발 동향과 사례 및 2016년 발전 방향 저...HTML5 관점에서 2015년 웹 앱 개발 동향과 사례 및 2016년 발전 방향 저...
HTML5 관점에서 2015년 웹 앱 개발 동향과 사례 및 2016년 발전 방향 저...Sang Seok Lim
 

Similar to 지도 서비스용 웹앱 개발환경 사용기 (20)

2011년 1월 Webdevmobile 세미나
2011년 1월 Webdevmobile 세미나2011년 1월 Webdevmobile 세미나
2011년 1월 Webdevmobile 세미나
 
어흥~!이번발표
어흥~!이번발표어흥~!이번발표
어흥~!이번발표
 
Webdevmobile 2011 01
Webdevmobile 2011 01Webdevmobile 2011 01
Webdevmobile 2011 01
 
K모바일발표 111026 하이브리드ux_배포용
K모바일발표 111026 하이브리드ux_배포용K모바일발표 111026 하이브리드ux_배포용
K모바일발표 111026 하이브리드ux_배포용
 
HTML5/JSON 을 이용해 범용 2D 맵에디터 제작하기
HTML5/JSON 을 이용해 범용 2D 맵에디터 제작하기HTML5/JSON 을 이용해 범용 2D 맵에디터 제작하기
HTML5/JSON 을 이용해 범용 2D 맵에디터 제작하기
 
Javascript everywhere - Node.js | Devon 2012
Javascript everywhere - Node.js | Devon 2012Javascript everywhere - Node.js | Devon 2012
Javascript everywhere - Node.js | Devon 2012
 
my activities before getting a job
my activities before getting a jobmy activities before getting a job
my activities before getting a job
 
초고속 웹사이트 개발을 위한 Codeigniter PHP Framework
초고속 웹사이트 개발을 위한 Codeigniter PHP Framework초고속 웹사이트 개발을 위한 Codeigniter PHP Framework
초고속 웹사이트 개발을 위한 Codeigniter PHP Framework
 
모바일환경과 개발방향
모바일환경과 개발방향 모바일환경과 개발방향
모바일환경과 개발방향
 
NRISE 개발스택
NRISE 개발스택NRISE 개발스택
NRISE 개발스택
 
Droid knights 2019 - (Large-scale App을 위한) Android Architecture 총정리
Droid knights 2019 - (Large-scale App을 위한) Android Architecture 총정리Droid knights 2019 - (Large-scale App을 위한) Android Architecture 총정리
Droid knights 2019 - (Large-scale App을 위한) Android Architecture 총정리
 
Angularcdk
AngularcdkAngularcdk
Angularcdk
 
[D2 오픈세미나]4.네이티브앱저장통신
[D2 오픈세미나]4.네이티브앱저장통신[D2 오픈세미나]4.네이티브앱저장통신
[D2 오픈세미나]4.네이티브앱저장통신
 
[W3C HTML5 2017] Electron과 TypeScript로 만드는 Visual Studio Code, 그리고 ProtoPie
[W3C HTML5 2017] Electron과 TypeScript로 만드는 Visual Studio Code, 그리고 ProtoPie[W3C HTML5 2017] Electron과 TypeScript로 만드는 Visual Studio Code, 그리고 ProtoPie
[W3C HTML5 2017] Electron과 TypeScript로 만드는 Visual Studio Code, 그리고 ProtoPie
 
HTML5 관점에서 본 2015년 웹개발 트렌드 및 인사이트
HTML5 관점에서 본 2015년 웹개발 트렌드 및 인사이트HTML5 관점에서 본 2015년 웹개발 트렌드 및 인사이트
HTML5 관점에서 본 2015년 웹개발 트렌드 및 인사이트
 
[네이버오픈소스세미나] egjs-view360 개발기 - 김희재
[네이버오픈소스세미나] egjs-view360 개발기 - 김희재[네이버오픈소스세미나] egjs-view360 개발기 - 김희재
[네이버오픈소스세미나] egjs-view360 개발기 - 김희재
 
WHAT / WHY / HOW WE’RE ENGINEERING AT SMARTSTUDY
WHAT / WHY / HOW WE’RE ENGINEERING AT SMARTSTUDYWHAT / WHY / HOW WE’RE ENGINEERING AT SMARTSTUDY
WHAT / WHY / HOW WE’RE ENGINEERING AT SMARTSTUDY
 
[스마트스터디]스마트스터디는 무엇을 / 왜 / 어떻게 만들어 왔는가
[스마트스터디]스마트스터디는 무엇을 / 왜 / 어떻게 만들어 왔는가[스마트스터디]스마트스터디는 무엇을 / 왜 / 어떻게 만들어 왔는가
[스마트스터디]스마트스터디는 무엇을 / 왜 / 어떻게 만들어 왔는가
 
WebGL
WebGLWebGL
WebGL
 
HTML5 관점에서 2015년 웹 앱 개발 동향과 사례 및 2016년 발전 방향 저...
HTML5 관점에서 2015년 웹 앱 개발 동향과 사례 및 2016년 발전 방향 저...HTML5 관점에서 2015년 웹 앱 개발 동향과 사례 및 2016년 발전 방향 저...
HTML5 관점에서 2015년 웹 앱 개발 동향과 사례 및 2016년 발전 방향 저...
 

지도 서비스용 웹앱 개발환경 사용기

  • 2. 스마트휠 VGI : Volunteered geographic information 2014.04.01 ~ 2016.02.29 Q: 왜 만들고 있나? A: 휠체어 사용자, 청각장애인, 고령자, 임산부 등 일상생활에서 걸어서 이동이 불편한 교통약 자들에게 도보용 길안내를 할 수 없을까? Q: 누가 만들고 있나? A: 서울대 유기윤교수팀이 장애인 서비스분석, 데이 터 모델, 인터페이스 디자인을 하고 시터스가 VGI 플 랫폼 및 웹앱 설계/구현
  • 3. Q: 고민거리 오픈소스로 공개하려면 내부 라이브러리들의 라이선스도 중요하군요.
  • 4. 가장 중요한 고려사항 • 오픈소스로 만들 것. • 클라이언트는 HTML5 웹앱으로 만들 것.
  • 6.
  • 7. 너무 많잖아 -.-; 그러나 이걸 한번에 해야 하는게 풀스택 개발자의 역할.
  • 8. 하나 하나 풀어 봅시다.
  • 9. 아키텍처 VGI서버 PostGIS Wheelchair-Accessible Features WFS & WFS-T OpenstreetMap WMS GeoServer Extentions OpenLayers Ionic / Cordova / AngularJS VGI Client WebView/DeviceAppServer VGI웹앱 RESTful 먼저 그림부터
  • 10. 개발환경 • Mac OS X • iOS와 Android 동시 개발 가능 • 맥북프로 레티나 고급형 CTO 권장 • Ubuntu • Android만 개발할거면 VirtualBox에 올려서 사용. • Windows • 개발환경 설정이 어려움. • npm을 사용해야는데 이상하게 힘듬 npm은 Linux 모듈에 많이 의존 세미나 발표자료에 이런 멘트 한번 해줘야, 회사에 서 개발자들에게 좋은 장 비를 사줌. 다른 개발자에게 통째로 개발환경을 줘 버릴 수 있 음. 개발 머신 / 플랫폼
  • 11. 개발환경 • 멀티플랫폼 에디터 • 서버/클라이언트, 맥/리눅스/PC, Java/Javascript/Go/CoffeeScript/… 등등 플랫폼과 언어를 넘나들며 코딩을 해야하는 풀스택 개발자에게 반드시 필요함. • ex) Sublime Text, Bracket, Atom, Light Table • 멀티플랫폼 웹브라우저 • 맥/리눅스/PC • 웹 인스펙터/파이어버그/… 에디터, 디버거
  • 12. 개발환경 $ npm install -g cordova ionic installed OK. $ ionic start vgi tabs made app’s template files. $ cd vgi $ ionic platform add android ... $ ionic build android ... $ ionic emulate android ... $ The End Advanced HTML5 Hybrid Mobile App Framework 아이오닉
  • 13. 개발환경 아이오닉 • iOS-styled UX • Sass -> CSS UI Controls • AngularJS directive -> JS UI Controls • Ionic 웹폰트 -> 아이콘으로 활용 하면 해상도에 따라 비트맵을 만 들 필요가 없다 • 하부 프레임워크는 AngularJS에 의 존 스페셜한 에포트없이도 스타일리쉬한 웹앱을 만 들 수 있다. Ionic 스터디하면서 AngularJS가 물건임을 깨달음.
  • 14. 개발환경 아이오닉 • 문제점 • iOS 위주라 Android용 웹앱을 위한 HW back key를 hook해서 처리를 해줘야 함. • release로 빌드할 경우 설치가 안됨. • 구글링해 보니 한글 문제로 추정. • Cordova Native 구현부가 완전히 한글화되어 있지 않음 • Ex) ImagePicker 사용할 때 영문 갤러리가 나옴. • …
  • 15. 그러나 이 모든 문제점을 상쇄할 만큼 멋진 HTML5 모바일 프레임워크
  • 18. 지도 데이터 3대 요소 배경지도 시설물 네트워크
  • 19. 배경지도 OpenstreetMap • Google Maps API – 무료이나 일일 최대 25,000번 지도로딩 제한 • 구글 어스 공익사업 프로그램을 이용할 수도 있었음. • OpenstreetMap – 제한은 없으나 배경지도 품 질은 그닥 좋지 않음 • 배경지도를 직접 만들려고 해도 측량협회 “성과심사” 라는 무시무시한 복병이 있음 map = new ol.map({ layers: [new ol.layer.Tile({ source: new ol.source.OSM() })], ... }); 결국 OpenstreetMap을 사 용하기로 함.
  • 20. 시설물 GeoServer • GeoServer • OSGeo 레퍼런스 서버 • 한국어 매뉴얼 - http://www.osgeo.kr/149 • 따라서 상용서비스를 하 려면 튜닝 각오를 해야 함. • 단독서버로 돌리지 말고 톰캣 에서 WAR로 돌릴 것. • WFS & WFS-T • 장애인 시설물 DB와 클라이언트와의 인터페이스를 위해 사용함. • 이유는 GeoServer의 WFS와 WFS-T 프로토콜을 이용하기 위함임. 아니면 시설물 CURD를 위해 별도의 RESTFul API를 구현해야 함. • HTTP/GML 조합의 OGC 프로토콜 (Web Feature Service)
  • 21. 네트워크 도로 보행자용으로 구축된 서울지역 네트워크 데이터 . 어찌보면 표현에 따라 무섭기도 하고 아름답기도 한 데이터다. • 사용자에게 드러나지 않은 지도 데이 터로 경로안내를 위해 필요. • Node와 Link로 이루어진 graph 형태 로 다루어진다. • Topology 정보를 포함하고 있어 공간 DB에 저장해야 함. • PostgreSQL DBMS에 PostGIS extenstion 설치해서 네트워크 데이터 를 관리함. • Back-End에서 Java나 Python으로 다룰 수 있다.
  • 22. OpenLayers 3.0 OpenLayers/AngularJS • 웹브라우저에서 지도 데이터를 다루는 Javascript 라이브러리 • 배경, 시설물, 네트워크 • FreeBSD 라이선스 • 3.0부터 아키텍처가 무척 나이스해졌음~ • 3.0 API는 완전하지 않아, 커뮤니티에서 열심히 개발하고 있음 • AngularJS directive 프로젝트가 있으나, 공부도 할 겸 AngularJS Factory로 직접 만듦 • 컨트롤러에서 언제든 지도를 표현할 수 있게 됨 • 역시 초기화 문제 등 자잘한 문제들이 있으나, 꼼수로 해결
  • 24. 감상 • Ionic은 꽤 괜찮은 모바일용 웹앱 프레임워크. • 프레임워크에서 제공하는 UI 기능만 쓴다면, 성능이 괜찮음 • UI 컴포넌트는 최대한 스케일러블 해야함. SVG나 웹폰트로 다루니 다양한 레이아웃에 대응이 편함. • AngularJS는 멋진 SPA 웹앱 프레임워크임을 새삼 느낌 • Declarative Programming – imperative 방법으로 개발하면 안됨. • $scope /service/module를 통한 격리 • OpenLayers는 2.0에 비해 3.0이 아키텍처 상으로 훌륭함 모바일용으로도 손색이 없음 • 모바일에 특화한 Leaflet도 괜찮아 보임.
  • 25. 감상 • 늘 그러하듯 Ionic 프레임워크를 벗어나는 “갑”이 이상한 UI 기능을 요구하면 골치아픔 • OGC 프로토콜들은 RESTful API가 아니어서 거부감이 있음 • Map Design • 배경지도에 스타일을 적용할 수 있는 웹지도 서비스를 찾아보기 힘듬. • 국내 지도 성과심사에 대한 유감 • 구글을 포함한 포탈들은 자사의 서비스에 종속시키기 위해 별도의 독립 적인 배경지도 서비스를 하지 않음. • CartoDB - https://cartodb.com/