Gradle
: 빌드 자동화 시스템
: 우리가 작성한 코드를 설정에 맞게 자동으로 Build하는 도구
: 즉, 실행 가능한 jar 파일로 변환해준다
build.gradle
- 소스코드를 빌드하고, 라이브러리들의 의존성을 쉽게 관리할 수 있는 Gradle 기반의 빌드 스크립트
- 라이브러리 간의 충돌 (버전 등등)을 방지한다
- groovy / kotlin으로 작성할 수 있음 (우리는 groovy로 작성!)
외부 라이브러리 사용
-
Maven Repository : 라이브러리들을 모아둔 저장소
-
dependencies 부분에 작성 시 Gradle이 위와 같은 저장소에서 자동으로 다운로드 함
-
버전 변경 시 우측 코끼리모양을 클릭하면 라이브러리도 그에 맞게 변경됨
-> 확인하고 싶으면 External Libraries에서 확인 가능!
서버란 무엇인가?
네트워크란?
여러 대의 장비가 연결되어서 정보를 주고받을 수 있게 도와주는 기술
- 장비 : 컴퓨터, 라우터, 스위치, 허브 등
- 정보를 주고 받을 때 사용하는 것 : IP 주소, 서브넷 마스크, 게이트웨이 등의 설정, 네트워크 프로토콜을 이용
IP 주소 / 포트 번호
- IP 주소 = 컴퓨터 주소 (집 주소)
- 데이터를 주고 받을 때 서로의 IP 주소가 필요하다
(나에게 유투브의 IP, 유투브에게 나에게 IP가 필요함)
- 컴퓨터가 네트워크에 연결될 때 정해진다
- 개인적으로 사용할 시 IP 주소는 유동적으로 할당되고, 서버의 경우 고정시키는 게 일반적
- 포트 번호 = 관문
- 컴퓨터 내에서 프로그램을 찾기 위한 수단
API란?
- Application Programming Interface
- 애플리케이션이나 디바이스가 서로 간에 연결하여 통신할 수 있는 방법을 정의하는 규칙
- 다른 애플리케이션이 프로그래밍 방식으로 애플리케이션과 통신할 수 있도록 API를 표시하거나, 생성해야 한다
- 주문한 음식을 가져다주는 점원이라고 이해하자!
인터페이스
- 서로 다른 두 시스템, 장치 사이에서 정보나 신호를 주고받는 경우의 접점이나 경계면
Restful API
: REST 아키텍처 스타일을 따르는 API
: 서버의 API 가 HTTP를 적절하게 준수하며 잘 설계되어 있다 = RESTful 하게 설계되어 있다.
- REST : 복잡한 네트워크에서 통신을 관리하기 위한 지침
- RESTful 웹 서비스 : REST 아키텍처를 구현하는 웹 서비스
메서드
GET : 데이터 요청
POST : 서버에 데이터 저장
PUT : 데이터 수정
DELETE : 데이터 삭제
웹서버란?

- 클라이언트가 웹상의 요청을 하면, HTTP를 이용하여 인터넷을 통해 응답하는 일종의 컴퓨터
- 사용자 : 브라우저를 통해 웹사이트를 요청 (HTTP Request) ex) naver.com
- 웹 서버 : 요청 승인, 웹사이트 데이터를 브라우저에 전송 (HTTP Response)
- 브라우저 : 서버에서 받아온 데이터를 이용해 웹사이트를 브라우저에 그려냄
브라우저의 HTTP Request를 받으면 HTTP Response를 통해 응답하는 역할
1) 정적인 콘텐츠 (이미 완성되어있는 HTML 등)의 문서를 브라우저로 전달
2) 브라우저로부터 동적인 요청 (로그인 후 마이페이지 요청) 시 웹 서버 자체적으로 처리하기 어렵기 때문에, 해당 요청을 WAS에 전달함
WAS
- 웹 애플리케이션 서버
- 웹 서버에서 할 수 있는 기능 대부분을 WAS에서도 처리할 수 있다
- WAS를 사용 시 로그인, 회원가입 처리 / 게시물 조회, 정렬 로직 수행하는 프로그램을 동닥시킬 수 있다.
- Tomcat, JBoss 등이 있다.
Apache Tomcat

Apache + Tomcat
- Web Server가 할 수 없는 일을 Servlet에 전달한다
Spring / SpringBoot
-
Spring
- framework의 한 종류
- IoC/DI, AOP, PSA 등의 핵심 기능을 가지고 있다.
- 핵심 기능을 사용하기 위해서는 xml 설정이 많이 필요했다.
-
SpringBoot
- xml 설정 대신 Java 기반의 애너테이션 설정을 사용. 가볍고 간편해짐
- 기본적으로 필요한 설정들을 default로 설정해줌
- 외부 라이브러리와의 버전 등을 다 호환에 맞춰서 설정해줌
- 내장 Apache Tomcat을 제공한다
Postman
: API 개발을 돕는다 = 우리가 API 명세에 맞게 작성했는지 확인을 돕는다
프로그램 내에서 API 요청이 처리 되었는지 확인할 수 있다.
HTTP란?
HTTP 통신 방식

HTTP에는 언제나 Request, Response라는 개념이 존재한다.
- 브라우저 : 원하는 페이지 (URL 등의 정보) 웹사이트를 요청 (Request)
- 서버 : 요청 승인, 있다면 웹사이트 데이터를 브라우저에 전송 (Response)
- 브라우저 : 서버에서 받아온 데이터를 이용해 웹사이트를 브라우저에 그려냄
개발자 도구, 네트워크 탭
F12 > 네트워크 탭 > 새로고침
- Headers 탭 : 추가 데이터 / Reponse 탭 : 일반 데이터
HTTP 상태 코드
- 1xx : 요청 수신됨, 실행 중 (클라이언트가 서버와의 연결 확인)
- 2xx : HTTP 요청 성공적으로 처리됨 (가장 많이 볼 수 있음)
- 3xx : 클라이언트가 추가적인 조치를 취해야 함 (Redirection)
- 4xx : 클라이언트에 오류가 있음 / 잘못된 요청, 인증 오류 (Client Error)
- 5xx : 서버 오류 / 서버 과부하(Server Error)
추가 데이터, 일반 데이터

- 브라우저가 어떤 페이지를 원하는지
- 요청 받은 페이지를 찾았는지
- 요청 받은 데이터를 성공적으로 찾았는지
- 어떤 형식으로 데이터를 보낼지
Payload (데이터)
- 서버가 응답을 보낼 때에는 항상 Payload를 보낼 수 있고, 클라이언트가 요청할 때도 보낼 수 있다.
- GET method를 제외하곤 모두 payload를 보낼 수 있다
- Get에는 HTTP body가 없다 즉, payload를 받으려고 하면 오류 발생
- JSON / HTML 등의 데이터