2014년 1월 30일 목요일

[FlAsK] 플라스크 개발 환경 구성



1. python  다운로드 및 설치

    URL : http://www.python.org/download/releases/2.7.5/
 
    각자의 운영체제에 맞는 것을 선택 하여 다운로드 받아 설치 한다.

    참고 : 2.7.6 에서 문제가 발생 하여 2.7.5 를 선택 하였다.


2. easy_install 를 설치 하기 위한 distribute_setup.py 다운로드

   pip 라는 패키지 관리자를 사용 하기 위해서는 easy_install 이라는 것을 먼저 설치 해야

   하는데, easy_install 을 사용 하기 위해서 distribute_setup.py 를 다운로드 받아야 한다.

    URL : http://python-distribute.org/distribute_setup.py

   파일을 다운로드 받아, python 설치 디렉토리(python.exe 가 있는 디렉토리) 에 복사 하여

   넣는다.


3. esqy_install 의 설치를 위한 distribute_setup.py 의 실행
 
    DOS 창을 열고 python.exe 이 설치된 디렉토리로 이동 하여 다음의 명령어를 실행 한다.

    D:\devel\devel-tools\Python27>python distribute_setup.py

    python 이 설치된 디렉토리 아래 Scripts 디렉토리에 easy_install 파일이 있는지 확인

    한다.



4. PATH 에 등록

    python 설치 디렉토리 아래 Scripts 를 PATH 에 등록 한다.



5. easy_install 을 이용하여  pip 설치

   DOS 창을 열고 다음의 명령어를 실행 한다.

   D:\> easy_install pip

   python 이 설치된 디렉토리 아래 Scripts 디렉토리에 pip 파일이 있는지 확인 한다.

   * PATH 에 등록 하였으므로 아무 위치에서나 easy_install 명령을 실행 하여도 된다.


6. pip 를 이용한 virtualenv 의 설치

    virtualenv 는 하나의 컴퓨터에서 여러가지 버젼의 파이썬을 개별적으로 실행 할 수

    있도록 해주는 일종의 가상 환경 이라고 한다.

    설치 하기 위해서 다음의 명령어를 실행 한다.

    D:\> pip install virtualenv

   python 이 설치된 디렉토리 아래 Scripts 디렉토리에 virtualenv 파일이 있는지 확인 한다.

   * PATH 에 등록 하였으므로 아무 위치에서나 pip 명령을 실행 하여도 된다.


7. 가상환경 생성

    나중에 플라스크를 설치한 가상 환경에서 개발을 진행 하기 위한 단계.

    D:\test-project 라는 디렉토리를 만들고 이동 한다.

    D:\> mkdir test-project

    D:\> cd test-project

    D:\test-project>virtualenv venv
    New python executable in venv\Scripts\python.exe
    Installing setuptools, pip...done.

    D:\test-project> cd venv\Scripts

    D:\test-project\venv\Scripts> dir
     D 드라이브의 볼륨: 새 볼륨
     볼륨 일련 번호: C817-DD74

     D:\test-project\venv\Scripts 디렉터리

    2014-01-30  오전 02:36    <DIR>          .
    2014-01-30  오전 02:36    <DIR>          ..
    2014-01-30  오전 02:36             2,271 activate
    2014-01-30  오전 02:36               538 activate.bat
    2014-01-30  오전 02:36             8,252 activate.ps1
    2014-01-30  오전 02:36             1,129 activate_this.py
    2014-01-30  오전 02:36               348 deactivate.bat
    2014-01-30  오전 02:36            95,084 easy_install-2.7.exe
    2014-01-30  오전 02:36            95,084 easy_install.exe
    2014-01-30  오전 02:36            95,056 pip.exe
    2014-01-30  오전 02:36            95,056 pip2.7.exe
    2014-01-30  오전 02:36            95,056 pip2.exe
    2014-01-30  오전 02:36            27,136 python.exe
    2014-01-30  오전 02:36            27,648 pythonw.exe
                  12개 파일             542,658 바이트
                   2개 디렉터리  565,885,050,880 바이트 남음

    D:\test-project\venv\Scripts> activate.bat
    (venv) d:\test-project\venv\Scripts>



 8. flask, sqlalchemy, wtforms 설치 설치

     플라스크 설치를 위해 아래의 명령어를 실행 한다.

     (venv) d:\test-project\venv\Scripts> pip install Flask
     (venv) d:\test-project\venv\Scripts> pip install sqlalchemy 
     (venv) d:\test-project\venv\Scripts> pip install wtforms


9. eclipse 실행을 위한 jdk 설치

   이 부분은 건너뜀


10.  eclipse 다운로드
 
   URL : http://www.eclipse.org/downloads/

   Eclipse Standard 4.3 를 각자의 운영체제에 맞는 것을 다운로드 받는다.

   적당한 디렉토리에 두고 압축을 해제 하는 것으로 끝나기 때문에 다음 과정은 생략.


11. eclipse 로 편하게 코딩을 하기 위한 PyDev 의 설치
 
   이클립스 실행후 상단 메뉴에서 "Help -> Eclipse Marketplace..." 메뉴 선택 한다.

   나타나는 창에서 'PyDev' 검색 후 'PyDev - Python IDE for Eclipse' 를 설치 한다.


