본문 바로가기
Backend 🧦/Java 🌈

[Spring boot] 01 준비작업(1) - IntelliJ 프로젝트 생성, DB 연결

by 서니서닝 2023. 1. 20.
728x90

1. Spring 프로젝트 생성 🌱

https://start.spring.io/

사이트에 접속하면 다음과 같은 페이지가 뜬다.

설정은 다음과 같이 해주었다.

 

  • Project : Gradle - Groovy
  • Language : Java
  • Spring Boot : 2.7.8
  • Project Meatadata : 위의 사진 참고

 

Project Metadata가 무엇인지 알고 싶을 때

더보기

Project Meatadata?

Group : 보통 기업의 도메인 명, 개인 프로젝트라면 자신의 블로그 도메인을 사용하던지 자유롭게 작성할 수 있음

Artifact : 빌드 결과물 이름

Name : 이름

Description : 프로젝트 설명

Package name : 패키지 이름

Packaging : 배포형태

Java : 자바 버전 선택

Dependecy를 검색해서 추가한다.

스프링 프로젝트에서 사용할 라이브러리를 추가하는 단계이다. Web 프로젝트를 하려면 Spring Web을 필수로 추가해야한다.

아직 배우는 과정이라 이리저리 검색을 하면서 추가했다.

처음 스프링 백엔드를 맡았을 때 MyBatis를 이용하였었는데, 이번에는 JPA를 이용해보기로 했다.

 

모두 선택되었으면, generate하여 프로젝트를 진행하고자 하는 경로에 zip을 풀어준다.

 

 

 

2.  Application.properties 📨

인텔리제이로 프로젝트를 연 모습이다.

applicaiton.properties를 먼저 설정해준다.

 

이 파일은 스프링부트가 애플리케이션을 구동할 때 자동으로 로딩하는 파일이다.

개발환경, 운영환경, 실제 서비스 등 다양한 환경에 따른 설정 옵션을 적용할 수 있다.

다양한 환경에서 배포될 때마다 환경에 따른 설정값을 프로퍼티 파일을 통해 코드 변경없이 바꿀 수 있다.

key-value 형식으로 값을 정의하여 사용한다.

 

1) DB 연결

스프링부트에서 밀고있는 h2 데이터베이스를 사용할 경우에는 AutoConfigure에서 설정을 잡아주기 때문에 별도의 설정이 필요없다고 한다. (사용해본적이 없어서 자세히 알지 못함)

하지만 MySQL을 사용한다면application.properties 파일에서 커넥션 정보를 작성하여 설정을 잡아줘야 한다.

 

  • drive-class-name
    • com.mysql.jdbc.Driver / com.mysql.cj.jdbc.Driver  2가지 존재
    • 전자는 Deprecated이므로 com.mysql.cj.jdbc.Driver를 사용하도록 합니다.
  • url
  • username/password
    • 계정명과 비밀번호 작성

 

실행 시 잘 돌아가면 연동끝!

 

 

2) User 클래스

properties에 아래 코드를 추가하여 DB에 잘 들어가는지 확인해준다.

spring.jpa.hibernate.ddl-auto=create
spring.jpa.show-sql=true
  • ddl-auto
    • none: 아무 일도 안 일어남 (초기값)
    • create: 애플리케이션이 실행될 때만 drop 하고 다시 create 함
    • update: 변경된 스키마만 적용
    • validate: 변경된 스키마가 있는지 확인만 함, 변경이 있을 시 애플리케이션 종료
    • create-drop: create와 비슷하지만 애플리케이션 종료 시에 drop 함

 

됐으면 src/main/java/com.~ 패키지 안에 User 클래스를 생성한다.

package com.hamburger_develop.badminton_club;

import lombok.Getter;

import javax.persistence.*;

@Entity
@Getter
public class User {

    @Id
    @GeneratedValue(strategy = GenerationType.IDENTITY)
    private Long id;

    @Column(nullable = false)
    private String name;
}
  • @Entity : 아래에 정의된 필드들을 바탕으로 데이터베이스를 만들어주는 어노테이션
  • @Id : Primary key와 같은 의미를 가진 어노테이션
  • @GeneratedValue : Primary key가 자동으로 1씩 증가하는 형태로 생성할지 등을 결정하는 어노테이션

 

 

데이터 베이스와 연결이 잘 된것을 알 수 있다.

 

 

 

📖 reference

스프링 부트 프로젝트 만들기 - Spring Initializr 웹 도구 사용

🙈[SpringBoot] Mysql 연동🐵

Spring boot를 이용한 게시판 만들기 - JPA를 이용하여 데이터베이스 연결(1)

728x90

댓글