Home > Spring > ๐Ÿƒ[Spring] Hibernate์™€ JDBC๋Š” ์–ด๋–ค ๊ด€๊ณ„์ธ๊ฐ€์š”?

๐Ÿƒ[Spring] Hibernate์™€ JDBC๋Š” ์–ด๋–ค ๊ด€๊ณ„์ธ๊ฐ€์š”?
Spring Framework

๐Ÿƒ[Spring] Hibernate์™€ JDBC๋Š” ์–ด๋–ค ๊ด€๊ณ„์ธ๊ฐ€์š”?

  • Hibernate์™€ JDBC(Java Database Connectivity)๋Š” ๋ชจ๋‘ ์ž๋ฐ”์—์„œ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์™€ ์ƒํ˜ธ์ž‘์šฉํ•˜๋Š” ๋ฐฉ์‹์ด์ง€๋งŒ, ์„œ๋กœ ๋‹ค๋ฅธ ์ˆ˜์ค€์—์„œ ์ž‘๋™ํ•˜๋Š” ๋„๊ตฌ์ž…๋‹ˆ๋‹ค.
  • Hibernate๋Š” JDBC(Java Database Connectivity)๋ฅผ ๋‚ด๋ถ€์ ์œผ๋กœ ์‚ฌ์šฉํ•˜์—ฌ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์™€์˜ ์—ฐ๊ฒฐ์„ ๊ด€๋ฆฌํ•˜๊ณ  ์ฟผ๋ฆฌ๋ฅผ ์‹คํ–‰ํ•˜์ง€๋งŒ, ๊ทธ ์—ญํ• ๊ณผ ๋ชฉ์ ์ด ๋‹ค๋ฆ…๋‹ˆ๋‹ค.
    • ์ด ๋‘˜์˜ ๊ด€๊ณ„์™€ ์ฐจ์ด์ ์„ ์ดํ•ดํ•˜๊ธฐ ์œ„ํ•ด ๊ฐ ๋„๊ตฌ๋ฅผ ์‚ดํŽด๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค.

1๏ธโƒฃ JDBC(Java Database Connectivity)

  • JDBC(Java Database Connectivity)๋Š” ์ž๋ฐ”์—์„œ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์— ์ง์ ‘ ์—ฐ๊ฒฐํ•˜๊ณ  SQL ์ฟผ๋ฆฌ๋ฅผ ์‹คํ–‰ํ•  ์ˆ˜ ์žˆ๊ฒŒ ํ•ด์ฃผ๋Š” ์ €์ˆ˜์ค€ API์ž…๋‹ˆ๋‹ค.
    • JDBC(Java Database Connectivity)๋Š” ๊ฐœ๋ฐœ์ž๊ฐ€ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์— SQL(Structured Query Language) ๋ฌธ์„ ์ž‘์„ฑํ•˜๊ณ , ๊ฒฐ๊ณผ๋ฅผ ์ฒ˜๋ฆฌํ•˜๋ฉฐ, ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์™€ ์ง์ ‘ ์ƒํ˜ธ์ž‘์šฉํ•  ์ˆ˜ ์žˆ๋„๋ก ํ•ด์ค๋‹ˆ๋‹ค.
  • JDBC(Java Database Connectivity)๋Š” ๋ชจ๋“  SQL(Structured Query Language) ์ž‘์—…(์‚ฝ์ž…, ๊ฐฑ์‹ , ์‚ญ์ œ, ์กฐํšŒ)์„ ์ˆ˜๋™์œผ๋กœ ์ฒ˜๋ฆฌํ•ด์•ผ ํ•˜๋ฉฐ, ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์—ฐ๊ฒฐ ๊ด€๋ฆฌ, ์ฟผ๋ฆฌ ์‹คํ–‰, ๊ฒฐ๊ณผ ์ง‘ํ•ฉ(ResultSet) ์ฒ˜๋ฆฌ, ์˜ˆ์™ธ ์ฒ˜๋ฆฌ ๋“ฑ์„ ๊ฐœ๋ฐœ์ž๊ฐ€ ์ง์ ‘ ๊ด€๋ฆฌํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

