Spring MVC 구조에서 REST 를 지원하기 위해서 기존 @Controller 어노테이션에 @RestController 이라는 어노테이션이 추가되었다. @Controller 어노테이션은 View를 리턴해야 했어나, @RestController 는 Jackson Mapper의 도움으로 JSON을 리턴할 수 있게 되었다. 그 외에 REST를 지원하기 위한 다양한 어노테이션이 많이 추가되었다.

Spring 에서는 JPA ORM을 사용할 수도 있고 MyBatis라는 ORM을 사용할 수도 있다. 공공기관, 대기업같은 환경은 아직도 대부분 Mybatis ORM을 사용하고 있으나 점점 JPA 쪽으로 옮겨 가고 있는 추세이다. DB를 Oracle 이나 Mysql과 같이 하나만 쓴다면 MyBatis ORM이 좋은 선택일 수 있다. 그러나 다양한 DB 에서 사용할려면 DB마다 다 다른 Dialect를 반영해서 MyBatis 구문을 작성하기에는 개발 비용이 만만하지 않으므로 JPA가 좋은 선택이다. 여기서는 Mybatis ORM을 적용해보겠다.

로컬 DB 환경을구축하지 않았다면, 여기를 참고해서 로컬 DB 환경을 구축한다.

+ 사용된 기술

Spring Boot + Gradle + MyBatis + Swagger

소스는 아래에서 찾을수 있다.
+ https://github.com/eastflag/spring-rest-tutorial

앞에서 DB를 구축하였다면 board 테이블이 생성되었을 것이고, board 테이블에 대해서 REST api를 만들어본다. 만들려는 REST api는 다음과 같다.

1. 프로젝트 생성 및 실행

먼저 java 1.8 이상과 intelliJ IDEA 툴먼저 java 1.8 이상과...

Read more ...

2 GET 과 POST의 이해

Control 레이어 - 입력과 출력 담당 클라이언트가 http를 요청시 요청을

Read more ...

3. json 보내고 받기

VO 객체 만들기 Json은 JavaScript Object Notation이다. 스트링타입이 아니라 {...

Read more ...

4. Mybatis ORM 연동

앞에서 로컬환경에서 Docker를 띄우고 MariaDB를 이미 구동하였다. 만일 아직 DB를

Read more ...

4.1 board 생성 api

domain 패키지 생성 request 와 response 시 json 으로 데이터를

Read more ...

4.2 board 목록보기, 상세보기 api

board 라는 게시판 데이터가 쌓이게 되면 두가지의 api가 필요하게 된다.

Read more ...

4.3 board 수정 api

board 를 수정하는 api를 만든다. 관례적으로 수정하는 http 메서드는 put

Read more ...

4.4 board 삭제 api

삭제하는 http 메서드는 delete 를 사용한다. 그런데, delete도 get과 마찬가지로

Read more ...

4.5 이미지 upload – DB 저장

이미지 업로드 프로토콜 이미지를 업로드하는 방법은 두가지이다. 첫번째는 file upload

Read more ...

4.6 댓글 API

게시판 하단에 붙이 댓글 API를 만든다. 댓글 상세보기(댓글 하나를 보는

Read more ...

5. spring에 swagger 적용하기

swagger란 swagger는 REST api 문서를 자동으로 생성해주는 라이브러리이다. 예를들어서 앞에서

Read more ...