2013년 12월 30일 월요일

Phonegap (Cordova) 3.2 프로젝트 만들고 플러그인 추가 하기

Phonegap (Cordova) 3.2 프로젝트 만들고 플러그인 추가 하기

phonegap VS cordova VS adobe phonegap build ??????
: 원래의 이름은 phonegap 이고 apache제단으로 편입되면서 cordova라는 이름을 가지게 된것이고 폰갭을 이용하는데 있어서 많은 지식없이도 빌드를 쉽게할수 있도록 서비스를 제공해주는 곳이 adobe phonegap build 이다.
adobe phonegap build는 1개까지는 무료로 제공해주고 그 이후 부터는 유료다. 

api 참고는 cordova 사이트에서 하는것을 추천 한다.
http://cordova.apache.org/docs/en/3.2.0/index.html



Cordova  설치
Cordova 설치서 부터 프로젝트 생성 플러그인 추가/삭제 까지 너무 친절하게 나와 있다.
영어를  거의 못하는 나조차도 명령어만 따라 쳐보고 감이 올 정도다.
아래를 참고 하면 더욱더 좋다. 
http://cordova.apache.org/docs/en/3.2.0/guide_cli_index.md.html#The%20Command-Line%20Interface


  
Cordova를 설치하기 전에 필요한 준비물이 있다.
node.js 와 apache 제단은 ant가 필요하다.
http://www.nodejs.org/download/
node.js 를 다운받아 설치 해주고

http://ant.apache.org/bindownload.cgi
최신번전 압축파일을 받아 주고,
압축을 풀고 bin폴더를 환경변수에 잡아주도록 한다.

환경변수 잡는 방법은 따로 검색을 해보도록 한다.

이렇게 두가지를 다했다면 Cordova 설치 준비가 끝난 것이다.

Cordova는 2.x 버전 까지는 다운받아서 설치를 해야하지만 3.x버전 부터는 커맨트 창에서 명령어를 입력하는 방식으로 설치를 하게 된다.


#윈도우 사용자라면 sudo를 붙이지 않는다. 그리고 '$'는 입력하지 않는다.

Cordova 설치 
$ sudo npm install -g cordova

프로젝트 생성
  $ cordova create hello com.example.hello HelloWorld
  $ cd hello


사용할 플랫폼 등록
    $ cordova platform add ios
    $ cordova platform add amazon-fireos
    $ cordova platform add android
    $ cordova platform add blackberry10
    $ cordova platform add firefoxos
$ cordova platform remove blackberry10
    $ cordova platform rm amazon-fireos
    $ cordova platform rm android

빌드
  $ cordova build
플러그인 등록/삭제
$ cordova plugin add org.apache.cordova.device
$ cordova plugin add org.apache.cordova.network-information
$ cordova plugin add org.apache.cordova.battery-status

$ cordova plugin add org.apache.cordova.device-motion
$ cordova plugin add org.apache.cordova.device-orientation
$ cordova plugin add org.apache.cordova.geolocation
$ cordova plugin add org.apache.cordova.camera
$ cordova plugin add org.apache.cordova.media-capture
$ cordova plugin add org.apache.cordova.media
$ cordova plugin add org.apache.cordova.file
$ cordova plugin add org.apache.cordova.file-transfer

$ cordova plugin add org.apache.cordova.dialogs
$ cordova plugin add org.apache.cordova.vibration

$ cordova plugin add org.apache.cordova.contacts
$ cordova plugin add org.apache.cordova.globalization
$ cordova plugin add org.apache.cordova.splashscreen
$ cordova plugin add org.apache.cordova.inappbrowser
$ cordova plugin add org.apache.cordova.console
$ cordova plugin rm org.apache.cordova.console
    $ cordova plugin remove org.apache.cordova.console 
추가로 필요한 플러그인들은 필요에 따라 만들어서 꼽을수도 있고 다른 사람이 만들어 놓은 플러그인도 꼽아서 쓸수 있다.그것은 아래서 다시 알아 보자.


이제 Cordova 프로젝트가 만들어 졌으니 Android 프로젝트 만들어볼 차례다

이클립스에서 좀전에 생성된 hello 폴더로 들어가서 Android Applicatoin Project를 import하면 된다.

이제 이미 개발된 html / js / css 를 asset/www 폴더로 이동시키고,
res/xml/config.html 파일 안에서 index.html로 된부분을 원하는 시작페이지 경로로 바꿔 주기만 하면 된다.




plugman
Cordova 3.2버전에서는 plugman  이라는 것이 제공되는데 이것은 프로젝트 진행중에도 플러그인은 꼽았다 제거할수 있는 매우 유용한 툴이다.

설치
$ npm install -g plugman

plugin  등록 / 삭제
$ plugman install --platform <ios|amazon-fireos|android|blackberry10|wp7|wp8> --project <directory> --plugin <id> [--www <directory>] [--plugins_dir <directory>]
$ plugman uninstall --platform <ios|amazon-fireos|android|blackberry10|wp7|wp8> --project <directory> --plugin <id> [--www <directory>] [--plugins_dir <directory>]
 <>는 와야할 것이고 [] 없어도 상관없는 것이다.
아래와 같이 작성하면된다.

$ plugman install --platform android --project c:\workspace\HellWorld --plugin org.apache.cordova.Device
$ plugman install --platform android --project c:\workspace\HellWorld --plugin https://github.com/phonegap-build/FacebookConnect.git --variable APP_ID=123345 --variable APP_NAME=Hello
 위에서 보면 알수 있듯이github 주소로도 등록이 가능한데 이때 한가지 조건이 필욯다.
