Home > DB > ๐Ÿ’พ[Database] ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค URL์ด๋ž€ ๋ฌด์—‡์ผ๊นŒ์š”?

๐Ÿ’พ[Database] ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค URL์ด๋ž€ ๋ฌด์—‡์ผ๊นŒ์š”?
Database

๐Ÿ’พ[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์„ ์ง€์ •ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๐Ÿ‘‰ 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์€ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์ด ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์— ์—ฐ๊ฒฐํ•  ๋•Œ ์‚ฌ์šฉํ•˜๋Š” ๊ณ ์œ ํ•œ ์ฃผ์†Œ๋กœ, ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์œ ํ˜•, ์„œ๋ฒ„ ์ฃผ์†Œ, ํฌํŠธ ๋ฒˆํ˜ธ, ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์ด๋ฆ„ ๋“ฑ์˜ ์ •๋ณด๋ฅผ ํฌํ•จํ•˜์—ฌ ์—ฐ๊ฒฐ ์„ค์ •์„ ์ •์˜ํ•ฉ๋‹ˆ๋‹ค.