๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ

Docker,Jenkins

Docker์™€ springboot,mysql Docker Compose๋กœ ์˜ฌ๋ ค์„œ ์‚ฌ์šฉํ•˜๊ธฐ

728x90

๐Ÿ”Ž Springboot ํ”„๋กœ์ ํŠธ ์„ค์ •

๋„์ปค ํ™˜๊ฒฝ์—์„œ DB๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ๊ตฌ๋™์„ ๋ชฉํ‘œ๋กœ ํ•˜๋ฏ€๋กœ ์ตœ๋Œ€ํ•œ ๊ฐ„๋‹จํ•˜๊ฒŒ ํ”„๋กœ์ ํŠธ๋ฅผ ๊ตฌ์„ฑํ•ด๋ณผ๊ป˜์š”.

springboot ํ”„๋กœ์ ํŠธ๋Š” ์‚ฌ์šฉ์ž์—๊ฒŒ ๊ธ€์„ ์ž…๋ ฅ๋ฐ›์œผ๋ฉด DB์— ์ €์žฅํ•˜๊ณ  ๋ชฉ๋ก์„ ํ™•์ธํ•  ์ˆ˜ ์žˆ๋Š” ์•„์ฃผ ๊ฐ„๋‹จํ•œ ๊ตฌ์กฐ์ž…๋‹ˆ๋‹ค.


๐Ÿ”Ž springboot ์„ค์ •ํŒŒ์ผ (application.yml)

datasource์˜ url ๋ถ€๋ถ„์—์„œ ํ˜ธ์ŠคํŠธ ๋ถ€๋ถ„ ์„ค์ •์„ ์ž˜ ํ•ด์ฃผ์…”์•ผ ํ•ฉ๋‹ˆ๋‹ค.

ํ˜„์žฌ ํ˜ธ์ŠคํŠธ๊ฐ€ db-mysql๋กœ ๋˜์–ด ์žˆ๋Š”๋ฐ ์ด ํ˜ธ์ŠคํŠธ๋ช…์€ ์•ž์œผ๋กœ ๋„์ปคํ™˜๊ฒฝ์—์„œ mysql์ด ๊ตฌ๋™๋˜๋Š” ์ปจํ…Œ์ด๋„ˆ์˜ ์ด๋ฆ„์ž…๋‹ˆ๋‹ค.

spring:
  datasource:
    driver-class-name: com.mysql.cj.jdbc.Driver
    url: jdbc:mysql://db-mysql:3306/mydb?useSSL=false
    username: user
    password: user
  jpa:
    hibernate:
      ddl-auto: create
    properties:
      hibernate:
        format_sql: true
        dialect: org.hibernate.dialect.MySQL5InnoDBDialect

๐Ÿ”Ž ๋„์ปค ์ด๋ฏธ์ง€ ๋นŒ๋“œ๋ฅผ ์œ„ํ•œ Dockerfile ์ž‘์„ฑ

FROM openjdk:11

COPY ./build/libs/docker-compose-test-0.0.1-SNAPSHOT.jar app.jar

ENV TZ=Asia/Seoul

CMD ["java", "-jar", "/app.jar"]
  • FROM: ๋ฒ ์ด์Šค ์ด๋ฏธ์ง€ ๋นŒ๋“œํ•˜๊ณ ์ž ํ•˜๋Š” ์ด๋ฏธ์ง€์˜ ๊ธฐ๋ณธ ๊ณจ๊ฒฉ์ด ๋˜๋Š” ์ด๋ฏธ์ง€์ž…๋‹ˆ๋‹ค.
  • ARG: ์ผ์ข…์˜ ๋ณ€์ˆ˜์„ ์–ธ์ด๋ผ๊ณ  ์ดํ•ดํ•ด๋„ ๋  ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค. ํŒจํ‚ค์ง•๋œ jar ํŒŒ์ผ์„ ์ €์žฅํ•ฉ๋‹ˆ๋‹ค.
  • COPY: ์‹คํ–‰๊ฐ€๋Šฅํ•œ ํŒจํ‚ค์ง•๋œ ํŒŒ์ผ(jar)์„ ์ปจํ…Œ์ด๋„ˆ ๋‚ด๋ถ€๋กœ ๋ณต์‚ฌํ•ฉ๋‹ˆ๋‹ค.
  • ENTRYPOINT: ์ด๋ฏธ์ง€ ๋นŒ๋“œ์‹œ ์‹คํ–‰๋˜๋Š” ๋ช…๋ น์–ด์ž…๋‹ˆ๋‹ค. ๋กœ์ปฌ์—์„œ jarํŒŒ์ผ์„ ๊ตฌ๋™ํ•˜๋Š” ๊ฒƒ๊ณผ ๋™์ผํ•œ ๋ช…๋ น์–ด๋ฅผ ๋„ฃ์–ด์ฃผ๋ฉด ๋ฉ๋‹ˆ๋‹ค.

