λ°μ΄ν°λ² μ΄μ€ 컀λ₯μ νλ§μ μ리, μ ν리μΌμ΄μ μ±λ₯μ λ―ΈμΉλ μ΄μ , κΈλ‘λ² μννΈμ¨μ΄ κ°λ°μμμ ꡬν λͺ¨λ² μ¬λ‘λ₯Ό μ΄ν΄λ³΄μΈμ.
λ°μ΄ν°λ² μ΄μ€ 컀λ₯μ νλ§: κΈλ‘λ² μ ν리μΌμ΄μ μ μν ν¨μ¨μ μΈ λ¦¬μμ€ κ΄λ¦¬
μ€λλ κ³Ό κ°μ΄ μνΈ μ°κ²°λ μΈμμμ μ ν리μΌμ΄μ μ μ 보λ₯Ό κ²μ, μ μ₯ λ° μ²λ¦¬νκΈ° μν΄ λ°μ΄ν°λ² μ΄μ€μ λΉλ²νκ² μνΈ μμ©ν©λλ€. ν¨μ¨μ μΈ λ°μ΄ν°λ² μ΄μ€ κ΄λ¦¬λ μ΅μ μ μ ν리μΌμ΄μ μ±λ₯κ³Ό μ¬μ©μ κ²½νμ 보μ₯νλ λ° λ§€μ° μ€μνλ©°, νΉν μ μΈκ³ μ¬μ©μλ₯Ό λμμΌλ‘ νλ μ ν리μΌμ΄μ μ κ²½μ° λμ± κ·Έλ μ΅λλ€. λ°μ΄ν°λ² μ΄μ€ μ±λ₯μ ν₯μμν€λ ν΅μ¬ κΈ°μ μ€ νλλ λ°μ΄ν°λ² μ΄μ€ 컀λ₯μ νλ§μ λλ€. μ΄ κΈμμλ 컀λ₯μ νλ§μ κ°λ , μ΄μ λ° κ΅¬ν λͺ¨λ² μ¬λ‘μ λν΄ μμλ΄ λλ€.
λ°μ΄ν°λ² μ΄μ€ 컀λ₯μ νλ§μ΄λ 무μμΈκ°?
λ°μ΄ν°λ² μ΄μ€ 컀λ₯μ νλ§μ μ ν리μΌμ΄μ μ΄ λ°μ΄ν° μ κ·Όμ΄ νμν λλ§λ€ μλ‘μ΄ μ»€λ₯μ μ μμ±νλ λμ κΈ°μ‘΄ λ°μ΄ν°λ² μ΄μ€ 컀λ₯μ μ μ¬μ¬μ©νλ κΈ°μ μ λλ€. λ°μ΄ν°λ² μ΄μ€ 컀λ₯μ μ μμ±νλ κ²μ λ€νΈμν¬ ν΅μ , μΈμ¦, μ΄κΈ°ν λ±μ ν¬ν¨νλ 리μμ€ μ§μ½μ μΈ νλ‘μΈμ€μ λλ€. κ° λ°μ΄ν°λ² μ΄μ€ μμ²μ λν΄ λ°λ³΅μ μΌλ‘ 컀λ₯μ μ μ€μ νκ³ λ«λ κ²μ μ ν리μΌμ΄μ μ±λ₯μ μλΉν μν₯μ λ―Έμ³ λκΈ° μκ°μ λλ¦¬κ³ μ²λ¦¬λμ κ°μμν¬ μ μμ΅λλ€.
컀λ₯μ νμ λ³Έμ§μ μΌλ‘ μ ν리μΌμ΄μ μλ²λ μ μ© μ»€λ₯μ ν κ΄λ¦¬μκ° μ μ§ κ΄λ¦¬νλ λ°μ΄ν°λ² μ΄μ€ 컀λ₯μ μ μΊμμ λλ€. μ ν리μΌμ΄μ μ΄ λ°μ΄ν°λ² μ΄μ€μ μ‘μΈμ€ν΄μΌ ν λ νμμ 컀λ₯μ μ μμ²ν©λλ€. μ¬μ© κ°λ₯ν 컀λ₯μ μ΄ μμΌλ©΄ μ ν리μΌμ΄μ μ μ 곡λ©λλ€. μ ν리μΌμ΄μ μ΄ μ»€λ₯μ μ¬μ©μ λ§μΉλ©΄ νμ λ°ννκ³ , μ΄ μ»€λ₯μ μ νμ μμ²μμ μ¬μ¬μ©λ μ μμ΅λλ€. μ΄λ₯Ό ν΅ν΄ 컀λ₯μ μ λ°λ³΅μ μΌλ‘ μμ±νκ³ λ«λ μ€λ²ν€λλ₯Ό μ κ±°ν μ μμ΅λλ€.
컀λ₯μ νλ§μ μ΄μ
컀λ₯μ νλ§μ ꡬννλ©΄ μ ν리μΌμ΄μ μ±λ₯κ³Ό 리μμ€ κ΄λ¦¬ μΈ‘λ©΄μμ μλ§μ μ΄μ μ μ»μ μ μμ΅λλ€.
1. 컀λ₯μ μ€λ²ν€λ κ°μ
컀λ₯μ νλ§μ κ°μ₯ ν° μ₯μ μ 컀λ₯μ μ€λ²ν€λ κ°μμ λλ€. κΈ°μ‘΄ 컀λ₯μ μ μ¬μ¬μ©ν¨μΌλ‘μ¨ μ ν리μΌμ΄μ μ κ° μμ²μ λν΄ μλ‘μ΄ μ»€λ₯μ μ μ€μ νλ μκ° μλͺ¨μ μΈ νλ‘μΈμ€λ₯Ό νΌν μ μμ΅λλ€. μ΄λ λ λΉ λ₯Έ μλ΅ μκ°κ³Ό μ λ°μ μΈ μ ν리μΌμ΄μ μ±λ₯ ν₯μμΌλ‘ μ΄μ΄μ§λλ€. μλ₯Ό λ€μ΄, μ΄λΉ μλ°± 건μ νΈλμμ μ μ²λ¦¬νλ μ μμκ±°λ μΉμ¬μ΄νΈλ₯Ό μμν΄ λ³΄μΈμ. 컀λ₯μ νλ§μ΄ μλ€λ©΄ κ° νΈλμμ λ§λ€ μλ‘μ΄ λ°μ΄ν°λ² μ΄μ€ 컀λ₯μ μ΄ νμνκ² λμ΄ λ°μ΄ν°λ² μ΄μ€ μλ²μ κ³ΌλΆνκ° κ±Έλ¦΄ μ μμ΅λλ€. 컀λ₯μ νλ§μ μ¬μ©νλ©΄ μΉμ¬μ΄νΈλ λ°μ΄ν°λ² μ΄μ€ 컀λ₯μ μ ν¨μ¨μ μΌλ‘ κ΄λ¦¬νμ¬ λΈλ νλΌμ΄λ°μ΄λ μ¬μ΄λ² λ¨Όλ°μ΄μ κ°μ νΈλν½μ΄ λͺ°λ¦¬λ κΈ°κ°μλ μννκ³ μλ΅μ±μ΄ λ°μ΄λ μ΄μμ 보μ₯ν μ μμ΅λλ€.
2. μλ΅ μκ° ν₯μ
컀λ₯μ μ€λ²ν€λλ₯Ό μ΅μνν¨μΌλ‘μ¨ μ»€λ₯μ νλ§μ μλ΅ μκ° ν₯μμ μ§μ μ μΌλ‘ κΈ°μ¬ν©λλ€. μ ν리μΌμ΄μ μ λ°μ΄ν°λ² μ΄μ€ 리μμ€μ λ λΉ λ₯΄κ² μ‘μΈμ€ν μ μμ΄ λ λμ μ¬μ©μ κ²½νμΌλ‘ μ΄μ΄μ§λλ€. λ μ§§μ μλ΅ μκ°μ μ¬μ©μ λ§μ‘±λ μ¦κ°λ‘ μ΄μ΄μ§λ©° μ νμ¨ λ° κ³ κ° μ μ§μ κ°μ λΉμ¦λμ€ μ§νμ κΈμ μ μΈ μν₯μ λ―ΈμΉ μ μμ΅λλ€. μ¬μ©μκ° μμ£Ό κ³μ’ μμ‘μ νμΈνλ μν μ ν리μΌμ΄μ μ μκ°ν΄ 보μΈμ. κ³μ’ μ 보μ λν λΉ λ₯΄κ³ μμ μ μΈ μ‘μΈμ€λ μ¬μ©μ λ§μ‘±μ λ§€μ° μ€μν©λλ€. 컀λ₯μ νλ§μ μ¬μ©μκ° μλΉν μ§μ° μμ΄ μ μνκ² κ³μ μΈλΆ μ 보λ₯Ό κ²μν μ μλλ‘ λ³΄μ₯ν©λλ€.
3. νμ₯μ± ν₯μ
컀λ₯μ νλ§μ μ¬μ©νλ©΄ μ ν리μΌμ΄μ μ΄ λ°μ΄ν°λ² μ΄μ€ μλ²μ κ³ΌλΆνλ₯Ό μ£Όμ§ μκ³ λ λ§μ μμ λμ μ¬μ©μλ₯Ό μ²λ¦¬ν μ μμ΅λλ€. κΈ°μ‘΄ 컀λ₯μ μ μ¬μ¬μ©ν¨μΌλ‘μ¨ μ ν리μΌμ΄μ μ λ°μ΄ν°λ² μ΄μ€ μλ²μ λΆλ΄μ μ€μ¬ λ λ§μ μμ²μ ν¨μ¨μ μΌλ‘ μ²λ¦¬ν μ μλλ‘ ν©λλ€. μ΄λ νΈλν½ ν¨ν΄μ΄ λ³λνκ±°λ λμ νμ₯μ±μ΄ νμν μ ν리μΌμ΄μ μ νΉν μ€μν©λλ€. μλ₯Ό λ€μ΄, μ£Όμ μ΄λ²€νΈ μ€μ νΈλν½μ΄ κΈμ¦νλ μμ λ―Έλμ΄ νλ«νΌμ λ°μ΄ν°λ² μ΄μ€ 리μμ€λ₯Ό μ μνκ² νμ₯ν μ μμ΄μΌ ν©λλ€. 컀λ₯μ νλ§μ νλ«νΌμ΄ μ±λ₯ μ ν μμ΄ μ¦κ°λ λΆνλ₯Ό μ²λ¦¬νλ λ° λμμ΄ λ©λλ€.
4. 리μμ€ μ΅μ ν
컀λ₯μ νλ§μ λ°μ΄ν°λ² μ΄μ€ 리μμ€ νμ©μ μ΅μ νν©λλ€. νμ± μ»€λ₯μ μλ₯Ό μ νν¨μΌλ‘μ¨ λ°μ΄ν°λ² μ΄μ€ μλ²μ κ³ΌλΆνλ₯Ό λ°©μ§νκ³ λ€λ₯Έ μμ μ μν 리μμ€λ₯Ό ν보ν μ μμ΅λλ€. μ΄λ λ°μ΄ν°λ² μ΄μ€ μλ² μμ μ± ν₯μκ³Ό λΉμ© μ κ°μΌλ‘ μ΄μ΄μ§ μ μμ΅λλ€. λ§μ ν΄λΌμ°λ κΈ°λ° λ°μ΄ν°λ² μ΄μ€ μλΉμ€λ 리μμ€ μλΉλμ κΈ°μ€μΌλ‘ μκΈμ λΆκ³Όν©λλ€. νλ§μ ν΅ν΄ 컀λ₯μ μ¬μ©μ μ΅μ νν¨μΌλ‘μ¨ μ‘°μ§μ ν΄λΌμ°λ μ»΄ν¨ν λΉμ©μ μ κ°ν μ μμ΅λλ€.
5. κ°μνλ 컀λ₯μ κ΄λ¦¬
컀λ₯μ νλ§μ κ°λ°μλ₯Ό μν 컀λ₯μ κ΄λ¦¬λ₯Ό κ°μνν©λλ€. κ°λ°μλ λͺ μμ μΌλ‘ 컀λ₯μ μ μμ±νκ³ λ«μ νμ μμ΄ νμμ 컀λ₯μ μ μμ²νκ³ μ¬μ©μ΄ λλλ©΄ λ°ννλ©΄ λ©λλ€. μ΄λ νμν μ½λμ μμ μ€μ΄κ³ κ°λ° νλ‘μΈμ€λ₯Ό λ¨μνν©λλ€. Javaμ Springμ΄λ Pythonμ Djangoμ κ°μ νλ μμν¬λ μ’ μ’ μ»€λ₯μ νλ§μ λν λ΄μ₯ μ§μμ μ 곡νμ¬ κ°λ°μ κ²½νμ λμ± λ¨μνν©λλ€.
컀λ₯μ νλ§ κ΅¬ννκΈ°
컀λ₯μ νλ§μ ꡬννκΈ° μν΄ μ¬μ©ν μ μλ μ¬λ¬ κΈ°μ κ³Ό λΌμ΄λΈλ¬λ¦¬κ° μμ΅λλ€. λ€μμ λͺ κ°μ§ μΈκΈ° μλ μ΅μ μ λλ€.
1. JDBC 컀λ₯μ νλ§ (Java)
Java λ°μ΄ν°λ² μ΄μ€ μ°κ²°(JDBC)μ 컀λ₯μ νλ§μ λν λ΄μ₯ μ§μμ μ 곡ν©λλ€. Tomcat, Jetty, WildFlyμ κ°μ μ ν리μΌμ΄μ μλ²μλ μΌλ°μ μΌλ‘ JDBC 컀λ₯μ ν ꡬνμ΄ ν¬ν¨λμ΄ μμ΅λλ€. μΈκΈ° μλ JDBC 컀λ₯μ ν λΌμ΄λΈλ¬λ¦¬λ λ€μκ³Ό κ°μ΅λλ€.
- HikariCP: μλμ μμ μ±μΌλ‘ μ λͺ ν κ³ μ±λ₯ JDBC 컀λ₯μ νμ λλ€. μ’ μ’ Java μ ν리μΌμ΄μ μ κΈ°λ³Έ μ νμΌλ‘ κΆμ₯λ©λλ€.
- Apache Commons DBCP: κ°λ ₯νκ³ νλΆν κΈ°λ₯μ κ°μΆ ꡬνμ μ 곡νλ λ리 μ¬μ©λλ 컀λ₯μ ν λΌμ΄λΈλ¬λ¦¬μ λλ€.
- c3p0: λ€μν κ΅¬μ± μ΅μ μ μ 곡νλ λ λ€λ₯Έ μΈκΈ° μλ 컀λ₯μ ν λΌμ΄λΈλ¬λ¦¬μ λλ€.
μμ (HikariCP):
HikariCPλ₯Ό μ¬μ©νλ €λ©΄ λ¨Όμ νλ‘μ νΈμ μ’ μμ±μ μΆκ°ν©λλ€(μ: Maven λλ Gradle). κ·Έλ° λ€μ νμ ꡬμ±ν©λλ€.
HikariConfig config = new HikariConfig();
config.setJdbcUrl("jdbc:mysql://localhost:3306/mydatabase");
config.setUsername("username");
config.setPassword("password");
config.setDriverClassName("com.mysql.cj.jdbc.Driver");
config.setMaximumPoolSize(10); // νμμ λ°λΌ μ‘°μ
HikariDataSource ds = new HikariDataSource(config);
// νμμ 컀λ₯μ
κ°μ Έμ€κΈ°
Connection connection = ds.getConnection();
// 컀λ₯μ
μ¬μ©
// ...
// νμ 컀λ₯μ
λ°ν (μ€μ!)
connection.close();
2. ADO.NET 컀λ₯μ νλ§ (.NET)
ADO.NET, μ¦ .NET μ ν리μΌμ΄μ μ μν λ°μ΄ν° μ‘μΈμ€ κΈ°μ λν λ΄μ₯λ 컀λ₯μ νλ§μ μ 곡ν©λλ€. .NET νλ μμν¬λ κ° κ³ μ ν μ°κ²° λ¬Έμμ΄μ λν 컀λ₯μ νμ μλμΌλ‘ κ΄λ¦¬ν©λλ€. κ°λ°μλ λͺ μμ μΌλ‘ 컀λ₯μ νμ μμ±νκ±°λ κ΄λ¦¬ν νμκ° μμΌλ©°, νλ μμν¬κ° ν¬λͺ νκ² μ²λ¦¬ν©λλ€.
μμ (.NET):
using System.Data.SqlClient;
string connectionString = "Data Source=localhost;Initial Catalog=mydatabase;Integrated Security=True";
using (SqlConnection connection = new SqlConnection(connectionString))
{
connection.Open();
// 컀λ₯μ
μ¬μ©
// ...
// 'using' λ¬Έμ΄ μ’
λ£λλ©΄ 컀λ₯μ
μ μλμΌλ‘ νμ λ°νλ©λλ€.
}
3. κΈ°ν μΈμ΄ λ° νλ μμν¬
λ€λ₯Έ λ§μ νλ‘κ·Έλλ° μΈμ΄μ νλ μμν¬λ λ΄μ₯ κΈ°λ₯μ΄λ μΈλΆ λΌμ΄λΈλ¬λ¦¬λ₯Ό ν΅ν΄ 컀λ₯μ νλ§ κΈ°λ₯μ μ 곡ν©λλ€. μλ₯Ό λ€λ©΄ λ€μκ³Ό κ°μ΅λλ€.
- Python: `psycopg2`(PostgreSQLμ©) λ° `mysql-connector-python`(MySQLμ©)κ³Ό κ°μ λΌμ΄λΈλ¬λ¦¬λ μ’ μ’ μ»€λ₯μ ν ꡬνμ ν¬ν¨νκ±°λ `sqlalchemy`μ κ°μ 컀λ₯μ ν λΌμ΄λΈλ¬λ¦¬μ ν¨κ» μ¬μ©λ μ μμ΅λλ€.
- Node.js: `pg`(PostgreSQLμ©) λ° `mysql`(MySQLμ©)κ³Ό κ°μ λͺ¨λμ 컀λ₯μ νλ§μ μ§μν©λλ€. `generic-pool`κ³Ό κ°μ 컀λ₯μ ν κ΄λ¦¬μλ μ¬μ©ν μ μμ΅λλ€.
- PHP: PDO(PHP Data Objects)λ μꡬ μ°κ²°μ μ¬μ©νλλ‘ κ΅¬μ±ν μ μμΌλ©°, μ΄λ μ¬μ€μ 컀λ₯μ ν μν μ ν©λλ€.
컀λ₯μ νλ§μ μν λͺ¨λ² μ¬λ‘
컀λ₯μ νλ§μ μ΄μ μ κ·Ήλννλ €λ©΄ λ€μ λͺ¨λ² μ¬λ‘λ₯Ό λ°λ₯΄λ κ²μ΄ μ€μν©λλ€.
1. ν ν¬κΈ°λ₯Ό μ μ νκ² κ΅¬μ±νκΈ°
컀λ₯μ νμ ν¬κΈ°λ μ ν리μΌμ΄μ μ μν¬λ‘λμ λ°μ΄ν°λ² μ΄μ€ μλ² μ©λμ λ°λΌ μ‘°μ ν΄μΌ νλ μ€μν λ§€κ°λ³μμ λλ€. λ무 μμ νμ μ¬μ© κ°λ₯ν 컀λ₯μ μ κΈ°λ€λ¦¬λ λμ μμ²μ΄ μ§μ°λλ 컀λ₯μ κ³ κ°λ‘ μ΄μ΄μ§ μ μμ΅λλ€. λ무 ν° νμ λ°μ΄ν°λ² μ΄μ€ μλ²μμ κ³Όλν 리μμ€λ₯Ό μλΉνμ¬ μ±λ₯μ μν₯μ λ―ΈμΉ μ μμ΅λλ€.
μ΅μ μ ν ν¬κΈ°λ λμ μ¬μ©μ μ, λ°μ΄ν°λ² μ΄μ€ 쿼리μ 볡μ‘μ±, λ°μ΄ν°λ² μ΄μ€ μλ²μ νλμ¨μ΄ 리μμ€μ κ°μ μμΈμ λ°λΌ λ¬λΌμ§λλ€. μ΅μ μ ꡬμ±μ μ°ΎκΈ° μν΄ λ€μν ν ν¬κΈ°λ₯Ό μ€νν΄ λ³Ό νμκ° μ’ μ’ μμ΅λλ€. λ°μ΄ν°λ² μ΄μ€ μλ² μ±λ₯κ³Ό μ ν리μΌμ΄μ μλ΅ μκ°μ λͺ¨λν°λ§νλ©΄ μ΄μμ μΈ ν ν¬κΈ°λ₯Ό μλ³νλ λ° λμμ΄ λ μ μμ΅λλ€. 보μμ μΈ κ°μΌλ‘ μμνμ¬ μ±λ₯μ λͺ¨λν°λ§νλ©΄μ μ μ°¨ λλ €λκ°μΈμ.
μ ν리μΌμ΄μ μ΄ ν루 μ€ νΉμ μκ°μ νΌν¬ νΈλν½μ κ²½ννλ μλ리μ€λ₯Ό κ³ λ €ν΄ λ³΄μΈμ. 컀λ₯μ ν ν¬κΈ°λ μ΄λ¬ν νΌν¬ κΈ°κ° λμ μ¦κ°λ μμλ₯Ό μμ©νλλ‘ μ‘°μ λμ΄μΌ ν©λλ€. νμ¬ λΆνμ λ°λΌ ν ν¬κΈ°κ° μλμΌλ‘ μ‘°μ λλ λμ ν ν¬κΈ° μ‘°μ μ λ³λνλ νΈλν½ ν¨ν΄μ μ²λ¦¬νλ λ° μ μ©ν μ λ΅μ΄ λ μ μμ΅λλ€.
2. 컀λ₯μ νμμμ κ° μ€μ νκΈ°
컀λ₯μ νμμμμ μ ν리μΌμ΄μ μ΄ μ»€λ₯μ μ μ¬μ©ν μ μκ² λκΈ°λ₯Ό 무νμ κΈ°λ€λ¦¬λ κ²μ λ°©μ§ν©λλ€. μ§μ λ νμμμ κΈ°κ° λ΄μ 컀λ₯μ μ μ€μ ν μ μλ κ²½μ°, μ ν리μΌμ΄μ μ μ€λ₯λ₯Ό μ μμ μΌλ‘ μ²λ¦¬νκ³ μ»€λ₯μ μ μ¬μλν΄μΌ ν©λλ€. μ μ ν νμμμ κ°μ μ€μ νλ κ²μ μ ν리μΌμ΄μ μλ΅μ±μ 보μ₯νκ³ λ¦¬μμ€ κ³ κ°μ λ°©μ§νλ λ° νμμ μ λλ€. μΌλ°μ μΈ κ΄νμ 컀λ₯μ νμμμ(컀λ₯μ μ€μ μκ°)κ³Ό μμΌ νμμμ(λ°μ΄ν°λ² μ΄μ€λ‘λΆν°μ μλ΅ λκΈ° μκ°)μ λͺ¨λ μ€μ νλ κ²μ λλ€.
3. 컀λ₯μ μ€λ₯λ₯Ό μ μμ μΌλ‘ μ²λ¦¬νκΈ°
μ ν리μΌμ΄μ μ 컀λ₯μ μ€λ₯λ₯Ό μ μμ μΌλ‘ μ²λ¦¬νλλ‘ μ€κ³λμ΄μΌ ν©λλ€. μ¬κΈ°μλ 컀λ₯μ μ€ν¨μ κ΄λ ¨λ μμΈλ₯Ό ν¬μ°©νκ³ μ μ ν μ€λ₯ μ²λ¦¬ λ‘μ§μ ꡬννλ κ²μ΄ ν¬ν¨λ©λλ€. μ¬μ©μμκ² μΌλ°μ μΈ μ€λ₯ λ©μμ§λ₯Ό νμνλ κ²λ§μΌλ‘λ μ’ μ’ λΆμΆ©λΆν©λλ€. λμ μ ν리μΌμ΄μ μ μ¬μ©μκ° λ¬Έμ λ₯Ό μ΄ν΄νκ³ μμ μ‘°μΉλ₯Ό μ·¨νλ λ° λμμ΄ λλ μ μ΅ν μ€λ₯ λ©μμ§λ₯Ό μ 곡ν΄μΌ ν©λλ€. 컀λ₯μ μ€λ₯λ₯Ό λ‘κΉ νλ κ²λ λ¬Έμ ν΄κ²° λ° μ μ¬μ λ¬Έμ μλ³μ λ§€μ° μ€μν©λλ€.
4. 컀λ₯μ μ μ¬λ°λ₯΄κ² λ«κΈ°
μ¬μ© νμλ νμ 컀λ₯μ μ λ«μ νμ λ°ννλ κ²μ΄ νμμ μ λλ€. 컀λ₯μ μ λ«μ§ μμΌλ©΄ 컀λ₯μ λμλ‘ μ΄μ΄μ Έ 컀λ₯μ μ΄ νμ λ°νλμ§ μκ³ κ²°κ΅ μ¬μ© κ°λ₯ν 리μμ€λ₯Ό κ³ κ°μν¬ μ μμ΅λλ€. Javaμμλ `try-with-resources` λΈλ‘μ μ¬μ©νλ©΄ μμΈκ° λ°μνλλΌλ 컀λ₯μ μ΄ μλμΌλ‘ λ«νλλ‘ λ³΄μ₯λ©λλ€.
5. 컀λ₯μ ν μ±λ₯ λͺ¨λν°λ§νκΈ°
μ μ¬μ μΈ λ¬Έμ λ₯Ό μλ³νκ³ κ΅¬μ±μ μ΅μ ννκΈ° μν΄ μ κΈ°μ μΌλ‘ 컀λ₯μ ν μ±λ₯μ λͺ¨λν°λ§νμΈμ. λͺ¨λν°λ§ν΄μΌ ν μ£Όμ μ§νλ λ€μκ³Ό κ°μ΅λλ€.
- νμ± μ»€λ₯μ : νμ¬ μ¬μ© μ€μΈ 컀λ₯μ μ.
- μ ν΄ μ»€λ₯μ : νμμ μ¬μ© κ°λ₯ν 컀λ₯μ μ.
- 컀λ₯μ λκΈ° μκ°: μ ν리μΌμ΄μ μ΄ νμμ 컀λ₯μ μ μ»λ λ° κ±Έλ¦¬λ μκ°.
- 컀λ₯μ μ€λ₯: 컀λ₯μ μ€ν¨ νμ.
μ΄λ¬ν μ§νλ₯Ό λͺ¨λν°λ§νλ©΄ λ³λͺ© νμμ μλ³νκ³ μ»€λ₯μ ν ꡬμ±μ μ΅μ ννλ λ° λμμ΄ λ μ μμ΅λλ€. λ§μ 컀λ₯μ ν λΌμ΄λΈλ¬λ¦¬λ λ΄μ₯ λͺ¨λν°λ§ λꡬλ₯Ό μ 곡νκ±°λ μΈλΆ λͺ¨λν°λ§ μμ€ν κ³Ό ν΅ν©λ μ μμ΅λλ€.
6. 컀λ₯μ μ ν¨μ± κ²μ¬ μ¬μ©νκΈ°
νμ μλ 컀λ₯μ μ΄ μ¬μ©λκΈ° μ μ μ¬μ ν μ ν¨νμ§ νμΈνκΈ° μν΄ μ»€λ₯μ μ ν¨μ± κ²μ¬λ₯Ό ꡬννμΈμ. λ€νΈμν¬ λ¬Έμ , λ°μ΄ν°λ² μ΄μ€ μλ² μ¬μμ λλ κΈ°ν μκΈ°μΉ μμ μν©μΌλ‘ μΈν΄ 컀λ₯μ μ΄ λ¬΄ν¨νλ μ μμ΅λλ€. 컀λ₯μ μ ν¨μ± κ²μ¬λ 컀λ₯μ μ΄ μ¬μ ν μλνλμ§ μ£ΌκΈ°μ μΌλ‘ ν μ€νΈνλ κ²μ ν¬ν¨ν©λλ€. 컀λ₯μ μ΄ μ ν¨νμ§ μμ κ²μΌλ‘ νλͺ λλ©΄ νμμ μ κ±°νκ³ μ 컀λ₯μ μΌλ‘ κ΅μ²΄ν΄μΌ ν©λλ€. λ§μ 컀λ₯μ ν λΌμ΄λΈλ¬λ¦¬λ λ΄μ₯λ 컀λ₯μ μ ν¨μ± κ²μ¬ λ©μ»€λμ¦μ μ 곡ν©λλ€.
7. μ¬λ°λ₯Έ 컀λ₯μ ν λΌμ΄λΈλ¬λ¦¬ μ ννκΈ°
μ ν리μΌμ΄μ μ μꡬ μ¬νμ μ ν©ν 컀λ₯μ ν λΌμ΄λΈλ¬λ¦¬λ₯Ό μ ννμΈμ. μ±λ₯, μμ μ±, κΈ°λ₯, μ¬μ© μ©μ΄μ±κ³Ό κ°μ μμλ₯Ό κ³ λ €νμΈμ. λ€μν 컀λ₯μ ν λΌμ΄λΈλ¬λ¦¬λ₯Ό μ‘°μ¬νκ³ κ·Έλ€μ κ°μ κ³Ό μ½μ μ λΉκ΅νμΈμ. Java μ ν리μΌμ΄μ μ κ²½μ°, HikariCPλ κ³ μ±λ₯κ³Ό μμ μ±μΌλ‘ μΈν΄ μ’ μ’ κΆμ₯λ©λλ€. .NET μ ν리μΌμ΄μ μ κ²½μ°, λ΄μ₯λ ADO.NET 컀λ₯μ νλ§μ΄ λλΆλΆμ μλ리μ€μ μΌλ°μ μΌλ‘ μΆ©λΆν©λλ€.
8. λΆμ° μμ€ν μμ 컀λ₯μ νλ§ κ³ λ €νκΈ°
λΆμ° μμ€ν μμλ 컀λ₯μ νλ§μ΄ λ 볡μ‘ν΄μ§ μ μμ΅λλ€. λ§μ΄ν¬λ‘μλΉμ€λ μ¬λ¬ μ§μμ λ°°ν¬λ μ ν리μΌμ΄μ μ λ€λ£° λλ λ€μμ κ³ λ €νμΈμ.
- κ·Όμ μ±: λ€νΈμν¬ μ§μ° μκ°μ μ΅μννκΈ° μν΄ μ ν리μΌμ΄μ κ³Ό λ°μ΄ν°λ² μ΄μ€ μΈμ€ν΄μ€λ₯Ό κ°κΉμ΄ κ³³μ λ°°ν¬νμΈμ. μ΄λ νΉν λΉλ²ν λ°μ΄ν°λ² μ΄μ€ μ‘μΈμ€κ° νμν μ ν리μΌμ΄μ μ μ±λ₯μ ν¬κ² ν₯μμν¬ μ μμ΅λλ€.
- 컀λ₯μ μ ν: λ°μ΄ν°λ² μ΄μ€ μλΉμ€ μ 곡μ 체μμ λΆκ³Όνλ 컀λ₯μ μ νμ μΈμ§νμΈμ. ν΄λΌμ°λ νκ²½μμλ 리μμ€ κ³ κ°μ λ°©μ§νκΈ° μν΄ λ°μ΄ν°λ² μ΄μ€ 컀λ₯μ μ νμ΄ μ’ μ’ μνλ©λλ€. 컀λ₯μ ν ꡬμ±μ΄ μ΄λ¬ν μ νμ μ΄κ³Όνμ§ μλλ‘ νμΈμ.
- 컀λ₯μ λΌμ°ν : λ°μ΄ν°λ² μ΄μ€ μμ²μ μ μ ν λ°μ΄ν°λ² μ΄μ€ μΈμ€ν΄μ€λ‘ 보λ΄κΈ° μν΄ μ»€λ₯μ λΌμ°ν κΈ°μ μ μ¬μ©νμΈμ. μ΄λ λ°μ΄ν°κ° μ¬λ¬ μμΉμ 볡μ λλ λ€μ€ μ§μ λ°°ν¬μμ νΉν μ μ©ν μ μμ΅λλ€.
컀λ₯μ νλ§κ³Ό κΈλ‘λ² μ ν리μΌμ΄μ
μ μΈκ³ μ¬μ©μλ₯Ό λμμΌλ‘ νλ μ ν리μΌμ΄μ μ κ²½μ° μ»€λ₯μ νλ§μ λμ± μ€μν΄μ§λλ€. κ·Έ μ΄μ λ λ€μκ³Ό κ°μ΅λλ€.
- μ§λ¦¬μ λΆν¬: μ¬μ©μκ° μΈκ³ μ¬λ¬ μ§μμ μμΉνμ¬ λ€νΈμν¬ μ§μ° μκ°μ΄ λ€μν μ μμ΅λλ€. 컀λ₯μ νλ§μ κΈ°μ‘΄ 컀λ₯μ μ μ¬μ¬μ©νμ¬ λ€νΈμν¬ μ§μ°μ μν₯μ μ΅μννλ λ° λμμ΄ λ©λλ€. λ°μ΄ν°λ² μ΄μ€ 컀λ₯μ μ μ΅μ ννκ³ μ ν리μΌμ΄μ μλ²μ λ°μ΄ν°λ² μ΄μ€ κ°μ μ볡μ μ€μ΄λ©΄ μ§λ¦¬μ μΌλ‘ λΆμ°λ μ¬μ©μμ μ¬μ©μ κ²½νμ ν¬κ² ν₯μμν¬ μ μμ΅λλ€.
- μκ°λ: μ ν리μΌμ΄μ μ μ¬λ¬ μκ°λμ κ±Έμ³ λ°μ΄ν°μ νΈλμμ μ μ²λ¦¬ν΄μΌ ν©λλ€. ν¨μ¨μ μΈ λ°μ΄ν°λ² μ΄μ€ κ΄λ¦¬λ λ°μ΄ν° μΌκ΄μ±κ³Ό μ νμ±μ 보μ₯νλ λ° νμμ μ λλ€. 컀λ₯μ νλ§μ μ±λ₯ ν₯μμ κΈ°μ¬νλ©°, μ΄λ μκ°μ λ―Όκ°ν μμ μ μ²λ¦¬νλ λ° λ§€μ° μ€μν©λλ€.
- νμ₯μ±: κΈλ‘λ² μ ν리μΌμ΄μ μ λ§μ μμ λμ μ¬μ©μλ₯Ό μ²λ¦¬νκΈ° μν΄ λμ νμ₯μ±μ΄ νμν©λλ€. 컀λ₯μ νλ§μ ν΅ν΄ μ ν리μΌμ΄μ μ λ°μ΄ν°λ² μ΄μ€ μλ²μ κ³ΌλΆνλ₯Ό μ£Όμ§ μκ³ ν¨μ¨μ μΌλ‘ νμ₯ν μ μμ΅λλ€. μμμ λ°λΌ 리μμ€κ° μλμΌλ‘ νμ₯ λλ μΆμλλ νλ ₯μ νμ₯μ μ΅μ μ μ±λ₯κ³Ό λΉμ© ν¨μ¨μ±μ 보μ₯νκΈ° μν΄ μ»€λ₯μ νλ§κ³Ό ν¨κ» μμ£Ό μ¬μ©λ©λλ€.
- λ°μ΄ν° 볡μ : μ¬λ¬ μ§μμ λ°μ΄ν°λ₯Ό λΆμ°μν€κΈ° μν΄ λ°μ΄ν°λ² μ΄μ€ 볡μ λ₯Ό μ¬μ©νλ κ²μ κ³ λ €νμΈμ. μ΄λ₯Ό ν΅ν΄ μ¬μ©μλ μ§λ¦¬μ μΌλ‘ λ κ°κΉμ΄ λ°μ΄ν°λ² μ΄μ€ μΈμ€ν΄μ€μμ λ°μ΄ν°μ μ‘μΈμ€ν μ μκ² νμ¬ μ±λ₯μ ν₯μμν¬ μ μμ΅λλ€. 컀λ₯μ νλ§μ λΆμ° νκ²½μμ 컀λ₯μ κ΄λ¦¬λ₯Ό μ΅μ ννκΈ° μν΄ λ°μ΄ν°λ² μ΄μ€ 볡μ μ ν¨κ» μ¬μ©λ μ μμ΅λλ€.
κ²°λ‘
λ°μ΄ν°λ² μ΄μ€ 컀λ₯μ νλ§μ λ°μ΄ν°λ² μ΄μ€ μ±λ₯κ³Ό 리μμ€ κ΄λ¦¬λ₯Ό μ΅μ ννλ κΈ°λ³Έ κΈ°μ μ λλ€. κΈ°μ‘΄ 컀λ₯μ μ μ¬μ¬μ©ν¨μΌλ‘μ¨ μ ν리μΌμ΄μ μ 컀λ₯μ μ€λ²ν€λλ₯Ό ν¬κ² μ€μ΄κ³ μλ΅ μκ°μ κ°μ νλ©° νμ₯μ±μ ν₯μμν¬ μ μμ΅λλ€. μ μΈκ³ μ¬μ©μλ₯Ό λμμΌλ‘ νλ μ ν리μΌμ΄μ μ κ²½μ°, 컀λ₯μ νλ§μ μ΅μ μ μ±λ₯κ³Ό μ¬μ©μ κ²½νμ 보μ₯νλ λ° λμ± μ€μν©λλ€. μ΄ κΈμμ μ€λͺ ν λͺ¨λ² μ¬λ‘λ₯Ό λ°λ₯΄λ©΄ κ°λ°μλ 컀λ₯μ νλ§μ ν¨κ³Όμ μΌλ‘ ꡬννκ³ κ·Έ μλ§μ μ΄μ μ μ»μ μ μμ΅λλ€. 컀λ₯μ νμ΄ μ΅μ μΌλ‘ μλνκ³ μ ν리μΌμ΄μ μ±λ₯ ν₯μμ κΈ°μ¬νλλ‘ νλ €λ©΄ μ μ ν ꡬμ±κ³Ό λͺ¨λν°λ§μ΄ νμμ μ λλ€.
μμ½νμλ©΄, λ°μ΄ν°λ² μ΄μ€ 컀λ₯μ νλ§μ μ±ννλ κ²μ μ€λλ μ λ°μ΄ν° μ€μ¬ μΈκ³μμ κ°λ ₯νκ³ νμ₯ κ°λ₯νλ©° κ³ μ±λ₯ μ ν리μΌμ΄μ μ ꡬμΆνκΈ° μν κΆμ₯ μ¬νμΌ λΏλ§ μλλΌ νμ μ¬νμ λλ€. λ Όμλ μμλ₯Ό μ μ€νκ² κ³ λ €νκ³ λͺ¨λ² μ¬λ‘λ₯Ό μ μ©ν¨μΌλ‘μ¨ μ μΈκ³ μ¬μ©μμκ² μννκ³ μλ΅μ±μ΄ λ°μ΄λ κ²½νμ μ 곡νλ μ ν리μΌμ΄μ μ 보μ₯ν μ μμ΅λλ€.