자바스크립트 JS

Spring 공부 일지 01. REST API 생성하기 (TestController 생성)

Tomitom 2023. 2. 6. 10:42
반응형

 

 

MVC ( Model, View, Controller )

 

Model :DB. 프로그램이 작업하는 요소들을 정의한 것으로 물리적인 개체, 규칙, 작업 등의 요소를 구분하는 역할을 합니다. 

View : 사용자가 보는 화면에 입출력 과정과 결과를 보여주기 위한 역할을 합니다. (UI) 입출력의 순서와 데이터양식은 Controller 에 종속되어 결정되며, 뷰는 도메인 모델의 상태를 변환하거나 받아서 렌더링하는 역할을 합니다. 

Controller : model 과 view 를 연결시켜주는 다리 역할을 하며, 도메인 객체들의 조합을 통해 프로그램의 작동 순서나 방식을 제어합니다. 

 

 

REST  API 

 

페이지를 주는 것이 아닌 리소스만 응답으로 줍니다. (사진을 준다거나, 링크를 준다거나.)

API (Application Programing Interface) 응용 프로그램을 만들 때 쓰는 것입니다. 

리소스 처리 URI 를 통틀어서 REST API 라고 합니다. 

 

REST API 바로 알기

https://meetup.nhncloud.com/posts/92

 

REST API 제대로 알고 사용하기 : NHN Cloud Meetup

REST API 제대로 알고 사용하기

meetup.nhncloud.com

 

Spring STS 설치 방법 

 

1. 구글에서 sts 검색 

 

 

이클립스 기반으로 스프링 프로젝트를 사용하는데 최적화 되어 있는 툴입니다. 

그냥 이클립스의 경우 자바 프로젝트를 할 때 사용했었죠. 

컴퓨터 사양에 맞추어 메인 화면 아래에 있는 다운로드 파일을 받습니다. 

 

 

 

 

2. 압축 해제 후 contents 압축 폴더를 해제한 뒤 SpringToolSuite4.exe 실행

 

 

압축 해제한 폴더 안에 들어가서 실행합니다. 

 

 

 

 

 

이제  New Spring Starter Project 로 프로젝트 생성합니다. 

스프링 스타터 프로젝트는 스프링 프로젝트의 구조를 손쉽게 만들 수 있습니다. 

 

 

 

 

타입은 메이븐, 패키지는 자바. 자바의 버전은 17로 설정합니다. 

그룹명은 앱 이름이 됩니다. 

 

Next를 누르면 의존성 주입 설정이 있습니다. (스프링 스타트 프로젝트로 하면 의존성을 편리하게 추가할 수 있습니다.) 

spring web을 선택해줍니다. 

 

 

 

 

 

스프링 웹에 마우스 커서를 잠시 올려두면 그에 대한 설명을 볼 수 있는데, 

스프링 MVC 형태로 웹 콘텐츠를 제공할 수 있다는 것을 확인할 수 있습니다. 

 

 

 

스프링 의존성 주입이란? 

https://devlog-wjdrbs96.tistory.com/165

 

[Spring] 스프링 의존성 주입(DI) 이란?

Spring 삼각형 스프링의 기반이 되는 설계 개념을 표현한 것 스프링이란 IoC와 AOP를 지원하는 경량의 컨테이너 프레임워크이다. 1. DI(Dependency Injection)이란? Inversion of Control 이라고도 하는 의존 관계

devlog-wjdrbs96.tistory.com

 

설정을 마쳤다면 Run -> Run As -> Spring Boot App 으로 서버를 실행해봅니다. 

 

 

 

현재 해당 페이지는 비어있으므로 아래와 같은 화면이 떠야 합니다. 

 

 

 

만약 이것과는 다른 포트 에러 발생할 경우에는 강제로 8080 포트를 종료한 뒤 실행해야 합니다. 

 

시작메뉴에서 window powershell 을 관리자 권한으로 실행합니다. 

 

netstat -ano 를 입력하면 현재 구동중인 모든 포트 목록이 뜹니다. 

 

로컬주소 8080이 있는지 확인합니다. (만약 있다면 포트가 이미 구동되는 중이라는 에러가 듭니다.) 

PID 를 확인한 뒤 taxkkill /pid (8080번이 돌아가는 PID 번호) /f   를 입력하면 해당 구동 중인 포트가 강제로 구동 종료됩니다.  (/f는 강제 옵션) 

 

 

이제 서버가 구동되는 것을 확인했다면 다시 서버를 꺼줍니다. 

서버는 아래와 같이 콘솔에서 오른쪽 버튼을 눌러서 종료하면 됩니다. 

(콘솔이 안 보인다면 윈도우 메뉴에서 show view 를 통해 띄울 수 있습니다.) 

 

 

 

 

이제 새로운 패키지를 생성해보겠습니다. 

메인 폴더로 가서 새로운 패키지를 생성합니다. 

 

 

현재 파일의 상태는 이렇습니다. 

 

 

 

 

이제 컨트롤러를 만듭니다. (= 자바 클래스를 만듭니다.)

해당 패키지 안에 클래스를 생성합니다. 

 

 

클래스 이름은 테스트 컨트롤러로 기재하겠습니다. 

메인에 체크하지 않고 완성을 합니다. 

 

 

현재 test controller를 REST controller 로 선언해줍니다. 

@RestController

빨간 줄이 뜨는 이유는 import 를 해주지 않아서 입니다. 

 

빨간 줄 위에 마우스 커서를 올리면 import 가 뜹니다. 눌러주시면 편하게 임포트 할 수 있습니다. 

 

@RequestMapping("/test/*")

테스트라는 루트로 매핑을 해줍니다. 

 

package com.myspring.pro29.ex01;

import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

@RestController 
@RequestMapping("/test/*")

public class TestController {

	public String hello() {
		return "Hello Rest!";
	}
}

 

REST방식으로 test 루트에 반응하기 위한 테스트 컨트롤러가 생성되었습니다. 

 

함수 메소드 위에다가 @RequestMapping("/test/*") 를 하나 더 붙여줍니다. 

테스트  뒤에 무엇이 입력되는가에 따라서 메소드를 매핑합니다. 

 

package com.myspring.pro29.ex01;

import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

@RestController 
@RequestMapping("/test/*")

public class TestController {
	
	@RequestMapping("/hello/*")
	public String hello() {
		return "Hello Rest!";
	}
}

 

이제 다시 run server 합니다. 

 

해당 루트에 텍스트가 출력되는 것을 확인할 수 있습니다. 

반응형