๐Ÿ‘‰ JDBC ์˜ˆ์‹œ.

Connection conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/mydb", "user", "password");
PreparedStatement pstmt = conn.prepareStatement("SELECT * FROM Users WHERE id = ?");
pstmt.setInt(1, 1);
ResultSet rs = pstmt.executeQuery();
while (rs.next()) {
    System.out.println(rs.getString("name"));
}
  • ์œ„์˜ ์ฝ”๋“œ์—์„œ ๊ฐœ๋ฐœ์ž๋Š” SQL์„ ์ง์ ‘ ์ž‘์„ฑํ•˜๊ณ , Connection ๋ฐ PreparedStatement์™€ ๊ฐ™์€ JDBC(Java Database Connectivity) ๊ฐ์ฒด๋ฅผ ์ด์šฉํ•ด ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์ž‘์—…์„ ์ฒ˜๋ฆฌํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

2๏ธโƒฃ Hibernate

  • Hibernate๋Š” ์ž๋ฐ”์—์„œ ORM(Object-Relational Mapping) ํ”„๋ ˆ์ž„์›Œํฌ๋กœ, ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์™€์˜ ์ƒํ˜ธ์ž‘์šฉ์„ ๋” ์ถ”์ƒํ™”๋œ ๊ณ ์ˆ˜์ค€ ๋ฐฉ์‹์œผ๋กœ ์ฒ˜๋ฆฌํ•ฉ๋‹ˆ๋‹ค.
    • Hibernate๋Š” ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ํ…Œ์ด๋ธ”๊ณผ ์ž๋ฐ” ๊ฐ์ฒด ๊ฐ„์˜ ๋งคํ•‘์„ ํ†ตํ•ด, ์ง์ ‘์ ์ธ SQL(Structured Query Language) ์ฟผ๋ฆฌ ์ž‘์„ฑ ์—†์ด๋„ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์ž‘์—…์„ ์ˆ˜ํ–‰ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
  • Hibernate๋Š” ๋‚ด๋ถ€์ ์œผ๋กœ JDBC(Java Database Connectivity)๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์™€ ์—ฐ๊ฒฐํ•˜์ง€๋งŒ, ๊ฐœ๋ฐœ์ž๋Š” ์ด๋ฅผ ์ง์ ‘ ๋‹ค๋ฃฐ ํ•„์š”๊ฐ€ ์—†์Šต๋‹ˆ๋‹ค.
    • ๋Œ€์‹ , ๊ฐ์ฒด ์ค‘์‹ฌ์ ์ธ API๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์ž‘์—…์„ ์ฒ˜๋ฆฌํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
  • Hibernate๋Š” ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์—ฐ๊ฒฐ ๊ด€๋ฆฌ, ์บ์‹ฑ, ํŠธ๋žœ ์žญ์…˜ ๊ด€๋ฆฌ ์ฟผ๋ฆฌ ์ƒ์„ฑ์„ ๋ชจ๋‘ ์ž๋™ํ™”ํ•˜๊ฑฐ๋‚˜ ์‰ฝ๊ฒŒ ์ฒ˜๋ฆฌํ•  ์ˆ˜ ์žˆ๊ฒŒ ํ•ด์ค๋‹ˆ๋‹ค.

๐Ÿ‘‰ Hibernate ์˜ˆ์‹œ.

Session session = sessionFactory.openSession();
User user = session.get(User.class, 1); // SQL ์ž‘์„ฑ ์—†์ด ๊ฐ์ฒด๋กœ ๋ฐ์ดํ„ฐ ์กฐํšŒ
System.out.println(user.getName());
  • ์œ„์˜ ์˜ˆ์‹œ์—์„œ๋Š” SQL(Structured Query Language)์„ ์ž‘์„ฑํ•  ํ•„์š” ์—†์ด Hibernate๊ฐ€ SQL(Structured Query Language)๋ฅผ ์ž๋™์œผ๋กœ ์ƒ์„ฑํ•˜๊ณ  ์‹คํ–‰ํ•˜์—ฌ ๊ฐ์ฒด๋ฅผ ๋ฐ˜ํ™˜ํ•ฉ๋‹ˆ๋‹ค.

