IT/Back-end

RESTful Web Service 구축하기! (feat. spring)-(1)

omaeng 2020. 3. 3. 13:49

이번 가이드는 Spring을 사용하여 "Hello, World"를 출력하는 RESTful 웹 서비스 구축 안내서입니다!

 

앞으로 구축하게 될 것들


우리는 앞으로 HTTP의 GET 메소드 요청을 수행하는 서비스를 만들 것입니다!

http://localhost:8080/greeting

위와 같이 요청이 오게 되면 JSON 형식의 결과물을 응답으로 보낼 것입니다.

 

바로

{"id":1,"content":"Hello, World!"}

이렇게요!

 

그리고 요청 URL에 name 매개변수를 넣어 다음과 같이 요청할 수 있습니다.

http://localhost:8080/greeting?name=User

name 매개변수는 World 로 기본 설정 할 것입니다!

하지만 사용자가 매개변수를  통해 name을 설정한다면 재설정된 name을 출력하겠습니다.

{"id":1,"content":"Hello, User!"}

 

 

준비물


  • 약 15분의 시간
  • 선호하는 IDE(Eclips,VScode 등)
  • JDK(최소 1.8 버전 이상!)
  • Gradle 4 이상 혹은 Maven 3.2 이상

 

Spring Initializr로 시작하기


Spring Application의 경우 Spring Initializr로 시작하는 것이 좋습니다.

응용프로그램에 필요한 모든 의존성을 가져오는 방법이 있고, 많은 설정 시간을 절약할 수 있습니다. 

 

이 예제는 Spring web 의존성만 필요합니다. 이제 https://start.spring.io/ 으로 접속하여 아래와 같이 설정한 후 프로젝트를 생성하세요.

Spring Initializr로 프로젝트 생성하는 법.

이렇게 프로젝트를 생성하면 다운로드된 폴더에

.zip 확장자명의 압축 파일이 다운로드 되게 됩니다.

 

다운로드된 압축파일을 풀어줘야하는데, 이때 알집을 이용하게되면 압축된 파일 중 이름이 긴 파일이 제대로 압축 해제가 되지 않음으로, 반디집을 이용해서 압출을 풀어줍니다!

그냥 다운로드된 폴더에 압축을 풀 수 있지만, 사용하는 workspace를 따로 만들어 프로젝트를 관리하시는 것을 추천드립니다!

 

이제 여러분이 자주 사용하는 IDE를 이용해서 프로젝트를 실행해 주시면 됩니다.

 

필자는 vscode를 사용하기 때문에 vscode를 통해서 실행해 보겠습니다.

 

vscode가 정상적으로 실행 되고 난 후, pom.xml을 실행하고 난 뒤 위와 같은 설정값이 보이면 성공입니다.

 

보다 정확한 값은 

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
	xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
	<modelVersion>4.0.0</modelVersion>
	<parent>
		<groupId>org.springframework.boot</groupId>
		<artifactId>spring-boot-starter-parent</artifactId>
		<version>2.2.2.RELEASE</version>
		<relativePath/> <!-- lookup parent from repository -->
	</parent>
	<groupId>com.example</groupId>
	<artifactId>rest-service</artifactId>
	<version>0.0.1-SNAPSHOT</version>
	<name>rest-service</name>
	<description>Demo project for Spring Boot</description>

	<properties>
		<java.version>1.8</java.version>
	</properties>

	<dependencies>
		<dependency>
			<groupId>org.springframework.boot</groupId>
			<artifactId>spring-boot-starter-web</artifactId>
		</dependency>

		<dependency>
			<groupId>org.springframework.boot</groupId>
			<artifactId>spring-boot-starter-test</artifactId>
			<scope>test</scope>
			<exclusions>
				<exclusion>
					<groupId>org.junit.vintage</groupId>
					<artifactId>junit-vintage-engine</artifactId>
				</exclusion>
			</exclusions>
		</dependency>
	</dependencies>

	<build>
		<plugins>
			<plugin>
				<groupId>org.springframework.boot</groupId>
				<artifactId>spring-boot-maven-plugin</artifactId>
			</plugin>
		</plugins>
	</build>

</project>

위 코드와 비교해 보시면 되겠습니다.

 

이번에는 Spring Initializr를 통해 프로젝트를 생성하고 다운로드 및 설정된 의존성을 보는 방법을 살펴 봤습니다.

 

다음 장에서는 실제 class를 통해 서비스를 구축하는 과정을 보여드리겠습니다.