๐Ÿ”Ž springboot ํ”„๋กœ์ ํŠธ ํŒจํ‚ค์ง•

ํ˜„์žฌ ํ”„๋กœ์ ํŠธ๋Š” gradle์„ ์‚ฌ์šฉํ•˜๊ณ  ์žˆ๊ธฐ ๋•Œ๋ฌธ์— gradle๋ช…๋ น์–ด๋ฅผ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.

gradlew clean build --exclude-task test์ด๊ฑฐ ๊ผญ ๋„ฃ์–ด์ฃผ์„ธ์š”..
yml์—์„œ ๋„์ปค์—์„œ ๊ตฌ๋™๋  mysql์˜ ์ปจํ…Œ์ด๋„ˆ๋ช…์„ ๋„ฃ์–ด์ฃผ๋Š”๋ฐ ์ด ๋ถ€๋ถ„ ๋•Œ๋ฌธ์— ํŒจํ‚ค์ง• ์‹œ ํ…Œ์ŠคํŠธ์— ์‹คํŒจํ•˜๋Š” ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค..

์œ„ ๋ช…๋ น์–ด๋ฅผ ์‹คํ–‰ํ•˜๋ฉด ํ”„๋กœ์ ํŠธ ๋””๋ ‰ํ† ๋ฆฌ์— target์ด ์ƒ์„ฑ๋˜๊ณ  ๊ทธ ์•ˆ์— jar ํŒŒ์ผ์ด ์ƒ์„ฑ๋  ๊ฒƒ ์ž…๋‹ˆ๋‹ค.

์ด ๋•Œ ์ƒ์„ฑ๋˜๋Š” jar ํŒŒ์ผ์„ ๋„์ปค ์ปจํ…Œ์ด๋„ˆ ์•ˆ์œผ๋กœ ๋ณต์‚ฌํ•ด์ค˜์„œ ์ปจํ…Œ์ด๋„ˆ๊ฐ€ ์‹คํ–‰์‹œํ‚ฌ ์ˆ˜ ์žˆ๋„๋ก ํ•˜๋Š” ๊ฒƒ ์ž…๋‹ˆ๋‹ค.


๐Ÿ”Ž ๋„์ปค ๋„คํŠธ์›Œํฌ ์ƒ์„ฑ

๋„์ปค ํ™˜๊ฒฝ์—์„œ ์—ฌ๋Ÿฌ ์ปจํ…Œ์ด๋„ˆ๋ฅผ ๋™์ผํ•œ ํ™˜๊ฒฝ์—์„œ ์—ฐ๋™์‹œํ‚ค๊ธฐ ์œ„ํ•ด์„œ ๋„คํŠธ์›Œํฌ ์„ค์ •์ด ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค.

์—ฌ๊ธฐ์„œ๋Š” MySQL ๊ณผ springboot app์ด ๋™์ผํ•œ ๋„คํŠธ์›Œํฌ์—์„œ ๊ตฌ๋™๋˜๋„๋ก ํ•ด์ฃผ์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

์ผ๋‹จ ๋„คํŠธ์›Œํฌ๋ถ€ํ„ฐ ํ•˜๋‚˜ ์ƒ์„ฑํ•ด์ค๋‹ˆ๋‹ค.
$ docker network create springboot-mysql-net

์ƒ์„ฑ๋œ ๋„คํŠธ์›Œํฌ๋Š” ์•„๋ž˜ ๋ช…๋ น์–ด๋กœ ํ™•์ธ ๊ฐ€๋Šฅํ•ฉ๋‹ˆ๋‹ค.
$ docker network ls


