01-회원제 게시판 만들기_SpringBoot와 JPA
[공지사항] [개인적인 공부를 위한 내용입니다. 오류가 있을 수 있습니다.]
01-기본환경 설정 - SpringBoot
화면구성 : thymeleaf, DB(ORM): JPA, dependency: gradle
thymeleaf는 html에 직접 작성이 가능하고 확장성이 높다. 또한 JPA를 사용하기에 mysql query를 입력하지 않아도 사용이 가능하다.
gradle은 간단한 코드로 dependency 관리가 가능하다.
아카데미 버전의 라이센스를 부여받은 인텔리제이를 인스톨 후 new project의 Spring Initializr에 가서 환경설정을 진행하였다.

여기까지 완료 후 확인을 finish를 클릭하면 dependency를 자동으로 다운로드하며 적게는 1분안쪽으로 길게는 1분 이상 작업을 혼자 진행한다. 모든 작업이 끝나면 아래의 화면을 확인할 수 있고 BUILD SUCCESSFUL 소요시간을 확인할 수 있다.
Setting으로 가서 아래항목을 체크 표시해준다.
프로젝트 부분을 펼쳐보면 Main Method를 확인할 수 있다.

resource 폴더는 static과 template로 구성되어 있다. static은 정적자원이며 css, javascript, image 파일 등 변경이 이뤄지지 않는 것들을 정적자원이라고 한다. template은 화면용 파일로 html 파일이 들어간다. spring의 views폴더와 기능이 유사하다.
gitignore 항목은 git 올리고 싶지 않은 파일이나 폴더를 지정하는 것으로 나중에 git을 사용할 때 무시한다.
build.gradle 파일은 gradle이라는 언어로 작성된 파일로 스프링 프레임워크 버전과, dependency 버전 그리고 어떤 언어로 작성되는지 적혀있다. 추가항목이 있는 경우 해당 문구를아래와 같이 삽입한 후 코끼리 아이콘을 꼭 눌러줘야 업데이트가 정상적으로 이뤄진다.
plugins {
id 'org.springframework.boot' version '2.6.2'
id 'io.spring.dependency-management' version '1.0.11.RELEASE'
id 'java'
}
group = 'com.ex'
version = '0.0.1-SNAPSHOT'
sourceCompatibility = '11'
configurations {
compileOnly {
extendsFrom annotationProcessor
}
}
repositories {
mavenCentral()
}
dependencies {
implementation 'org.springframework.boot:spring-boot-starter-thymeleaf'
implementation 'org.springframework.boot:spring-boot-starter-web'
compileOnly 'org.projectlombok:lombok'
annotationProcessor 'org.projectlombok:lombok'
testImplementation 'org.springframework.boot:spring-boot-starter-test'
}
}
test {
useJUnitPlatform()
}
위의 코딩 중에 아래 항목이 맞게 삽입되어 있는지 확인해 본다.
dependencies {
implementation 'org.springframework.boot:spring-boot-starter-thymeleaf'
implementation 'org.springframework.boot:spring-boot-starter-web'
compileOnly 'org.projectlombok:lombok'
annotationProcessor 'org.projectlombok:lombok'
testImplementation 'org.springframework.boot:spring-boot-starter-test'
}
아래와 같이 resources 폴더 내 application.properties를 삭제한다.

resources 폴더 우클릭 new → file 선택 후 아래와 같이 application.yml 파일을 생성한다.

application.yml 파일을 열어 서버포트를 설정한다. port: 8091(각자 알아서 설정) port 작성 시 들여쓰기의 위치를 잘 지켜야 기능이 정상적으로 수행된다.
# 서버포트, DB 연결정보
server:
port: 8096
controller package를 생성해준다.

controller package 內 MainController class를 생성한다.

홈페이지(index.html)를 띄우기위해 MainController을 아래와 같이 작성한다.
package com.icia.member.controller;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.GetMapping;
@Controller
public class MainController {
@GetMapping("/")
public String index(){
System.out.println("index 호출");
System.out.println("MainController.index");
return "index";
}
}
resources 內 templates 폴더에 index.html을 생성하고 아래와 같이 작성한다.

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>index.html</title>
</head>
<body>
<h2>index.html</h2>
<h2>Hello World</h2>
</body>
</html>
index.html을 만들면 MainController에서 “index”의 빨간줄이 사라진다. index위에 ctrl키를 누르면 바로 index.html로 이동한다. 아래와 같이 프로젝트명을 확인하고 그 옆 세모버튼을 눌러 서버를 실행해준다.

그러면 화면 하단 console에 아래와 같은 화면이 표시되고 맨 하단에 Started “프로젝트명”이 정상적으로 나온다면 서버가 정상적으로 실행이 된 것이다.

여기까지 확인 후 브라우저를 실행해서 http://localhost:8091을 주소창에 입력해본다.(8091은 각자 세팅값에 따라 달라질 수 있음)

위와 같이 Hello World가 뜨면 정상적으로 작동한 것이다. 또한 콘솔창에서도 아래와 같이 찍혔는지도 확인해본다.

댓글남기기