1주 - Ant, API,ngCordova,CDN,cordova,매니페스트 파일,apk,crosswalk,ionic,쓰레드
스터디 2015. 7. 7. 20:54 |Ant - Ant 란 Javaㅈ기반의 자동화 빌드 툴이다 make같은 것 과 비슷하지만, 자바 기반으로 쓰여졌고, make는 내부적으로 shell기반 명령어를 쓰는 반면 ant는 xml 파일로 빌드 스크립트를 작성했다. 이말은 O/S 독립적인 툴이라는 것이다.
빌드(Build)란?
예를 들어 설명하자면 윈도우를 개발 하는 것까지가 '개발'이라고 할 수 있고 이게 개인들 컴퓨터에 설치 되어서 실행 되기까지의 단계를 모두 빌드라고 할 수 있다.
1.이를테면 DVD굽는 공장에서 Window 이미지를 DVD에 저장하고
2.DVD를 포장하고
3.배송하고
4.그걸 설치 해서
5.사용자가 실행 할 수 있도록
하는 단계를 '빌드(Build)'라고 할 수 있다.
1.내가 만든 소스코드를 helloWorld.war로 압축한다.
2.helloWorld.war 을 tomcat이 깔려있는 원격 서버(http://oceanfog.iptime.org:8080/admin/)에 올린다.
이걸 ant로 작성을 해놓으면 'Export - next - next - tomcat접속 - admin접속 - war file선택 - deploy클릭'등 이러한 과정을 마우스 클릭 한번으로 해결 할 수 있다는 것.
API(Application Programming Interface, 응용 프로그램 프로그래밍 인터페이스)는 응용 프로그램에서 사용할 수 있도록, 운영 체제나 프로그래밍 언어가 제공하는 기능을 제어할 수 있게 만든인터페이스를 뜻한다. 주로 파일 제어, 창 제어, 화상 처리, 문자 제어 등을 위한 인터페이스를 제공한다.(위키백과)
웹 API는 웹 애플리케이션 개발에서 다른 서비스에 요청을 보내고 응답을 받기 위해 정의된 명세를 일컫는다. 예를 들어 블로그 API를 이용하면 블로그에 접속하지 않고도 다른 방법으로 글을 올릴 수 있다. 그 외에 우체국의 우편번호 api, 구글과 네이버의 지도 api등 유용한 api들이 많으므로, 요즘은 홈페이지 구축이나 추가개편 시 따로 추가로 개발하지 않고도로 이런 오픈 api를 가져와 사용하는 추세이다
쓰레드는 프로세스를 여러 개로 나눈 조각과 갖다고 설명할 수 있다. 워드 프로세서를 사용하는 경우를 예로 들자. 워드에서 글자를 입력하는 동안 파일을 디스크에 저장하고 있고, 내용을 프린터에 출력하고 있고, 입력하는 동안에 맞춤법 검사를 수행한다. 사용자의 입력을 받는 동안 행하는 이 모든 작업들은 각각의 쓰레드에 의해서 이루어진다. 글자를 입력 받는 쓰레드, 파일을 디스크에 저장하는 쓰레드, 출력할 내용을 프린터에 보내는 쓰레드, 입력하는 동안 맞춤법 검사를 수행하는 쓰레드 등이 있다. 즉, 워드 프로세서라는 큰 프로세스 하나에 여러 개의 쓰레드가 모여있는 것이다. 실제로 프로세스는 하나의 어드레스 공간을 갖고 있고, 모든 응용 프로그램은 메인 응응 프로그램을 위한 하나의 쓰레드를 갖는다. 그리고 여기에 다른 쓰레드들이 함께 수행될 수 있고, 각각의 쓰레드들은 자신을 관리하는 프로세스의 어드레스를 갖고 있다. 즉, 프로세스는 쓰레드에 대한 일종의 컨테이너역할을 한다. (한빛네트워크)
하이브리드 애플리케이션(이하 하이브리드 앱)은 HTML5, CSS, JavaScript와 같은 웹 기술로 웹 애플리케이션을 만들고, 이를 네이티브 컨테이너로 감싼 네이티브 애플리케이션을 말한다. 네이티브 애플리케이션은 WebView라는 내장 브라우저로 HTML을 표시한다. Cordova나 PhoneGap같은 도구를 이용하면 HTML을 네이티브 코드로 간단하게 감쌀 수 있고, 이 애플리케이션을 앱스토어에 올릴 수 있다
Ionic은 다음과 같은 특징을 가진다.
- Cordova(PhoneGap) 환경을 제공한다.
- Cordova(PhoneGap) 플러그인을 사용할 수 있다.
- AngularJS 기반으로 SPA를 MVC나 MVVM 패턴으로 개발을 할 수 있다.
- 네이티브에 가까운 UI 컴포넌트들을 제공한다.
- HTML5 어플리케이션을 빠른 시간으로 개발할 수 있다.
Ionic은 Advanced HTML5 Hybrid Mobile App Framework이다. HTML5로 어플리케이션을 만들기 전에 우리는 가정 먼저 고려한 것이 UI를 웹 자원으로 개발하지만 성능과 안정성을 높이는 것이였다. 처음 우리는 직접 JavaScript를 이용해서 만들어보려고 했지만 성능과 안정성을 검증할 수 없었기 때문에 이미 성능과 안정성이 보장되어 있는 Ionic을 사용하여 개발하기로 했다. Ionic 블로그에서 Ionic에 대해서 다음과 같이 소개하고 있다. Where does the ionic framework fit in Ionic의 궁극적인 목표는 하이브리드 앱으로 알려진, HTML5를 이용해 네이티브 앱을 더욱 쉽게 개발하기 위한 것이라고 소개하고 있다.
Ionic Framework는 AngularJS를 근간에 두고 만들어졌다. Ionic에서는 자신의 UI 컴포넌트들의 태그를 직접 만들어서 사용하기도 하는데 이 것은 AngularJS의 directives를 이용하여 만들어졌다. 이 것을 사용해서 Ionic은 UI 개발자에게 복잡한 CSS와 JavaScript를 나열하는 대신에 단순히 Ionic에서 정의한 Custom Element를 제공하여 개발자는 마치 Code Snippet과 같이 쉽게 사용할 수 있게 하였다.
crosswalk를 사용하면 폰갭 프로젝트나 안드로이드 트로젝트에서 내장 브라우저 대신 크롬 브라우저를 사용 할 수 있다.
즉 웹뷰를 사용할 때 내장 브라우저가 아닌 크롬을 사용하는 것이다.
브라우저를 교체하는 이유는 다음과 같다.
안드로이드의 내장 브라우저는 html5의 기능을 완벅히 수행하기에는 성능이 뒤처진다.
특히 안드로이드 버전 4.4 킷캣 공개 이후 내장 브라우저의 급격한 서능 저하가 유발된다.
단, 안드로이드 버전 4.0 이상만 지원된다.
안드로이드 응용 프로그램 패키지(영어: Android application package, APK)는 안드로이드의 소프트웨어와 미들웨어 배포에 사용되는 패키지 파일이며, '.apk'확장자를 가진다. APK 파일은 우분투 같은 데비안 기반 운영 체제에서 Windows 또는 뎁 패키지와 MSI 패키지와 같은 다른 소프트웨어 설치 파일와 비슷하다. APK 파일을 만들려면, 안드로이드용 프로그램을 먼저 컴파일한 후, 모든 파일들을 하나의 패키지 파일로 모은다. APK 파일은 해당하는 프로그램의 모든 코드를 포함하며, 자원, 정보, 인증서 및 매니페스트 파일 등을 포함한다.[1][2][3][4]
APK 파일의 확장자는 《.apk 》로 ZIP파일 기반인 JAR를 기반으로 하며, 압축 파일의 한 종류이다. MIME 유형은 《application/vnd.android.package-archive》이다(위키백과)
매니페스트 파일 주된 역할은 어플리케이션의 컴포넌트를 명시.
CDN - 콘텐츠 전송 네트워크(Content delivery network 또는 content distribution network (CDN))는 콘텐츠를 효율적으로 전달하기 위해 여러 노드를 가진 네트워크에 데이터를 저장하여 제공하는 시스템을 말한다. 인터넷 서비스 제공자에 직접 연결되어 데이터를 전송하므로, 콘텐츠 병목을 피할 수 있는 장점이 있다.
CDN 설명
Cordova는 매우 인기 있는 Apache 재단 오픈 소스 프로젝트로서 카메라와 같은 모바일 디바이스 API 및 네이티브 기능을 웹 애플리케이션으로 연결 하게 해주는 개발자 도구입니다.HTML5 애플리케이션은 iOS, 안드로이드, 블랙베리 윈도폰 등 네이티브 플랫폼에 실행될 수 있도록 패키징되어 배포할 수 있으며 이제 Firefox OS 지원이 시작됩니다. Cordova는 Adobe의 PhoneGap 제품의 기반 오픈 소스 프로젝트이기도 합니다.
ngCordova, an open-source collection of AngularJS services and extensions that make it incredibly easy to use Cordova plugins and native features in your hybrid apps.