시작하기 전에 간단하게 JPA를 알아보자면 Java Persistence API의 약자로 자바 진영의 ORM 기술 표준이다.
여기서 ORM 도 간단하게 알고 넘어가자면 Object Relational Mapping의 약자로 객체-관계 매핑 이란 뜻이다.
객체 지향 프로그래밍은 클래스를 사용하고 관계형 데이터베이스는 테이블을 사용하는데 여기서 객체 모델과 관계형 모델 간에 불일치가 존재하는데 이 객체 간의 관계를 바탕으로 SQL을 자동으로 생성하여 불일치를 해결하는 것이 ORM이다. 즉 개발자가 따로 SQL문을 짤 필요 없이 객체를 통해 간접적으로 데이터베이스를 조작할 수 있게 되는 것이다.
그럼 이제 프로젝트를 생성하고 build.gradle 에 dependencies를 아래와 같이 추가해 준다.
dependencies {
implementation 'org.springframework.boot:spring-boot-starter-thymeleaf'
implementation 'org.springframework.boot:spring-boot-starter-data-jpa'
implementation 'org.springframework.boot:spring-boot-starter-web'
compileOnly 'org.projectlombok:lombok'
runtimeOnly 'com.h2database:h2'
annotationProcessor 'org.projectlombok:lombok'
testImplementation 'org.springframework.boot:spring-boot-starter-test'
}
화면은 thymeleaf로 간단하게 만들 것이다.
springboot에서 html 파일은 resources 밑에 templates 아래 생성하면 된다.
css나 js는 static 아래에 생성하면 되지만 여기서는 css와 js 파일은 만들지 않을 것이다.
DB는 h2를 이용할 건데 mysql 등 원하는 DB를 사용해줘도 상관없다.
controller 패키지를 하나 만들고 그 안에 BoardController 클래스를 하나 만든 뒤 아래와 같이 소스를 작성해 놓는다.
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestMapping;
@Controller
@RequestMapping("/board")
public class BoardController {
@GetMapping("/list")
public String list() {
return "list";
}
@GetMapping("/detail/{idx}")
public String detail() {
return "detail";
}
@GetMapping("/register")
public String registerGet() {
return "register";
}
@PostMapping("/register")
public String registerPost() {
return "redirect:/board/list";
}
@GetMapping("/update/{idx}")
public String updateGet() {
return "update";
}
@PostMapping("/update")
public String updatePost() {
return "redirect:/board/list";
}
@GetMapping("/delete/{idx}")
public String delete() {
return "list";
}
}
여기서 보면 리스트, 글 작성, 글 수정, 글 삭제 등 간단한 CRUD를 만들 것 이기 때문에 컨트롤러에 미리 정의해 놓은 다음 templates 아래 list.html, detail.html, register.html, update.html 파일을 만들고 서버를 동작시켜 보면 페이지가 잘 넘어가는 것을 확인해 볼 수 있다.
BoardController 파일에 뼈대는 만들어 놨으니 이제 기능들을 하나하나씩 만들면서 소스를 수정할 것이다.
DB설정 및 JPA활용은 다음 포스팅에 이어서 설명할 것이다.
'프로그래밍 > JAVA' 카테고리의 다른 글
[Spring-Boot] JPA를 활용하여 게시판 페이징 처리 하기 (0) | 2021.07.16 |
---|---|
[Spring-Boot] JPA를 활용하여 간단한 CRUD 게시판 만들기(3) (1) | 2021.07.15 |
[Spring-Boot] JPA를 활용하여 간단한 CRUD 게시판 만들기(2) (0) | 2021.07.14 |
[JAVA] swagger로 API문서 자동화 (0) | 2021.07.08 |
[Spring] Junit 테스트 (0) | 2021.06.29 |