Java로 HTTP 서버 구현 - 스프링 부트의 필요성

Sunwoo Bae·2025년 3월 11일

스프링 부트

목록 보기
1/6

개요

스프링 부트가 백엔드 REST API 서버를 구현하는 데 어떤 역할을 하는 지를 알아보기 위해 쓰는 글이다. Java로 HTTP 서버를 구현하는 데 있어서 스프링 부트가 어떤 역할을 하는 지를 긴 시리즈 글을 통해서 정리해 보려 한다.

바닐라 Java로 HTTP 서버 구현

바닐라 Java로 HTTP request에 대한 응답을 주는 서버를 간단하게 짠다고 해보자. 어떤 것들이 필요할까?

  1. 클라이언트 요청 관리
  • 먼저, TCP 계층과 syscall로 소통하면서 소켓을 통해서 클라이언트와 응답을 주고 받아야 한다.
  1. 응답 생성 과정 구현
  • 클라이언트로부터 요청이 왔다면, 해당 메시지가 어떤 URL에 대응되는 지를 확인해서 해당 요청에 걸맞는 응답을 주어야 한다.
  1. DB 접근
    해당 요청을 처리하는 과정에서 DB CRUD 작업이 필요한 경우 DB에 필요한 작업을 한다.

크게 이렇게 3 가지 과정을 직접 구현해야 한다.
한 번 1, 2, 3 번 과정을 직접 구현하면서, 스프링 부트가 해당 작업들에 어떻게 관여하는 지를 살펴 보자.

글의 방향

크게

  1. 톰캣 서버가 클라이언트를 관리하는 방법
  2. 스프링 컨테이너 + 톰캣의 서블릿 컨테이너가 Http 요청을 처리하는 방법
  3. 스프링에서 DB 접근을 추상화한 방법

에 대해서 각각 3개의 글 정도로 정리해서 적어보려 한다.
설명이 너무 길거나, 복잡하거나, 이해가 되지 않는 파트가 있으면 댓글 달아주길 바란다!

profile
오늘보다 더 나은 내일

0개의 댓글