๐Ÿ”Ž ๋„์ปค ํ™˜๊ฒฝ์—์„œ MySQL ๊ตฌ๋™

๋„์ปค ํ—ˆ๋ธŒ์—์„œ mysql ์ด๋ฏธ์ง€ ๊ฐ€์ ธ์˜ค๊ธฐ
$ docker pull mysql:5.7

mysql ๊ตฌ๋™
--name: ์ปจํ…Œ์ด๋„ˆ๋ช… ์„ค์ •
-p: ํฌํŠธ๋งคํ•‘
--network: ๋„คํŠธ์›Œํฌ ์„ค์ •
-e: ํ™˜๊ฒฝ๋ณ€์ˆ˜ ์„ค์ •
-d: ๋ฐฑ๊ทธ๋ผ์šด๋“œ๋กœ ์ปจํ…Œ์ด๋„ˆ ์‹คํ–‰

docker run --name db-mysql -p 3306:3306 --network springboot-mysql-net -e MYSQL_ROOT_PASSWORD=root -e MYSQL_DATABASE=mydb -e MYSQL_USER=user -e MYSQL_PASSWORD=user -d mysql:5.7

๐Ÿ”Ž ๋„์ปค ํ™˜๊ฒฝ์—์„œ springboot app ๊ตฌ๋™

Dockerfile์„ ์ด์šฉํ•œ ์ด๋ฏธ์ง€ ๋นŒ๋“œ
$ docker build -t springboot-mysql:1.0

๋นŒ๋“œ๋œ ์ด๋ฏธ์ง€๋กœ ์ปจํ…Œ์ด๋„ˆ ๊ตฌ๋™

$ docker run -p 8080:8080 --name springboot-mysql --network springboot-mysql-net -d springboot-mysql:1.0 

๐ŸŒก ํ…Œ์ŠคํŠธ

๋‘ ๊ฐœ ์ปจํ…Œ์ด๋„ˆ ๋ชจ๋‘ ๋ฐฑ๊ทธ๋ผ์šด๋“œ๋กœ ์ž˜ ์‹คํ–‰๋˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค.

์š”์ฒญ ๋ฐ DB ํ…Œ์ŠคํŠธ

 

์š”์ฒญ ํ•œ๋Œ€๋กœ ์ž˜ ๋œจ๋„ค์š” ! 

 

๐ŸŒก 2๋ฒˆ์งธ  Docker Compose ๋ฅผ ์ด์šฉํ•ด์„œ ํ•œ๋ฒˆ์— ๋„์šฐ๊ธฐ ํ…Œ์ŠคํŠธ

 

 Docker-compose.yml ์ž‘์„ฑ

์ด์ „์— Docker-compose ์—†์ด ๋ฉ€ํ‹ฐ์ปจํ…Œ์ด๋„ˆ๋ฅผ ๊ตฌ๋™ํ–ˆ๋˜ ์„ค์ •์„ ๊ทธ๋Œ€๋กœ Docker-compose์— ์ ์šฉํ•  ๊ฒƒ ์ž…๋‹ˆ๋‹ค.

version: "3.7"

services:
  db-mysql:
    image: mysql:5.7
    environment:
      MYSQL_DATABASE: mydb
      MYSQL_USER: user
      MYSQL_PASSWORD: user
      MYSQL_ALLOW_EMPTY_PASSWORD: "yes"
    ports:
      - 3306:3306
    networks:
      - springboot-mysql-net
  test-app:
    image: kimminwoo1234/simple-spring-boot:11
    ports:
      - 8080:8080
    depends_on:
      - db-mysql
    networks:
      - springboot-mysql-net

networks:
  springboot-mysql-net:
         driver: bridge

