[내일배움캠프] TIL(1) Spring 입문🌱

Euiyeon Park·2026년 10월 1일

내일배움캠프

목록 보기
1/9
post-thumbnail

오리무중 내 인생 ,, 어쩌다보니 내배캠 단기 심화 과정까지 오게되었다 ,,
첫 번째 TIL 화이팅

1. Spring 시작하기

💚 HTTP

HTTP란,

클라이언트와 서버가 웹에서 데이터를 주고받기 위해 사용하는 프로토콜

HTTP 특징

  • 클라이언트-서버 구조
    • Request-Response 구조
  • Stateless(무상태) 프로토콜
    • 서버가 클라이언트의 상태를 보존❌
    • 장점: 서버 확장성이 높음(스케일 아웃)
    • 단점: 클라이언트가 추가 데이터 전송
  • 비연결성
    • '하나의 요청과 응답이 독립적인가?'
  • HTTP 메세지
  • 단순함
  • 확장 가능

💚 Servlet

Servlet이란,

자바 진영에서 HTTP 요청을 받아 처리하고 HTTP 응답을 만들어주는 객체
예를 들어 GET 요청은 HttpServlet의 doGet() 메서드가 처리한다.

Servlet 역할

  • 요청 데이터 읽기
  • 필요한 로직 실행
  • 응답 데이터 만들기

즉, 요청 처리 담당

💻 예제코드

@WebServlet("/hello")
public class HelloServlet extends HttpServlet {

    @Override
    protected void doGet(
        HttpServletRequest req,
        HttpServletResponse resp
    ) throws IOException {

        resp.getWriter().print("Hello");
    }
}
  • @WebServlet : 특정 URL 요청을 어떤 Servlet 클래스가 처리할지 연결해주는 어노테이션
  • HttpServletRequest : 클라이언트가 서버로 보낸 HTTP 요청 정보를 담고 있는 객체
  • HttpServletResponse : 서버가 클라이언트에게 보낼 HTTP 응답을 만들기 위한 객체

Servlet Container란,

Servlet을 실행하고 관리해주는 환경으로 대표적으로 Tomcat이 있다.

Servlet Container의 역할

  • HTTP 요청 받기
  • URL에 맞는 서블릿 찾기
  • HttpServletRequest, HttpServletResponse 객체 생성
  • 메서드 호출(GET 요청이면 doGet();)
  • 서블릿 객체 생성 및 생명주기 관리
  • 서블릿이 만든 응답을 클라이언트에게 전송

동작 순서

클라이언트가 HTTP 요청을 보내면 서블릿 컨테이너가 요청을 받은 뒤,
해당 요청을 처리할 서블릿을 찾아 실행한다.

Client
  ↓
HTTP Request
  ↓
Tomcat(Servlet Container)
  ↓
Servlet 찾기, 실행
  ↓
HTTP Response

✨ Servlet은 개발자가 아닌 Servelt Container가 Servlet의 실행과 생명주기를 관리한다.

@ServletComponentScan

스프링 부트에서 서블릿 관련 어노테이션이 붙은 클래스를 찾아
Tomcat같은 서블릿 컨테이너에 등록해주는 어노테이션

💻 예제코드

@SpringBootApplication
@ServletComponentScan
public class DemoApplication {

    public static void main(String[] args) {
        SpringApplication.run(DemoApplication.class, args);
    }
}

스프링 부트가 해당 패키지와 하위 패키지를 스캔하면서

  • @WebServlet
  • @WebFilter
  • @WebListener

가 붙은 클래스를 찾아 서블릿 컨테이너에 등록한다


💚 CSR, SSR, SEO

CSR(Client Side Rendering)

브라우저 요청
    ↓
서버에서 HTML + JavaScript 전달
    ↓
브라우저에서 JavaScript 실행
    ↓
API를 통해 필요한 데이터 요청
    ↓
화면 렌더링

SSR(Server Side Rendering)

⚙️ 동작 방식

브라우저 요청
    ↓
서버에서 데이터 조회
    ↓
서버에서 HTML 생성
    ↓
완성된 HTML 전달
    ↓
브라우저에서 화면 표시

💚 Spring MVC


profile
"개발자는 해결사이자 발견자이다✨" - Michael C. Feathers

0개의 댓글