2. 서버란 무엇일까?

2026. 2. 9. 20:25·BackEnd/내일배움캠프

브라우저와 서버의 기본 통신 흐름

사용자는 브라우저를 이용해 서버에 정보를 요청하고, 서버로부터 결과를 전달받는다.

이때 사용자의 요청이 서버에 도달하기 위해서는 서버의 위치 정보가 필요하다.


IP 주소와 Port 번호

IP 주소란?

  • 거대한 네트워크 망(인터넷)에서 특정 컴퓨터(서버)를 식별하기 위한 주소
  • 사용자의 요청이 정확한 서버로 도달하도록 도와준다

Port 번호란?

  • 하나의 서버 컴퓨터 안에서 어떤 프로그램(서비스)에게 요청을 전달할지 구분하는 번호

택배에 비유하면:

  • IP 주소 → 건물 주소
  • Port 번호 → 받는 사람(또는 호수)

대표적으로 자주 사용되는 포트 번호는 8080이며, 웹 애플리케이션 개발 시 많이 사용된다.


HTTP Request / Response

사용자는 브라우저를 통해 서버에 HTTP 요청(Request) 을 보낸다.

서버는:

  1. 요청을 수신하고
  2. 요청을 처리한 뒤
  3. 결과를 HTTP 응답(Response) 에 담아 브라우저로 전송한다

마지막으로 브라우저는 서버로부터 전달받은 데이터를 해석하여 웹 페이지를 화면에 그려주는 역할을 한다.


API란?

API (Application Programming Interface) 란,

서로 다른 소프트웨어 시스템이 통신하기 위해 따라야 하는 하나의 약속(규칙)

이다.

Interface란?

  • 서로 다른 두 시스템, 장치, 소프트웨어 사이에서
  • 정보나 신호를 주고받기 위한 접점 또는 경계면

즉, API는 개발자가 다른 시스템을 쉽고 일관된 방식으로 사용할 수 있도록 도와주는 통신 규칙이다.


RESTful API란?

REST (Representational State Transfer) 는 API의 동작 방식에 대한 아키텍처 스타일이다.

REST는 처음에 인터넷처럼 복잡한 네트워크 환경에서
효율적으로 통신을 관리하기 위해 만들어졌다.

REST API / RESTful API

  • REST API: REST 아키텍처 스타일을 따르는 API
  • RESTful API: REST 원칙을 잘 지켜 설계된 웹 서비스

우리 서버의 API가:

  • HTTP 규칙을 잘 준수하고
  • 자원 중심으로 명확하게 설계되어 있다면

"RESTful하다"고 표현한다.


HTTP Method와 REST

RESTful API에서는 상황에 맞는 HTTP 메서드를 사용한다.

  • GET: 데이터 조회
  • POST: 데이터 생성
  • PUT: 데이터 전체 수정
  • DELETE: 데이터 삭제

이러한 메서드를 목적에 맞게 사용하는 것이 REST 설계의 핵심이다.


정적 컨텐츠와 동적 요청

HTML은 정적 컨텐츠

  • 정적인 HTML 페이지는
  • 누구나 동일한 화면을 보게 된다

이러한 정적 리소스를 사용자에게 전달하는 역할을 하는 것이 Web Server다.


Web Server와 WAS

Web Server

  • 역할: 정적 컨텐츠 제공
  • 예:
    • Apache
    • Nginx

WAS (Web Application Server)

  • 역할: 동적인 요청 처리
  • 예:
    • 로그인
    • MyPage 조회
    • DB 연동

브라우저로부터 들어오는

“로그인하여 MyPage 요청”

과 같은 동적인 요청은 WAS로 전달되어 처리된다.


WAS도 Web Server 기능을 할 수 있을까?

WAS는 Web Server와 동일하게 HTTP 기반으로 동작한다.

따라서:

  • 정적인 HTML 전달도 가능하다

즉, WAS만으로도 서비스 운영은 가능하다.

하지만:

  • 정적 리소스 처리
  • 보안
  • 성능

측면에서 Web Server와 함께 사용하는 것이 더 효율적이다.


WAS 종류

  • Tomcat
  • JBoss

Apache Tomcat이란?

Apache Tomcat은:

  • Web Server 기능과
  • WAS 기능을 함께 제공하는 서버

즉, 웹 요청 처리와 동적 로직 실행을 모두 담당할 수 있도록 설계된 서버다.


Spring Boot란?

Spring Boot는 기존 Spring Framework의 복잡한 설정을 대폭 단순화한 프레임워크다.

Spring Boot의 특징

  • XML 설정 대신 Annotation 기반 설정
  • 자주 사용하는 설정들을 Default 값으로 자동 구성
  • 개발자가 직접 설정해야 할 부분을 최소화

Spring Boot와 의존성 관리

Spring Boot에서 JPA, Web 기술 등을 사용하면
하나의 라이브러리만 사용하는 것이 아니라:

  • 여러 라이브러리
  • 하위 프레임워크

를 함께 사용하게 된다.

Spring Boot는:

  • 이 라이브러리들의 버전 호환성을 미리 맞춰서 제공한다
  • 개발자는 spring-boot-starter 계열 의존성만 추가하면 된다

덕분에 설정 스트레스 없이 빠른 개발이 가능하다.


Spring Boot의 가장 큰 장점: 내장 Tomcat

Spring Framework에서는:

  • 외부 Apache Tomcat을 직접 설치 및 연동해야 했다

하지만 Spring Boot는:

  • 내장형 Apache Tomcat을 기본 제공한다
  • 별도의 서버 설정 없이 바로 실행 가능

개발자가 서버 설정에 신경 쓸 필요가 없다.


Postman이란?

Postman은 API 개발과 테스트를 빠르고 쉽게 도와주는 소프트웨어 플랫폼이다.

Postman의 역할

  • HTTP 요청을 직접 서버에 전송
  • 응답 결과를 확인
  • API가 약속(API 스펙)에 맞게 동작하는지 검증

실무에서 Postman 활용

Postman은:

  • 내가 개발한 API 테스트
  • 팀원이 개발한 API 테스트
  • Main / Develop 브랜치 병합 후 검증

등의 상황에서 매우 유용하게 사용된다.

즉, 서버가 정상적으로 동작하는지 확인하는 필수 도구라고 할 수 있다.

'BackEnd > 내일배움캠프' 카테고리의 다른 글

6. MVC 디자인 패턴이란?  (0) 2026.02.09
5. Lombok이란?  (0) 2026.02.09
4. 테스트코드  (0) 2026.02.09
3. HTTP란 무엇일까?  (0) 2026.02.09
1. 그레이들(Gradle)이란 무엇일까?  (0) 2026.02.09
'BackEnd/내일배움캠프' 카테고리의 다른 글
  • 5. Lombok이란?
  • 4. 테스트코드
  • 3. HTTP란 무엇일까?
  • 1. 그레이들(Gradle)이란 무엇일까?
JK-LEE98
JK-LEE98
백엔드 개발자
  • JK-LEE98
    JK-LEE98
    JK-LEE98
  • 전체
    오늘
    어제
    • 분류 전체보기 (60)
      • 나의 지식 공유 (4)
      • SQL (4)
      • PS (10)
      • BackEnd (32)
        • Java (3)
        • Spring (4)
        • 내일배움캠프 (20)
        • 프로그래머스 데브코스 (5)
      • 건강한 나 되기🍀 (10)
  • 인기 글

  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.6
JK-LEE98
2. 서버란 무엇일까?
상단으로

티스토리툴바