CLI 툴이 설치 되어 있어야 한다.
http://git-scm.com/downloads
CLI툴 중하나인 git-GUI 를 설치하면 에러 없이 git주소로도 plugin 등록이 가능해 진다.


## 추가적인 plugin이 필요한 경우
adobe phonegap build > plugin을 적극 활용하도록 하자 많은 플러그인들을 만날수 있다.

2013년 9월 2일 월요일

0902_DB Modelling

DB모델링이란?

→ 생각하고 있는 바를 글이나 그림으로 표현하는 것


 

- 데이터의 구조와 상관어 관계를 표현

- 전체 그림(시스템이 다루는 Data)을 빠르게 이해할 수 있다.


 

1. 테이블 정의

가. 컬럼 식별

나. Data를 구분하기 위한 Key 설정


 

2. 정규화 수행

가. Data의 중복 제거가 목표

- 메모리 절약

- Data의 신뢰성을 높인다(무결성)

나. 방법

- 제1정규화 -> 제2정규화-> 제3정규화

1) 제1정규화

     - 중복컬럼 제거, 중복 데이터 제거 -> 별도 테이블 정의

- 부모-자식관계를 맺는다.


 

2) 제2정규화

- PK가 두개 이상일 경우

3) 제3정규화

     - 어떤 컬럼이 PK가 아닌 일반컬럼에 종속되는 경우 -> 별도 테이블 분리 -> 부모 자식 관계로 정의


 

3. 도메인 정의

- 컬럼들을 분류하여 하나의 타입으로 정의

-


 


 


 


 


 

2013년 8월 2일 금요일

0802_JAVA 실습_계산기 만들기1(STEP01~05)





 

0803_Refractoring의 개념 및 SVN, CVS, GIT

Refactoring 이란?


소프트웨어를 보다 쉽게 이해할 수 있고, 적은 비용으로 수정할 수 있도록 겉으로 보이는 동작의 변화 없이 내부 구조를 변경하는 것

핵심 정리

  • 새로운 기능을 추가해야 하는데 프로그램의 코드가 새로운 기능을 추가하기 쉽도록 구조화되어있지 않은 경우에는 먼저 리팩토링을 해서 프로그램에 기능을 추가하기 쉽게 하고, 그 다음에 기능을 추가한다.
  • 리팩토링을 시작하기 전에 견고한 테스트 세트를 가지고 있는지 확인하라. 이 테스트는 자체 검사여야 한다.
  • 리팩토링은 작은 단계로 나누어 프로그램을 변경한다. 실수를 하게 되더라도 쉽게 버그를 찾을 수 있다.
  • 컴퓨터가 이해할 수 있는 코드는 어느 바보나 다 짤 수있다. 좋은 프로그래머는 사람이 이해할 수 있는 코드를 짠다.
  • 완전하지 않은 인터페이스를 공표하지 마라. 매끄러운 리팩토링을 위해 코드 소유권 정책을 수정하라.

왜 리팩토링을 해야 하는가?

  • 리팩토링은 소프트웨어의 디자인을 개선시킨다.
  • 리팩토링은 소프트웨어를 더 이해하기 쉽게 만든다.
  • 리팩토링은 버그를 찾도록 도와준다.
  • 리팩토링은 프로그램을 빨리 작성하도록 도와준다.


언제 리팩토링을 해야 하는가?

  • 별도의 시간을 내는것이 아니라, 틈틈히 계속 해야 하는 것이다.
  • 어떤 것을 할 때 비슷한 어떤것을 하게 되면 리팩토링을 한다.(책에서는 3번째 부터 하라고 나와있지만 바로 한다.)
  • 기능을 추가할 때 리팩토링을 해라.
  • 버그를 수정해야 할 때 리팩토링을 하라.
  • 코드 검토(code review)를 할 때 리팩토링을 하라.
    • 읽기 어려운 프로그램은 수정하기 어렵다.
    • 중복된 로직을 가지고 있는 프로그램 수정하기 어렵다.
    • 실행중인 코드를 변경해야 하는 특별한 동작을 요구하는 프로그램은 수정하기 어렵다.
    • 복잡한 조건문이 포함된 프로그램은 수정하기 어렵다.

언제 리팩토링을 하지 말아야 하는가?

  • 코드를 처음부터 다시 작성해야 할때
  • 마감일에 가까울 때


리팩토링과 디자인
리팩토링이 사전 디자인의 역할을 바꿀수 있기 때문에 간단한 솔루션을 만든 다음에 코딩을 하고 리팩토링을 한다.
※ 시스템이 어떻게 돌아가는지 정확하게 알고 있다 하더라도, 추측만 하지 말고 실제로 퍼포먼스를 측정해보라. 무엇인가 배울 것이고, 십중팔구는 추측이 틀렸을 것이다.

리팩토링과 퍼포먼스
리팩토링은 확실히 소프트웨어를 더 느리게 할 것이지만, 반면에 소프트웨어에 대한 퍼포먼스 튜닝을 더 쉽게 할 수 있도록 만든다.

0802_Java 클래스 선언 및 변수 정의

Java 클래스선언 및 변수 관계

0802_JAVA 객체지향 프로그래밍에 대한 개념 및 메모리 영역에 대한 이해

JAVA 객체지향 프로그래밍이란?



JAVA Memory 영역 구성