의존성 확인
plugins {
id 'java'
id 'org.springframework.boot' version '3.2.10'
id 'io.spring.dependency-management' version '1.1.6'
}
group = 'com.tenco'
version = '0.0.1-SNAPSHOT'
java {
toolchain {
languageVersion = JavaLanguageVersion.of(17)
}
}
configurations {
compileOnly {
extendsFrom annotationProcessor
}
}
repositories {
mavenCentral()
}
dependencies {
implementation 'org.springframework.boot:spring-boot-starter-data-jpa'
implementation 'org.springframework.boot:spring-boot-starter-mustache'
implementation 'org.springframework.boot:spring-boot-starter-web'
compileOnly 'org.projectlombok:lombok'
developmentOnly 'org.springframework.boot:spring-boot-devtools'
runtimeOnly 'com.h2database:h2'
runtimeOnly 'com.mysql:mysql-connector-j'
annotationProcessor 'org.projectlombok:lombok'
testImplementation 'org.springframework.boot:spring-boot-starter-test'
testRuntimeOnly 'org.junit.platform:junit-platform-launcher'
}
tasks.named('test') {
useJUnitPlatform()
}
패키지 설정
MVC, DDD에 대한 개념 공부하기
application.yml
spring:
profiles:
active:
- dev #활성화할 프로필 설정
application-dev.yml
server:
servlet:
encoding:
charset: utf-8
force: true
port: 8080
spring:
mustache:
servlet:
expose-session-attributes: true # Mustache 템플릿에서 세션 속성에 접근할 수 있도록 허용
expose-request-attributes: true # Mustache 템플릿에서 요청 속성에 접근할 수 있도록 허용
datasource:
driver-class-name: org.h2.Driver # 데이터베이스 드라이버로 H2 DB를 사용
url: jdbc:h2:mem:test;MODE=MySQL # H2 인메모리 데이터베이스를 MySQL 호환 모드로 사용 (테스트용)
username: sa # 데이터베이스 연결 시 기본 사용자 이름
password: # 데이터베이스 기본 비밀번호 (비어 있음)
h2:
console:
enabled: true # H2 데이터베이스 콘솔을 활성화하여 브라우저에서 데이터베이스를 관리할 수 있도록 함
sql:
init:
data-locations:
- classpath:db/data.sql # 애플리케이션 초기화 시 실행할 데이터 삽입 SQL 파일의 경로 (data.sql)
jpa:
hibernate:
ddl-auto: create # 애플리케이션이 시작될 때 데이터베이스 테이블을 자동으로 생성
show-sql: true # Hibernate가 실행하는 SQL 쿼리를 콘솔에 출력
properties:
hibernate:
format_sql: true # 출력되는 SQL 쿼리를 포맷팅하여 읽기 쉽게 출력
defer-datasource-initialization: true # 데이터베이스 초기화가 지연되도록 설정하여 JPA 설정 후에 데이터 초기화
output:
ansi:
enabled: always # 콘솔 출력 시 ANSI 색상을 항상 사용하도록 설정 (색상을 통해 로그를 더 쉽게 구분 가능)
insert into board_tb(title, content, created_at) values('제목1','내용1',now());
insert into board_tb(title, content, created_at) values('제목2','내용2',now());
insert into board_tb(title, content, created_at) values('제목3','내용3',now());
insert into board_tb(title, content, created_at) values('제목4','내용4',now());
header.mustache
<!DOCTYPE html>
<html lang="en">
<head>
<title>Blog</title>
<meta charset="utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1" />
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.7.1/jquery.min.js"></script>
<link href="https://cdn.jsdelivr.net/npm/bootstrap@5.3.0/dist/css/bootstrap.min.css" rel="stylesheet"/>
<script src="https://cdn.jsdelivr.net/npm/bootstrap@5.3.0/dist/js/bootstrap.bundle.min.js"></script>
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.5.1/css/all.min.css">
</head>
<body>
<nav class="navbar navbar-expand-sm bg-dark navbar-dark">
<div class="container-fluid">
<a class="navbar-brand" href="/">Metacoding</a>
<button class="navbar-toggler" type="button" data-bs-toggle="collapse" data-bs-target="#collapsibleNavbar">
<span class="navbar-toggler-icon"></span>
</button>
<div class="collapse navbar-collapse" id="collapsibleNavbar">
<ul class="navbar-nav">
<li class="nav-item">
<a class="nav-link" href="/join-form">회원가입</a>
</li>
<li class="nav-item">
<a class="nav-link" href="/login-form">로그인</a>
</li>
<li class="nav-item">
<a class="nav-link" href="/board/save-form">글쓰기</a>
</li>
<li class="nav-item">
<a class="nav-link" href="/user/update-form">회원정보보기</a>
</li>
<li class="nav-item">
<a class="nav-link" href="/logout">로그아웃</a>
</li>
</ul>
</div>
</div>
</nav>
footer.mustache
<div class="bg-light p-5 text-center">
<h4>Created by teco</h4>
<h5>☎ 010-1234-1234s</h5>
<button class="btn btn-outline-primary">고객센터</button>
<button class="btn btn-outline-primary">오시는길</button>
</div>
</body>
</html>
728x90
'Spring boot > Blog 프로젝트 만들기(JPA)' 카테고리의 다른 글
완성 코드 STEP 02 - 사용자 관리 기본 코드 추가 및 설정( JPA API , JPQL 쿼리 사용, 인증(세션 로직 추가 ) (0) | 2024.10.07 |
---|---|
완성 코드 STEP 01 - 익명 게시판 만들기 (0) | 2024.10.07 |
Mustache 란 뭘까? (2) | 2024.10.07 |
템플릿 엔진이란 뭘까? (2) | 2024.10.07 |
[Blog] 블로그 프로젝트 만들기 - 7 (글 수정 API 만들기) (4) | 2024.10.02 |