안녕하세요, 오늘은 입문주차 강의자료를 바탕으로 서버에 대해 다시 정리해보았습니다.
네트워크는 여러대의 컴퓨터 또는 장비가 서로 연결되어서 정보를 주고 받을 수 있게 도와주는 기술입니다.네트워크란?
Client와 Server
웹 서버란?
API란?
API(application programming interface)는 다른 소프트웨어 시스템과 통신하기 위해 따라야 하는 규칙을 정의합니다.
개발자는 다른 애플리케이션이 프로그래밍 방식으로 애플리케이션과 통신할 수 있도록 API를 표시하거나 생성합니다.
인터페이스(interface)는 서로 다른 두 개의 시스템, 장치 사이에서 정보나 신호를 주고받는 경우의 접점이나 경계면을 의미합니다.
즉, 사용자가 기기를 쉽게 동작시키는데 도움을 주는 시스템을 의미합니다.
쉽게 표현해보자면 API는 하나의 "약속" 입니다.
서로 다른 애플리케이션이 약속한 방식의 API 요청을 수행하면 정해진 결과물을 반환합니다.
주문을 받으면 해당 주문의 음식을 가져다 주는 식당의 점원이라고 비유적으로 이해하시면 좋을 것 같습니다.
RESTful API란?
Representational State Transfer(REST)는 API 작동 방식에 대한 조건을 부과하는 소프트웨어 아키텍처입니다.
REST는 처음에 인터넷과 같은 복잡한 네트워크에서 통신을 관리하기 위한 지침으로 만들어졌습니다.
REST 아키텍처 스타일을 따르는 API를 REST API라고 합니다.
REST 아키텍처를 구현하는 웹 서비스를 RESTful 웹 서비스라고 합니다.
Web Server 와 Web Application Server(WAS)
브라우저에서 URL을 입력하여 어떠한 페이지를 요청했을 때 HTTP의 요청을 받아들여 HTML 문서와 같은 정적인 콘텐츠를 사용자에게 전달해주는 역할을 하는 것이 Web Server입니다.
웹 서버의 역할을 크게 2가지로 구분해보면
종류로는 Apache, Nginx 등이 있습니다.
WAS는 웹 서버와 똑같이 HTTP 기반으로 동작이 됩니다.
웹 서버에서 할 수 있는 기능 대부분을 WAS에서도 처리할 수 있습니다.
WAS를 사용하면 로그인,회원가입을 처리하거나 게시물을 조회하거나 정렬하는 등의 다양한 로직들을 수행하는 프로그램을 동작시킬 수 있습니다.
Apache Tomcat이란?
Tomcat은 동적인 처리를 할 수 있는 웹 서버를 만들기 위한 웹 컨테이너입니다.
Apache Tomcat이란 Apache와 Tomcat이 합쳐진 형태로 정적인 데이터 처리와 동적인 데이터 처리를 효율적으로 해줄 수 있습니다.
SpringBoot와 Spring
Spring 프레임워크는 2004년에 1.0이 등장한 이후 20년가까이 사랑받으며 계속해서 업그레이드 해온 현재는 Spring 6.0이 등장한 아주 오래되고 강력한 프레임워크입니다.
Spring 프레임워크는 AOP, IoC/DI 등과 같은 아주 강력한 핵심 기능들을 가지고 있습니다.
기존에는 외부 라이브러리와 프레임워크를 사용하기 위해서 각각의 버전들의 호환성을 직접 확인해가면서 의존성들을 설정해야 했지만 SpringBoot에서는 spring-boot-starter-web
처럼 필요한 외부 라이브러리들과 프레임워크들을 의존성에 맞게 starter로 묶어서 제공해 줍니다.
마지막으로 SpringBoot의 강력한 점을 물어봤을 때 대답하는 것 중 하나가 바로 내장 Apache Tomcat 입니다.
Spring 프레임워크에서는 서버를 실행시키기 위해 Apache Tomcat을 직접 다운로드 받고 설정하고 프로젝트에 삽입 했어야 했습니다.
starter-web
dependency를 설정하면 자동으로 내장형 Apache Tomcat을 제공해 줍니다.