[Java] JDBC ๋™์ž‘ ์›๋ฆฌ์™€ ์ปค๋„ฅ์…˜ ํ’€ ์ดํ•ดํ•˜๊ธฐ

2025. 8. 6. 22:37ยท๐Ÿ› ๏ธBackend/โ˜•Java

โœ… 1. JDBC(Java Database Connectivity) ๋ž€?

  • ์ž๋ฐ”์—์„œ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์— ์ ‘์†ํ•˜๊ณ  SQL์„ ์‹คํ–‰ํ•ด์„œ ๊ฒฐ๊ณผ๋ฅผ ๊ฐ€์ ธ์˜ค๋Š” ๊ธฐ๋Šฅ์„ ์ œ๊ณตํ•˜๋Š” Java API ์ด๋‹ค.
  • ์‰ฝ๊ฒŒ๋งํ•ด, ์ž๋ฐ” ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜๊ณผ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์‚ฌ์ด์˜ ์—ฐ๊ฒฐ ํ†ต๋กœ ์—ญํ• ์„ ํ•ด์ค€๋‹ค๊ณ  ๋ณด๋ฉด ๋œ๋‹ค.
  • JDBC ๋Š” Java API ๋กœ์จ, JRE์— ํฌํ•จ์ด ๋˜์–ด์žˆ์œผ๋ฉฐ, ํ•ด๋‹น ์ธํ„ฐํŽ˜์ด์Šค ์ง‘ํ•ฉ๋“ค์„ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค(MySQL, Oracle, PostgreSQL ๋“ฑ) ์ด ํ•ด๋‹น ์ž๋ฐ” ์ธํ„ฐํŽ˜์ด์Šค๋ฅผ ๊ตฌํ˜„ํ•ด ๋ณธ์ธ์˜ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์— ์ ‘๊ทผ ํ•  ์ˆ˜ ์žˆ๋„๋ก ํด๋ž˜์Šค๋ฅผ ๋งŒ๋“ค์–ด ์ฃผ๊ฒŒ ๋œ๋‹ค. ํ•ด๋‹น ํด๋ž˜์Šค๋ฅผ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋กœ ๋ฐ›์•„์„œ ์ด์šฉ์„ ํ•˜๊ฒŒ ๋˜๋ฉด, ํ•ด๋‹น ํด๋ž˜์Šค์™€ ๋งž๋Š” ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์™€ ์—ฐ๊ฒฐ์„ ํ•  ์ˆ˜ ์žˆ๊ฒŒ ๋œ๋‹ค.
  • ์ฐธ๊ณ ๋กœ ํ•ด๋‹น API ๋Š” java.sql ๋˜๋Š” javax.sql ๋“ฑ์˜ ํŒจํ‚ค์ง€๋กœ ์ œ๊ณต์ด ๋œ๋‹ค.
  • ๋˜ํ•œ, ํ•ด๋‹น ํŒจํ‚ค์ง€์˜ ์ธํ„ฐํŽ˜์ด์Šค๋ฅผ ๊ตฌํ˜„ํ•œ ํด๋ž˜์Šค๋ฅผ "JDBC ๋“œ๋ผ์ด๋ฒ„" ๋ผ๊ณ  ๋ถ€๋ฅธ๋‹ค.

(1) JDBC ๊ตฌํ˜„ ๋ฐ ๋™์ž‘

// 1. ๋“œ๋ผ์ด๋ฒ„ ๋กœ๋”ฉ (MySQL์ธ ๊ฒฝ์šฐ)
Class.forName("com.mysql.cj.jdbc.Driver");

// 2. DB ์—ฐ๊ฒฐ
Connection conn = DriverManager.getConnection(
    "jdbc:mysql://localhost:3306/mydb", "username", "password");

// 3. ์ฟผ๋ฆฌ ์‹คํ–‰
Statement stmt = conn.createStatement();
ResultSet rs = stmt.executeQuery("SELECT * FROM users");

