빌드(Build) 자동화 시스템
빌드란? 작성한 Java 코드를 실행 가능한 형태로 만드는 과정
=> Gradle은 내가 작성한 자바 코드을 실행 가능한 jar 파일로 만들어준다.
gradle 기반 빌드 스크립트
=> 소스 코드를 빌드하고 외부 라이브러리들(필요한 기능들이 모여있는 코드 묶음)의 의존성을 관리할 수 있다.
라이브러리들을 모아둔 저장소: Maven Repository
여러 대의 컴퓨터 또는 장비가 연결돼서 정보를 주고 받게 해주는 기술
라우터, 허브 등의 장비
서로 정보를 주고 받기 위해서는 IP 주소, 서브넷 마스크, 게이트웨이 등의 정보를 설정하고 네트워크 프로토콜을 이용해서 통신
왜 알아야하나? 사용자가 요청했을 때 해당 요청에 대한 응답을 수행하는 프로그램을 만드는 것이 서버 개발자
Client: 서버에 정보를 요청하는 과정
Server: 클라이언트에서 온 요청을 처리하여 응답하는 과정
어디에 보낼꺼냐? IP 주소
인터넷을 통해 Http를 이용해 웹 클라이언트의 요청에 응답해주는 컴퓨터.
운영체제와 응용프로그램 사이의 통신에 사용되는 언어나 메세지 형식
application programming interface
다른 소프트웨어 시스템과 통신하기 위해 따라하는 규칙을 정의.
개발자는 다른 애플리케이션이 프로그래밍 방식으로 애플리케이션과 통신할 수 있도록 API를 표시하거나 생성한다. "약속"
REST 아키텍쳐 스타일을 따르는 API
고유 리소스 식별자:
- URI(Uniform Resource Identifier): 인터넷 상에 존재하는 자원을 식별하는 식별자
- URL(Uniform Resource Locater): 인터넷 상에 존재하는 자원의 위치(ex) 웹사이트 주소), 요청의 엔드포인트
- URN(Uniform Resource Name): 인터넷 상에 존재하는 자원의 이름
REST 서비스의 경우 URL을 사용해서 리소스를 식별한다.
메서드:
HTTP(Hypertext Transfer Protocol)를 통해 RESTful API를 구현.
HTTP 메서드는 리소스에 수행해야하는 작업을 서버에 알려준다.
GET
: 클라이언트는 GET 요청으로 URL의 자원에 접근.
POST
: 클라이언트는 POST 요청으로 URL에 데이터를 전송.
PUT/PATCH
: 클라이언트는 PUT을 사용해서 URL에 있는 기존의 리소스 전체 업데이트.
클라이언트는 PATCH를 사용해서 URL에 있는 기존의 리소스 부분 업데이트.
DELETE
: 클라이언트는 DELETE를 사용해서 URL에 있는 리소스 삭제.
Web Server
: 브라우저에 URL을 입력해서 페이지를 요청했을 때 Http Request를 승인해 HTML 문서와 같은 정적 컨텐츠를 사용자에게 전달해준다.
ex) Apache, Nginx
Web Application Server
: 로그인해서 내 페이지가기와 같은 동적인 요청이 들어왔을 때, 웹서버가 처리하기엔 어렵다. Web Application Server에 해당 요청을 전달한다.
ex) Tomcat, JBoss
Apache와 Tomcat이 합쳐진 형태 => 정적, 동적 데이터 처리를 해줌!

SpringBoot에서는