[내일배움캠프] - DAY2 서버와 클라이언트

2026. 1. 5. 16:39·TIL & 트러블 슈팅

서버와 클라이언트

서버(Server)

컴퓨터에 저장된 정보를 다른 컴퓨터들이 찾으려면 컴퓨터는 24시간 내내 켜져있어야 하고 라우터에 연결되어 있어야합니다. 또한 외부에서의 공격을 막기 위해 보안도 철저해야하며, 해외에서 사용할 수 있도록 네트워크 속도도 빨라야합니다. 물론 개인 컴퓨터로 서버를 만들 수 있지만 이렇게 유지하려면 비용도 상당합니다. 그래서 웹 서비스에서는 서버(Server)라고 하는 별도의 컴퓨터를 사용합니다. 한마디로 서버는 네트워크에 연결된 컴퓨터가 인터넷에 공개할 정보를 저장하고 클라이언트(Client)가 요청한대로 정보를 보내주거나 작업을 처리해주는 컴퓨터 입니다.

 

 

클라이언트(Client)

클라이언트(Client)는 서버에 연결해서 정보를 보여 달라고 요청하는 컴퓨터를 클라이언트라고 합니다. 좁은 의미로는 브라우저를 클라이언트라고도 합니다.

 


HTTP

HTTP(HyperText Transfer Protocol) 는 웹에서 데이터를 주고받기 위해 사용되는 애플리케이션 계층 프로토콜입니다. 쉽게 말해, 네트워크로 연결된 클라이언트(브라우저 등)와 서버가 어떤 방식으로 대화할지 약속해 놓은 규칙입니다. 명함에서 전화번호 앞에 "Tel:"이나 "Fax:"를 붙여 연락 방법을 구분하듯, 인터넷에서는 "http://"라는 접두사를 붙여 “이 주소는 HTTP 규칙으로 통신한다” 라고 알려줍니다.

 

HTTP의 특징

  • Stateless(무상태성): HTTP는 이전 요청의 상태를 기억하지 않습니다. 즉, 매 요청은 서로 독립적입니다. (로그인 상태 유지 같은 기능은 쿠키·세션·토큰 같은 별도 기술이 필요합니다.)
  • 유연한 데이터 전송: HTML, 이미지, 동영상, JSON 등 다양한 형태의 데이터를 교환할 수 있습니다.
  • 확장성: HTTP 요청에는 GET, POST, PUT, DELETE 같은 메서드가 있고, 응답에는 200 OK, 404 Not Found, 500 Internal Server Error 같은 상태 코드가 포함되어 의미를 명확히 전달합니다.

 

HTTP 요청(Request)

Version: HTTP/1.1
Method: POST
URL: 홈페이지 주소:80/items

Content-Type: application/JSON
Accept: application/json,text/html
...

{
    "name": "Yamaha Guitar",
    "price": "300000",
    "category": "String instrument"
}

Version: 클라이언트가 요청을 보낼 때 어느 버전에 HTTP 요청을 보냈는지 알려줍니다.

Method: CREATE (생성하기): POST , READ (불러오기): GET , UPDATE (바꾸기): PUT (전체) / PATCH (일부) , DELETE (지우기): DELETE

URL: 홈페이지 주소(IP주소), 포트(ex: :80), /items(경로)

 

HTTP 응답(Response)

우리가 위에서 클라이언트로 부터 받은 요청을 서버가 응답을 해준다는것을 배웠습니다. 하지만 해당 요청이 잘 전달이 되었는지 알 수 없습니다, 그래서 개발자들은 에러 코드로 바로 확인할 수 있도록 공통 Error Code를 만들어서 이를 적용하게 되었습니다. Error Code는 반드시 필요한것은 아니지만 사용하는 서비스의 경우, 서비스 별로 Error Code를 정의하여 사용합니다. 상황에 따른 에러를 세분화해 전달할 수 있어 API 문서 가독성이 높아집니다.

 

  • 클라이언트 요청오류 : 400번대 ( ex : 401 , 404 )
  • 서버 오류 : 500번대 ( ex : 500 , 501 )
  • 성공 : 200번

HTTPS

추가적으로 HTTP와 다른 HTTPS라는 개념이 있습니다. HTTPS(HyperText Transfer Protocol Secure)는 기존의 HTTP에 보안 계층(SSL/TLS) 을 덧붙인 프로토콜입니다. 즉, 클라이언트와 서버 간에 주고받는 데이터를 암호화하여 도청, 위·변조, 피싱 공격으로부터 안전하게 보호합니다.

 