// 4. ๊ฒฐ๊ณผ ์ฒ˜๋ฆฌ
while (rs.next()) {
    System.out.println(rs.getString("name"));
}
  • ์œ„์˜ ์ฝ”๋“œ์™€ ๊ฐ™์ด ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์‚ฌ์šฉ์€ ๋“œ๋ผ์ด๋ฒ„๋ฅผ ๋กœ๋”ฉ ํ•œ ๋’ค DB๋ฅผ ์—ฐ๊ฒฐํ•˜์—ฌ ์ฟผ๋ฆฌ๋ฅผ ์‹คํ–‰ํ•˜๋Š” ๊ณผ์ •์„ ๊ฑฐ์นœ๋‹ค.

(2) ๋“œ๋ผ์ด๋ฒ„ ๋กœ๋”ฉ ์ด์œ 

  • Class.forName ์„ ํ†ตํ•ด ๋“œ๋ผ์ด๋ฒ„๋ฅผ ๋กœ๋”ฉํ•˜๊ฒŒ ๋˜๋ฉด, ์ •์  ๋ธ”๋ก์˜ ๋‚ด๋ถ€ ์ฝ”๋“œ๊ฐ€ ์‹คํ–‰์ด ๋œ๋‹ค.
Class.forName("com.mysql.cj.jdbc.Driver");

static {
    try {
        DriverManager.registerDriver(new Driver());
    } catch (SQLException e) {
        throw new RuntimeException("Failed to register driver");
    }
}
  • JDBC ๋Š” ์ธํ„ฐํŽ˜์ด์Šค ๊ธฐ๋ฐ˜์˜ API ์ด๊ธฐ ๋•Œ๋ฌธ์—, ์‹ค์ œ๋กœ ๋™์ž‘ํ˜€๋ ค๋ฉด ๋ฒค๋”๊ฐ€ ์ œ๊ณตํ•˜๋Š” ๊ตฌํ˜„์ฒด์ธ ๋“œ๋ผ์ด๋ฒ„ ํด๋ž˜์Šค๊ฐ€ ํ•„์š”ํ•จ.
  • ํ•ด๋‹น ๋“œ๋ผ์ด๋ฒ„๋Š” ์šฐ๋ฆฌ๊ฐ€ JVM์— ๋กœ๋”ฉ์‹œ์ผœ์ค˜์•ผ DriverManager ๊ฐ€ ์ด๋ฅผ ์ธ์‹ํ•˜๊ณ  ๊ด€๋ฆฌํ•  ์ˆ˜ ์žˆ์Œ.
  • ์ฆ‰, ๋“œ๋ผ์ด๋ฒ„ ํด๋ž˜์Šค ๋กœ๋”ฉ์€ DriverManager ์— ๋ฒค๋”์˜ ๋“œ๋ผ์ด๋ฒ„๋ฅผ ๋“ฑ๋กํ•˜๊ธฐ ์œ„ํ•จ์ž„.
  • ์‰ฝ๊ฒŒ๋งํ•ด, DriverManager ๋Š” ์ปค๋„ฅ์…˜์„ ๋งŒ๋“ค ์ˆ˜๋Š” ์žˆ์ง€๋งŒ, ์–ด๋–ค ๋“œ๋ผ์ด๋ฒ„๊ฐ€ ๋“ค์–ด์˜ฌ์ง€ ๋ชจ๋ฅด๋‹ˆ๊นŒ ๋ฏธ๋ฆฌ ์•Œ ์ˆ˜๋„ ์—†๊ณ , ์ž๋™์œผ๋กœ ๋กœ๋”ฉ์„ ๋ชปํ•จ.
  • ๊ทธ๋ž˜์„œ ์ง์ ‘ Class.forName() ๊ฐ™์€ ๋ฐฉ์‹์œผ๋กœ ๋“œ๋ผ์ด๋ฒ„ ํด๋ž˜์Šค๋ฅผ ๋จผ์ € ๋กœ๋”ฉํ•ด์„œ, ๊ทธ ์•ˆ์—์„œ DriverManager ์— ๋“ฑ๋ก๊นŒ์ง€ ํ•ด์ฃผ๊ฒŒ ๋งŒ๋“ค์–ด์•ผ ํ•œ๋‹ค๋Š” ์˜๋ฏธ์ž„.
  • ํ•˜์ง€๋งŒ, ์š”์ฆ˜์—๋Š” ํŒŒ์ผ์— ์ž๋™ ๋กœ๋”ฉ ์ •๋ณด๋ฅผ ์ ์–ด๋‘์–ด ์„œ๋น„์Šค ๋กœ๋”๋กœ ๋ถˆ๋Ÿฌ์™€์„œ ๋“ฑ๋ก์„ ํ•ด์คŒ.
  • ๊ทธ์น˜๋งŒ ์–ด์ฐจํ”ผ ๋‚ด๋ถ€์—์„  ํด๋ž˜์Šค ๋กœ๋”ฉํ•ด์ค˜์•ผ ๋“ฑ๋ก์ด ๋œ๋‹ค๋Š” ํ•ต์‹ฌ์ž„.

