[VSCODE] SpringBoot CRUD게시판 만들기 - 프로젝트 생성
스프링부트 프로젝트 생성하기
F1키를 눌러서 spring initializer를 통해 프로젝트를 생성하겠습니다.
Gradle을 사용하여 프로젝트를 진행할 것입니다.
이전 포스팅에서 말씀 드린 것처럼 세팅하시면 됩니다.
이거부터 보신다면 잘 따라와주시기 바랍니다.
마지막으로 dependencies 부분은 위처럼 생성할 때 추가하셔도 되고 개발 진행중에도 추가하실 수 있으므로 지금 안하셔도 됩니다.
HelloController
http://localhost:8080/hello 와 같은 브라우저의 요청을 처리하기 위해서는 컨트롤러(Controller)가 필요하다.
컨트롤러는 서버에 전달된 클라이언트의 요청(URL과 전달된 파라미터 등)을 처리하는 자바 클래스이다.
위처럼 HelloController.java 파일을 생성해줍니다.
package com.mysite.sbb;
public class HelloController {
}
하지만 지금 작성한 HelloController는 껍데기 클래스이므로 컨트롤러의 기능을 갖추려면 다음과 같이 수정해야 한다.
package com.mysite.sbb;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;
@Controller
public class HelloController {
@RequestMapping("/hello")
@ResponseBody
public String hello() {
return "Hello World";
}
}
프로젝트를 진행하며 더 자세히 설명하겠지만 여기서 사용된 것들에 대해서 간단히 알아보자.
클래스명 위에 적용된 @Controller 어노테이션은 HelloController 클래스가 컨트롤러의 기능을 수행한다는 의미이다.
이 어노테이션이 있어야 스프링부트 프레임워크가 컨트롤러로 인식한다.
hello 메서드에 적용된 @RequestMapping("/hello") 어노테이션은 http://localhost:8080/hello URL 요청이 발생하면
hello 메서드가 실행됨을 의미한다.
즉, /hello URL과 hello 메서드를 매핑하는 역할을 한다.
URL명과 메서드명은 동일할 필요는 없다.
즉 /hello URL일 때 메서드명을 hello가 아닌 hello2와 같이 해도 상관없다.
그리고 @ResponseBody 어노테이션은 hello 메서드의 응답 결과가 문자열 그 자체임을 나타낸다.
hello 메서드는 "Hello World" 라는 문자열을 리턴하므로 출력으로 "Hello World" 문자열이 나갈 것이다.
나중에 공부하겠지만 응답 결과는 이처럼 단순한 문자열 보다는 HTML 파일과 같은 템플릿을 주로 사용한다.
로컬서버 실행하기
위의 클래스에서 Run 혹은 위의 실행 아이콘을 클릭해 이 서버를 실행시킬 수 있으며 혹은
Ctril + F5를 통해 실행시킬 수 있습니다.
.\gradlew bootRun
혹은 위의 명령어를 통해 실행시킬 수도 있습니다.
정상적으로 실행이 된다면 위와 같이 port가 8080으로 열렸고 위의 dependencies에서 security를 추가했기에
위의 password가 나오는 것을 보실 수 있습니다.
그러면 처음 localhost:8080에 들어가시면 위와 같이 나오시는데
user
16e3e276-e836-4c23-9702-809a76187089
를 입력해주시면
정상적으로 잘 들어와짐을 볼 수 있습니다. 위와 같이 나오는게 정상입니다.
위와 같이 /hello URL이 요청되면 컨트롤러인 HelloController의 hello 메서드와 매핑된 hello 메서드가 호출되고
"Hello World"라는 문자열이 브라우저에 출력되는 것을 확인할 수 있다.