빌드 자동화 시스템
우리가 작성한 Java 코드를 설정에 맞게 자동으로 Build해 준다.
Gradle을 사용하면 간편하게 Java 소스 코드를 실행 가능한 jar 파일로 만들어 준다
🐾 Build : 소스 코드를 실행 가능한 결과물로 만드는 일련의 과정
Gradle 기반의 빌드 스크립트
이 스크립트를 작성하면 소스 코드를 빌드하고 라리브러리들의 의존성을 쉽게 관리할 수 있다.
groovy 혹은 kotlin 언어로 스크립트를 작성할 수 있다.
외부 라이브러리들을 dependencies 부분에 작성하면 Gradle이 해당 라이브러리들을 Maven Repository와 같은 외부 저장소에서 자동으로 다운로드 해온다.
다른 라이브러리들과의 의존성을 자동으로 관리해주기 때문에 라이브러리들간의 충돌 걱정없이 개발에만 집중할 수 있다.
여러대의 컴퓨터 또는 장비가 서로 연결되어서 정보를 주고 받을 수 있게 도와주는 기술
🐾 기본적으로 브라우저가 웹서버에 요청을 할때는 항상 GET method로 요청하게 된다.
API(application programming interface)
다른 소프트웨어 시스템과 통신하기 위해 따라야 하는 규칙을 정의한다.
개발자는 다른 애플리케이션이 프로그래밍 방식으로 애플리케이션과 통신할 수 있도록 API를 표시하거나 생성한다.
🐾 interface는 서로 다른 두 개의 시스템, 장치 사이에서 정보나 신호를 주고받는 경우의 접점이나 경계면을 의미.
사용자가 기기를 쉽게 동작시키는데 도움을 주는 시스템.
Representational State Transfer(REST)
API 작동 방식에 대한 조건을 부과하는 소프트웨어 아키텍처
REST 아키텍처 스타일을 따르는 API를 REST API라고 한다.
REST 아키텍처를 구현하는 웹 서비스를 RESTful 웹 서비스라고 한다.
🐾 API의 리소스 식별자를 중복 없이 고유하게 잘 만들고 해당 API에 적절하게 HTTP 메서드를 사용했다면, RESTful하게 설계했다고 볼 수 있다.
HTTP(HyperText Transfer Protocol)
데이터를 주고 받는 양식을 정의한 "통신 규약"중 하나
매우 범용적인 양식을 가지고 있어 전 세계에서 제일 널리 쓰이는 통신 규약
🐾 통신규약 : 컴퓨터끼리 데이터를 주고 받을 때 정해둔 약속
HTTP 상태 코드(Status Code)를 통해 브라우저와 서버간의 요청, 응답 과정에서 발생할 수 있는 상황들을 표현할 수 있다
HTTP 샅애 코드는 3자리 숫자로 이루어져 있다.
첫 번째 자리 숫자는 상태 코드의 분류를 나타내는 용도로 사용되며, 나머지 두 자리는 세부적인 정보를 나타낸다.
1xx (Informational)
2xx (Successful)
3xx (Redirection)
4xx (Client Error)
5xx (Server Error)
자바 프로젝트를 진행하는데 거의 필수적으로 필요한 메서드/생성자 등을 자동 생성해줌으로써 코드를 절약할 수 있도록 도와주는 라이브러리
@Getter : get…() 메서드를 만들어준다.
@Setter : set…() 메서드를 만들어준다.
@AllArgsConstructor, NoArgsConstructor : 기본 생성자와 모든 필드를 파라미터로 가진 오버로딩된 생성자를 만들어 준다.
@RequiredArgsConstructor : final 제어자가 붙은 필드를 파라미터로 가진 오버로딩된 생성자를 만들어 준다.