(2) DriverManager 

Connection conn = DriverManager.getConnection(
    "jdbc:mysql://localhost:3306/testdb",
    "user",
    "password"
);
  • JDBC API ๋‚ด๋ถ€์—๋Š” ์ธํ„ฐํŽ˜์ด์Šค ๋ฟ ์•„๋‹ˆ๋ผ ํ•ด๋‹น DriverManager ์™€ ๊ฐ™์ด ์‹ค์ œ ํด๋ž˜์Šค๋„ ํฌํ•จ์ด ๋˜์–ด์žˆ์Œ.
  • ํ•ด๋‹น DriverManager ๋Š” JDBC ์—์„œ DB ์—ฐ๊ฒฐ์„ ์ƒ์„ฑํ•  ๋•Œ ์‚ฌ์šฉํ•˜๋Š” ์ค‘์•™ ๊ด€๋ฆฌ์ž ํด๋ž˜์Šค์ž„.
  • ์‰ฝ๊ฒŒ ๋งํ•ด, ๋“ฑ๋ก๋œ ๋“œ๋ผ์ด๋ฒ„๋“ค ์ค‘ ์–ด๋–ค ๊ฑธ ์จ์•ผ ํ• ์ง€ ๊ณจ๋ผ์ฃผ๊ณ , ์—ฐ๊ฒฐ์„ ์œ„์ž„ํ•ด์ฃผ๋Š” ์—ญํ• ์„ ํ•จ.
  • java.sql.DriverManager ํŒจํ‚ค์ง€์— ์žˆ์œผ๋ฉฐ, ์ •์  ํด๋ž˜์Šค์ž„.

