diff --git a/.env.example b/.env.example
index 3d8eacd42cc7f13b0a90c0ccd04be34a1aaa781b..202fdfbf05e5d8e4152bf7b53ea2c37e7aa7b436 100644
--- a/.env.example
+++ b/.env.example
@@ -1,12 +1,7 @@
 # 해당 파일 수정후 .env로 변경
 
-# MongoDB 루트 유저 이름
-DB_USER=example
-# MongoDB 루트 유저 비밀번호
-DB_PASSWORD=samplepwd
-# MongoDB 데이터베이스 이름
-DB_NAME=datadb
-# 서버 이름(localhost일시 자동으로 도메인 설정)
-SERVER_NAME=localhost
-# 유튜브 API 키
-YOUTUBE_API_KEY=sampleapikey
\ No newline at end of file
+# MySQL 루트 비밀번호(5자 이상 특수문자, 공백 제외)
+MYSQL_ROOT_PASSWORD=example
+
+# MySQL 데이터베이스 이름
+MYSQL_DATABASE=db_name
\ No newline at end of file
diff --git a/.gitignore b/.gitignore
index 428c69b6c294e2c55a3c45d790d0a0c4b649f456..2e166e671e2dc8527b8f47499dc1c96aa25427bd 100644
--- a/.gitignore
+++ b/.gitignore
@@ -2,5 +2,4 @@ node_modules
 .vscode
 db/data
 .env
