Blog

[Spring]06 서버란 무엇일까?(네트워크, 클라이언트 서버, API, RESTful API)

Author
Summary
스프링에 들어가기 앞서 서버와 WAS까지
Category
Study
Tags
Spring
Favorite
Memory Date
2023/08/25
Cross Reference Study
Related Media
Related Thought
Related Lessons
tag
날짜
작성자
진행상황
진행 전
태그구분
6 more properties
네트워크란?
네트워크는 여러대의 컴퓨터 또는 장비가 서로 연결되어서 정보를 주고 받을 수 있게 도와주는 기술
컴퓨터, 라우터, 스위치, 허브 등의 장비들이 각각의 역할을 수행하여 정보를 주고 받습니다.
서로 정보를 주고 받기 위해서는 IP 주소, 서브넷 마스크, 게이트웨이등의 정보를 설정하고 네트워크 프로토콜을 이용하여 통신을 하게 됩니다.
Client? Server?
클라이언트(브라우저) 는 위 그림과 같이 인터넷을 통해 네트워크로 연결된 서버에 요청을 보낸다. 서버는 요청에 대한 응답을 돌려준다.
그럼 처음에 어떻게 서버를 특정 할 수 있을까?
IP주소를 통해서 서버 또는 컴퓨터의 위치를 특정하게 된다.
이전에 정리했지만 내부아이피, 외부아이피가 존재한다. 외부아이피가 직접적인 통신사와 인터넷이 연결된 실제 IP 주소이다. NAS서버 컴퓨터를 만지작거리면서 이 부분에 대해서 조금 학습하게 되었다. 외부 IP주소는 기본적으로 공개되어있지 않지만, 쉽게 찾아 볼 수도 있다.
대부분 192.0.8.1과 같은 아이피 주소는 내부아이피 주소이다. 이것은 보통 허브, 공유기와 같은 1차 외부 IP를 받아내서 홈 네트워크로 구성된 내부 네트워크의 가상 주소이기 때문에, 외부에서는 접속되지 않는다. 기본적으로 HTTP URL을 입력하면 포트라는 것이 생략되어있는데, 기본 브라우저 요청 포트는 80번으로 설정된 경우가 많다.
그럼 웹서버는 무엇인가?
웹 서버도 위 개념과 다른 부분이 없다. 웹 서버는 클라이언트로부터 HTTP 요청을 받고, “웹서버”를 통해서 요청에 대한 처리, 가공이 진행 된 후, HTML, CSS 등 을 담아서 클라이언트에 반환 하는 것이다.
API는 그럼 무엇인가?
웹 서버에서 클라이언트 요청에 따라 서버가 API를 통해 무언가 가공하고 반환하는 그림을 볼 수 있다. 그럼 API는 무엇인가?
API(application programming interface)는 다른 소프트웨어 시스템과 통신하기 위해 따라야 하는 규칙을 정의합니다. 개발자는 다른 애플리케이션이 프로그래밍 방식으로 애플리케이션과 통신할 수 있도록 API를 표시하거나 생성합니다.
클라이언트는 손님, 서버가 식당이라고 하자. 손님이 어떠한 요청 할 때 식당은 어떤 행동을 하는가?를 주목해서 보아야 한다.
이러한 HTTP 요청을 상황에 따라 적절한 메소드 GET, POST, PUT 등으로 작동하도록 설계 해둔 것을 RESTful하게 API를 설계 했다라고 부를 수 있다.
REST 아키텍처 스타일을 따르는 API를 REST API라고 한다.
Web Server와 Web Application Server의 차이?
쉽게 말하면 웹 서버에 동적인 처리를 맡길 수 있는 부분이 더 붙은 웹 서버이다.