-
๋งฅ๋ถ M1 ์ ์์ง๊ฐ ์ค๋ผํด DB ์ ์ดํด๋ฆฝ์ค ์ฐ๋ํ๊ธฐ๐ develop/Mac 2022. 4. 28. 17:25
๐ก ์์ํ๊ธฐ์ ์์
- ์ด ๊ธ์์ ์ด์ฉํ๋ ์๋ฐ ๋ฒ์ ์ Java 17 ๊ธฐ์ค ์ ๋๋ค.
- M1 ์์ ์ค๋ผํด์ ์ด์ฉํ๊ธฐ ์ํด์ shanepark ๋์ M1 Oracle DB ์๋ฆฌ์ฆ 1, 2๋ฅผ ๋ง์น์๊ธธ ์ถ์ฒ๋๋ฆฝ๋๋ค.
์ ์์ง๊ฐ์ผ๋ก ์์ฑํ ์ค๋ผํด DB ์ ์ดํด๋ฆฝ์ค ์ฐ๋ํ๊ธฐ
[1] ์ค๋ผํด JDBC ๋ค์ด๋ก๋ ๋ฐ๊ธฐ
JDBC(Java Database Connectivity)๋ ์๋ฐ์์ ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ์ ์ํ ์ ์๋๋ก ํ๋ ์๋ฐ API์ ๋๋ค.
์ค๋ผํด JDBC ๋ค์ด๋ก๋ ์ฐฝ์ ๋ค์ด๊ฐ์ JDBC ๋ฅผ ๋ค์ด๋ฐ์์ค๋๋ค.
๊ฐ์ฅ ์ค์ํ ์ ์ ์๋ฐ ๋ฒ์ ์ ๋ฐ๋ผ JDBC ๋ฅผ ๋ค์ด๋ฐ์ ์ฃผ์ด์ผ ํ๋ค๋ ๊ฒ์ ๋๋ค.
๋ณธ ์์ฑ์๋ Java 17 ์ ์ด์ฉํ๊ณ ์๊ธฐ ๋๋ฌธ์ ojdbc11-full.tar.gz ๋ฅผ ๋ค์ด๋ก๋ ๋ฐ์์ค๋๋ค.
[2] ์ค๋ผํด JDBC ์ํฌ์คํ์ด์ค์ ์์ถ ํด์
์ด์ ๋ค์ด๋ฐ์ JDBC ๋ฅผ ์์ถ ํด์ ํด์ค๋๋ค.
์ด๋, ์ดํด๋ฆฝ์ค์์ ์์ ํ๋ ํ๋ก์ ํธ๊ฐ ์๋ ํด๋์ JDBC ๋ฅผ ์์ถ ํด์ ํด์ค๋๋ค.
[3] Build Path
JDBC ๋ฅผ ์ฌ์ฉํ ํ๋ก์ ํธ๋ฅผ ์ฐํด๋ฆญ ํด์ค๋๋ค.
[Build Path] -> [Configure Build Path] ๋ฅผ ํด๋ฆญํด์ค๋๋ค.
Java Build Path ์ฐฝ์์ [Libraries] ํญ์ ํด๋ฆญํด์ค๋๋ค.
[Add External JARs...] ์ฐฝ์ ํด๋ฆญํด์ค๋๋ค.
์ฐ๋์ ์ํด์ ojdbc11.jar ํ์ผ์ Open ํด์ค๋๋ค.
ojdbc11.jar ์ ์ ํํ์๊ณ [Open] ๋ฒํผ์ ํด๋ฆญํด์ค๋๋ค.
์ดํ ์ด๋ฐ์์ผ๋ก JDBC ํ์ผ์ด ์ ์ถ๊ฐ๋ ๊ฒ์ ํ์ธํ ์ ์์ต๋๋ค.
์ฌ๊ธฐ์ ์ ๊น!
์ค๋ผํด ์ ์์ง๊ฐ์ ์ด์ฉํ์ฌ JDBC ํ์ผ์ ๋ถ๋ฌ์ค๊ธฐ ์ํด์๋ ojdbc11 ํ์ผ ๋ฟ๋ง์๋๋ผ
osdt_cert
osdt_core
oraclepki
๋ฅผ ์ถ๊ฐ๋ก ๋ฃ์ด์ฃผ์ด์ผ ํฉ๋๋ค.
๋์ผํ ๋ฐฉ๋ฒ์ผ๋ก ์ ๋ถ ์ถ๊ฐํด ์ค๋๋ค.
์ถ๊ฐ ํ [Appy and Close] ๋ฅผ ํด๋ฆญํด์ค๋๋ค.
์ด์ JDBC ๋ฅผ ๋ถ๋ฌ์ค๊ณ , ์ฐ๊ฒฐํด ๋ณด๋๋ก ํ๊ฒ ์ต๋๋ค.
[4] JDBC ๋ก๋ฉ ํ ์คํธ
์๋ฐ ํด๋์ค ํ์ผ์ ํ๋ ๋ง๋ค์ด์ฃผ์๊ณ , ํด๋น ์ฝ๋๋ฅผ ์์ฑํด์ ์คํ์์ผ ์ค๋๋ค.
import java.sql.*; public class Connect01 { public static void main(String[] args) { String driver = "oracle.jdbc.driver.OracleDriver"; try { Class.forName(driver); System.out.println("JDBC Driver Loading ์ฑ๊ณต!!"); } catch (Exception e) { System.out.println("JDBC Driver Loading ์คํจ!!"); e.printStackTrace(); } }
์คํ ์ํค๋ฉด ์ฝ์ ์ฐฝ์ "JDBC Driver Loading ์ฑ๊ณต!!" ์ด ๋น๋๋ค.
์ด์ Oracle ๊ณผ ์ฐ๊ฒฐ์ ์๋ํด๋ณผ๊น์?
[5] ์ฐ๊ฒฐ ํ ์คํธ
์๋ฐ ํด๋์ค ํ์ผ์ ํ๋ ๋ ๋ง๋ค์ด ์ค๋๋ค.
import java.sql.*; public class Connect02 { public static void main(String[] args) { String driver = "oracle.jdbc.driver.OracleDriver"; // String url = "jdbc:oracle:thin:@์ ์์ง๊ฐ์ด๋ฆ_์ฑ๋ฅ?TNS_ADMIN=/์ ์์ง๊ฐํ์ผ๊ฒฝ๋ก/์ ์์ง๊ฐํ์ผ"; String url = "jdbc:oracle:thin:@์ ์์ง๊ฐ์ด๋ฆ_high?TNS_ADMIN=/์ ์์ง๊ฐํ์ผ๊ฒฝ๋ก/์ ์์ง๊ฐํ์ผ"; String id = "์ฌ์ฉ์์ด๋ฆ"; String pwd = "๋น๋ฐ๋ฒํธ"; Connection con = null; try { Class.forName(driver); con = DriverManager.getConnection(url, id, pwd); System.out.println("๋ฐ์ดํฐ๋ฒ ์ด์ค ์ฐ๊ฒฐ ์ฑ๊ณต!!"); } catch (Exception e) { System.out.println("๋ฐ์ดํฐ๋ฒ ์ด์ค ์ฐ๊ฒฐ ์คํจ!!"); e.printStackTrace(); } finally { try { if (con != null) con.close(); } catch (Exception e) { System.out.println(e.getMessage()); } } } }
์ผ๋ฐ์ ์ผ๋ก ๋ก์ปฌ์์ ์ค๋ผํด์ ์ฌ์ฉํ์ ๋ค๋ฉด
"jdbc:oracle:thin:@localhost:1521:xe"
๊ณผ ๊ฐ์ ํํ๋ฅผ ์ฌ์ฉํ๊ฒ ์ง๋ง,
M1 ์ ์ ๋ค์ ์ ์์ง๊ฐ์ ํตํด ์ค๋ผํด์ ์ด์ฉํด์ผ ํ๊ธฐ ๋๋ฌธ์
"jdbc:oracle:thin:@์ ์์ง๊ฐ์ด๋ฆ_์ฑ๋ฅ?TNS_ADMIN=/์ ์์ง๊ฐํ์ผ๊ฒฝ๋ก/์ ์์ง๊ฐํ์ผ"
์ ํํ๋ฅผ ์ฌ์ฉํด์ผ ํฉ๋๋ค.
์ฌ๊ธฐ์ "์ ์์ง๊ฐ์ด๋ฆ" ๋ถ๋ถ์ ๋ชจ๋ฅด์๋ ๋ถ์ด ๋ง์ ๊ฒ์ด๋ผ ์์ํฉ๋๋ค. ์์๋ณด๋ ๋ฐฉ๋ฒ์ ๋ค์๊ณผ ๊ฐ์ต๋๋ค.
์ ์์ง๊ฐ ํ์ผ์ ์์ถ ํด์ ํฉ๋๋ค.
์์ถ ํด์ ํ ํด๋์ ๋ค์ด๊ฐ๋ณด์๋ฉด tnsnames.ora ํ์ผ์ด ์์ ๊ฒ์ ๋๋ค.
ํด๋ฆญํด์ ๋ด์ฉ์ ํ์ธํด๋ณด์๋ฉด (์ผ๋ฐ txt ํ์ผ์ด ์๋๊ธฐ ๋๋ฌธ์ ๊ทธ๋ฅ ๊ฐ๋ฐ ํด์์ ์ด์ด์ ํ์ธํ์ต๋๋ค) ๋ค์๊ณผ ๊ฐ์ ๋ด์ฉ์ด ์ ํ ์์ ๊ฒ์ ๋๋ค.
๋นจ๊ฐ ์ค๋ก ํ์ํ ๋ถ๋ถ์ด ๋ฐ๋ก ์ ์ ์ง๊ฐ ์ด๋ฆ ๋ถ๋ถ์ ๋๋ค. ๋ค์ high / low / medium ์ ์ค๋ผํด์์ ์ ๊ณตํ๋ DB ์ฑ๋ฅ ์๋น์ค์ ์ ํ์ฌํญ์ ๋๋ค. ์ ๋ ๊ฐ์ธ ์ค์ต์ ์ํ ์ฌ์ฉ์ด๊ธฐ ๋๋ฌธ์ high ๋ฅผ ์ ํํ์์ต๋๋ค.
์ด์ ์ด์ ๋ง์ถฐ ์์ฑ์ ์๋ฃํ์ฌ ์คํ์์ผ ์ค๋๋ค.
๋๊ฐ์ด ์ฝ์์ฐฝ์ ํ์ธํ๋ฉด? ์ฐ๊ฒฐ ์ฑ๊ณต ์ ๋๋ค!
๋ง๋ฌด๋ฆฌํ๋ฉฐ
๋๋ถ๋ถ ์ด ๊ธ์ ์ฐพ์์ฃผ์๋ ๋ถ๋ค์ด ์ค๋ผํด์ ์ฌ์ฉํ๋ ๊ตญ๋น ํ์ ๋๊ธฐ๋ค์ผ ๊ฒ์ด๋ผ ์๊ฐ์ด ๋ญ๋๋ค.
๋งํฌ ๊ฑธ์ด๋ Shane Park ๋์ ๊ธ์์๋ ํ์ธ ํ ์ ์๋ฏ์ด,
๋งฅ๋ถ๋ง์ผ๋ก๋ ์ถฉ๋ถํ ๊ตญ๋น ์ฌ์ ์ ๋ง์น ์ ์๊ฒ ๊ฐ์ด ๊ธธ์ ๊ฐ์ฒํด ๋๊ฐ์ผ๋ฉด ์ข๊ฒ ์ต๋๋ค.
๋๊ธ๊ณผ ๊ณต๊ฐ์ ํญ์ ํ์์ ๋๋ค!
'๐ develop > Mac' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
๋งฅ๋ถ Homebrew ํ๋ธ๋ฅ ์ค์นํ๊ธฐ (1) 2022.04.12 ๋งฅ๋ถ ์จ๊ฒจ์ง ํด๋ / ํ์ผ ๋ณด๋ ๋ฒ (0) 2022.04.04 ๋งฅ๋ถ ๋ฐฑํฑ(`) ์ ๋ ฅ ๋ฐฉ๋ฒ (0) 2022.04.01 ๋งฅ๋ถ ์คํฌ๋ฆฐ์ท / ์บก์ฒ ๋จ์ถํค (0) 2022.04.01