-ssl/*.pem
-ssl/certbot/*
\ No newline at end of file
+front/nginx/ssl/*.pem
\ No newline at end of file
diff --git a/ProjectGuidelines.md b/ProjectGuidelines.md
index cf4dfa6f8320889996bbfd031b1237a94751b001..0c8b1afc423cdb165db3675b5cef608ad49f673b 100644
--- a/ProjectGuidelines.md
+++ b/ProjectGuidelines.md
@@ -73,19 +73,6 @@ git rebase A
 ### 로컬에서 작업 중 ssl 인증서 발급
 > ! 윈도우 작업시 wsl 환경에서 작업 필요
 ```sh
-./setup.sh
+cd front/nginx/ssl
+sudo ./setup_ssl.sh
 ```
-> 필요시 패키지 수동 설치 후 진행
-
-#### 참고사항
-* nginx가 설치되어 기본 포트랑 충돌시
-```sh
-netstat -tunlp | grep 80
-```
-> 80번 포트 사용중인 프로그램 종료 후 진행
-```sh
-sudo systemctl stop nginx
-```
-
-### .env 파일 수정 시
-이젠 setup.sh 실행시 .env.example 토대로 자동 생성되나 YOUTUBE_API_KEY 수정 필요
\ No newline at end of file
diff --git a/docker-compose.yaml b/docker-compose.yaml
index beb06b6484420c35e1c277691d8d22bd63739170..61718ca3cca0b1339569d24e3f56c739c7d053a7 100644
--- a/docker-compose.yaml
+++ b/docker-compose.yaml
@@ -19,10 +19,10 @@ services:
       mybridge:
         ipv4_address: 172.20.0.4
     ports:
-      - "27017:27017"
+      - "3307:3306"
     volumes:
-      - ./db/data:/data/db
-      - ./db/init.js:/docker-entrypoint-initdb.d/init.js
+      - ./db/data:/var/lib/mysql
+      - ./db/init.sql:/docker-entrypoint-initdb.d/init.sql
     restart: always
 
   wss-back:
@@ -46,8 +46,6 @@ services:
       context: ./front
       dockerfile: Dockerfile
     container_name: wss-front
-    env_file:
-      - .env
     depends_on:
       - wss-back
     networks:
@@ -59,32 +57,7 @@ services:
     volumes:
       - ./front/src:/app/src
       - ./front/public:/app/public
-      - ./ssl/fullchain.pem:/etc/nginx/ssl/fullchain.pem
-      - ./ssl/privkey.pem:/etc/nginx/ssl/privkey.pem
-      - ./ssl/certbot/conf:/etc/letsencrypt
-      - ./ssl/certbot/www:/var/www/certbot
-    command: >
-      /bin/sh -c '
-      /etc/nginx/env.sh &&
-      nginx -g "daemon off;" &
-      while :; do
-        sleep 6h &
-        wait $${!}
-        nginx -s reload
-      done
-      '
+      - ./front/nginx/ssl:/etc/nginx/ssl
+    environment:
+      - SERVER_NAME=fiturring.kro.kr, localhost
     restart: always
-
-  wss-certbot:
-    image: certbot/certbot
-    container_name: wss-certbot
-    env_file:
-      - .env
-    volumes:
-      - ./ssl/certbot/conf:/etc/letsencrypt
-      - ./ssl/certbot/www:/var/www/certbot
-    entrypoint: "/bin/sh -c 'trap exit TERM; while :; do certbot renew; sleep 12h & wait $${!}; done;'"
-    networks:
-      mybridge:
-        ipv4_address: 172.20.0.5
-    restart: always
\ No newline at end of file
diff --git a/down.sh b/down.sh
deleted file mode 100755
index 12aad936a58ed043cddf61e10a2a04efeb681f2f..0000000000000000000000000000000000000000
--- a/down.sh
+++ /dev/null
@@ -1 +0,0 @@
-docker-compose down -v;
\ No newline at end of file
diff --git a/front/nginx/env.sh b/front/nginx/env.sh
deleted file mode 100755
index b86c8f6e30e040643ed81866e2211d730d8fb8e2..0000000000000000000000000000000000000000
--- a/front/nginx/env.sh
+++ /dev/null
@@ -1,9 +0,0 @@
-# front/nginx/env.sh
-if [ "$SERVER_NAME" = "localhost" ]; then
-    envsubst '${SERVER_NAME}' < /etc/nginx/templates/local-nginx.conf.template > /etc/nginx/nginx.conf
-else
-    envsubst '${SERVER_NAME}' < /etc/nginx/templates/server-nginx.conf.template > /etc/nginx/nginx.conf
-fi
-
-# locations.conf의 내용으로 # INSERT_LOCATIONS_HERE를 교체
-sed -i -e '/# INSERT_LOCATIONS_HERE/r /etc/nginx/locations.conf' -e '/# INSERT_LOCATIONS_HERE/d' /etc/nginx/nginx.conf
\ No newline at end of file
diff --git a/front/nginx/locations.conf b/front/nginx/locations.conf
deleted file mode 100644
index 3e66be883963281fcf837fa3fab62523e75f6c2f..0000000000000000000000000000000000000000
--- a/front/nginx/locations.conf
+++ /dev/null
@@ -1,24 +0,0 @@
-# front/nginx/locations.conf
-location / {
-    try_files $uri $uri/ index.html; # 추가: React Router를 위한 설정
-}
-
-location /uptime {
-    try_files $uri /uptime.html =404;
-}
-
-location /robots.txt {
-    try_files $uri /robots.txt =404;
-}
-
-location /src/ {
-    alias /app/src/;
-}
-
-location /api/ {
-    proxy_pass http://backend;
-    proxy_set_header Host $host;
-    proxy_set_header X-Real-IP $remote_addr;
-    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
-    proxy_set_header X-Forwarded-Proto $scheme;
-}
\ No newline at end of file
diff --git a/front/nginx/local-nginx.conf.template b/front/nginx/nginx.conf
similarity index 51%
rename from front/nginx/local-nginx.conf.template
rename to front/nginx/nginx.conf
index 40a9ef40ec149ef404f1a0629886e43e73d6ba73..ccdead485cc17d7ac7b370602c4cea00f4b69202 100644
--- a/front/nginx/local-nginx.conf.template
+++ b/front/nginx/nginx.conf
@@ -17,7 +17,7 @@ http {
 
     server {
         listen 80;
-        server_name ${SERVER_NAME};
+        server_name fiturring.kro.kr localhost;
 
         # Redirect all HTTP requests to HTTPS
         return 301 https://$host$request_uri;
@@ -25,7 +25,7 @@ http {
 
     server {
         listen 443 ssl;
-        server_name ${SERVER_NAME};
+        server_name fiturring.kro.kr localhost;
 
         ssl_certificate /etc/nginx/ssl/fullchain.pem;
         ssl_certificate_key /etc/nginx/ssl/privkey.pem;
@@ -35,7 +35,29 @@ http {
 
         root   /usr/share/nginx/html;
 
-        # INSERT_LOCATIONS_HERE
+        location / {
+            try_files $uri $uri/ index.html; # 추가: React Router를 위한 설정
+        }
+
+        location /uptime {
+            try_files $uri /uptime.html =404;
+        }
+
+        location /robots.txt {
+            try_files $uri /robots.txt =404;
+        }
+
+        location /src/ {
+            alias /app/src/;
+        }
+
+        location /api/ {
+            proxy_pass http://backend;
+            proxy_set_header Host $host;
+            proxy_set_header X-Real-IP $remote_addr;
+            proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
+            proxy_set_header X-Forwarded-Proto $scheme;
+        }
 
         error_page 500 502 503 504 /50x.html;
         location = /50x.html {
diff --git a/front/nginx/server-nginx.conf.template b/front/nginx/server-nginx.conf.template
deleted file mode 100644
index e2f1b8e51f024b9a0757ba15e668794c2910e9cb..0000000000000000000000000000000000000000
--- a/front/nginx/server-nginx.conf.template
+++ /dev/null
@@ -1,52 +0,0 @@
-worker_processes  1;
-
-events {
-    worker_connections  1024;
-}
-
-http {
-    include       mime.types;
-    default_type  application/octet-stream;
-
-    sendfile        on;
-    keepalive_timeout  65;
-
-    upstream backend {
-        server 172.20.0.3:8080; # wss-back
-    }
-
-    server {
-        listen 80;
-        server_name ${SERVER_NAME};
-        server_tokens off;
-
-        location /.well-known/acme-challenge/ {
-            allow all;
-            root /var/www/certbot;
-        }
-
-        location / {
-            return 301 https://$host$request_uri;
-        }
-    }
-
-    server {
-        listen 443 ssl;
-        server_name ${SERVER_NAME};
-        server_tokens off;
-
-        ssl_certificate /etc/letsencrypt/live/${SERVER_NAME}/fullchain.pem;
-        ssl_certificate_key /etc/letsencrypt/live/${SERVER_NAME}/privkey.pem;
-        include /etc/letsencrypt/options-ssl-nginx.conf;
-        ssl_dhparam /etc/letsencrypt/ssl-dhparams.pem;
-
-        root   /usr/share/nginx/html;
-
-        # INSERT_LOCATIONS_HERE
-
-        error_page 500 502 503 504 /50x.html;
-        location = /50x.html {
-            root /usr/share/nginx/html;
-        }
-    }
-}
\ No newline at end of file
diff --git a/ssl/setup_ssl.sh b/front/nginx/ssl/setup_ssl.sh
similarity index 58%
rename from ssl/setup_ssl.sh
rename to front/nginx/ssl/setup_ssl.sh
index b9f5d7e843de261c6ca09386d3142f8d074409f1..4d64141f9acdcd28e3d5f9eaa36d6656e4b4fa6e 100755
--- a/ssl/setup_ssl.sh
+++ b/front/nginx/ssl/setup_ssl.sh
@@ -1,13 +1,5 @@
 #!/bin/sh
 
-# .env 파일 로드
-if [ -f ../.env ]; then
-    export $(grep -v '^#' ../.env | xargs)
-else
-    echo ".env 파일을 찾을 수 없습니다. .env.example을 사용하여 .env 파일을 생성하세요."
-    exit 1
-fi
-
 # mkcert 설치 확인 및 설치
 install_mkcert() {
   if ! command -v mkcert >/dev/null 2>&1; then
@@ -45,27 +37,16 @@ install_local_ca() {
 
 # SSL 인증서 발급 및 이동
 generate_and_move_ssl_certificates() {
-  # IS_LOCAL이 true이면 localhost, 아니면 SERVER_NAME 사용
-  if [ "$IS_LOCAL" = "true" ]; then
-    local domains="localhost"
-  else
-    local domains="$SERVER_NAME"
-  fi
+  local domains="localhost fiturring.kro.kr" # 필요한 도메인 추가
 
   echo "SSL 인증서 발급 중... 도메인: $domains"
   mkcert $domains
 
-  # 정확한 인증서 파일 이름을 확인하고 수정
-  local cert_file="${domains}.pem"
-  local key_file="${domains}-key.pem"
+  # 인증서 파일 이름 변경 및 이동
+  mv "localhost+1.pem" "fullchain.pem"
+  mv "localhost+1-key.pem" "privkey.pem"
 
-  if [ -f "$cert_file" ] && [ -f "$key_file" ]; then
-    mv "$cert_file" "fullchain.pem"
-    mv "$key_file" "privkey.pem"
-    echo "인증서 파일이 $(pwd)에 fullchain.pem 및 privkey.pem으로 저장되었습니다."
-  else
-    echo "인증서 파일 생성에 실패했습니다. 파일이 존재하지 않습니다: $cert_file 또는 $key_file"
-  fi
+  echo "인증서 파일이 ${ssl_dir}에 fullchain.pem 및 privkey.pem으로 저장되었습니다."
 }
 
 # 스크립트 실행
diff --git a/setup.sh b/setup.sh
deleted file mode 100755
index b96751ab1f6357672ffcf33378c05b94a7a3d96a..0000000000000000000000000000000000000000
--- a/setup.sh
+++ /dev/null
@@ -1,29 +0,0 @@
-# .env 파일 로드
-if [ -f .env ]; then
-    export $(grep -v '^#' .env | xargs)
-else
-    cp .env.example .env
-    echo -e "\e[31m.env파일이 설정되지 않아 기본 설정 파일을 토대로 새 .env 파일을 생성하였습니다. .env 파일 수정을 권장합니다\e[0m"
-    export $(grep -v '^#' .env | xargs)
-fi
-
-echo "SERVER_NAME: $SERVER_NAME"
-
-docker-compose down -v
-
-if [ "$SERVER_NAME" = "localhost" ]; then
-    if [ ! -f ssl/fullchain.pem ]; then
-        cd ssl
-        sudo ./setup_ssl.sh
-        cd ..
-    fi
-else
-    if [ ! -d ssl/certbot ]; then
-        cd ssl
-        sudo ./init-letsencrypt.sh -y
-        cd ..
-    fi
-fi
-
-sudo rm -rf db/data
-docker-compose up -d --build
\ No newline at end of file
diff --git a/ssl/init-letsencrypt.sh b/ssl/init-letsencrypt.sh
deleted file mode 100755
index 9d65edb4b0b14abba482f071aeb05f352df1b48c..0000000000000000000000000000000000000000
--- a/ssl/init-letsencrypt.sh
+++ /dev/null
@@ -1,142 +0,0 @@
-#!/bin/bash
-
-# 필요한 패키지 설치 확인 및 설치
-echo "### Checking and installing required packages..."
-packages=(curl docker docker-compose openssl)
-
-# 패키지 매니저 확인
-if command -v apt-get &> /dev/null; then
-    PKG_MANAGER="apt-get"
-    PKG_UPDATE="apt-get update"
-elif command -v yum &> /dev/null; then
-    PKG_MANAGER="yum"
-    PKG_UPDATE="yum update"
-else
-    echo "지원되지 않는 패키지 매니저입니다."
-    exit 1
-fi
-
-# 패키지 매니저 업데이트
-sudo $PKG_UPDATE
-
-# 필요한 패키지 설치
-for pkg in "${packages[@]}"; do
-    if ! command -v $pkg &> /dev/null; then
-        echo "$pkg 설치 중..."
-        sudo $PKG_MANAGER install -y $pkg
-    fi
-done
-
-# Docker 서비스 실행 확인 및 시작
-if ! systemctl is-active --quiet docker; then
-    echo "Docker 서비스 시작 중..."
-    sudo systemctl start docker
-fi
-
-# .env 파일 로드
-if [ -f ../.env ]; then
-  export $(grep -v '^#' ../.env | xargs)
-fi
-
-if [ -z "$SERVER_NAME" ]; then
-  echo "Error: SERVER_NAME environment variable is not set."
-  exit 1
-fi
-
-if ! [ -x "$(command -v docker-compose)" ]; then
-  echo 'Error: docker-compose is not installed.' >&2
-  exit 1
-fi
-
-domains=("${SERVER_NAME}")
-rsa_key_size=4096
-data_path="./certbot"
-email="rudghrnt12@naver.com" # Adding a valid address is strongly recommended
-staging=1 # Set to 1 if you're testing your setup to avoid hitting request limits
-
-# -y 옵션 처리
-auto_yes=false
-while getopts "y" opt; do
-  case $opt in
-    y) auto_yes=true ;;
-    *) ;;
-  esac
-done
-
-if [ -d "$data_path" ]; then
-  if [ "$auto_yes" = true ]; then
-    decision="y"
-  else
-    read -p "Existing data found for $domains. Continue and replace existing certificate? (y/N) " decision
-  fi
-  if [ "$decision" != "Y" ] && [ "$decision" != "y" ]; then
-    exit
-  fi
-fi
-
-
-if [ ! -e "$data_path/conf/options-ssl-nginx.conf" ] || [ ! -e "$data_path/conf/ssl-dhparams.pem" ]; then
-  echo "### Downloading recommended TLS parameters ..."
-  mkdir -p "$data_path/conf"
-  curl -s https://raw.githubusercontent.com/certbot/certbot/master/certbot-nginx/certbot_nginx/_internal/tls_configs/options-ssl-nginx.conf > "$data_path/conf/options-ssl-nginx.conf"
-  curl -s https://raw.githubusercontent.com/certbot/certbot/master/certbot/certbot/ssl-dhparams.pem > "$data_path/conf/ssl-dhparams.pem"
-  echo
-fi
-
-echo "### Creating dummy certificate for $domains ..."
-path="/etc/letsencrypt/live/$domains"
-mkdir -p "$data_path/conf/live/$domains"
-docker-compose run --rm --entrypoint "\
-  openssl req -x509 -nodes -newkey rsa:$rsa_key_size -days 1\
-    -keyout '$path/privkey.pem' \
-    -out '$path/fullchain.pem' \
-    -subj '/CN=localhost'" wss-certbot
-echo
-
-
-echo "### Starting wss-front ..."
-docker-compose up --force-recreate -d wss-front
-echo
-
-echo "### Deleting dummy certificate for $domains ..."
-docker-compose run --rm --entrypoint "\
-  rm -Rf /etc/letsencrypt/live/$domains && \
-  rm -Rf /etc/letsencrypt/archive/$domains && \
-  rm -Rf /etc/letsencrypt/renewal/$domains.conf" wss-certbot
-echo
-
-
-echo "### Requesting Let's Encrypt certificate for $domains ..."
-#Join $domains to -d args
-domain_args=""
-for domain in "${domains[@]}"; do
-  domain_args="$domain_args -d $domain"
-done
-
-# Select appropriate email arg
-case "$email" in
-  "") email_arg="--register-unsafely-without-email" ;;
-  *) email_arg="--email $email" ;;
-esac
-
-# Enable staging mode if needed
-if [ $staging != "0" ]; then staging_arg="--staging"; fi
-
-docker-compose run --rm --entrypoint "\
-  certbot certonly --webroot -w /var/www/certbot \
-    $staging_arg \
-    $email_arg \
-    $domain_args \
-    --rsa-key-size $rsa_key_size \
-    --agree-tos \
-    --force-renewal" wss-certbot
-echo
-
-# 인증서 복사
-echo "### Copying certificate to desired path ..."
-sudo cp "/etc/letsencrypt/live/${domains}/fullchain.pem" "$data_path/conf/live/${domains}/fullchain.pem"
-sudo cp "/etc/letsencrypt/live/${domains}/privkey.pem" "$data_path/conf/live/${domains}/privkey.pem"
-echo
-
-echo "### Reloading wss-front ..."
-docker-compose exec wss-front nginx -s reload
diff --git a/up.sh b/up.sh
deleted file mode 100755
index 68cdf23ea4a6845bc66796a34841a0f2363088f5..0000000000000000000000000000000000000000
--- a/up.sh
+++ /dev/null
@@ -1 +0,0 @@
-docker-compose down -v; sudo rm -rf db/data; docker-compose up -d --build
\ No newline at end of file