12. Eclipse 에 flask 가상환경 설정

    "Window -> Preferences -> PyDev -> Interpreters -> Python Interpreter"  선택 한다.

    New 버튼을 클릭 하고, 이전 7,8 단계에서 생성한 가상 환경의 경로에서 python.exe

   가 있는 곳을 선택 한다.


13. eclipse 에 html 에디터 설치 
 
   Help -> Install new software... ->
   'Kepler - http://download.eclipse.org/releases/kepler' 선택 ->
   Web, XML, Java EE and OSGI Enterprise Development  ->
      Eclipse Web Developer Tools
      Eclipse XML Editors and Tools
      JavaScript Development Tools







 



2014년 1월 22일 수요일

[EtC] 사업자등록번호


사업자 등록 번호 형식 : 000 - 00 - 00000

첫번째 필드 3자리 숫자(000 - 00 - 00000)
     서울,경기청 100
     중구청        200
     대전청        300
     광주청        400
     대구청        500
     부산청        600

두번째 필드 2자리 숫자(000 - 00 - 00000)
     01~80 개인사업자
     81       영리법인
     82       비영리법인
     83       학교법인,지자체
     84       외국법인
     85       지점법인
     86       서울경기의 영리법인
     90~99 개인면세사업(쌀, 고기,어물,치과, 의원등)


세번째 필드 5자리 숫자(000 - 00 - 00000)
     등록 일련번호

2014년 1월 13일 월요일

[AnDrOiD] 앱의 설치 위치


AndroidManifest.xml 에 아래와 같이 installLocation 을 추가 한다.

<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="com.freecatz.test"
    android:versionCode="3"
    android:versionName="1.6"
    android:installLocation="preferExternal" >

auto : 자동으로 내장메모리에 우선 설치 하나 공간이 없는 경우 외장메모리에 설치.
internalOnly : 내장 메모리에 설치.
preferExternal : 외장메모리에 설치를 우선으로 하나 공간이 없는 경우 내장메모리에 설치.

2014년 1월 10일 금요일

2014년 1월 7일 화요일

[EtC] JavaScript Event 목록

