스프링부트2

이경현·2024년 12월 9일

spring.application.name=aws0822boot 애플리케이션 이름을 "aws0822boot"로 설정합니다.

server.address = localhost 서버 주소를 로컬호스트로 지정합니다.

server.port=8014 서버 포트를 8014로 설정합니다.

spring.datasource.url=jdbc:mysql://127.0.0.1:3306/aws0822?useSSL=false&serverTimezone=UTC&allowPublicKeyRetrieval=true :
MySQL 데이터베이스에 연결하기 위한 URL입니다. 여기서:
127.0.0.1은 데이터베이스 서버 주소(로컬호스트),
aws0822는 데이터베이스 이름,
useSSL=false는 SSL 연결을 비활성화,
serverTimezone=UTC는 서버 시간대를 UTC로 설정합니다.

spring.datasource.username=root: 데이터베이스 사용자 이름을 "root"로 설정합니다.
spring.datasource.password=1234 : 데이터베이스 비밀번호를 "1234"로 설정합니다.
spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver : MySQL JDBC 드라이버 클래스를 지정합니다.

spring.thymeleaf.prefix=classpath:templates/ : 템플릿 파일이 위치한 디렉터리를 지정합니다 (/src/main/resources/templates).
spring.thymeleaf.suffix=.html : 템플릿 파일 확장자를 .html로 지정합니다.
spring.thymeleaf.cache=false : 템플릿 캐싱을 비활성화하여 개발 중 변경 사항이 즉시 반영되도록 합니다.
server.error.whitelabel.enabled=true : 스프링 부트 기본 Whitelabel 오류 페이지를 활성화합니다.

spring.jpa.show-sql=true : 실행되는 SQL 쿼리를 콘솔에 출력하도록 설정합니다.
spring.jpa.properties.hibernate.dialect= org.hibernate.dialect.MySQLDialect : Hibernate가 사용할 MySQL 방언(dialect)을 지정합니다.
spring.jpa.defer-datasource-initialization=true : 데이터 소스 초기화를 지연시킵니다.
spring.jpa.hibernate.ddl-auto=create : 애플리케이션 실행 시 데이터베이스 스키마를 새로 생성하도록 합니다. 이는 개발 환경에서 주로 사용되며, 프로덕션 환경에서는 적합하지 않습니다.
spring.sql.init.mode=always : SQL 초기화 스크립트를 항상 실행하도록 설정합니다.
spring.sql.init.encoding=UTF-8 : SQL 초기화 파일의 인코딩을 UTF-8로 지정합니다.

랜더링
타임리프 : 컨트롤러가 전달하는 데이터를 통해 동적으로 화면을 만들어주는 템플릿 엔진이다
템플릿 엔진 : 지정된 템플릿 양식에 데이터 모델을 전달하여 동적 컨텐츠를 만들어주는 소프트웨어를 말함
특징

  • 서버사이드 html 렌더링
    템플릿 엔진은 백엔드 서버에서 html 을 동적으로 랜더링하는 용도로 사용된다
  • 네츄럴 템플릿 :
    타임리프는 순수 HTML을 유지하는 특징이 있다.

만약 백엔드 서버가 기동중이지 않는다면 정적인 순수 HTML을 보여주고, 서버 기동 후에는 웹브라우저 요청에 따른 동적 HTML을 보여준다

(렌더링 전에는 원래 HTML을 보여주다가, 서버에 의해 렌더링 되면 th 가 붙은 타임리프 태그가 원래 html의 속성, 값을 덮어씌워서 보여준다.)

이는 View 단인 HTML만 수정해야 하는 경우에 서버를 기동하지 않고도 수정 및 확인이 가능하다는 장점이 있다.

스프링 통합지원
타임리프는 스프링과 자연스럽게 통합되고, 스프링의 다양한 기능을 편리하게 사용할 수 있게 지원한다.

예시로 타임리프를 사용하면 스프링 컨테이너에 등록된 빈을 HTML 내부에서 사용할 수 있고,

또한 HTTP 관련 객체 (Request, Response, Session 등) , 각종 유틸리티 객체와 날짜 등을 간편하게 사용할 수 있다.

타임리프 사용
1. build.gradle 에 타임리프 라이브러리 추가

dependencies {
implementation 'org.springframework.boot:spring-boot-starter-thymeleaf'
implementation 'org.springframework.boot:spring-boot-starter-web'
}

  1. 웹브라우저의 요청을 처리할 컨트롤러를 생성한다

import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.GetMapping;

@Controller
public class HelloController {
@GetMapping("/hello")
public String Hello(Model model){
model.addAttribute("data", "hello!!");
return "hello";
}
}

  1. 동적컨텐츠를 처리할 html 파일 생성 Hello

    안녕하세요. 손님

Thymeleaf 템플릿 엔진이 Controller로 부터 전달받은 데이터를 ${data} 부분에 동적으로 넣어준다
주의할 점으로 Thymeleaf 엔진을 사용하기 위해 <html xmlns:"http://www.thymeleaf.org"> 부분을 넣어줘야 하고, ${data} 부분은 Controller 단의 attribute name과 동일하게 맞춰줘야 한다.

렌더링
CSR (Client-side Rendering)
클라이언트 측에서 렌더링을 처리하는 방식
클라이언트가 서버로부터 데이터를 받아옴

  • js를 이용해 동적으로 html,css,js 를 생성함
  • 브라우저에서 렌더링한다
    SSR (Server-side Rendering)
  • 서버측에서 렌더링을 처리하는 방식
  • 서버에서 html,css,js 를 생성함
    클라이언트는 이를 그대로 받아와 렌더링한다
    controller > jsp 방식
    렌더링을 마친후에 클라이언트에게 보냄
    장점 : 초기 로딩속도가빠르고 SEO에 용이하다
    단점 : 서버 부하가 증가될 수 있음

롬복 : 설치 등록
롬복 다운로드 원하는 버전으로 다운로드 받기
다운로드 받은 경로 확인하고 복사해두기
명령프롬프트에서 롬복파일로 이동하기 cd로 파일 경로 이동하기
입력하기 : java -jar lombok.jar
그 후에 설치하고 사용하기

마무리 하기

0개의 댓글