-
Notifications
You must be signed in to change notification settings - Fork 148
Developer Guide Kor
Qgis-Tr-kr edited this page Nov 19, 2014
·
24 revisions
- 작성일 : 2013.08.04
- 작성자 : Cho HyunJong([email protected])
올챙이는 웹 기반 DB 관리 도구입니다. 웹 브라우저에서 올챙이를 통해 다양한 DB로 접속할 수 있고, 권한을 조절 할 수 있습니다. 올챙이의 최종 지향은 DB HUB 입니다.
- 홈페이지 : https://github.com/hangum/TadpoleForDBTools/wiki
- 올챙이는 LGPL라인선스로 사용이 허락되어 있습니다.
- 기부는 Paypal로 받고 있습니다. 기부방법 및 기부자는 다음을 참조 하세요.
- 올챙이에 관련문의 : TADPOLE([email protected])
- 올챙이에 사용 된 외부 라이브러리
- 개발 환경 소스 내려 받기
- Target Platform 설정합니다.
- 실행
- 플러그인 설명
- 엔진 디비
- 엔진에서 사용하는 Database 별 쿼리는 다음과 같습니다.
- 배포
- Eclipse RAP & GEF Port, EMF, FileUpload etc
- Amazon AWS java SDK(http://aws.amazon.com/en/sdkforjava/)
- Java Simplified Encryption(http://www.jasypt.org/)
- Apache Hadoop, DBCP, iBatis, Commons, Mail, HttpComponents-client, log4j, slf4j.. etc
- Java Excel API(http://jexcelapi.sourceforge.net/)
- JSqlParser(https://github.com/JSQLParser/JSqlParser)
- SQLFormatter(?)
- Gson(https://code.google.com/p/google-gson/)
- Cubrid JDBC Driver
- Apache TAJO JDBC Driver
- Apache Hive JDBC Driver
- MariaDB JDBC Driver
- MongoDB JDBC Driver
- MSSQL JDBC Driver(jtds, http://jtds.sourceforge.net/)
- MySQL JDBC Driver
- Oracle JDBC Driver
- PostgreSQL JDBC Driver
- SQLite JDBC Driver
- ACE Editor (http://ace.c9.io/#nav=about)
- Google Auth(https://github.com/wstrange/GoogleAuth)
- Quartz Schedule(http://quartz-scheduler.org/)
- opencsv(http://opencsv.sourceforge.net/)
- 개발 툴은 Eclipse 4.3 Kepler 버전 혹은 4.4 Luna 버전 Eclipse RCP and RAP Developers를 사용합니다.
- 소스는 Eclipse의 Git Repositories Perspective를 이용해 github의 다음(https://github.com/hangum/TadpoleForDBTools/) 위치의 소스를 받아오시면 됩니다.
- 이클립스 워크스페이스 encoding 타입을 UTF-8로 수정하세요.(Window -> Preference -> General -> Workspace -> UTF-8)
- Master Branch 소스를 로컬에 내려 받으세요. 소스를 github에서 받을 때 Clone Git Repository 대화상자의 마지막 단계인 Local Destination 부분의 Projects 부분의 'Import all existing projects after clone finishes' 옵션을 선택하고 [Finish]를 누르면 받은 소스가 자동으로 Workspace에 들어옵니다.
현재 사용하는 플러그인 EGit, Log4E, WindowBuilder, Subclipse, ResourceBundle Editor 0.8.0 등입니다.
- Git 홈을 이클립스 변수로 등록합니다. Window -> Preference -> Run/Debug -> String Substitution 에 git-tadpole 변수를 설정하고 올챙이 소스를 내려받은 git-home 폴더를 값으로 설정합니다. 저는 C:\dev\eclipse-SDK-4.3\eclipse\workspace-tadpole\TadpoleDBHub 로 설정 되어 있습니다.
- 올챙이 타겟 파일은 ${workspace}/targetProject/tadpolea-rap-2.0.0-emf-standalone.target을 입니다. 해당 파일을 더블 클릭하십시오. 오른쪽 상단 Set as Target Platform을 클릭합니다.
- API Baselines을 설정합니다. Window -> Preference -> Plug-in Development -> API Baselines를 클릭합니다.
Add Baseline..을 클릭한 후 적당한 이름을 입력한 후 Reset을 누르고 Finish을 누릅니다. - Project -> Clean.. 을 눌러 전체 컴파일 합니다. 여기 까지하면 올챙이 프로젝트에 에러가 없어야 맞습니다.
- com.hangum.tadpole.application.start 프로젝트의 TadpoleDBHub_executer_configuration.launch 를 클릭 하세요. 마우스 오른쪽 버튼을 누르고 Run As -> TadpoleDBHub_executer_configuration 를 클릭하시면 올챙이가 시작됩니다.
- 그런데 대부분 바로 시작 안되고 'Could not resolve module' 오류가 발생하는 경우가 많습니다. 이는 Eclipse가 Bundle을 정상적으로 찾지 못하는 것입니다. 이를 해결하기 위해 메뉴 -> Run -> Debug Configuration 을 선택합니다.
- 다일로그 화면이 열리면 Bundle 탭을 선택합니다. 이 대화상자에서 [Add Required Bundles] 버튼을 눌러야 하는데, 보통 창이 작아 이 버튼이 안 보입니다.
- 대화상자의 오른쪽 테두리를 잡고 늘리면 [Add Required Bundles] 버튼이 보이고, 이 버튼을 누른 후 Bundle 들이 다 찾아지면 [Apply] 버튼을 눌러 적용합니다. 이 과정은 개발환경 구성 후 한 번만 실행하면 됩니다.
- 이제 다시 처음 시도했던 대로 TadpoleDBHub_executer_configuration.launch 를 Run As로 실행하면 정상 실행이 될 것입니다.
- com.hangum.tadpole.application 프로젝트의 plugin.xml 파일을 더블클릭 합니다. Launch a RAP Application 버튼을 클릭하여 시작합니다. 처음실행시 대부분 실패하게 됩니다.
- 이클립스 안에서의 실행 환경을 설정해야합니다. 메뉴 -> Run -> Debug Configuration 을 선택합니다.
- 다이얼로그 화면이 오픈되는데, RAP Application이름으로 실행될 것입니다. Main 텝에서 Servlet path 에는 /tadpole를 입력합니다.
- Bundle 텝에서 Deselect All을 클릭합니다. 다시 com.hangum.tadpole.application.start, org.eclipse.equinox.http.jetty, org.eclipse.equinox.console, org.apache.felix.gogo.shell의 체크 박스를 클릭해 줍니다. 그 후에 Add Required Bundle번튼을 클릭합니다.
- 브라우저가 오픈되고 404 not found가 나올텐데 리프레쉬 버튼을 눌러서 페이지가 정상 오픈되는 것을 확인합니다.
- 좀더 편하게 사용하기 위해서는 Debug Configuration의 RAP Application에서 Argument tab에서 Program Argument항목 제일 뒤에 -test -debuglog를 추가합니다. -test의 옵션은 테스트 환경을 동작하라, -debuglog는 로그 옵션을 deblog로 하라는 말입니다.
이 비디오를 보세요. http://www.youtube.com/watch?v=qTL24cQ6ISc
- com.hangum.tadpole.application.start : 프로젝트 시작과 종료 부분
- com.hangum.tadpole.rdb.core : Database 리스트와 Table, Column 리스트 화면 및 RDB 메인 에디터 창 부분
- com.hangum.tadpole.application : 퍼스팩티브 설정 및 로그인 화면 부분
- com.hangum.tadpole.commons.libs : 공통 라이브러리 정의
- com.hangum.tadpole.commons.sql : SQL관련 공통 코드 정의(엔진과 업부 공통)
- com.hangum.tadpole.commons.sql.test : com.hangum.db.commons.sql 관련 테스트 플러그인
- com.hangum.tadpole.commons : 공통 코드 유틸
- com.hangum.tadpole.editor.core : Editor 관련 공통 코드 정의
- com.hangum.tadpole.sql.parser : SQL Parser, Formatter 관련 코드
- com.hangum.tadpole.build.war : WAR로 배포하기위한 플러그인
- com.hangum.tadpole.rdb.model : RDB 모델 정의(현재는 ERD 프로젝트에서만 사용)
- com.hangum.tadpole.rdb.erd.core : RDB ERD 부분
- com.hangum.tadpole.feature : 올챙이 feature
- com.hangum.tadpole.feature.site : buckminster관련 코드 포함된 feature
- com.hangum.tadpole.manager.core : 유저 관리 코드
- com.hangum.tadpole.mongodb.core : 몽고디비 관련 메인(디비 및 콜렉션 리스트는 rap.core에서 사용)
- com.hangum.tadpole.mongodb.core.test : 몽고디비 테스트 코드
- com.hangum.tadpole.mongodb.model : Mongodb 모델 정의(현재는 ERD 프로젝트에서만 사용)
- com.hangum.tadpole.mongodb.erd.core : Mongodb ERD
- com.hangum.tadpole.preference : 프리퍼런스 코드
- com.hangum.tadpole.secret.util : 올챙이 확장을 위한 코드
- com.hangum.tadpole.importdb : Data Import 관련 코드
- com.hangum.tadpole.cipher.core : Data 보안관련 코드
- com.hangum.tadpole.aws.rds.commons.core : Amazon rDS 관련 코드
- targetProject : target platform 관련 코드 및 도큐 먼트
- com.hangum.db.browser.rap.Application#createUI() : Session 설정 합니다.
- com.hangum.db.browser.rap.ApplicationWorkbenchAdvisor : 올챙이 홈 페이지 오픈 합니다.
- com.hangum.db.browser.rap.ApplicationWorkbenchWindowAdvisor : 초기 UI정의, 디비에 테이블이 없다면 테이블 및 기초 유저 생성 후에 로그인 다이얼로그 오픈 합니다.
- 3.정상이라면 com.hangum.db.browser.rap.Perspective 에 정의된 Database View와 Object Explorer view 오픈합니다.
- Database view(com.hangum.db.browser.rap.core.viewers.connections.ManagerViewer)가 오픈될 때 #init()에서 사용자에게 초기 할당된 디비 리스트를 등록하고 초기 작업을 마무리합니다.
시작시 아규먼트 설명은 다음을 참고합니다. https://github.com/hangum/TadpoleForDBTools/blob/master/targetProject/docs/engine%20argument%20options.txt
- data_security : 컬럼 암호화 정보
- executed_sql_resource
- executed_sql_resource_data
- security_class : 암호화 알고리즘 정보
- account_ext : 외부 계정 추가 정보
- ssh_info : ssh 연결정보
- tadpole_system : 시스템 기본정보
- user : 사용자 정보
- user_db : 데이터 베이스
- user_db_ext : 데이터 베이스 확장 정보
- user_db_filter : 데이터 베이스 정보 필터
- user_db_resource : 사용자 리소스 헤더
- user_db_resource_data : 사용자 리소스 데이터
- user_group : 사용자 그룹
- user_info_data : 사용자 데이터
- user_role : 사용자 권한
디비의 스크립트는
Database의 기본 기능은 iBatis Framework(http://ibatis.apache.org/)을 사용했습니다. iBatis 에 매핑하는 DAO의 기준은 MySQL입니다. 올챙이는 다음 DB를 지원합니다. 각 DB에 대한 시스템 Query는 다음을 참고하세요.
- Amazon RDS:
- Cubrid : 8.4.1.2032 기준으로 작업.
- MsSQL : 2000 기준으로 작업.
- MySQL : 5.4.x로 기준으로 작업.
- MariaDB: 5.5.x기준으로 작업.
- Oracle : 10g - 11g로 기준으로 작업.
- Postgre: 9.1 기준으로 작업.
- SQLite : 3.7.2 기준으로 작업.
- MongoDB : 2.0.5 기준으로 작업
배포는 크게 Desktop Application 타입과 WAR타입 두가지 모드가 존재합니다. Buckminster(com.hangum.tadpole.feature.site)로 자동화 하는 작업이 있겠으나 수동으로 하는 방법을 설명합니다.
- Desktop Application : com.hangum.tadpole.application 프로젝트 안에 tadpole-standalone.product 을 선택합니다. Eclipse Product export wizard를 클릭하여 배포 합니다.
- WAR : com.hangum.tadpole.build.war 안에 tadpole.war.product.warproduct 를 선택합니다. Eclipse WAR Product export wizard를 선택하여 배포 합니다.