[1] 프로젝트 준비
들어가며
프레임워크나, 언어, DB등을 이론적로 공부를 하고난후에 한번 토이 프로젝트를 통해서 실습을 해보고싶었다. 그래서 이번에 간단한 CRUD를 통해 게시판을 만들어봤다. 혼자서 기획하고 코드를 작성했기 때문에 이상하거나 오류가 날수있습니다.. 그런 부분은 댓글을 통해 공유해주시면 감사하겠습니다.
프로젝트환경
springboot -version : 2.7.17
bulid : gradle
java -version : 11
DB : Mysql_8.0.33
IDE : IntelliJ _Ultimate
OS : Windos pro
구현할 내용
- 회원가입
게시판을 만드는 목적이므로 이름,비밀번호만 입력하면 회원가입(검증 X)
- 로그인
회원가입한 정보를 바탕으로 로그인
- 로그아웃
- 게시판
글쓰기 : 로그인한 사용자만 글쓰기를 사용할수있다.
글쓰기 수정 : 입력한 비밀번호와 작성한 유저만이 수정할수있다.
글쓰기 삭제 : 작성한 유저만이 삭제할수 있다.
댓글 작성 : 로그인했을때만 댓글기능을 사용할수있다.
페이징 처리 : 한 페이지 게시글을 4개씩 보여주며, 페이지수는 3개만 보여준다.
검색 : 제목,내용 안에 검색할 내용이 포함되면 해당값을 보여준다.
조회수 : 게시글을 클릭할때마다 조회수가 1씩 늘어난다.
ER-다이어그램
인텔리 제이 설정
build.gradle
plugins {
id 'java'
id 'org.springframework.boot' version '2.7.17'
id 'io.spring.dependency-management' version '1.1.4'
}
group = 'message-board'
version = '0.0.1-SNAPSHOT'
java {
sourceCompatibility = '11'
}
configurations {
compileOnly {
extendsFrom annotationProcessor
}
}
repositories {
mavenCentral()
}
dependencies {
implementation 'org.springframework.boot:spring-boot-starter-data-jpa'
implementation 'org.springframework.boot:spring-boot-starter-jdbc'
implementation 'org.springframework.boot:spring-boot-starter-thymeleaf'
implementation 'org.springframework.boot:spring-boot-starter-validation'
implementation 'org.springframework.boot:spring-boot-starter-web'
compileOnly 'org.projectlombok:lombok'
developmentOnly 'org.springframework.boot:spring-boot-devtools'
runtimeOnly 'com.mysql:mysql-connector-j'
annotationProcessor 'org.projectlombok:lombok'
testImplementation 'org.springframework.boot:spring-boot-starter-test'
testCompileOnly 'org.projectlombok:lombok'
testAnnotationProcessor 'org.projectlombok:lombok'
}
tasks.named('bootBuildImage') {
builder = 'paketobuildpacks/builder-jammy-base:latest'
}
tasks.named('test') {
useJUnitPlatform()
}
properties.yml
기존에 applicaion.properties 을 properties.yml 로 이름을 바꾼다.
spring:
datasource:
url: jdbc:mysql://127.0.0.1:3306/[사용할 데이터베이스명]
password: [mysql 비밀번호]
username: [계정명]
driver-class-name: com.mysql.cj.jdbc.Driver
jpa:
hibernate:
ddl-auto: create [프로젝트를 시작할때마다 엔티티를 새로생성]
HomeController
@Controller
public class HomeController {
@GetMapping("/")
public String home(){
return "home";
}
}
home.html
더보기
<!DOCTYPE html>
<html xmlns:th="http://www.thymeleaf.org">
<head>
<meta charset="UTF-8">
<title>Title</title>
</head>
<body>
<h1>게시판 토이 프로젝트</h1>
<a href="#">게시판으로 이동하기</a>
<a href="#">회원가입</a>
<a href="#">로그인</a>
</body>
</html>
실행화면
사진과 같이 이런 화면이 뜬다면 준비단계가 성공한것이다!
예상 작동 장면
다음으로
다음 포스팅에는 회원가입 로그인 등을 구현해볼 예정입니다.