[1] DriverManager ๋‚ด๋ถ€ ๋™์ž‘

  • DriverManager.getConnection() ๋ฉ”์„œ๋“œ๊ฐ€ ํ˜ธ์ถœ์ด ๋˜๋ฉด, ๋“œ๋ผ์ด๋ฒ„ ๋งค๋‹ˆ์ € ๋‚ด๋ถ€์—์„œ ๋“ฑ๋ก๋œ ๋“œ๋ผ์ด๋ฒ„ ๋ชฉ๋ก์„ ์ˆœํšŒํ•œ๋‹ค.
  • ๋“ฑ๋ก๋œ ๋“œ๋ผ์ด๋ฒ„ ๋ชฉ๋ก์€ ๋ณดํ†ต ์œ„์˜ ๋“œ๋ผ์ด๋ฒ„ ๋กœ๋”ฉ ๊ณผ์ •์˜ static ๋ธ”๋ก์—์„œ ์ž๋™์œผ๋กœ ๋“ฑ๋ก์ด ๋จ.
  • ๋ช‡๊ฐœ๊ฐ€ ์žˆ์„์ง„ ๋ชจ๋ฅด๊ฒ ์ง€๋งŒ, ๊ฐ ๋“œ๋ผ์ด๋ฒ„์—๊ฒŒ URL์„ ๋„˜๊ฒจ acceptsURL(String url) ๋ฉ”์„œ๋“œ๋กœ ๊ฒ€์‚ฌ๋ฅผ ํ•จ.
  • ์˜ˆ์‹œ๋กœ๋Š” "jdbc:mysql://..." url ๋กœ ๋“ฑ๋ก์ด ๋˜์–ด์žˆ๋‹ค๋ฉด, ํ•ด๋‹น MySQL ๋“œ๋ผ์ด๋ฒ„๊ฐ€ ์„ ํƒ์ด ๋จ.
  • ์„ ํƒ๋œ ๋“œ๋ผ์ด๋ฒ„ ๊ตฌํ˜„์ฒด์˜ connect() ๋ฉ”์„œ๋“œ ํ˜ธ์ถœ
  • ์ด  connect() ๋ฉ”์„œ๋“œ ํ˜ธ์ถœ ์‹œ์ ์— ๋ฒค๋” ๊ตฌํ˜„์ฒด๊ฐ€ ์ง์ ‘ ๋™์ž‘์„ ํ•˜๋ฉฐ, ๋‚ด๋ถ€์˜ ๋„คํŠธ์›Œํฌ ๋ฐ ๋‹ค์–‘ํ•œ ๋กœ์ง์ด ์ˆ˜ํ–‰ ๋จ.
  • ๋ฒค๋” ๋‚ด๋ถ€์—์„  TCP ์†Œ์ผ“ ์—ด๊ธฐ, DB ์ฃผ์†Œ ํฌํŠธ๋กœ ์ ‘์† ์‹œ๋„, ๋กœ๊ทธ์ธ ์ธ์ฆ, ํ”„๋กœํ† ์ฝœ ํ•ธ๋“œ์…ฐ์ดํฌ, ์ปค๋„ฅ์…˜ ๊ฐ์ฒด ์ƒ์„ฑ ๋“ฑ ์ž‘์—…์„ ํ•จ.

โœ… 2. JDBC & DB ํ†ต์‹  ์›๋ฆฌ

(1) JDBC๋Š” ๋„คํŠธ์›Œํฌ ์†Œ์ผ“ ๊ธฐ๋ฐ˜ ํ†ต์‹ ์„ ์‚ฌ์šฉํ•จ

  • JDBC ๋“œ๋ผ์ด๋ฒ„๋Š” TCP/IP ๊ธฐ๋ฐ˜์˜ ์†Œ์ผ“ ํ†ต์‹ ์„ ์ด์šฉํ•ด DB์™€ ์—ฐ๊ฒฐ์„ ํ•จ.
  • ์ฆ‰, ๊ฒฐ๊ตญ JDBC <-> DB ์„œ๋ฒ„๋Š” ๋„คํŠธ์›Œํฌ ์†Œ์ผ“์„ ํ†ตํ•ด ๋ฐ์ดํ„ฐ๋ฅผ ์ฃผ๊ณ  ๋ฐ›๋Š”๋‹ค๋Š” ์˜๋ฏธ์ž„.
  • JDBC Driver ์ฆ‰, ๋ฒค๋” ๋กœ์ง ๋‚ด๋ถ€ ๋กœ์ง์—๋Š” DB ํ†ต์‹  ๋กœ์ง์ด ๋“ค์–ด๊ฐ€ ์žˆ์–ด, ํ†ต์‹ ์ด ๋˜๋ฉฐ SQL ์„ ํŒจํ‚ท ํ˜•ํƒœ๋กœ ์ฃผ๊ณ  ๋ฐ›์Œ

(2) ์ƒ์„ธ ๋™์ž‘ ์›๋ฆฌ

Java ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜
       ↓
[JDBC API ํ˜ธ์ถœ]
       ↓
JDBC Driver (DB ํšŒ์‚ฌ๊ฐ€ ์ œ๊ณตํ•œ ๊ตฌํ˜„์ฒด)
       ↓
[TCP/IP ์†Œ์ผ“ ์—ด๊ธฐ → DB ์„œ๋ฒ„์™€ ์—ฐ๊ฒฐ ์‹œ๋„]
       ↓