onAbort이미지를 읽다가 중단시켰을 때 발생
onActivate개체가 활성활 될 때 발생
onAfterPrint문서가 출력되거나 혹은 출력하기 위해 출력미리보기를 한후에 발생
onAfterUpdate데이터영역 개체에서 발생하는 이벤트로 데이터 소스 오브젝트내의 데이터가 업데이트 되었을 때 발생
onBeforeActivate개체가 활성화 상태로 되기 바로 직전에 발생
onBeforeCopy선택 영역이 시스템의 클립보드로 복사되기 바로 직전에 발생
onBeforeCut선택 영역이 지워지기 바로 직전에 발생
onBeforedeActivate현재 개체에서 다른 개체로 activeElement가 바뀌기 직전에 발생
onBeforeEditFocus편집가능한 개체 내부에 포함된 개체가 편집활성화 된 상태가 되거나 혹은 편집가능한 개체가 제어를 위해 선택될 때 발생
onBeforePaste시스템의 클립보드에서 문서로 붙여넣기 될때 대상 개체에서 발생
onBeforePrint문서가 출력되거나 혹은 출력하기 위해 출력미리보기 직전에 발생
onBeforeunload페이지가 언로드되기 직전에 발생
onBeforeUpdate데이터영역 개체에서 발생하는 이벤트로 데이터 소스 오브젝트내의 데이터가 업데이트 되기전에 발생
onBlur포커스가 다른 곳으로 이동했을 때 발생
onBounce마퀴태그에서 alernate상태에서 스크롤이 양 사이드에서 바운드 될때 발생
onCellChange데이터제공 개체에서 데이터가 변화할때 발생
onChange수정등과 같은 작업에 의해서 값이나 포커스를 잃을 경우 발생되는 이벤트 핸들러
onClick마우스로 클릭했을 때 발생
onContextMenu클라이언트 영역에서 사용자가 마우스 오른쪽 버튼을 눌러 콘텍스트 메뉴를 열때 발생
onControlSelect사용자가 개체의 제어 영역을 만들때 발생
onCopy시스템의 클립보드에 선택영역 혹은 개체를 복사할 때 소스 개체로부터 발생
onCut시스템의 클립보드에 선택영역 혹은 개체를 잘라낼때 소스 개체로부터 발생
onDataAvailable비정기적으로 데이터를 전달하는 데이터 소스 개체로부터 데이터가 도착할 때 마다 정기적으로 발생
onDatasetChanged데이터 소스개체의 변화에 의해 데이터가 노출된 상태로 될때 발생
onDatasetComplete데이터 소스 개체로부터 모든 데이터가 유용한 상태로 표시될때 발생
onDbClick마우스를 더블클릭 했을 때 발생
onDeactivate현재 개체에서 다른 개체로 activeElement가 바뀔때 발생
onDragEnd드래그 상태가 끝날때 소스 객체로 부터 발생
onDragEnter사용자가 개체를 드래그 하여 드롭가능 위치로 지정된 영역으로 이동할때 타겟 개체에서 발생
onDragLeave사용자가 개체를 드래그 하여 드롭가능 위치로 지정된 영역을 떠날때 타겟 개체에서 발생
onDragOver사용자가 개체를 드래그 하여 드롭가능 위치로 지정된 영역내에서 드래그할 때 계속적으로 타겟 개체에서 발생
onDragStart선택된 개체 혹은 텍스트 영역에서 사용자가 드래그를 시작할 때 발생
onDrag드래그 상태가 지속되는 동안 소스 객체로 부터 발생
onDrop드래그앤드롭 작용에서 상태가 진행되는 동안 개체가 타겟 개체에 드롭되었을 때 타겟 개체어서 발생
onErrorUpdate데이터 소스 개체 내에 데이터가 업데이트 되는 동안 에러가 발생할 때 데이터 영역 개체에서 발생
onError문서나 이미지를 읽다가 에러가 발생했을 때 발생
onFilterChange비주얼 필터의 상태가 바뀌거나 트랜지션이 완료되었을 때 발생
onFinish마퀴개체의 loop가 완료되었을 때 발생
onFocusin개체에 포커스가 셋팅되기 바로 직전 개체에 대해 발생
onFocusout포커스가 다른 개체로 이동한 후에 포커스를 가고 있는 현재 개체에서 발생
onFocus포커스가 들어왔을 때 발생
onHelp브라우저가 활성화 되어 있는 동안 F1키를 눌렀을 때 발생
onKeyDown키를 입력했을 때 발생
onKeypress키를 눌렀을 때 발생
onKeyup키를 눌렀다 놓았을 때 발생
onLayoutComplete소스 문서로 부터 콘텐드를 가지는 객체가 미리보기나 출력을 할때 현재 LayoutRect개체를 모두 채우는 것이 끝났을 때 발생
onLoad브라우저에서 문서가 읽혀졌을 때 발생
onLoseCapture개체가 마우스 캡쳐를 잃었을 때 발생
onMouseDown마우스 버튼을 눌렀을 때 발생
onMouseEnter개체 안으로 마우스 포인터가 들어올때 발생
onMouseleave개체의 경계밖으로 마우스 포인터가 이동할 때 발생
onMouseMove마우스를 움직였을 때 발생
onMouseout마우스 커서가 특정 영역 또는 링크에서 벗어날 때 발생
onMouseOver마우스가 객체 위에 놓여졌을 때 발생
onMouseup마우스버튼을 눌렀다 놓았을 때 발생
onMousewheel마우스 휠이 돌아갈때 발생
onMoveEnd개체가 움직임이 끝날 때 발생
onMoveStart개체가 움직이기 시작할 때 발생
onMove윈도우나 프레임을 움직였을 때 발생
onPaste문서에 클립보드로 부터 데이터가 전송될때 타겟 개체에서 발생
onPropertyChange개체의 속성이 바뀔대 발생
onReadystateChange개체의 상태가 변화할때 발생
onReset입력양식에서 리셋시켰을 때 발생
onResizeEnd제어영역에서 개체의 크기가 사용자에 의해 변화가 끝날때 발생
onResizeStart제어영역에서 개체의 크기가 사용자에 의해 변화되기 시작할때 발생
onResize윈도우나 프레임의 크기를 바꾸었을 때 발생
onRowenter데이터 소스내에서 현재 열이 변화되거나 개체에 새로운 유용한 데이터가 입력될때 발생
onRowExit데이터 소스 콘트롤이 개체내의 현재 열을 변화시킬 때 발생
onRowsDelete레코드셋에서 열이 삭제될때 발생
onRowsInserted현재 레코드셋에 새로운 열이 추가된후에 발생(데이터 개체에서)하는 이벤트 핸들러
onScroll사용자가 개체내의 스크롤 바를 스크롤 할때 발생
onSelectionChange문서의 선택 영역의 상태가 바뀔때 발생
onSelectStart개체가 선택되기 시작할때 발생
onSelect입력양식의 한 필드를 선택했을 때 발생
onStart마퀴개체에서 매 루프가 시작될때 발생
onStop사용자가 stop버튼을 눌렀을 경우 혹은 페이지를 떠날때 발생
onSubmit입력양식을 서버로 보낼 때 발생
onUnload문서를 닫고자 할 때, 또는 다른 페이지로 이동하고자 할 때 발생

2014년 1월 3일 금요일

[DaTaBaSe] Oracle Procedure IF-ELSIF-ELSE


IF 상태1 THEN
     DBMS_OUTPUT.put_line('상태1 에 따른 처리');
ELSIF 상태2 THEN
     DBMS_OUTPUT.put_line('상태2 에 따른 처리');
ELSIF 상태n THEN
     DBMS_OUTPUT.put_line('상태n 에 따른 처리');
ELSE THEN
     DBMS_OUTPUT.put_line('그 외에 처리');
END IF;


참고 : ELSEIF 가 아니라 ELSIF 가 맞다. 매번 까먹거나 헷갈리거나...