Docker-compose๋Š” services ๋ฐ‘์— ์—ฌ๋Ÿฌ ์ปจํ…Œ์ด๋„ˆ๋“ค์„ ๊ฐ€์งˆ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์—ฌ๊ธฐ์„œ ์ƒ์„ฑ๋˜๋Š” ์ปจํ…Œ์ด๋„ˆ๋“ค์€ ๊ธฐ๋ณธ์ ์œผ๋กœ ๊ฐ™์€ ๋„คํŠธ์›Œํฌ์—์„œ ๊ตฌ๋™๋˜๊ฒŒ ๋ฉ๋‹ˆ๋‹ค.(default network)
ํ•˜์ง€๋งŒ ์ด์ „์— ํ–ˆ๋˜ ์˜ˆ์ œ์™€ ์•„์˜ˆ ๋™์ผํ•˜๊ฒŒ ํ•˜๊ธฐ ์œ„ํ•ด ๋„คํŠธ์›Œํฌ๋„ ์„ค์ •ํ•ด์ฃผ์—ˆ์Šต๋‹ˆ๋‹ค.

ํ•˜๋‚˜์”ฉ ์ž์„ธํžˆ ๋ณผ๊ป˜์š”.

db-mysql
mysql ์„ ์ปจํ…Œ์ด๋„ˆ๋กœ ๊ตฌ๋™์‹œํ‚ค๊ธฐ ์œ„ํ•œ ์„ค์ •์ž…๋‹ˆ๋‹ค.

  • image: ๋„์ปคํ—ˆ๋ธŒ์—์„œ ๊ฐ€์ ธ์˜ฌ ์ด๋ฏธ์ง€ (docker pull mysql:5.7 ๋™์ผ)
  • environment: mysql ๊ตฌ๋™์‹œ ํ•„์š”ํ•œ ํ™˜๊ฒฝ๋ณ€์ˆ˜ ์„ค์ •
    (์‚ฌ์šฉํ•  db์ด๋ฆ„, ์ ‘์†ํ•  user์ด๋ฆ„, password)
  • ports: ํฌํŠธ๋งคํ•‘ (๋กœ์ปฌ์˜ ํฌํŠธ์—์„œ ์ ‘๊ทผํ•  ํฌํŠธ์™€ ์ปจํ…Œ์ด๋„ˆ ๋‚ด๋ถ€์˜ ํฌํŠธ์™€ ๋งž์ถค)
  • networks: ์ปจํ…Œ์ด๋„ˆ๊ฐ€ ๊ตฌ๋™๋  ๋„คํŠธ์›Œํฌ ์„ค์ •

test-app
springboot ๋ฅผ ์ปจํ…Œ์ด๋„ˆ๋กœ ๊ตฌ๋™์‹œํ‚ค๊ธฐ ์œ„ํ•œ ์„ค์ •์ž…๋‹ˆ๋‹ค.

  • port: ์ด์ „๊ณผ ๋™์ผ
  • depend_on: db-mysql ์ปจํ…Œ์ด๋„ˆ์— ์˜์กดํ•œ๋‹ค๋Š” ์˜๋ฏธ์ธ๋ฐ ์—ฌ๊ธฐ์„œ ์˜์กด์€ ๋ฐ˜๋“œ์‹œ db-mysql์ปจํ…Œ์ด๋„ˆ๊ฐ€ ๊ตฌ๋™๋œ ํ›„์— test-app ์ปจํ…Œ์ด๋„ˆ๋ฅผ ๊ตฌ๋™์‹œํ‚ค๊ฒ ๋‹ค๋Š” ์˜๋ฏธ์ž…๋‹ˆ๋‹ค.
  • networks: ์ด์ „๊ณผ ๋™์ผ

networks
์ด์ „ ์˜ˆ์ œ์™€ ๋™์ผํ•˜๊ฒŒ ๋„คํŠธ์›Œํฌ๋ฅผ ๊ตฌ์„ฑํ•˜์˜€์Šต๋‹ˆ๋‹ค.

๐Ÿ”Ž ์ปจํ…Œ์ด๋„ˆ ๊ตฌ๋™

docker-compose up or docker-compose up -d

์„œ๋ฒ„๊ฐ€ ์ •์ƒ์ ์œผ๋กœ ๊ตฌ๋™๋˜์–ด ๋กœ์ปฌ์—์„œ ์ ‘๊ทผ์ด ๊ฐ€๋Šฅํ•ฉ๋‹ˆ๋‹ค.
๋˜ํ•œ ps ๋ช…๋ น์–ด๋กœ ๊ตฌ๋™์ค‘์ธ ์ปจํ…Œ์ด๋„ˆ๋ฅผ ๋ณด๋ฉด mysql๊ณผ springboot ๋‘ ๊ฐœ ์ปจํ…Œ์ด๋„ˆ๊ฐ€ ๊ตฌ๋™๋˜๋Š” ๊ฒƒ์„ ํ™•์ธํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์ปจํ…Œ์ด๋„ˆ ์ค‘์ง€
docker-compose down

