본문 바로가기

SPRING

서버란 무엇일까? - (Spring - 1)

Network란??

여러대의 컴퓨터 또는 장비가 서로 연결되어서 정보를 주고 받을 수 있게 도와주는 기술

-서로 정보를 주고 받기 위해 IP주소, 서브넷 마스크, 게이트웨이 등의 정보를 설정하고 네트워크 프로토콜을 이용하여 통신하게 된다.

 

Client와 Server

클라이언트는 브라우저를 이용하여 서버에 정보를 요청, 서버는 요청된 정보를 바탕으로 응답을 하게된다

-> 이 때, 클라이언트의 요청이 서버에 도달하기 위해선 해당 서버의 정보가 필요한데 이 때 서버에 정확하게 도달할 수 있게 제공되는 정보가 IP 주소(ex. 192.168.0.123 )이다.

  택배 네트워크
주소(IP) 부천시 **구 **동 192.168.**.*
받는 사람(포트) 코코딩딩 8080

 

Web Server

인터넷을 통해 HTTP를 이용하여 웹상의 클라이언트의 요청을 응답해주는 통신을 하는 일종의 컴퓨터

1. 브라우저를 통해 HTTP Request로 웹사이트를 웹서버에 요청

2. 웹서버는 요청을 승인, HTTP Response를 통해 웹사이트 데이터를 브라우저에 전송

3. 브라우저는 받은 데이터를 이용해 웹사이트를 브라우저에 그려내는 일을 하게된다.

 ※기본적으로 브라우저가 웹서버에 요청을 할떄는 항상 GET method로 요청

 

API

API(Application Programming Interface) : 다른 소프트웨어 시스템과 통신하기 위해 따라야하는 규칙

=> 쉽게 표현하자면 API는 하나의 "약속"이라고 할 수 있다.

서로 다른 애플리케이션이 약속한 방식의 API 요청을 수행하면 정해진 결과물을 반환한다.

 

RESTful API

Representational State Transfer(REST)는 API 작동 방식에 대한 조건을 부과하는 소프트웨어 아키텍처이다

REST는 처음에 인터넷과 같은 복잡한 네트워크에서 통신을 관리하기 위한 지침으로 만들어졌는데

REST 아키텍쳐 스타일을 따르는 API를 REST API라고 하고

REST 아키텍처를 구현하는 웹 서비스를 RESTful 웹 서비스라고 한다.

=>쉽게 말하면 서버의 api가 적절하게 http를 준수하며 잘 설계 되어있다면 RESTful하게 설계되었다고 생각하면 된다.

 

Apache Tomcat

브라우저에서 URL을 입력하여 어떠한 페이지를 요청했을 때, HTTP의 요청을 받아들여 HTML문서같은 정적인 컨텐츠를 사용자에게 전달해주는 역할을 하는것이 WebServer이다.

웹서버의 역할을 크게 2가지로 구분해보면

1. 정적인 컨텐츠 즉, 이미 완성이 되어있는 HTML과 같은 문서를 브라우저로 전달

2. 브라우저로부터 '로그인하여 MyPage를 요청'과 같은 동적인 요청이 들어왔을 때 웹서버 자체적으로 처리하기 어렵기 때문에 해당 요청을 WAS로 전달 (ex. Apache, NginX)

-WAS는 웹서버와 똑같이 HTTP 기반으로 동작

- 웹 서버에서 할 수 있는 기능 대부분이 WAS에서도 처리 가능

- WAS를 사용하면 로그인,회원가입을 처리하거나 게시물을 조회하거나 정렬하는 등의 다양한 로직들을 수행하는 프로그램 동작(ex. Tomcat,JBoss)

즉, Apache Tomcat이란 Apache와 Tomcat이 합쳐진 형태로 정적인 데이터 처리와 동적인 데이터 처리를 효율적으로 할 수 있다.