DB ์„œ๋ฒ„ (์˜ˆ: MySQL, Oracle ๋“ฑ)
       ↓
[SQL ์ฒ˜๋ฆฌ → ์‘๋‹ต ์ƒ์„ฑ]
       ↑
[์‘๋‹ต ๊ฒฐ๊ณผ ์†Œ์ผ“์œผ๋กœ ์ „์†ก]
       ↑
JDBC Driver๊ฐ€ ๊ฒฐ๊ณผ๋ฅผ ์ž๋ฐ” ๊ฐ์ฒด๋กœ ๋ณ€ํ™˜
       ↑
Java ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์—์„œ ResultSet ๋“ฑ์œผ๋กœ ๊ฒฐ๊ณผ ํ™•์ธ
  • DriverManager.getConnection() ์„ ํ˜ธ์ถœํ•˜๋ฉด connect() ๋ฒค๋” ๊ตฌํ˜„์ฒด์˜ ๋ฉ”์„œ๋“œ connect() ๋ฉ”์„œ๋“œ๊ฐ€ ๊ฐ€ ํ˜ธ์ถœ์ด ๋จ.
  • ์ดํ›„์—”, JDBC ๋“œ๋ผ์ด๋ฒ„๊ฐ€ ๋‚ด๋ถ€์ ์œผ๋กœ Socket ์„ ์—ด๊ณ  ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ํฌํŠธ์— ๋งž๊ฒŒ ํŒจํ‚ท์„ ์ฃผ๊ณ  ๋ฐ›์œผ๋ฉฐ ํ†ต์‹ ์„ ์ง„ํ–‰ํ•จ.
  • ์ดํ›„์—”, SQL์„ ์‹คํ–‰ํ•˜๋ฉด ๋“œ๋ผ์ด๋ฒ„๊ฐ€ SQL ๋ฌธ์žฅ์„ MySQL ํ”„๋กœํ† ์ฝœ ํ˜•์‹์˜ ๋ฐ”์ด๋„ˆ๋ฆฌ ํŒจํ‚ท์œผ๋กœ ๋ฐ”๊ฟ” ์ „์†ก์„ ํ•จ.
  • ์ดํ›„์—”, MySQL ์„œ๋ฒ„๊ฐ€ ์ด๊ฑธ ์ฝ์–ด SQL ์‹คํ–‰ ํ›„ ๊ฒฐ๊ณผ๋ฅผ ๋‹ค์‹œ ํŒจํ‚ท์œผ๋กœ ์‘๋‹ต์„ ํ•˜๊ฒŒ ๋œ๋‹ค.

(3) ๋กœ์ปฌ DB์ธ ๊ฒฝ์šฐ

  • ๋กœ์ปฌ์˜ ๊ฒฝ์šฐ์—๋„ Driver ํด๋ž˜์Šค์˜ connect() ๋ฉ”์„œ๋“œ ํ˜ธ์ถœ ์ˆœ๊ฐ„ ๋‚ด๋ถ€์—์„œ ์†Œ์ผ“์„ ๋งŒ๋“ค์–ด์„œ DB ์„œ๋ฒ„์™€ TCP ํ†ต์‹ ์„ ์‹œ์ž‘ํ•จ.
  • DB๊ฐ€ ๊ฐ™์€ ์ปดํ“จํ„ฐ์ธ Localhost ์— ์žˆ์–ด๋„, ๊ฒฐ๊ตญ์—๋Š” ๋„คํŠธ์›Œํฌ ์Šคํƒ์„ ํ†ตํ•ด์„œ TCP/IP ํ†ต์‹ ์„ ํ•จ.
  • ํ•˜์ง€๋งŒ ๊ฐ™์€ OS ๋‚ด์—์„œ ํ†ต์‹ ์ด๋ฏ€๋กœ ๋งค์šฐ ๋น ๋ฆ„.

