상세 컨텐츠

본문 제목

[TIL#14-2] 가을에 시작한 Spring part.1 <그레이들, 서버, HTTP>

내배캠/Chapter3

by DK9 2023. 11. 2. 18:03

본문

1. 그레이들

  • 빌드 자동화 해주는 프로그램이다.  .jar파일로 만들어준다.
  • biuld.gradle 은 그레이들 기반의 빌드 스크립트. 소스코드 빌드 & 라이브러리 의존성을 관리한다.
  • plugins에 springBoot versin을 변경할 수 있다. ex) 3.1.0 두번째 자리부터 큰 변화가 있다.
  • 필요한 외부 라이브러리들을 dependencies 부분에 작성하면 된다.

2. 서버란 무엇인가?


  1) 네트워크

  • 여러대의 컴퓨터 또는 장비가 연결되어서 정보를 주고 받을 수 있는 기술.
  • 정보를 주고 받기 위해서 IP 주소, 서브넷 마스크, 게이트웨이등의 정보를 설정하고 네트워크 프로토콜을 이용하여 통신한다.
  • 요청이 해당 서버에 정확하게 도달할 수 있게 제공되는 정보가 IP 주소.

 2) 웹서버

  • 인터넷을 통해 HTTP를 이용하여 웹상의 클라이언트의 요청을 응답해주는 통신을 하는 일종의 컴퓨터
  • 브라우저에서 URL을 입력하여 어떠한 페이지를 요청했을 때 HTTP의 요청을 받아들여 HTML 문서와 같은 정적인 콘텐츠(완성된 컨텐츠)를 사용자에게 전달해주는 역할을 하는 것이 웹서버.

  3) API

  • API(application programming interface)는 다른 소프트웨어 시스템과 통신하기 위해 따라야 하는 규칙을 정의, 쉽게 표현하면 "약속".

  (1)RESTful API

  • Representational State Transfer(REST)는 API 작동 방식에 대한 조건을 부과하는 소프트웨어 아키텍처.
  • REST 아키텍처 스타일을 따르는 API를 REST API, REST 아키텍처를 구현하는 웹 서비스를 RESTful 웹 서비스라고 한다.
  • 쉬운 말로 바꾸면, 서버의 api가 적절하게  http를 준수하며 잘 설계되어있으면 RESTful 하게 설계된 것이다.

  (2)WAS

  • 브라우저로부터 ‘로그인하여 MyPage를 요청’과 같은 동적인 요청이 들어왔을 때 웹 서버 자체적으로 처리하기 어렵기 때문에 해당 요청을 WAS에 전달.
  • WAS는 웹 서버와 똑같이 HTTP 기반으로 동작, 웹 서버에서 할 수 있는 기능 대부분을 WAS에서도 처리할 수 있지만 웹서버와 WAS를 같이 사용하는 것이 효율적.
  • 대표적인 것들 ) 웹서버 = APACHE / WAS = Tomcat.
  • APACHE회사가 웹서버와 WAS를 같이 합쳐서 Apache Tomcat를 만듦.

  (3)Spring과 SpringBoot

  • Spring (프레임워크)은/는 AOP, IoC/DI 등과 같은 아주 강력한 핵심 기능들을 가지고 있다. 이러한 핵심 기능들을 사용하기 위해서는 너무나도 많은 xml 설정들이 필요했다.
  • 이를 해결하기 위한 것이 SpringBoot.
  • SpringBoot는 xml 설정 대신 Java의 애너테이션 기반의 설정을 적극적으로 사용하여 xml을 아주 간편하게 대체함.
  • 기본적으로 개발에 필요한 설정 정보들을 일반적으로 많이 사용하는 설정 값을 default로 하여 자동으로 설정.
  • 외부 라이브러리나 하위 프레임워크들의 의존성 관리가 매우 쉬워짐.
  • 마지막으로 SpringBoot의 가장 강력한 점 중 하나가 바로 내장 Apache Tomcat.

Postman

  Postman이란 API 개발을 빠르고 쉽게 구현할 수 있도록 도와주는 소프트웨어 플랫폼 사용하라는데 해야지 뭐


3. HTTP란 무엇인가

 1)HTTP

  • 데이터를 주고 받는 양식을 정의한 "통신 규약"중 하나. 매우 범용적인 양식을 가지고 있어 전 세계에서 제일 널리 쓰이는 통신 규약.
  • HTTP는 브라우저가 Request, 서버가 Response하는 형식으로 데이터를 주고 받음.
  • HTTP구성은
    • Method (호출/요청 방식) - `GET`, `POST`, `DELETE` 등의 여러 요청 방식이 존재, 가장 대표적인 요청 방식이 `GET` 과 `POST`.
    • Header(추가 데이터, 메타 데이터) - 브라우저가 어떤 페이지를 원하는지 - 요청 받은 페이지를 찾았는지 - 요청 받은 데이터를 성공적으로 찾았는지 - 어떤 형식으로 데이터를 보낼지 등 다양한 의사 표현을 위한 데이터를 모두 Header 필드에 넣고 주고 받는다.
    • Payload (데이터. 실제 데이터) - 서버가 응답을 보낼 때에는 항상 Payload를 보낼 수 있다. 클라이언트(브라우저)가 요청을 할 때에도 Payload를 보낼 수 있다. 그리고 `GET` method를 제외하곤 모두 Payload를 보낼 수 있다"는게 HTTP에서의 약속.

관련글 더보기