[Spring] Gradle, 서버, HTTP, Lombok

지인·2023년 6월 14일
0

TIL

목록 보기
22/38
post-custom-banner

🐰 Gradle

빌드 자동화 시스템
우리가 작성한 Java 코드를 설정에 맞게 자동으로 Build해 준다.
Gradle을 사용하면 간편하게 Java 소스 코드를 실행 가능한 jar 파일로 만들어 준다

🐾 Build : 소스 코드를 실행 가능한 결과물로 만드는 일련의 과정

build.gradle

  • Gradle 기반의 빌드 스크립트

  • 이 스크립트를 작성하면 소스 코드를 빌드하고 라리브러리들의 의존성을 쉽게 관리할 수 있다.

  • groovy 혹은 kotlin 언어로 스크립트를 작성할 수 있다.

  • 외부 라이브러리들을 dependencies 부분에 작성하면 Gradle이 해당 라이브러리들을 Maven Repository와 같은 외부 저장소에서 자동으로 다운로드 해온다.

  • 다른 라이브러리들과의 의존성을 자동으로 관리해주기 때문에 라이브러리들간의 충돌 걱정없이 개발에만 집중할 수 있다.


🐰 서버

네트워크

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

Client와 Server

  • 사용자는 브라우저를 이용하여 서버에 정보를 요청하고 응답을 받는다.
  • 이때 사용자의 요청이 서버에 도달하기 위해서는 해당 서버의 정보가 필요
  • 사용자의 요청이 해당 서버에 정확하게 도달할 수 있게 제공되는 정보가 IP 주소

웹 서버

  • 인터넷을 통해 HTTP를 이용하여 웹상의 클라이언트의 요청을 응답해주는 통신을 하는 일종의 컴퓨터
  1. 브라우저를 통해 HTTP Request로 웹사이트를 웹서버에 요청
  2. 이후 웹서버는 요청을 승인하고 HTTP Request를 통해 웹사이트 데이터를 브라우저에 전송
  3. 브라우저는 서버에서 받아온 데이터를 이용해 웹사이트를 브라우저에 그려내는 일을 한다.

🐾 기본적으로 브라우저가 웹서버에 요청을 할때는 항상 GET method로 요청하게 된다.

API

API(application programming interface)
다른 소프트웨어 시스템과 통신하기 위해 따라야 하는 규칙을 정의한다.
개발자는 다른 애플리케이션이 프로그래밍 방식으로 애플리케이션과 통신할 수 있도록 API를 표시하거나 생성한다.

🐾 interface는 서로 다른 두 개의 시스템, 장치 사이에서 정보나 신호를 주고받는 경우의 접점이나       경계면을 의미.
    사용자가 기기를 쉽게 동작시키는데 도움을 주는 시스템.

RESTful API

Representational State Transfer(REST)
API 작동 방식에 대한 조건을 부과하는 소프트웨어 아키텍처
REST 아키텍처 스타일을 따르는 API를 REST API라고 한다.
REST 아키텍처를 구현하는 웹 서비스를 RESTful 웹 서비스라고 한다.

🐾 API의 리소스 식별자를 중복 없이 고유하게 잘 만들고 해당 API에 적절하게 HTTP 메서드를 사용했다면, RESTful하게 설계했다고 볼 수 있다.


🐰 HTTP

HTTP(HyperText Transfer Protocol)
데이터를 주고 받는 양식을 정의한 "통신 규약"중 하나
매우 범용적인 양식을 가지고 있어 전 세계에서 제일 널리 쓰이는 통신 규약

🐾 통신규약 : 컴퓨터끼리 데이터를 주고 받을 때 정해둔 약속

  • 서버와 브라우저의 관계
  1. 브라우저는 서버에게 자신이 원하는 페이지를 요구(Request)한다.
  2. 서버는 브라우저가 원하는 페이지가 있는지 확인하고, 있다면 해당 페이지에 대한 데이터를 실어 응답(Response)해준다. 없다면 없는 페이지에 대한 데이터를 반환
  3. 브라우저는 서버에게 전달 받은 데이터를 기반으로 브라우저에 그려준다.

Status Code

  • HTTP 상태 코드(Status Code)를 통해 브라우저와 서버간의 요청, 응답 과정에서 발생할 수 있는 상황들을 표현할 수 있다

  • HTTP 샅애 코드는 3자리 숫자로 이루어져 있다.

  • 첫 번째 자리 숫자는 상태 코드의 분류를 나타내는 용도로 사용되며, 나머지 두 자리는 세부적인 정보를 나타낸다.

  • 1xx (Informational)

    • 1xx 상태 코드는 요청이 수신 되었으며 처리가 계속되고 있음을 나타낸다.
    • 주로 웹 브라우저와 같은 클라이언트가 서버와의 연결 상태를 확인하기 위해 사용
  • 2xx (Successful)

    • 2xx 상태 코드는 클라이언트의 요청이 성공적으로 처리 되었음을 나타낸다.
    • 가장 많이 사용되는 상태 코드는 200
    • 이는 요청이 성공적으로 처리 되었으며 클라이언트가 요청한 데이터가 서버에서 제공됨을 의미
  • 3xx (Redirection)

    • 3xx 상태 코드는 클라이언트가 추가적인 조치를 취해야 함을 나타낸다.
    • 이 상태 코드는 주로 페이지 이동, 리다이렉션 등에 사용
  • 4xx (Client Error)

    • 4xx 상태 코드는 클라이언트에 오류가 있음을 나타낸다.
    • 이 상태 코드는 주로 클라이언트의 잘못된 요청, 인증 오류 등에 사용
    • 가장 많이 사용되는 상태 코드는 404입니다. 이는 클라이언트가 요청한 페이지나 리소스를 서버에서 찾을 수 없음을 의미
  • 5xx (Server Error)

    • 5xx 상태 코드는 서버에 오류가 발생했음을 나타낸다.
    • 이 상태 코드는 주로 서버의 오류, 서버 과부하 등에 사용
    • 가장 많이 사용되는 상태 코드는 500입니다. 이는 서버 내부 오류가 발생함을 의미

🐰 Lombok

자바 프로젝트를 진행하는데 거의 필수적으로 필요한 메서드/생성자 등을 자동 생성해줌으로써 코드를 절약할 수 있도록 도와주는 라이브러리

  • @Getter : get…() 메서드를 만들어준다.

  • @Setter : set…() 메서드를 만들어준다.

  • @AllArgsConstructor, NoArgsConstructor : 기본 생성자와 모든 필드를 파라미터로 가진 오버로딩된 생성자를 만들어 준다.

  • @RequiredArgsConstructor : final 제어자가 붙은 필드를 파라미터로 가진 오버로딩된 생성자를 만들어 준다.

profile
열쩡
post-custom-banner

0개의 댓글