[점프 투 스프링 부트3] 웹 서비스의 동작 이해와 URL 매핑

2025. 2. 17. 12:44·Study

 

자료는 위키독스, 강의는 인프런 강의를 참고했다. 

https://wikidocs.net/book/7601

 

점프 투 스프링부트

"점프 투 스프링부트"는 "Spring Boot Board(SBB)"라는 이름의 게시판 서비스를 만들어가는 과정을 설명한 스프링부트 입문서이다. 자바 설치부터 시작하여 서비스 운…

wikidocs.net

https://www.inflearn.com/course/%EB%B0%B1%EC%97%94%EB%93%9C-%EA%B0%9C%EB%B0%9C-%ED%95%84%EC%88%98-%EC%8A%A4%ED%94%84%EB%A7%81%EB%B6%80%ED%8A%B83/dashboard

 

[지금 무료]백엔드 개발을 위한 필수 강의 - 스프링 부트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
'Study' 카테고리의 다른 글
  • [JPA] 컬렉션과 연관 매핑
  • [점프 투 스프링 부트3] 프로젝트 구조 _ 게시판 프로젝트
  • [자바 ORM 표준 JPA 프로그래밍] 2장. JPA 시작하기
  • [자바 ORM 표준 JPA 프로그래밍] 1장. JPA 소개
dev-hyena
dev-hyena
차곡차곡 쌓아나가는 중📚
  • dev-hyena
    우당탕탕 개발일지
    dev-hyena
  • 전체
    오늘
    어제
    • 분류 전체보기 (9)
      • Study (9)
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • 링크

  • 공지사항

  • 인기 글

  • 태그

    백엔드
    springdata
    개발공부
    JPQL
    JPA
    패러다임불일치
    자바
    David Silver
    pr 순서
    Agent
    풀리퀘스트
    김영한
    RL
    강화 학습 기초
    스프링부트
    ORM
    게시판 만들기
    강화학습
    Reinforcement Learning
    Java
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.3
dev-hyena
[점프 투 스프링 부트3] 웹 서비스의 동작 이해와 URL 매핑
상단으로

티스토리툴바