java, spring

[Spring Boot] 시작하기 (Spring MVC, Rest API)

isaac.kim 2021. 11. 21.
728x90
반응형

[Spring Boot] 시작하기 (Spring MVC, Rest API)

 

1. 스프링 프로젝트 생성

2. IDE에서 프로젝트 열기

3. 개발 맛보기 (REST API)

4. Spring MVC


1. 스프링 프로젝트 생성

 

Spring Boot 시작하기.

 

개발 프로젝트를 시작할 때 보통 IDE에서 [New] -> [Project] 와 같은 방법을 통해서 프로젝트를 만드는 방법도 존재하는데, Spring 웹 사이트의 스프링 부트 스타트 페이지를 이용해 프로젝트를 생성할 수도 있다.

 

아래 링크에 접속한다.

https://start.spring.io/

기본값으로 생성해도 되고, 원하는 설정으로 변경해 생성해도 된다.

주로 프로젝트를 구분하기 위해선 Group, Aritifact, Name 을 수정하면 된다.

 

반응형

 

Maven Project. Java, 2.6.0 버전, 입력란은 기본값으로 하고,

Packaging은 WAS Tomcat을 내장한 프로젝트를 사용하기 위해 Jar, Java 버전은 8로 한다.

그리고 오른쪽에 Dependencies 리스트에서 라이브러리를 추가할 수 있는데

여기선 Spring MVC 웹 에서 많이 사용되는 라이브러리를 모아놓은 Spring Web 라이브러리를 추가해 생성한다.

Generate 버튼을 눌러서 프로젝트를 생성한다.

 


2. IDE에서 프로젝트 열기

개발을 하기 위해 IDE가 필요하다. 이클립스, STS, 인텔리제이 등을 사용해 개발을 할 수 있다.

여기선 인텔리제이를 사용한다.

 

인텔리제이(IntelliJ IDEA)를 실행한 후 Open 을 눌러 아까 생성한 프로젝트 폴더를 찾아 연다.

처음 프로젝트를 생성하면 몇 분 정도 세팅하는 작업이 진행된다. 오른쪽 하단에 로딩바가 열심히 올라간다.

생성된 프로젝트에서 java 디렉터리 하위에 생성된 com.example.demo에 있는 DemoApplication 클래스의 main 함수가 프로젝트의 시작점이다. 이를 run을 시켜서 프로젝트를 실행할 수 있다.

 


3. 개발 맛보기 (REST API)

com.example.demo 패키지 하위로 패키지들을 추가해나가면 되는데, 먼저 요청에 대한 응답을 하기 위해 controller를 생성해준다.

 

1) controller 패키지 생성

2) HomeController 클래스 생성

 - @RestController 어노테이션을 사용해서 Rest API를 위한 컨트롤러를 생성한다.

이 상태에서 프로젝트를 실행하고, url 요청을 'http://localhost:8080/' 으로 하게 되면 hello world.. 메시지를 확인할 수 있다.

현재 위 결과에선 브라우저에 평문 hello world.. 를 반환 받았지만, 실제 Rest API는 JSON형태로 주로 받게 된다.

 

JSON 형태로 받을 수 있도록 Java 클래스를 수정한다.

일단 return 타입을 Map<String, String> 타입으로 수정을 했고, Map에 담아서 return 시킨다. spring-web 라이브러리를 추가 시켰었는데 여기엔 jackon이라는 라이브러리가 담겨 있어서 java 객체를 json 객체로 자동 변환 및 반환하여 클라이언트는 JSON으로 값을 받을 수 있다.

 

 


4. Spring MVC

 

Spring MVC는 Controller -> Service -> Dao (Data Access Object) or Repository의 계층 구조로 구성된다.

 

Controller는 URL 요청에 대한 처리를 담당하고, Service는 비즈니스 로직이나 트랜잭션 처리, DAO는 실제 데이터를 처리하는 영역이다.

 

Controller에서 Service를 호출하여 사용하는 방식으로 구성해야한다.

Controller에서 Service클래스의 getMessage() 메서드를 호출해서 값을 반환하도록 처리한다.

처음 Controller에서 반환했던 코드를 Service 클래스에 옮겨와서 메서드를 생성한다. 아래 이미지에서는 getMessage() 메서드이다. 

실행결과, service 에서 'grrt' 으로 반환한 값을 확인할 수 있다. 

return 되는 map의 key 이름을 greet 으로 수정하고,

이번엔 service에서 repository로 호출하는 형태로 수정한다. 즉, Dao를 호출하는 형태이다.

Service(UserService), Dao(UserRepository)를 수정한 뒤 다시 요청한다.

 

실행결과

Flow

Client (Browser)▶Server (WAS)▶Controller▶Service▶Dao▶Service▶Controller▶Server (WAS)▶Client (Browser)


Spring Boot 시작하는 방법에 대해 알아보았습니다. 글이 도움이 되셨다면 좋아요 꾹! 광고 꾹! 해주시면 저에게 큰 힘이 됩니다. 그럼 좋은 하루 보내세요. 감사합니다.^^

728x90
반응형