어떠한 프로그램이나 웹사이트를 만들때
가장 기본적인 데이터처리 방식이 바로
CRUD(Create,Read,Update,Delete)
이 네가지만 잘 구현해도 최소한
"저새끼 버스타네" 소리는 안들을것이다.
이 CRUD를 편안하게 개발할 수 있게 해주는 프레임워크가 바로 스프링부트이다
일단 프로젝트가 만들어지면
src안에서만 작업이 이뤄지고
나머지 .gradle .idea gradle 등등 거의 볼일이 없다.
src를 보자
프로젝트를 생성하면
자동으로 main과 test가 생성된다
간단하게 먼저 말하면
main은 실제 개발할 서비스를 구현하는 곳이고
test는 그 서비스를 개발하는 과정에서 만약 어떤 메소드를 구현하려고하는데
그 메소드가 잘 작동되는지 메소드단위로 테스트하기위한 곳이다.
test는 스프링부트 처음 공부할때만 쓰고
프로젝트할때는 test쪽은 아예 사용하지않았다
main을 먼저 살펴보자
main에는 java와 resources 라는 디렉터리가 있다
java디렉터리는 백엔드 성향이 강한데 간단히 말해
데이터들을 주고 받고 처리해주는 java파일들이 주를 이룰것이고
resources디렉터리는 프론트 성향이 강하며
html,css,javascript 등의 파일들이 주를 이룬다.
1.외부설정파일
application.properties를 연다
application.properties는 외부설정파일이다
이 파일은 스프링부트가 애플리케이션을 구동할 때 자동으로 로딩하는 파일이다.
key - value 형식으로 값을 정의하면 애플리케이션에서 참조하여 사용할 수 있다
이파일안에 값들을 다른곳에서 참조할수도있고
properties파일들을 여러개 생성할수도있고
여러므로 활용하능하나 지금은
서버포트 설정만 하겠다
참고로 나중엔 얘를 지우고 application.yml 를 쓸것이다
yml이 더 편함(계층식표현으로 가독성이 좋고 불필요한 반복을 줄여줌)
나중에 yml할때 자세히 설명하겠음
서버포트추가하기
처음 프로젝트생성시 spring web 디펜던시를 추가해줬는데
spring web 디펜던시 안에는 톰캣서버가 내장되어있다
그래서 서버를 사용하기 위해 서버포트를 설정해줘야하는데
서버포트를 먼저 설정해보자!
server.port = 8888
이거 생략시 8080이 기본값이다
mysql설정
spring.datasource.url=jdbc:mysql://localhost:3306/aidev?useUnicode=true&serverTimezone=Asia/Seoul
spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver
spring.datasource.username=root
spring.datasource.password=1111
localhost는 자기 pc에서만 접속가능한 local주소
3306은 mysql전용포트
useUnicode를 해야 한글깨짐을 방지
serverTimezone=Asia/Seoul로 해야 시간데이터를 다룰때 한국시간대를 받아올수있음
JPA설정
JPA를 알기전에 간단하게 ORM부터 알아야함
ORM은 (Object-Relational Mapping)
글자 그대로 객체랑 db를 매핑(연결)시켜주는 기술
JPA(Java Persistent API)는 이 ORM을 표준으로한 API 인터페이스 모음이고
인터페이스라 직접 사용은 못하고 구현체가 있어야함
JPA를 구현한것이 바로 Hibernate, Ecilpselink , Datanucleus
Spring Data JPA는 JPA를 사용하기 쉽게 스프링에서 제공하는 모듈로
내부적으로 JPA 구현체(Hibernate)를 이용한다
쿼리문을 직접 작성하지 않아도 알아서 척척 CRUD 해줌
하지만 프로젝트가 거대하고 복잡해지면
직접 쿼리문을 작성해야할때가 있음
지금은 설정간단히 하겠음
spring.jpa.show-sql=true
spring.jpa.database=mysql
spring.jpa.show-sql=ture
: 구현체인 Hibernate가 db주고받으면서 자동으로 작성한 쿼리문들을 콘솔창에 다 보여주는 기능 활성화
spring.jpa.jatabase=mysql
: JPA에게 DB는 mysql을 사용한다고 알려줌
여기까지가 기본적인 세팅이고 추후에
yml을 통해 더 추가될것임
'웹 개발 > 🍃 SpringBoot' 카테고리의 다른 글
SpringBoot | Controller - PageController (0) | 2023.03.27 |
---|---|
SpringBoot | REST API, HTTP Method (0) | 2023.03.21 |
SpringBoot | MVC패턴 (0) | 2023.03.21 |
SpringBoot | 세팅(1) (0) | 2023.03.05 |
Spring | 스프링역사,객체지향방법론 (0) | 2022.12.05 |