1. Spring 프로젝트 생성 🌱
사이트에 접속하면 다음과 같은 페이지가 뜬다.
설정은 다음과 같이 해주었다.
- 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
- localhost:3306/database
- serverTimezoneUTC : URL 쿼리 스트링에 serverTimezone을 작성해주어야지 에러가 발생하지 않음
- 관련글 : MySQL(MariaDB) 서버 타임존 설정하기
- 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
'Backend 🧦 > Java 🌈' 카테고리의 다른 글
[Spring boot] 01 준비작업(2) - 프로젝트 구조, LiveReload (0) | 2023.01.29 |
---|
댓글