3๏ธโƒฃ Hibernate์™€ JDBC์˜ ๊ด€๊ณ„ ๋ฐ ์ฐจ์ด์ .

1๏ธโƒฃ ์ถ”์ƒํ™”(Abstraction) ์ˆ˜์ค€.

  • JDBC(Java Database Connectivity)๋Š” ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์™€์˜ ์ƒํ˜ธ์ž‘์šฉ์„ ์ฒ˜๋ฆฌํ•˜๋Š” ์ €์ˆ˜์ค€ API์ž…๋‹ˆ๋‹ค.
    • ๊ฐœ๋ฐœ์ž๋Š” SQL(Structure Query Language)์„ ์ง์ ‘ ์ž‘์„ฑํ•˜๊ณ  ์‹คํ–‰ํ•ด์•ผ ํ•˜๋ฉฐ, ์—ฐ๊ฒฐ, ํŠธ๋žœ์žญ์…˜, ์˜ˆ์™ธ ์ฒ˜๋ฆฌ ๋“ฑ๋„ ๊ด€๋ฆฌํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.
  • Hibernate๋Š” ๊ณ ์ˆ˜์ค€ ORM(Object-Relational Mapping) ํ”„๋ ˆ์ž„์›Œํฌ๋กœ, JDBC(Java Database Connectivity) ๋‚ด๋ถ€์ ์œผ๋กœ ์‚ฌ์šฉํ•˜์—ฌ SQL(Structured Query Language) ์ฟผ๋ฆฌ๋ฅผ ์‹คํ–‰ํ•˜๊ณ  ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์™€ ์ƒํ˜ธ์ž‘์šฉํ•˜์ง€๋งŒ, ๊ฐœ๋ฐœ์ž์—๊ฒŒ๋Š” ๊ฐ์ฒด ์ง€ํ–ฅ์ ์ธ API๋ฅผ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค.
    • ๋”ฐ๋ผ์„œ SQL(Structured Query Language) ๋Œ€์‹  ์ž๋ฐ” ๊ฐ์ฒด๋ฅผ ํ†ตํ•ด ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์™€ ์ƒํ˜ธ์ž‘์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

2๏ธโƒฃ SQL ์ž‘์„ฑ.

  • JDBC(Java Database Connectivity)๋Š” SQL(Structured Query Language)์„ ์ง์ ‘ ์ž‘์„ฑํ•ด์•ผ ํ•˜๋ฉฐ, ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์˜ ํ…Œ์ด๋ธ” ๊ตฌ์กฐ๋ฅผ ์ดํ•ดํ•˜๊ณ  ๊ทธ์— ๋งž๋Š” ์ฟผ๋ฆฌ๋ฅผ ์ž‘์„ฑํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.
  • Hibernate๋Š” SQL(Structured Query Language)์„ ์ž๋™์œผ๋กœ ์ƒ์„ฑํ•˜๊ฑฐ๋‚˜, HQL(Hibernate Query Language)๊ณผ ๊ฐ™์€ ๊ฐ์ฒด ์ง€ํ–ฅ์ ์ธ ์ฟผ๋ฆฌ ์–ธ์–ด๋ฅผ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์–ด SQL(Structured Query Language)์„ ์ง์ ‘ ์ž‘์„ฑํ•˜์ง€ ์•Š๊ณ ๋„ ๋ฐ์ดํ„ฐ๋ฅผ ์ฒ˜๋ฆฌํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

