02. Controller 만들기
01. 컨트롤러 만들기
프로젝트를 생성했으니 이제 예시로 페이지를 만들어 보려한다.
http://localhost:8080/hello 라는 URL을 만들어 테스트할 것이며,
해당 요청을 받기 위해선 컨트롤러를 만들어서 사용하여야 한다.
* 컨트롤러는 클라이언트에서 받은 요청을 관리하는 자바의 클래스이다.
프로젝트의 메인 파일을 우클릭하여 Class를 새로 만들어 준다
컨트롤러 명을 입력 후 생성해준다.
정상적으로 컨트롤러 클래스가 생성됨을 확인
위 코드는 그냥 기본 템플릿이므로 아래와 같이 내용을 추가해주자
package com.example.demo;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.ResponseBody;
@Controller
public class HelloController {
@GetMapping("/hello")
@ResponseBody
public String hello() {
return "Hello World";
}
}
* 파이썬만 해보고 자바를 아직 몰라서 조금 헷갈린다.
@ 표시가 java에선 무슨 의미일까
-> 어노테이션이라고 한다.
-> 컴파일러, 런타임, 프레임워크에 "이 코드에 이런 의미가 있다." 알려주는 것
-> 주석과는 다른 개념, 어노테이션은 컴파일러, 프레임워크가 읽고 동작을 바꾸기도 함
@Controller
-> HelloController 클래스가 컨트롤러의 기능을 수행한다고 알려줌
@GetMapping("/hello")
-> URL 요청이 발생하면 hello 메서드가 실행됨을 의미
-> Get 방식의 URL 요청을 사용 -> @GetMapping 사용
-> Post 방식의 URL 요청을 사용 -> @PostMapping 사용
@ResponseBody
-> 메서드의 출력 결과가 문자열 그 자체임을 나타냄
-> 해당 어노테이션이 없으면 "hello World"라는 html파일을 찾음
-> 해당 어노테이션을 사용해 "hello World"라는 문자열 자체를 출력 (명령어로써 동작하지 않도록)
-> 반대되는 예로 위의 "/hello" 는 @ResponseBody어노테이션이 적용되어 있지 않기 때문에 /hello 라는 html 파일을 찾아 '매핑'한다.
-> 매핑한다. = 특정 URL 경로를 서버의 특정 메서드와 연결
02. 로컬 서버 실행하기
앞에서 사용자 요청을 철히하는 컨트롤러를 만들었으니 제대로 작동하는지 확인해보자
그러기 위해선 로컬 서버를 실행하여야 한다.
Boot Dashboard 기능에서 프로젝트를 선택한 후 재생버튼을 눌러주자.
로딩 마크가 돌아가면서 서버가 실행됨을 확인
이제 테스트를 위해 브라우저를 열고 http://localhost:8080/hello 로 진입해보자
정상적으로 웹서버가 구동되어, 접근이 가능함을 확인