๐Ÿ”Ž ํ…Œ์ŠคํŠธ๊ฒฐ๊ณผ ์ž˜ ๋˜๋„ค์š”!

 

 

๐ŸŒก 3๋ฒˆ์งธ  Docker Compose ๋ฐ ๋ถˆ๋ฅจ ๋งˆ์šดํŠธ๋ฅผ ์ด์šฉํ•ด์„œ ํ•œ๋ฒˆ์— ๋„์šฐ๊ธฐ ํ…Œ์ŠคํŠธ

 

springboot์™€ MySQL์„ ๋„์ปค ์ปจํ…Œ์ด๋„ˆ ํ™˜๊ฒฝ์—์„œ ๊ตฌ๋™๊นŒ์ง€๋Š” ์„ฑ๊ณตํ–ˆ์Šต๋‹ˆ๋‹ค. ๊ทผ๋ฐ ์ปจํ…Œ์ด๋„ˆ๊ฐ€ ๋‚ด๋ ค๊ฐ€๋Š” ์ˆœ๊ฐ„ DB์˜ ๋ฐ์ดํ„ฐ๊ฐ€ ๋ชจ๋‘ ์ดˆ๊ธฐํ™” ๋˜์–ด ๋ฒ„๋ฆฝ๋‹ˆ๋‹ค.

์ปจํ…Œ์ด๋„ˆ ๊ตฌ๋™ ์ค‘์— DB์— ์Œ“์ด๋Š” ๋ฐ์ดํ„ฐ๋Š” ์ปจํ…Œ์ด๋„ˆ ๋‚ด๋ถ€์— ์Œ“์ผ ๋ฟ ๋กœ์ปฌ ํŒŒ์ผ์‹œ์Šคํ…œ์€ ๋ชจ๋ฅด๋Š” ์ผ ์ž…๋‹ˆ๋‹ค.

mysql์ด ๊ตฌ๋™๋˜๋Š” ์ปจํ…Œ์ด๋„ˆ์˜ ๋ฐ์ดํ„ฐ๋ฅผ ๋กœ์ปฌ ํŒŒ์ผ์‹œ์Šคํ…œ๊ณผ ์—ฐ๊ฒฐํ•ด์ฃผ์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

docker๋Š” ์ด๋Ÿฌํ•œ ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•˜๊ธฐ ์œ„ํ•ด ์—ฌ๋Ÿฌ ๊ธฐ๋Šฅ์„ ์ œ๊ณตํ•˜์ง€๋งŒ ์ฐพ์•„๋ณธ ๊ฒฐ๊ณผ volume์„ ๊ฐ€์žฅ ๋งŽ์ด ์“ฐ๊ณ  ๊ถŒ์žฅํ•˜๋Š” ๊ฒƒ ๊ฐ™์•„ volume์„ ์‚ฌ์šฉํ•ด๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค.

 

Docker-compose.yml ์ž‘์„ฑ


version: "3.7"

services:
  db-mysql:
    image: mysql:5.7
    environment:
      MYSQL_DATABASE: mydb
      MYSQL_USER: user
      MYSQL_PASSWORD: user
      MYSQL_ALLOW_EMPTY_PASSWORD: "yes"
    ports:
      - 3306:3306
    volumes:
      - ./db:/var/lib/mysql
    command: ['--character-set-server=utf8mb4', '--collation-server=utf8mb4_unicode_ci']
    networks:
      - springboot-mysql-net
  test-app:
    image: kimminwoo1234/simple-spring-boot:11
    ports:
      - 8080:8080
    depends_on:
      - db-mysql
    networks:
      - springboot-mysql-net

networks:
  springboot-mysql-net:
         driver: bridge

db-mysql ๋ถ€๋ถ„์˜ volumes๋งŒ ์ถ”๊ฐ€๋กœ ์„ค์ •ํ•ฉ๋‹ˆ๋‹ค.