โœ… 3. ์ปค๋„ฅ์…˜ ํ’€ (Connection Pool)

  • Connection ๊ฐ์ฒด๋ฅผ ๋ฏธ๋ฆฌ ๋งŒ๋“ค์–ด๋‘์–ด ์ €์žฅํ•˜๋Š” ํ’€์„ ์˜๋ฏธํ•˜๋ฉฐ, ์ด๊ฒƒ์€ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋กœ ์ œ๊ณต์ด ๋œ๋‹ค.
  • ์‰ฝ๊ฒŒ๋งํ•ด, ํ•ด๋‹น ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋Š” ๋ฏธ๋ฆฌ ๋งŒ๋“ค์–ด๋‘” ์ปค๋„ฅ์…˜์„ ํ’€์—์„œ ๊ฐ€์ ธ๋‹ค๊ฐ€ ์‚ฌ์šฉํ•˜๊ฒŒ ๋˜๋Š” ์›๋ฆฌ์ด๋‹ค.
  • ์ฆ‰, DB์™€ ์—ฐ๊ฒฐ๋œ ์†Œ์ผ“์ด ์ƒ์„ฑ๋˜์–ด ์žˆ๋Š” ์ƒํƒœ์˜ Connection ๊ฐ์ฒด๋ฅผ ๋ฏธ๋ฆฌ ํ’€์— ๋งŒ๋“ค์–ด๋‘๊ฒŒ ๋˜๋Š” ๊ฒƒ์ด๋‹ค.
  • JDBC Driver ๋Š” ๋‹จ์ˆœํžˆ Java ์ฝ”๋“œ์™€ DB๋ฅผ ์—ฐ๊ฒฐํ•ด์ฃผ๋Š” ๊ธฐ๋Šฅ์ด๋ผ ์ปค๋„ฅ์…˜ ํ’€์ด ๊ธฐ๋ณธ์ ์œผ๋กœ ๋‚ด์žฅ์ด ๋˜์–ด์žˆ์ง€ ์•Š์Œ.
  • ์ฐธ๊ณ : SpringBoot ์—๋Š” HikariCP ๋ผ๋Š” ์ปค๋„ฅ์…˜ ํ’€ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๊ฐ€ ๋‚ด์žฅ์ด ๋˜์–ด์žˆ์Œ.

(1) ์ปค๋„ฅ์…˜ ํ’€ ๋™์ž‘ ์›๋ฆฌ

  • ์ด ์ปค๋„ฅ์…˜ ํ’€์€ JDBC ๋“œ๋ผ์ด๋ฒ„๋ฅผ ๊ฐ์‹ธ์„œ ํšจ์œจ์ ์œผ๋กœ ์žฌ์‚ฌ์šฉํ•˜๋„๋ก ๋งŒ๋“ค์–ด์ง„ ์ถ”๊ฐ€ ๊ณ„์ธต์ด๋‹ค.
  • JDBC ์—์„œ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์™€ ํ†ต์‹ ํ•˜๋ ค๋ฉด Connection ๊ฐ์ฒด๊ฐ€ ํ•„์š”ํ•จ
  • ์ด Connection ๊ฐ์ฒด๋Š” ๋‚ด๋ถ€์ ์œผ๋กœ DB ์„œ๋ฒ„์™€ TCP ์†Œ์ผ“์„ ์—ด๊ณ , ๋กœ๊ทธ์ธ(์ธ์ฆ) ์ ˆ์ฐจ๋ฅผ ๊ฑฐ์ณ ์—ฐ๊ฒฐ ์ƒํƒœ๋ฅผ ์œ ์ง€ํ•จ.
  • Heap ์˜์—ญ์— ์—ฌ๋Ÿฌ ๊ฐœ์˜ Connection ๊ฐ์ฒด๋ฅผ ๋งŒ๋“ค์–ด DB์™€ ์—ฐ๊ฒฐ์„ ํ•ด๋‘ .