3๏ธโƒฃ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ๋…๋ฆฝ์„ฑ.

  • JDBC(Java Database Connectivity)๋Š” ํŠน์ • ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์— ๋งž์ถฐ SQL์„ ์ž‘์„ฑํ•ด์•ผ ํ•˜๋ฏ€๋กœ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์ข…์†์ ์ธ ์ฝ”๋“œ๊ฐ€ ๋  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
  • Hibernate๋Š” ํŠน์ • ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์— ์ข…์†๋˜์ง€ ์•Š์œผ๋ฉฐ, ์—ฌ๋Ÿฌ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ๊ฐ„์˜ ์ „ํ™˜์ด ์‰ฝ์Šต๋‹ˆ๋‹ค.
    • SQL(Structured Query Language)์„ ์ž๋™์œผ๋กœ ์ƒ์„ฑํ•  ๋•Œ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์ข…์† ์ ์ธ ์ฐจ์ด๋ฅผ ์ฒ˜๋ฆฌํ•ด์ค๋‹ˆ๋‹ค.

4๏ธโƒฃ ํŠธ๋žœ์žญ์…˜ ๋ฐ ์—ฐ๊ฒฐ ๊ด€๋ฆฌ.

  • JDBC(Java Database Connectivity)์—์„œ๋Š” ๊ฐœ๋ฐœ์ž๊ฐ€ ์ง์ ‘ ํŠธ๋žœ์žญ์…˜์„ ์‹œ์ž‘ํ•˜๊ณ  ์ข…๋ฃŒํ•ด์•ผ ํ•˜๋ฉฐ, ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์—ฐ๊ฒฐ๋„ ์ˆ˜๋™์œผ๋กœ ๊ด€๋ฆฌํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.
  • Hibernate๋Š” ํŠธ๋žœ์žญ์…˜๊ณผ ์—ฐ๊ฒฐ ๊ด€๋ฆฌ๋ฅผ ์ž๋™ํ™”ํ•˜์—ฌ, ๊ฐœ๋ฐœ์ž๊ฐ€ ์ด๋Ÿฌํ•œ ์„ธ๋ถ€ ์‚ฌํ•ญ์„ ์‹ ๊ฒฝ ์“ธ ํ•„์š”๊ฐ€ ์—†์Šต๋‹ˆ๋‹ค.
    • ํŠธ๋žœ์žญ์…˜์€ ์„ธ์…˜ ๋‹จ์œ„๋กœ ์ฒ˜๋ฆฌ๋˜๋ฉฐ, ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์—ฐ๊ฒฐ๋˜ ์ž๋™์œผ๋กœ ์ฒ˜๋ฆฌ๋ฉ๋‹ˆ๋‹ค.

5๏ธโƒฃ ์บ์‹ฑ ๋ฐ ์„ฑ๋Šฅ ์ตœ์ ํ™”.

  • JDBC(Java Database Connectivity)๋Š” ์บ์‹ฑ ๊ธฐ๋Šฅ์ด ์—†์œผ๋ฏ€๋กœ, ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์„ฑ๋Šฅ ์ตœ์ ํ™”๋ฅผ ๊ฐœ๋ฐœ์ž๊ฐ€ ์ˆ˜๋™์œผ๋กœ ์ฒ˜๋ฆฌํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.
  • Hibernate๋Š” 1์ฐจ ์บ์‹œ์™€ 2์ฐจ ์บ์‹œ๋ฅผ ์ œ๊ณตํ•˜์—ฌ, ๋ฐ˜๋ณต์ ์ธ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์ ‘๊ทผ์„ ์ตœ์†Œํ™”ํ•˜๊ณ  ์„ฑ๋Šฅ์„ ์ตœ์ ํ™”ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๐Ÿ“ 1์ฐจ ์บ์‹œ์™€ 2์ฐจ ์บ์‹œ.