HTTPS의 특징

  • 데이터 암호화: 제3자가 네트워크를 가로채더라도 내용을 읽을 수 없음.
  • 데이터 무결성 보장: 중간에 데이터가 변조되면 탐지 가능.
  • 인증(Authentication): 인증서를 통해 클라이언트가 접속한 서버가 신뢰할 수 있는 서버임을 확인.

API(Application Programming Interface)

서로 다른 소프트웨어 프로그램들이 통신하고 데이터를 주고받을 수 있도록 정의된 규칙과 프로토콜의 집합니다.

예를 들면, '찜 목록' 프로그램에 'app.js'(클라이언트 프로그램)가 백엔드 서버(서버 프로그램)와 소통하기 위해 사용하는 '접점'이라고 할 수 있습니다.

 

API를 사용하는 이유

API를 사용하면 소비자가 쉽고, 편하게 원하는 목적을 얻을 수 있도록 도와주기 때문에 대체적으로 사용하는편이며,개발자 입장에서는 API를 사용하면 이미 구현된 기능을 가져와 적용하기 때문에 시간 및 비용 절감, 기능 재사용 및 확장성 향상 등 여러 이점이 있습니다. (ex: 소셜 로그인, 지도 서비스, 간편 결제, 날씨 앱 등)

 

REST API

REST

REST는 웹에서 데이터를 전송하고 처리하는 방법을 정의한 인터페이스를 의미합니다. 예를 들어 개발자A와 개발자B가 있다고 가정했을 때 두 개발자의 API가 다를 경우 프론트엔드 입장에서는 혼란이 생길 수 있습니다. 그래서 만들어진 "표준 설계 원칙"을 REST라고 합니다.

 

REST ful API

좀 더 체계적으로 API를 관리하고 싶어 만들어진 API가 REST( Representational State Transfer ) API, RESTful API라고 합니다. 아래에선 해당 RESTful API에 대해 알아봅시다.

 

  • CREATE ( 생성하기 ): POST
  • READ ( 불러오기 ): GET
  • UPDATE ( 바꾸기 ): PUT ( 전체 ) / PATCH ( 일부 )
  • DELETE ( 지우기 ): DELETE

위 Method를 줄여서 "CRUD"라고 합니다.


[오늘 배운 학습]

1. 서버와 클라이언트 정의

2. API

3. HTTP/HTTPS

4. REST/REST ful

 

[다음 학습 계획]

1. 프론트엔드와 백엔드 맛보기

'TIL & 트러블 슈팅' 카테고리의 다른 글

[내일배움캠프] - DAY6 Vim 기반 Git 사용법  (0) 2026.01.06
[내일배움캠프] - DAY5 협업을 위한 GIT 알아보기  (0) 2026.01.06
[내일배움캠프] - DAY4 효율적으로 AI 활용하기  (0) 2026.01.06
[내일배움캠프] - DAY3 프론트엔드/백엔드 맛보기  (1) 2026.01.05
[내일배움캠프] - DAY1 웹 개발의 첫걸음  (0) 2026.01.05
'TIL & 트러블 슈팅' 카테고리의 다른 글
  • [내일배움캠프] - DAY5 협업을 위한 GIT 알아보기
  • [내일배움캠프] - DAY4 효율적으로 AI 활용하기
  • [내일배움캠프] - DAY3 프론트엔드/백엔드 맛보기
  • [내일배움캠프] - DAY1 웹 개발의 첫걸음
N_HYUN
N_HYUN
안녕하세요! 현이의 개발 공부방입니다.
  • N_HYUN
    현이의 개발 공부방
    N_HYUN
  • 전체
    오늘
    어제
    • 분류 전체보기 (29)
      • FrontEnd (0)
      • BackEnd (0)
        • Java (0)
      • DataBase (1)
      • TIL & 트러블 슈팅 (24)
      • Etc (4)
        • Theoretical Computer Scienc.. (1)
        • Web & CS (3)
  • 블로그 메뉴

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

  • 공지사항

  • 인기 글

  • 태그

  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.6
N_HYUN
[내일배움캠프] - DAY2 서버와 클라이언트
상단으로

티스토리툴바