(2) ์ปค๋„ฅ์…˜ ํ’€ ์‚ฌ์šฉ ์ด์œ 

  • DB ์ ‘๊ทผ ๋ฐ SQL ์‹คํ–‰์„ ์œ„ํ•œ Connection ๊ฐ์ฒด๋Š” ์—ฐ๊ฒฐ ๊ณผ์ •์—์„œ TCP ์†Œ์ผ“, ๋กœ๊ทธ์ธ ์ ˆ์ฐจ๋ฅผ ๊ฑฐ์น˜๋Š”๋ฐ ๊ณผ์ •์ด ๋งค์šฐ ๋ฌด๊ฒ๊ณ  ๋А๋ฆผ
  • ์ด๊ฑธ ํ•ด๊ฒฐํ•˜๊ธฐ ์œ„ํ•ด ์ปค๋„ฅ์…˜ ํ’€์„ ํ™œ์šฉํ•˜์—ฌ, Connection ๊ฐ์ฒด๋ฅผ ๋ฏธ๋ฆฌ ๋งŒ๋“ค์–ด๋‘๊ณ  ์žฌํ™œ์šฉํ•˜๋Š” ๋ฐฉ์‹์„ ์ด์šฉํ•˜๋Š” ๊ฒƒ์ž„.
  • ๊ทธ๋Ÿฌ๋ฉด ์†๋„๊ฐ€ ์ฆ๊ฐ€ํ•˜๋ฉฐ, ๋ฆฌ์†Œ์Šค ๋‚ญ๋น„๋„ ์ ๊ณ , ๋™์‹œ ์ฒ˜๋ฆฌ ์„ฑ๋Šฅ๋„ ์ข‹์•„์ง„๋‹ค๋Š” ์žฅ์ ์ด ์žˆ์Œ.

'๐Ÿ› ๏ธBackend > โ˜•Java' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๋‹ค๋ฅธ ๊ธ€

[Java] ํ”„๋ก์‹œ ํŒจํ„ด, ์ •์  ํ”„๋ก์‹œ, ๋™์  ํ”„๋ก์‹œ: Spring ์‚ฌ๋ก€ ์ค‘์‹ฌ ์„ค๋ช…  (1) 2025.07.09
[Java] ๋ฉ€ํ‹ฐ ์Šค๋ ˆ๋“œ ํ”„๋กœ๊ทธ๋ž˜๋ฐ  (2) 2025.06.04
[Java] ์ž๋ฐ” ์ŠคํŠธ๋ฆผ(Stream) ๊ฐœ๋… + ์˜ˆ์ œ ์ด์ •๋ฆฌ ๐Ÿ“š  (2) 2025.06.03
[Java] ์ปฌ๋ ‰์…˜ ํ”„๋ ˆ์ž„์›Œํฌ ์ •๋ฆฌ: List, Set, Map ์ธํ„ฐํŽ˜์ด์Šค์™€ ๋Œ€ํ‘œ ๊ตฌํ˜„์ฒด ์ด์ •๋ฆฌ  (0) 2025.05.30
[Java] java.nio ์‚ฌ์šฉ๋ฒ• | Path, Files, FileChannel ์˜ˆ์ œ ๋ชจ์Œ  (3) 2025.05.30
'๐Ÿ› ๏ธBackend/โ˜•Java' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๋‹ค๋ฅธ ๊ธ€
  • [Java] ํ”„๋ก์‹œ ํŒจํ„ด, ์ •์  ํ”„๋ก์‹œ, ๋™์  ํ”„๋ก์‹œ: Spring ์‚ฌ๋ก€ ์ค‘์‹ฌ ์„ค๋ช…
  • [Java] ๋ฉ€ํ‹ฐ ์Šค๋ ˆ๋“œ ํ”„๋กœ๊ทธ๋ž˜๋ฐ
  • [Java] ์ž๋ฐ” ์ŠคํŠธ๋ฆผ(Stream) ๊ฐœ๋… + ์˜ˆ์ œ ์ด์ •๋ฆฌ ๐Ÿ“š
  • [Java] ์ปฌ๋ ‰์…˜ ํ”„๋ ˆ์ž„์›Œํฌ ์ •๋ฆฌ: List, Set, Map ์ธํ„ฐํŽ˜์ด์Šค์™€ ๋Œ€ํ‘œ ๊ตฌํ˜„์ฒด ์ด์ •๋ฆฌ