1์ฐจ ์บ์‹œ์™€ 2์ฐจ ์บ์‹œ๋Š” Hibernate์—์„œ ์„ฑ๋Šฅ์„ ์ตœ์ ํ™”ํ•˜๊ธฐ ์œ„ํ•ด ์‚ฌ์šฉ๋˜๋Š” ์บ์‹ฑ ๋ฉ”์ปค๋‹ˆ์ฆ˜์ž…๋‹ˆ๋‹ค.
์บ์‹œ๋Š” ๋ฐ์ดํ„ฐ๋ฅผ ๋ฉ”๋ชจ๋ฆฌ์— ์ €์žฅํ•˜์—ฌ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์ ‘๊ทผ์„ ์ค„์ด๊ณ , ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์˜ ์„ฑ๋Šฅ์„ ํ–ฅ์ƒ์‹œํ‚ค๋Š” ๋ฐ ์ค‘์š”ํ•œ ์—ญํ• ์„ ํ•ฉ๋‹ˆ๋‹ค.

1๏ธโƒฃ 1์ฐจ ์บ์‹œ(First-Level Cache)

์„ธ์…˜ ๋ฒ”์œ„์˜ ์บ์‹œ๋กœ, Hibernate์—์„œ ๊ธฐ๋ณธ์ ์œผ๋กœ ์ œ๊ณต๋˜๋Š” ์บ์‹œ์ž…๋‹ˆ๋‹ค.
์„ธ์…˜(Session) ๋™์•ˆ๋งŒ ์œ ์ง€๋˜๋ฉฐ, ๊ฐ ์„ธ์…˜๋งˆ๋‹ค ๋…๋ฆฝ์ ์œผ๋กœ ์กด์žฌํ•ฉ๋‹ˆ๋‹ค.
์ฆ‰, ๋™์ผํ•œ ์„ธ์…˜์—์„œ ๋ฐ˜๋ณต์ ์œผ๋กœ ๋™์ผํ•œ ๋ฐ์ดํ„ฐ๋ฅผ ์กฐํšŒํ•  ๋•Œ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์— ๋‹ค์‹œ ์ ‘๊ทผํ•˜์ง€ ์•Š๊ณ  ์บ์‹œ๋œ ๋ฐ์ดํ„ฐ๋ฅผ ๋ฐ˜ํ™˜ํ•ฉ๋‹ˆ๋‹ค.
1์ฐจ ์บ์‹œ๋Š” ์ž๋™์œผ๋กœ ํ™œ์„ฑํ™”๋˜์–ด ์žˆ์œผ๋ฉฐ, ๊ฐœ๋ฐœ์ž๊ฐ€ ์ง์ ‘ ์„ค์ •ํ•  ํ•„์š”๊ฐ€ ์—†์Šต๋‹ˆ๋‹ค.
1์ฐจ ์บ์‹œ ๋•๋ถ„์—, ๊ฐ™์€ ์„ธ์…˜ ๋‚ด์—์„œ ๋™์ผํ•œ ์—”ํ‹ฐํ‹ฐ๋ฅผ ์—ฌ๋Ÿฌ ๋ฒˆ ์กฐํšŒํ•ด๋„ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์— ๋ถˆํ•„์š”ํ•œ ์ ‘๊ทผ์„ ์ค„์ผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

2๏ธโƒฃ 2์ฐจ ์บ์‹œ(Second-Level Cache)

