테스트 데이터 준비 ‐ (1) 필요성, 로컬 데이터베이스 초기화 - ttasjwi/board-system GitHub Wiki

개요

  • 기능을 구현한 것도 중요하지만, 우리 기능이 실제 서비스 환경(혹은 유사환경)에서 실제 좋은 성능으로 잘 작동하는지 확인하는 것도 중요하다.
  • 성능 테스트를 위해서는 우선 데이터베이스에 적절히 많은 양의 데이터가 삽입되어야한다.
    • 데이터베이스의 질의 성능은 전체 데이터의 갯수의 영향을 많이 받기 때문이다.
  • 테스트 데이터를 간단하게 csv 파일로 구성해놓고, 로컬 데이터베이스에 삽입해본다.
  • 이후 인프라 환경에 삽입하는 과정은 별도로 또 다시 다룰 것.

(로컬) docker -> mysql -> csv 파일 삽입 허용

services:
  mysql:
    image: mysql:ttasjwi
    container_name: mysql
    ports:
      - "3306:3306"
    environment:
      - MYSQL_ROOT_PASSWORD=db1004
    restart: unless-stopped
    command:
      - --character-set-server=utf8mb4
      - --collation-server=utf8mb4_unicode_ci
      - --local-infile=1
      - --secure-file-priv=
    volumes:
      - mysql-data:/var/lib/mysql
      - mysql-conf:/etc/mysql/conf.d
      - mysql-initdb:/docker-entrypoint-initdb.d

volumes:
  mysql-data:
    external: true
  mysql-conf:
    external: true
  mysql-initdb:
    external: true
  • docker-compose 파일을 수정
    • --local-infile=1 : 로컬에서의 csv 파일 삽입 허용
    • --secure-file-priv= : 모든 경로에서의 파일 insert 허용
docker-compose -f docker-compose-mysql.yml down
docker-compose -f docker-compose-mysql.yml up -d
  • docker-compose 명령어를 통해 컨테이너 상태 변경 후 다시 실행

데이터베이스 초기화

drop database board_db_local;
create database board_db_local;