IT지식/첫 번째 사이드 프로젝트

0.Docker React SpringBoot MySQL 프로젝트 환경설정

맨땅에헤딩개발자 2025. 2. 16. 14:10

0. Docker 설치

 

참고 - https://steady-snb.tistory.com/63

 

1. JDK 다운로드 후 환경변수 설정

각 운영체제에 맞는 jdk를 다운받은 후 환경변수 설정까지 마쳐줍니다.

 

2. IDE 다운로드

아무 IDE를 다운받아도 무관합니다.

저는 인텔리제이로 하겠습니다.

 

참고 - https://mozzi-devlog.tistory.com/45

 

 

 

3. MySQL 다운로드

 

참고 - https://code-angie.tistory.com/158#google_vignette

 

4. SpringBoot 생성

 

https://start.spring.io/ 접속 후

 

위 사진을 참고하여 자신만의 project name등을 기입 후

의존성에 Spring Web, MySQL Driver, Spring Data JPA를 추가 후 GENERATE해줍니다.

 

5. project생성

각자 c드라이브에 위에서 받은 zip파일을 압축 해제 해줍니다.

C:\my-first-project 폴더 하위에 demo라는 폴더와 함께 압축이 풀어졌는데

demo안의 파일들을 끄집어내어 아래 그림과 같이 my-first-proejct 하위에 바로 넣어줍니다.

인텔리제이를 키셔서 아래 그림을 참고하여 프로젝트를 생성해줍니다.

다음은 인텔리제이를 키셔서 project를 생성해줍니다.

위치는 방금 다운로드 받았던 C:\my-first-project 로 설정해줍니다.

name은 자기가 하고싶은 이름을 넣으시면 됩니다.

프로젝트를 처음 열었을 때 모습입니다.

만약 위의 그림과 다르게 뜨는 분들은

폴더 우클릭 후 직접 인텔리제이로 오픈해주시길 바랍니다.

 

6. setting gradle -> intelliJ IDEA로 변경

 

프로젝트 우측 상단 File -> Settings -> 

Build,Exection,Deployment -> Build Tools -> Gradle

하위 그림과 같이 Build and run부분과 Run tests 부분을 intelliJ로 변경해줍니다.

 

7. DB연동

 

7-1 application.yml 이란 파일을 생성해주고

 

7-2 DB접속정보 명시
위에 생성했던 application-private.yml파일에 밑의 그림과 같이 코드를 적어줍니다(ID및PW는 자신의 것으로 변경)

spring:
  datasource:
    url: jdbc:mysql://my-db:3306/my-first-project
    username: root
    password: pwd1234
    driver-class-name: com.mysql.cj.jdbc.Driver

 

8. Controller 생성하기

서버를 올린 후 클라이언트와 서버가 통신할 Controller를 생성해줍니다.

package com.my_first_project.demo;

import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RestController;

@RestController
public class AppController {
    @GetMapping("/")
    public String home() {

        return "My first project";
    }
}

 

9. Docker설정

마지막으로 Docker가 실행할 수 있게 설정해주는 파일들을 작성합니다.

 

9-1 Dockerfile생성

제일 상위폴더에서 New -> File -> Dockerfile(이 파일은 명으로 인식하기 때문에 파일명이 동일해야함.)

FROM openjdk:17-jdk

COPY build/libs/*SNAPSHOT.jar /app.jar

ENTRYPOINT ["java", "-jar", "/app.jar"]

 

9-2 compose.yml 생성

 

위와 동일하게

제일 상위폴더에서 New -> File -> compose.yml(이 파일은 명으로 인식하기 때문에 파일명이 동일해야함.)

services:
  my-server:
    build: .
    ports:
      - 8080:8080
    depends_on:
      my-db:
        condition: service_healthy
  my-db:
    image: mysql
    environment:
      MYSQL_ROOT_PASSWORD: pwd1234
      MYSQL_DATABASE: mydb
    volumes:
      - ./mysql_data:/var/lib/mysql
    ports:
      - 3306:3306
    healthcheck:
      test: [ "CMD", "mysqladmin", "ping" ]
      interval: 5s
      retries: 10

위 코드는 도커에 관한 내용들입니다.

제 블로그에 Docker공부에 관한 내용들을 정리해놓았습니다. 궁금하신 분들은 참고 부탁드립니다.

 

9-3 test파일 삭제

build시 충동을 일으킬 여지가 있는 파일을 삭제해줍니다.

10. Docker로 이미지를 생성하여 컨테이너로 실행해보기

 

도커 실행에 필요한 모든 파일들은 준비가 완료되었습니다.

이제 shell이나 terminal을 여셔서

./gradlew clean build

네 성공적으로 build가 된 모습을 볼 수 있습니다.

 

다음으로 compose파일을 실행시켜줍니다.

docker compose up -d --build

네 성공적으로 서버가 올라간 모습을 볼 수 있습니다.

 

 

11. MySQL에 접속해보기

workbench여셔서 새로운 Connection을 만들어줍니다.

아까 DB접속정보 적어줄 때 기입하셨던 username과 pw를 입력해주고 TestConnection을 눌려줍니다.

성공적으로 연결이 되었습니다.

다음으로 localhost:8080으로 접속이 잘 되는지 확인해줍니다.

접속이 잘 되네요 이로써 환경설정은 모두 끝났습니다.

 

'IT지식 > 첫 번째 사이드 프로젝트' 카테고리의 다른 글

생애 첫 사이드 프로젝트  (0) 2025.02.09