πΎ[Database] λ°μ΄ν°λ² μ΄μ€ URLμ΄λ 무μμΌκΉμ?
- λ°μ΄ν°λ² μ΄μ€ URLμ μ ν리μΌμ΄μ μ΄ λ°μ΄ν°λ² μ΄μ€μ μ°κ²°ν λ μ¬μ©λλ κ³ μ ν μ£Όμμ λλ€.
- URLμ μ ν리μΌμμ°μ΄ λ°μ΄ν°λ² μ΄μ€ μλ²λ₯Ό μ°Ύκ³ , μ°κ²°ν λ°μ΄ν°λ² μ΄μ€λ₯Ό μ§μ νκΈ° μν μ 보λ₯Ό ν¬ν¨νκ³ μμ΅λλ€.
- μ΄ URLμ λ°μ΄ν°λ² μ΄μ€ μ’ λ₯μ λ°λΌ κ³ μ ν νμμΌλ‘ μμ±λλ©°, λ³΄ν΅ νλ‘ν μ½, μλ² μμΉ(νΈμ€νΈ), ν¬νΈ λ²νΈ, λ°μ΄ν°λ² μ΄μ€ μ΄λ¦ λ±μ ν¬ν¨ν©λλ€.
1οΈβ£ λ°μ΄ν°λ² μ΄μ€ URLμ κΈ°λ³Έ νμ.
- λ°μ΄ν°λ² μ΄μ€ URLμ λ³΄ν΅ λ€μκ³Ό κ°μ νμμ λ°λ¦ λλ€.
jdbc:<λ°μ΄ν°λ² μ΄μ€ μ ν>://<νΈμ€νΈ>:<ν¬νΈ>/<λ°μ΄ν°λ² μ΄μ€ μ΄λ¦>?<μ΅μ
λ€>
- κ° λΆλΆμ μλ―Έλ λ€μκ³Ό κ°μ΅λλ€.
-
jdbc
- Java Database Connectivityμ μ½μλ‘, JDBC URLμμ λνλ λλ€.
- JDBC(Java Database Connectivity)λ₯Ό μ¬μ©νμ¬ λ°μ΄ν°λ² μ΄μ€μ μ°κ²°νλ νμ€ λ°©μμ λλ€.
-
<λ°μ΄ν°λ² μ΄μ€ μ ν>
- μ¬μ©νλ λ°μ΄ν°λ² μ΄μ€μ μ νμ λνλ
λλ€.
- μλ₯Ό λ€μ΄, MySQL, PostgreSQL, Oracle, SQL Server λ±μ΄ μ¬κΈ°μ λ€μ΄κ°λλ€.
- μ¬μ©νλ λ°μ΄ν°λ² μ΄μ€μ μ νμ λνλ
λλ€.
-
<νΈμ€νΈ>
- λ°μ΄ν°λ² μ΄μ€κ° μ€νλκ³ μλ μλ²μ μ£Όμλ₯Ό λνλ
λλ€.
- λ‘컬μμ μ€νλ κ²½μ°
localhost
λ₯Ό μ¬μ©νκ³ , μ격 μλ²μ κ²½μ° μλ² IP μ£Όμλ λλ©μΈ μ΄λ¦μ μ¬μ©ν©λλ€.
- λ‘컬μμ μ€νλ κ²½μ°
- λ°μ΄ν°λ² μ΄μ€κ° μ€νλκ³ μλ μλ²μ μ£Όμλ₯Ό λνλ
λλ€.
-
<ν¬νΈ>
- λ°μ΄ν°λ² μ΄μ€ μλ²κ° μμ λκΈ° μ€μΈ λ€νΈμν¬ ν¬νΈ λ²νΈμ
λλ€.
- κ° λ°μ΄ν°λ² μ΄μ€λ κΈ°λ³Έ ν¬νΈκ° μμ§λ§, νμμ λ°λΌ λ€λ₯Έ ν¬νΈλ₯Ό μ¬μ©ν μλ μμ΅λλ€.
- MySQL: 3306
- PostgreSQL: 5432
- Oracle: 1521
- κ° λ°μ΄ν°λ² μ΄μ€λ κΈ°λ³Έ ν¬νΈκ° μμ§λ§, νμμ λ°λΌ λ€λ₯Έ ν¬νΈλ₯Ό μ¬μ©ν μλ μμ΅λλ€.
- λ°μ΄ν°λ² μ΄μ€ μλ²κ° μμ λκΈ° μ€μΈ λ€νΈμν¬ ν¬νΈ λ²νΈμ
λλ€.
-
<λ°μ΄ν°λ² μ΄μ€ μ΄λ¦>
- μ°κ²°ν λ°μ΄ν°λ² μ΄μ€μ μ΄λ¦μ
λλ€.
- κ°μ λ°μ΄ν°λ² μ΄μ€ μλ²μμ μ¬λ¬ λ°μ΄ν°λ² μ΄μ€λ₯Ό μ΄μν μ μμΌλ―λ‘, μ°κ²°ν λ°μ΄ν°λ² μ΄μ€λ₯Ό λͺ μν©λλ€.
- μ°κ²°ν λ°μ΄ν°λ² μ΄μ€μ μ΄λ¦μ
λλ€.
-
<μ΅μ λ€>
- μΆκ°μ μΌλ‘ λ°μ΄ν°λ² μ΄μ€ μ°κ²°μ μν μ΅μ
μ μ λ¬ν μ μμ΅λλ€.
- μλ₯Ό λ€μ΄, μΈμ½λ© λ°©μμ΄λ SSL μ¬μ© μ¬λΆ λ±μ μ€μ μ΄ μ¬κΈ°μ ν¬ν¨λ μ μμ΅λλ€.
- μΆκ°μ μΌλ‘ λ°μ΄ν°λ² μ΄μ€ μ°κ²°μ μν μ΅μ
μ μ λ¬ν μ μμ΅λλ€.
-
π SSL(Secure Socket Layer)
λ€νΈμν¬ μμμ λ°μ΄ν°λ₯Ό μμ νκ² μνΈννμ¬ μ μ‘νκΈ° μν 보μ νλ‘ν μ½μ λλ€.
SSLμ ν΄λΌμ΄μΈνΈμ μλ² κ°μ ν΅μ μ μνΈννμ¬, λ°μ΄ν°κ° μ μ‘λλ λμ μ 3μκ° μ΄λ₯Ό λμ²νκ±°λ μμ‘°νμ§ λͺ»νλλ‘ λ³΄νΈν©λλ€.
SSLμ νΉν μΉ λΈλΌμ°μ μ μΉ μλ² κ°μ μμ ν ν΅μ μ 보μ₯νλ λ° λ리 μ¬μ©λμμ΅λλ€.νμ¬λ SSLμ νμ λ²μ μΈ TLS(Transport Layer Security)κ° SSLμ λ체νμ¬ μ¬μ©λκ³ μμ§λ§, λ³΄ν΅ μ¬λλ€μ μ¬μ ν SSLμ΄λΌλ μ©μ΄λ₯Ό μ¬μ©ν΄ TLSλ ν¨κ» μ§μΉν©λλ€.
2οΈβ£ λ°μ΄ν°λ² μ΄μ€ URL μμ.
1οΈβ£ MySQL
jdbc:mysql://localhost:3306/mydatabase?useSSL=false&serverTimezone=UTC
-
mysql
: MySQL λ°μ΄ν°λ² μ΄μ€ μ¬μ© -
localhost
: λ°μ΄ν°λ² μ΄μ€ μλ²μ μ£Όμ (λ‘컬μμ μ€ν μ€μΈ κ²½μ°) -
3306
: MySQLμ κΈ°λ³Έ ν¬νΈ λ²νΈ -
mydatabase
: μ°κ²°ν λ°μ΄ν°λ² μ΄μ€ μ΄λ¦ -
useSSL=false
: SSL μ¬μ© μ¬λΆ (μ΄ μμμμλ μ¬μ©νμ§ μμ) -
serverTimezone=UTC
: μλ²μ νμμ‘΄ μ€μ
2οΈβ£ PostgreSQL
jdbc:postgresql://localhost:5432/mydatabase
-
postgresql
: PostgreSQL λ°μ΄ν°λ² μ΄μ€ μ¬μ© -
localhost
: λ°μ΄ν°λ² μ΄μ€ μλ² μ£Όμ -
5432
: PostgreSQLμ κΈ°λ³Έ ν¬νΈ λ²νΈ -
mydatabase
: μ°κ²°ν λ°μ΄ν°λ² μ΄μ€ μ΄λ¦
3οΈβ£ Oracle
jdbc:oracle:thin:@localhost:1521:ORCL
-
oracle:thin
: Oracleμ JDBC λλΌμ΄λ² μ¬μ© -
localhost
: λ°μ΄ν°λ² μ΄μ€ μλ² μ£Όμ -
1521
: Oracleμ κΈ°λ³Έ ν¬νΈ λ²νΈ -
ORCL
: λ°μ΄ν°λ² μ΄μ€ μλΉμ€ μ΄λ¦
4οΈβ£ SQL Server
jdbc:sqlserver://localhost:1433;databaseName=mydatabase;integratedSecurity=true;
-
sqlserver
: Microsoft SQL Server μ¬μ© -
localhost
: λ°μ΄ν°λ² μ΄μ€ μλ² μ£Όμ -
1433
: SQL Severμ κΈ°λ³Έ ν¬νΈ λ²νΈ -
mydatabase
: μ°κ²°ν λ°μ΄ν°λ² μ΄μ€ μ΄λ¦ -
integratedSecurity=true
: ν΅ν© 보μ(Windows μΈμ¦) μ¬μ©
5οΈβ£ H2(In-Memory Database)
jdbc:h2:mem:testdb
-
h2:mem
: H2 λ°μ΄ν°λ² μ΄μ€μ λ©λͺ¨λ¦¬ λͺ¨λ μ¬μ© -
testdb
: λ©λͺ¨λ¦¬ λ΄μμ μ¬μ©ν λ°μ΄ν°λ² μ΄μ€ μ΄λ¦
3οΈβ£ λ°μ΄ν°λ² μ΄μ€ URL μ¬μ© λ°©λ².
- λ°μ΄ν°λ² μ΄μ€ URLμ μ£Όλ‘ Spring Bootμ κ°μ νλ μμν¬λ JDBC(Java Database Connectivity) APIλ₯Ό ν΅ν΄ λ°μ΄ν°λ² μ΄μ€μ μ°κ²°ν λ μ€μ ν©λλ€.
- μλ₯Ό λ€μ΄, Spring Bootμμ
application.properties
λapplication.yml
νμΌμ λ°μ΄ν°λ² μ΄μ€ URLμ μ§μ ν μ μμ΅λλ€.
- μλ₯Ό λ€μ΄, Spring Bootμμ
π application.properties
μμ λ°μ΄ν°λ² μ΄μ€ URL μ€μ .
spring.datasource.url=jdbc:mysql://localhost:3306/mydatabase?useSSL=false&serverTimezone=UTC
spring.datasource.username=root
spring.datasource.password=secret
π JDBC APIλ‘ λ°μ΄ν°λ² μ΄μ€ μ°κ²° μμ
String url = "jdbc:mysql://localhost:3306/mydatabase?useSSL=false&serverTimezone=UTC";
String username = "root";
String password = "secret";
Connection conn = DriverManager.getConnection(url, username, password);
4οΈβ£ λ°μ΄ν°λ² μ΄μ€ URLμ κ΅¬μ± μμ μμ½.
-
νλ‘ν μ½(JDBC) :
jdbc:
λ‘ μμνλ©° JDBC(Java Database Connectivity)λ₯Ό μ¬μ©ν λ°μ΄ν°λ² μ΄μ€ μ°κ²°μ μλ―Έν©λλ€. - λ°μ΄ν°λ² μ΄μ€ μ ν : μ¬μ©ν λ°μ΄ν°λ² μ΄μ€μ μ’ λ₯(MySQL, PostgreSQL, Oracle λ±)λ₯Ό μ§μ ν©λλ€.
- μλ² μ£Όμ(νΈμ€νΈμ ν¬νΈ) : λ°μ΄ν°λ² μ΄μ€ μλ²μ μμΉλ₯Ό λνλ λλ€(λ‘컬 λλ μ격).
- λ°μ΄ν°λ² μ΄μ€ μ΄λ¦ : μ°κ²°νλ €λ λ°μ΄ν°λ² μ΄μ€μ μ΄λ¦μ μ§μ ν©λλ€.
- μΆκ° μ΅μ : SSL μ¬μ©, νμμ‘΄ μ€μ λ± μΆκ°μ μΈ μ€μ μ΄ νμν λ URLμ ν¬ν¨λ μ μμ΅λλ€.
5οΈβ£ μμ½.
- λ°μ΄ν°λ² μ΄μ€ URLμ μ ν리μΌμ΄μ μ΄ λ°μ΄ν°λ² μ΄μ€μ μ°κ²°ν λ μ¬μ©νλ κ³ μ ν μ£Όμλ‘, λ°μ΄ν°λ² μ΄μ€ μ ν, μλ² μ£Όμ, ν¬νΈ λ²νΈ, λ°μ΄ν°λ² μ΄μ€ μ΄λ¦ λ±μ μ 보λ₯Ό ν¬ν¨νμ¬ μ°κ²° μ€μ μ μ μν©λλ€.