:๋ฅผ ๊ธฐ์ค€์œผ๋กœ ์•ž์ชฝ์ด ๋กœ์ปฌ ํŒŒ์ผ์‹œ์Šคํ…œ์˜ ๊ฒฝ๋กœ์ด๊ณ  ๋’ค์ชฝ์ด ์ปจํ…Œ์ด๋„ˆ ๋‚ด๋ถ€์˜ ๊ฒฝ๋กœ์ž…๋‹ˆ๋‹ค.

์„ค์ •ํ•ด์ค€ ์ปจํ…Œ์ด๋„ˆ์˜ ๊ฒฝ๋กœ๋ฅผ ์ง€์ •ํ•œ ๋กœ์ปฌ ๊ฒฝ๋กœ๋กœ ๋งˆ์šดํŠธ ์‹œํ‚ค๋Š” ๊ฒƒ ์ž…๋‹ˆ๋‹ค.

docker-compose up ์œผ๋กœ ์‹คํ–‰ํ•˜๋ฉด ํ”„๋กœ์ ํŠธ์˜ ๋ฃจํŠธ๊ฒฝ๋กœ์— db ํด๋”๊ฐ€ ์ƒ๊ธธ ๊ฒƒ ์ž…๋‹ˆ๋‹ค.


๐Ÿง ....

์•„์ง ๋„์ปค์— ๋Œ€ํ•œ ์ดํ•ด๊ฐ€ ๋ถ€์กฑํ•ด์„œ ๋ณผ๋ฅจ์„ ์ถ”๊ฐ€ํ•˜๊ณ ๋„ ์˜์†ํ™”๊ฐ€ ๋˜์ง€ ์•Š๋Š” ํ˜„์ƒ์„ ๊ฒช์—ˆ์Šต๋‹ˆ๋‹ค.

ํ˜น์‹œ ๊ฐ™์€ ํ˜„์ƒ์„ ๊ฒช๋Š” ๋ถ„์ด ์žˆ์„๊นŒ๋ด ์ ์šฉ๋ฐฉ๋ฒ•๋„ ํ•จ๊ป˜ ์จ๋ณผ๊ป˜์š”.

์ผ๋‹จ ํ…Œ์ŠคํŠธ๋ฅผ ์œ„ํ•ด application.yml์˜ JPA ์˜ต์…˜์ธ ddl-auto๋Š” create์—์„œ update ํ˜น์€ none์œผ๋กœ ํ•ด์ฃผ์„ธ์š”.

๊ทธ๋ฆฌ๊ณ  ๋ณ€๊ฒฝ๋œ ์‚ฌํ•ญ์„ ์ ์šฉํ•˜๊ธฐ ์œ„ํ•ด ๋‹ค์‹œ ํ”„๋กœ์ ํŠธ๋ฅผ ํŒจํ‚ค์ง•ํ•ฉ๋‹ˆ๋‹ค.
gradlew clean build --exclude-task test

์ด์ œ ์ด๋ฏธ์ง€ ์žฌ๋นŒ๋“œ์™€ ํ•จ๊ป˜ ์ปจํ…Œ์ด๋„ˆ๋ฅผ ๊ตฌ๋™ํ•ฉ๋‹ˆ๋‹ค.
docker-compose up --build


 

docker compose ๋ฅผ ์ด์šฉํ•ด์„œ db ์™€ springboot jpa๋ฅผ ์ด์šฉํ•˜๊ณ  ๋ธ”๋ฃธ ๋งˆ์šดํŠธ๋ฅผ ์ด์šฉํ•ด์„œ

์ปจํ…Œ์ด๋„ˆ๊ฐ€ ๋‚ด๋ ค๊ฐ€๋Š” ์ˆœ๊ฐ„ DB์˜ ๋ฐ์ดํ„ฐ๊ฐ€ ๋ชจ๋‘ ์ดˆ๊ธฐํ™” ๋˜์–ด ๋ฒ„๋ฆฌ๋Š” ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•˜์˜€์Šต๋‹ˆ๋‹ค.

db๋ผ๋Š” ํด๋”์— ์ปจํ…Œ์ด๋„ˆ์˜ db์ •๋ณด๋ฅผ ๋‹ด์•„์ฃผ์—ˆ์Šต๋‹ˆ๋‹ค.

 

 

728x90