Network

[Network] 백엔드? http? 무엇이고 어떤 연관이 있는가

hej090224 2025. 4. 13. 13:46

백엔드란 무엇인가?

우선 사전적 의미로는 웹 애플리케이션이나 소프트웨어의 뒷단에 해당하는 부분으로, 사용자가 직접적으로 보이지 않는 서버 측의 작업을 처리하는 것을 말합니다.

 

또한 웹 애플리케이션 또는 소프트웨어의 핵심 기능을 담당하는 부분으로, 사용자가 직접적으로 보이지 않는 서버 측의 작업을 처리합니다. 사용자가 웹 페이지나 앱을 이용할 때 백엔드는 데이터베이스와 통신하여 데이터를 저장, 처리하고 필요한 기능을 제공합니다. 이러한 백엔드 개발은 웹 애플리케이션의 핵심적인 역할을 담당하며 안정성과 확장성을 제공하는 중요한 요소입니다. 자바,파이썬,자바스크립트 등의 언어를 사용하며 서버와 DB를 구축하고 유지보수하며 프론트엔드와 협업하여 웹을 개발하는데 필수 요소인 분야입니다.

 

HTTP란 무엇인가?

HTTP는 Hyper Text Transfer Protocol의 약자로,

인터넷에서 데이터를 보내와서 받기 위해서 사용되는 프로토콜 입니다. Client-서버 상의 통신을 하며, 웹 브라우저와 웹 서버간의 데이터 전송이 주로 활용됩니다. HTTP 방식은 요청과 응답으로 구성됩니다. 클라이언트는 HTTP 요청 메시지를 서버에 전송하고 서버는 요청에 대한 응답 메시지를 클라이언트에 전송합니다. 요청과 응답은 모두 헤더와 바디로 이루어집니다. 그 중 헤더는 요청 또는 응답에 대한 메타 데이터이고, 바디는 요청 및 응답 자체 데이터로 구성합니다.

HTTPS는 무엇인가?

HTTPS는 “HyperText Transfer Protocol Secure”의 약자로,

본래의 HTTP 프로토콜에 보안 기능을 추가한 프로토콜입니다. 사용자가 웹사이트에 접속하여 로그인을 하거나 결제를 진행하면, 로그인 정보나 결제 정보 등이 인터넷을 통해 서버로 전송됩니다. 이때 정보가 노출되면 큰 문제가 발생할 수 있으므로, HTTPS는 이러한 위험을 피하기 위해 데이터를 암호화하여 전송함으로써 누군가 중간에서 데이터에 접근하여 열람,조작 하는것을 막습니다.

HTTP와 HTTPS는 무슨 차이가 있을까?

HTTP와 HTTPS는 기본적으로 웹에 연결하여 데이터를 주고받는 방식은 매우 유사하지만, 가장 큰 차이점은 보안 여부입니다. HTTP는 암호화를 하지 않기 때문에 정보가 쉽게 노출될 수 있으며, HTTPS는 SSL 또는 TLS라는 기술을 통해 정보를 안전하게 보호합니다. 따라서 로그인 정보, 민감한 데이터, 개인정보 및 결제 정보를 처리하는 웹사이트는 반드시 HTTPS를 사용해야 합니다.

또한 주소창을 보면 HTTP는 http://로 시작하고, HTTPS는 https://로 시작하며 자주 자물쇠 아이콘이 함께 표시됩니다. 사용하는 포트 번호도 다르며, HTTP는 80번 포트를 사용하고 HTTPS는 443번 포트를 사용합니다.

 
 
 
 

 

HTTP를 이해하기 위해 알아야 하는 제가 공부한 개념 다섯가지를 소개해 보겠습니다.

1. IP (Internet Protocol)

IP는 인터넷에 연결된 각 장치에 부여되는 고유한 주소입니다. 클라이언트가 서버에 요청을 보낼 때, 이 IP 주소를 통해 정확한 목적지에 도달합니다.

 

출처:내 노트북

위 사진처럼 명령 프롬포트(cmd)에 ipconfig를 입력하면 자신의 ip정보를 알 수 있다.

2. TCP (Transmission Control Protocol) 와 UDP (User Datagram Protocol)

TCP는 신뢰성 있는 데이터 전송을 위한 프로토콜이며 데이터의 손실이 없고 순서대로 전달되기 위해 ACK 확인 응답 및 재전송을 수행합니다. 대부분의 웹서비스(HTTP, HTTPS, FTP 등)는 TCP를 기반으로 통신합니다. 다른편 UDP는 연결설정이 필요없으며 데이터 전송속도를 빠르게하여 패킷 손실이나 순서 보장 없이 실시간 게임, 음성/영상 스트리밍 등 지연에 민감한 애플리케이션에 적합합니다. TCP는 3-way handshake 즉 통신을 시작할 때 연결과정을 세 번 수행함으로써 보안성과 안정성을 높입니다. UDP는 가볍고 빠르지만, 본질적으로 TCP가 제공하는 모든것을 직접 구현해야 합니다. 

 

3. 포트(Port)

포트는 하나의 IP 주소 상에서 동시 서비스(프로세스)들을 구분하기 위해 논리적인 번호입니다. 예를 들어 웹 서버(HTTP)는 기본으로 80번 포트를, HTTPS로는 443번 포트를 사용합니다. 클라이언트가 서버에 요청을 보낼 때는 목적지 IP 주소와 함께 포트 번호를 같이 사용하여 서버에서 제공하는 특정 서비스에 접근합니다. 포트 번호는 065535번으로, 그 중에 01023번은

