-
Notifications
You must be signed in to change notification settings - Fork 0
Developer Guide Kor
- ์์ฑ์ผ : 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, OrionHub, FileUpload etc
- Amazon AWS java SDK(http://aws.amazon.com/en/sdkforjava/)
- Java Simplified Encryption(http://www.jasypt.org/)
- Apache Hadoop, DBCP, iBatis, Commons, 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 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
- ๊ฐ๋ฐ ํด์ 4.3 Kepler ๋ฒ์ Eclipse RCP and RAP Developers๋ฅผ ์ฌ์ฉํฉ๋๋ค.
- ์์ค๋ github์ ๋ค์(https://github.com/hangum/TadpoleForDBTools/) ์์น์ ์กด์ฌ ํฉ๋๋ค.
- ์ดํด๋ฆฝ์ค ์ํฌ์คํ์ด์ค encoding ํ์ ์ UTF-8๋ก ์์ ํ์ธ์.(Window -> Preference -> General -> Workspace -> UTF-8)
- Master Branch ์์ค๋ฅผ ๋ก์ปฌ์ ๋ด๋ ค ๋ฐ์ผ์ธ์.
ํ์ฌ ์ฌ์ฉํ๋ ํ๋ฌ๊ทธ์ธ 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 ๋ฅผ ํด๋ฆญํ์๋ฉด ์ฌ์ฑ์ด๊ฐ ์์ํ๊ฒ ์ต๋๋ค.
- 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 : ์ฌ์ฉ์ ๊ถํ
๋๋น์ ์คํฌ๋ฆฝํธ๋
- ์์คํ DB ์์ฑ์คํฌ๋ฆฝํธ๋ ๋ค์์ ์ฐธ์กฐํ์ธ์.
- ์์คํ DB ์ฟผ๋ฆฌ๋ ๋ค์์ ์ฐธ์กฐํ์ธ์.
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๋ฅผ ์ ํํ์ฌ ๋ฐฐํฌ ํฉ๋๋ค.