자료는 위키독스, 강의는 인프런 강의를 참고했다.
https://wikidocs.net/book/7601
점프 투 스프링부트
"점프 투 스프링부트"는 "Spring Boot Board(SBB)"라는 이름의 게시판 서비스를 만들어가는 과정을 설명한 스프링부트 입문서이다. 자바 설치부터 시작하여 서비스 운…
wikidocs.net
[지금 무료]백엔드 개발을 위한 필수 강의 - 스프링 부트3 강의 | 기술노트with알렉 - 인프런
기술노트with알렉 | , 백엔드 개발 - 스프링 부트3 가장 쉽게 배우는 강의게시판 만들기를 처음부터 끝까지 해봄으로 스프링 부트3를 쉽게 배울 수 있습니다.점프투스프링부트3 도서를 처음부터
www.inflearn.com
책에 잘 정리되어 있지만, 공부한 내용을 확인하기 위해 간단하게 정리한 글이다.
이 책에 대한 포스팅이 끝나면 이를 활용한 개인 프로젝트를 진행할 예정이다.
스프링부트란?
스프링 부트는 웹 애플리케이션을 쉽게 만들 수 있도록 도와주는 웹 프레임워크이다.
웹 서비스의 동작원리
클라이언트 <-> 서버 구조
: 클라이언트는 크롬, 서버는 브라우저로 접속 가능한 원격 컴퓨터를 의미한다.
예를 들면, naver.com 에 접속하면 네이버 웹 서버가 호출되고,
서버는 요청에 대한 응답으로 HTML 문서나 다른 리소스 등을 브라우저에 표시해 준다.
IP 주소와 포트 이해하기
IP 주소는 서버의 주소를 의미한다.
포트는 네트워크 서비스를 구분하는 번호이다.
localhost:8080 이해하기
: 로컬호스트(localhost)는 내 컴퓨터, 8080은 8080번 포트로 서비스를 운용한다는 의미이다.
URL 매핑과 컨트롤러 이해하기
예를들어, http://localhost:8080/sbb에 접속하려면 어떻게 해야 할까?
로컬호스트 주소 뒤에 있는 "sbb"에 접근할 수 있도록 코드를 작성해야 하는데, 이 과정을 URL 매핑이라고 한다.
URL 매핑이란 URL과 컨트롤러 메서드를 일대일로 연결하는 것을 뜻한다.
package com.mysite.sbb;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.GepMapping;
@Controller
public class MainController {
@GetMapping("/sbb")
public void index() {
System.out.println("index");
}
}
MainController 클래스에 @Controller 어노테이션을 적용하면 MainController 클래스는 스프링부트의 컨트롤러가 된다.
그리고 index 메서드의 @GetMapping 어노테이션은 요청된 URL(/sbb)과의 매핑을 담당한다.
브라우저가 URL을 요청하면 스프링 부트는 요청 페이지와 매핑되는 메서드를 찾아 실행한다.
결론
스프링 부트는 웹 브라우저로부터 localhost:8080/sbb 요청이 발생하면 /sbb URL과 매핑되는 index 메서드를 MainController 클래스에서 찾아 실행한다.
코드를 실행하고 로컬호스트에 접속하면 500 에러가 발생한다.
그 이유는 index 메서드가 호출되었지만 결괏값을 리턴하지 않았기 때문이다.
package com.mysite.sbb;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.GepMapping;
@Controller
public class MainController {
@GetMapping("/sbb")
@ResponseBody
public String index() {
return "index";
}
}
위와 같이 @ResponseBody 어노테이션을 작성하여 "index"가 출력되도록 코드를 변경했다.
만약, @ResponseBody 어노테이션을 생략한다면 스프링 부트는 'index'라는 문자열을 리턴하는 대신 index라는 이름의 템플릿 파일을 찾게 된다.
'Study' 카테고리의 다른 글
[소프트웨어 공학] 애자일(Agile) 방법론 (0) | 2025.03.03 |
---|---|
[JPA] 컬렉션과 연관 매핑 (0) | 2025.02.24 |
[점프 투 스프링 부트3] 프로젝트 구조 _ 게시판 프로젝트 (0) | 2025.02.24 |
[자바 ORM 표준 JPA 프로그래밍] 2장. JPA 시작하기 (1) | 2025.02.03 |
[자바 ORM 표준 JPA 프로그래밍] 1장. JPA 소개 (0) | 2025.02.02 |