'well-known port'로 예약되어 있습니다. 백엔드 개발자는 종종 포트를 통해 API 서버, DB, 프록시 서버 등 각 접속 지점을 지정합니다.

 

4. DNS(Domain Name System)

DNS는 사람이 기억하기 쉬운 도메인 주소를 숫자로 된 IP 주소로 바꿔주는 시스템입니다. 사용자가 브라우저에

www.google.com을 입력하면, 브라우저는 먼저 DNS 서버에 해당 도메인의 IP 주소를 묻고, 응답 받은 주소를 통해 서버에 접속합니다. DNS는 계층 구조로 되어 있으며, 루트 DNS → TLD(.com, .org 등) → 권한 있는 네임서버로 순차적으로 질의가 전파됩니다. DNS 쿼리 결과는 로컬에 일정 시간 동안 캐싱되어, 성능을 높이고 불필요한 네트워크 요청을 줄입니다. 백엔드 운영에서는 자체 DNS 설정, 도메인 연결, 로드밸런싱 시의 DNS 라우팅이 중요하게 사용됩니다. 

 

5. URL(Uniform Resource Locator)

URL은 웹에서 특정 리소스의 위치를 정확히 지정하는 문자열로 프로토콜, 도메인, 포트, 경로(path) 또는 쿼리 문자열을 포함합니다. 예를 들어 https: //example.com: 443 / path/to/page?user = kim를 정확히 나타내면 HTTPS 프로토콜, example.com 도메인, 443 포트에 있는 특정 페이지에 요청 한 페이지 값입니다. 백엔드에서는 이 URL 경로와 쿼리 값을 기반으로 라우팅을 처리하고 각 요청에 맞는 비즈니스 로직을 실행합니다. 또한 RESTful API 설계에서도 URL은 자원(Resource)을 명확히 표현하는 중요한 역할을 합니다.

5-1. URI와 URN은 무엇인가

URI(Uniform Resource Identifier)는 웹에서 특정 자원을 식별하기 위한 통합된 주소 체계입니다. 인터넷 상의 어떤 것을 가리키기 위해 사용하는 고유한 이름이나 위치라고 할 수 있습니다. URI는 우리가 어떤 자원을 찾을 수 있도록 도와주며, 그 자원이 어디에 있든지, 혹은 어떻게 생겼든지 구분할 수 있게 해줍니다.

URI는 두 가지 주요 형태로 나뉘는데, 바로 URL과 URN입니다. URL은 우리가 자주 사용하는 웹 주소처럼, 자원이 어디에 있는지 알려주고 실제로 접근할 수 있게 합니다. 반면 URN은 자원의 고유한 이름만 제공해서, 위치는 알 수 없지만 자체적으로 식별이 가능한 체계입니다. URI라는 큰 틀 안에 URL과 URN의 개념이 함꼐 들어 있다고 생각하면 될 거 같습니다.

 

URN(Uniform Resource Name)은 자원의 고유한 이름을 나타내는 주소 체계입니다.
자원의 실제 위치와는 관계없이, 변하지 않는 이름으로 자원을 식별할 수 있습니다. 예를 들어 다이소에서 찾고 싶은 물건이 있을 때 찾아가게 되는 상품 고유번호와 URN의 역할이 같다고 볼 수 있겠습니다.

 

HTTP와 백엔드는 무슨 연관이 있을까?

HTTP는 사용자가 웹사이트에서 어떤 행동을 할 때, 그 요청을 서버에 전달하는 역할을 합니다. 백엔드는 이 요청을 받아 처리하고, 결과를 다시 HTTP를 통해 사용자에게 돌려보냅니다. 예를 들어, 로그인을 시도하면 아이디와 비밀번호 정보가 HTTP로 서버에 전달되고, 서버는 이를 확인한 후 결과를 응답으로 보냅니다.

HTTP는 단순한 통신 수단이 아니라, 백엔드가 사용자와 소통하는 데 꼭 필요한 도구입니다. HTTP에는 요청 방식(GET, POST, PUT 등)이 있어서 백엔드가 어떤 작업을 해야 할지 구분할 수 있습니다. 또, 응답에는 상태 코드(200, 404, 500 등)를 포함시켜 사용자나 프론트엔드가 처리 결과를 쉽게 파악할 수 있도록 합니다.

로그인 상태 유지나 보안과 같은 기능도 HTTP의 쿠키나 세션, 토큰을 통해 이루어집니다. 이처럼 백엔드는 항상 HTTP를 통해 외부와 연결되어 작동하며, HTTP 없이는 제 역할을 다 할 수 없습니다. 결국, 백엔드를 잘 만들기 위해서는 HTTP에 대한 정확한 이해가 필요하다고 저는 생각합니다.

 

미숙하지만 한달간 공부한 내용 정리 해 봤습니다. 읽어주셔서 감사합니다.

(모든 설명과 개념은 인프런 김영한 강의와 각종 블로그를 보고 공부하여 내용을 제 방식으로 다듬은 것입니다.)

 

 

 

*전 내용 다시 한번 복습하기

URI,URN,HTTPS도 공부해보기