์„ธ์…˜ ํŒฉํ† ๋ฆฌ(SessionFactory) ๋ฒ”์œ„์˜ ์บ์‹œ๋กœ, ์—ฌ๋Ÿฌ ์„ธ์…˜์— ๊ฑธ์ณ ๋ฐ์ดํ„ฐ๋ฅผ ๊ณต์œ ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
์„ ํƒ์ ์œผ๋กœ ํ™œ์„ฑํ™”ํ•ด์•ผ ํ•˜๋ฉฐ, ๊ธฐ๋ณธ์ ์œผ๋กœ ํ™œ์„ฑํ™” ๋˜์–ด ์žˆ์ง€ ์•Š์Šต๋‹ˆ๋‹ค.
๊ฐœ๋ฐœ์ž๊ฐ€ ์ง์ ‘ ์„ค์ •์„ ํ†ตํ•ด ํ™œ์„ฑํ™”ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
2์ฐจ ์บ์‹œ๋Š” ์—ฌ๋Ÿฌ ์„ธ์…˜ ๊ฐ„์— ๋ฐ์ดํ„ฐ๋ฅผ ์žฌ์‚ฌ์šฉํ•˜์—ฌ, ์ž์ฃผ ์กฐํšŒ๋˜๋Š” ๋ฐ์ดํ„ฐ๋ฅผ ๋ฉ”๋ชจ๋ฆฌ์— ์ €์žฅํ•˜๊ณ  ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์ ‘๊ทผ์„ ์ค„์ž…๋‹ˆ๋‹ค.
์ฆ‰, ๋™์ผํ•œ ๋ฐ์ดํ„ฐ์— ๋Œ€ํ•ด ์„ธ์…˜์„ ์ข…๋ฃŒํ•œ ํ›„์—๋„ 2์ฐจ ์บ์‹œ์— ์ €์žฅ๋œ ๋ฐ์ดํ„ฐ๋ฅผ ์—ฌ๋Ÿฌ ์„ธ์…˜์—์„œ ์žฌ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
2์ฐจ ์บ์‹œ๋Š” ๋‹ค์–‘ํ•œ ์บ์‹œ ์ œ๊ณต์ž(์˜ˆ: EHCache, Infinispan)๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๊ตฌํ˜„ํ•  ์ˆ˜ ์žˆ์œผ๋ฉฐ, Hibernate๊ฐ€ ์ œ๊ณตํ•˜๋Š” ์„ค์ •์„ ํ†ตํ•ด ์ œ์–ด๋ฉ๋‹ˆ๋‹ค.

4๏ธโƒฃ ๊ฒฐ๋ก .

  • Hibernate๋Š” JDBC(Java Database Connectivity)๋ฅผ ๋‚ด๋ถ€์ ์œผ๋กœ ์‚ฌ์šฉํ•˜์—ฌ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์™€ ์ƒํ˜ธ์ž‘์šฉํ•˜์ง€๋งŒ, JDBC(Java Database Connectivity)๋ณด๋‹ค ๋” ๋†’์€ ์ถ”์ƒํ™”(Abstraction) ์ˆ˜์ค€์—์„œ ORM(Object-Relational Mapping) ๊ธฐ๋Šฅ์„ ์ œ๊ณตํ•˜์—ฌ, ๊ฐœ๋ฐœ์ž๊ฐ€ ๊ฐ์ฒด ์ง€ํ–ฅ์ ์œผ๋กœ ๋ฐ์ดํ„ฐ๋ฅผ ์ฒ˜๋ฆฌํ•  ์ˆ˜ ์žˆ๊ฒŒ ํ•ด์ค๋‹ˆ๋‹ค.
  • JDBC(Java Database Connectivity)๋Š” SQL(Structured Query Language)์„ ์ง์ ‘ ์ž‘์„ฑํ•˜๊ณ  ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์™€์˜ ์ €์ˆ˜์ค€ ์ž‘์—…์„ ๋‹ค๋ฃจ๋Š” ๋ฐ˜๋ฉด, Hibernate๋Š” ์ด๋Ÿฌํ•œ ์„ธ๋ถ€ ์‚ฌํ•ญ์„ ์ถ”์ƒํ™”(Abstraction)ํ•˜์—ฌ ๋” ์‰ฝ๊ฒŒ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์™€ ์ƒํ˜ธ์ž‘์šฉํ•  ์ˆ˜ ์žˆ๋„๋ก ๋„์™€์ค๋‹ˆ๋‹ค.
    • Hibernate๋Š” ์‹ค์งˆ์ ์œผ๋กœ JDBC(Java Database Connectivity)์˜ ๊ธฐ๋Šฅ์„ ๊ธฐ๋ฐ˜์œผ๋กœ ๋™์ž‘ํ•˜์ง€๋งŒ, ๋” ๋†’์€ ์ˆ˜์ค€์˜ ๊ธฐ๋Šฅ์„ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค.