litlight 2024. 5. 17. 20:08

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

  • 정보를 주고받기 위해서는 IP주소, 서브넷 마스크, 게이트웨이 등의 정보를 설정하고 네트워크 프로토콜을 이해서 통신함

Client & Server

  • 사용자는 브라우저를 이요하여 서버에 정보를 요청하고 응답을 받음
    • 이때 사용자의 요청이 서버에 도달하기 위해서는 해당 서버의 정보가 필요함 
      • IP 주소 :  위의 사용자의 요청이 해당 서버에 정확하게 도달할 수 있도록 제공되는 정보
        • 택배로 예시를 들면 [서울시 마포구 ***]라는 택배를 받을 주소가 네트워크에서는 [192.168.**.*] 같은 IP 주소가 된다.
        • 여기서 택배를 받을 사람을 네트워크 상에서는 8080과 같은 포트가 된다.
        • 택배를 받기 위해 택배을 받을 실제 주소와 사람을 알려주듯 네트워크에서도 정보를 요청받고 전달하기 위해 주소에 해당하는 IP와 받는 사람에 해당하는 포트번호를 알려줘야 함.

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

웹 서버의 기본 동작 원리

  1. 브라우저를 통해 HTTP Request로 웹사이트를 웹서버에 요청
  2. 웹서버는 요청을 승인하고 HTTP Rsponse를 통해 웹사이트 데이터를 브라우저에 전송
  3. 브라우저는 서버에서 받아온 데이터를 이용해 웹사이트를 브라우저에 그려내는 일을 함
    • 기본적으로 브라우저가 웹서버에 요청을 할 때는 항상 GET method로 요청

API  : 다른 소프트웨어 시스템과 통신하기 위해 따라야 하는 규칙을 정의함

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

인터페이스 : 서로 다른 두 개의 시스템, 장치 사이에서 정보나 신호를 주고받는 경우의 접점이나 경계면을 의미함

  • 사용자가 기기를 쉽게 동작시키는데 도움을 주는 시스템

RESTful API : API  작동 방식에 대한 조건을 부과하는 소프트웨어아키텍처

  • REST는 처음에 인터넷과 같은 복잡한 네트워크에서 통신을 관리하기 위한 지침으로 만들어짐
  • REST API : REST 아키텍처 스타일을 따르는 API
  • RESTful 웹 서비스 : REST 아키텍처를 구현하는 웹 서비스

⇒ HTTP를 준수하며 잘 설계되었다면 RESTful 하게 설계되었다고 볼 수 있음

Web Server & Web Application Server(WAS)

Web Server  

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

웹 서버의 역할

  1.  정적인 콘텐츠(이미 완성되어 있는 HTML 같은 문서)를 브라우저로 전달
  2. 브라우저로부터 동적인 요청(로그인 후 MyPage 요청)이 들어왔을 때 웹 서버 자체적으로 처리하기 어려움 ⇒ 해당 요청을 WAS에 전달함

웹 서버 종류 

  • Apache, Nginx 등

 WAS

  • 웹 서버와 똑같이 HTTP를 기반으로 동작
  • 웹 서버에서 할 수 있는 기능 대부분 WAS에서도 처리 가능함
  • WAS를 사용하여 로그인, 회원가입 등을 처리할 수 있으며 게시물을 조회하거나 정렬하는 등의 다양한 로직들을 수행하는 프로그램 동작시킬 수 있음

WAS 종류

  • Tomcat, JBoss

Tomcat

  • 동적인 처리를 할 수 있는 웹 서버를 만들기 위한 웹 컨테이너

Apache Tomcat

  • Apache와 Tomcat이 합쳐진 형태로 정적인 데이터 처리와 동적인 데이터를 효율적으로 처리해 줌

Spring

  • Spring 프레임워크는 AOP, IoC/DI 등과 같은 아주 강력한 핵심 기능들을 가지고 있음
    • 하지만 이러한 핵심 기능들을 사용하기 위해서는 너무나도 많은 xml 설정들이 필요했고 이러한 불편함을 개선하기 위해 SpringBoot가 생김