junbin2
junbin2
java.lang.NullPointerException
  • junbin2
    bin's Development Diary
    junbin2
  • ์ „์ฒด
    ์˜ค๋Š˜
    ์–ด์ œ
    • ์ „์ฒด๋ณด๊ธฐ (159)
      • ๐ŸŽ“๋ฐฉ์†กํ†ต์‹ ๋Œ€ํ•™๊ต (26)
        • ๐Ÿ–ฅ๏ธ์ปดํ“จํ„ฐ๊ณผํ•™๊ณผ (1)
        • ๐ŸŒ์œ ๋น„์ฟผํ„ฐ์Šค ์ปดํ“จํŒ… (11)
        • โš™๏ธ์ปดํ“จํ„ฐ์˜ ์ดํ•ด (11)
        • ๐Ÿ›๏ธ์„ธ๊ณ„์˜์ •์น˜์™€๊ฒฝ์ œ (3)
      • ๐Ÿ› ๏ธBackend (56)
        • ๐Ÿ“š๋ฐฑ์—”๋“œ ๊ณต๋ถ€ (4)
        • โ˜•Java (23)
        • ๐ŸŒณSpring (13)
        • โšกPython (13)
        • JavaScript (1)
        • ๐Ÿ›ข๏ธDatabase (0)
        • Algorithm Problem Solving (2)
      • ๐ŸŒ Network (7)
        • ๐Ÿ“œHTTP (7)
      • ๐Ÿš€DevOps (1)
      • Data Structure (1)
      • โ›บ์ŠคํŒŒ๋ฅดํƒ€์ฝ”๋”ฉํด๋Ÿฝ (65)
      • ์ •๋ณด (1)
      • ์ •๋ฆฌ๊ฐ€ ํ•„์š”ํ•œ ๊ธ€ (2)
  • ๋ธ”๋กœ๊ทธ ๋ฉ”๋‰ด

    • ํ™ˆ
    • ํƒœ๊ทธ
    • ๋ฐฉ๋ช…๋ก
  • ๋งํฌ

    • GitHub
  • ๊ณต์ง€์‚ฌํ•ญ

  • ์ธ๊ธฐ ๊ธ€

  • ํƒœ๊ทธ

    ์ปดํŒŒ์ผ๋Ÿฌ
    ๋‹คํ˜•์„ฑ
    spring
    ํด๋ž˜์Šค
    ์Šคํ”„๋ง
    ๋ฐฉ์†ก๋Œ€
    ์ปดํ“จํ„ฐ์˜ ์ดํ•ด
    ์ž๋ฐ”
    ์œ ๋น„์ฟผํ„ฐ์Šค ์ปดํ“จํŒ…
    Java
    Spring Framework
    ์ž…์ถœ๋ ฅ
    ์„ธ๊ณ„ํ™”
    ํŒŒ์ด์ฌ
    ๋ฐฉํ†ต๋Œ€
    ๋ฐฉ์†กํ†ต์‹ ๋Œ€ํ•™๊ต
    Python
    ์œ ๋น„์ฟผํ„ฐ์Šค ์ปดํ“จํŒ…๊ฐœ๋ก 
    ํด๋ผ์šฐ๋“œ
    ์œ ๋น„์ฟผํ„ฐ์Šค
  • ์ตœ๊ทผ ๋Œ“๊ธ€

  • ์ตœ๊ทผ ๊ธ€

  • hELLOยท Designed By์ •์ƒ์šฐ.v4.10.1
junbin2
[Java] JDBC ๋™์ž‘ ์›๋ฆฌ์™€ ์ปค๋„ฅ์…˜ ํ’€ ์ดํ•ดํ•˜๊ธฐ
์ƒ๋‹จ์œผ๋กœ

ํ‹ฐ์Šคํ† ๋ฆฌํˆด๋ฐ”