저번주에 이어 이번주에는 스프링 프레임워크에 대해 배우기 전 자바 기초 지식을 복습하고
웹 서비스에 대한 내용을 공부해보자.
02장. 기초 지식 배우기
교재의 간단한 실습을 진행하기 위한 자바 기초 지식을 복습해보고,
웹 서비스에 대한 필수 지식들을 정리 해보려한다.
2-1. 자바 기초 지식 복습
인터페이스란?
- 클래스에 포함하는 메서드의 구체적인 내용을 작성하지 않고 상수와 메서드 타입만 정의한 것
- 인터페이스는 다른 클래스에서 구현하는 것을 전제로 만들어진다.
-> 인터페이스를 선언한 메서드는 암묵적으로 public abstract 접근 제어자가 붙은 추상 메서드라고 불린다.
public interface Greet {
void greeting();
public abstract void greeting();
}
public class MoringGreet implements Greet {
@Override
public void greeting() {
System.out.println("좋은 아침입니다.");
}
}
리스트란?
- 자바에서 복수의 데이터를 더 쉽게 사용할 수 있게 하는 Collection 클래스를 제공한다.
- 컬렉션의 종류
| 종류 (인터페이스) | 개요 |
|---|
| 리스트 (List) | 순서대로 데이터를 저장. 데이터 중복 허용 |
| 세트 (Set) | 순서를 유지하지 않는 집합. 데이터 중복 허용 X |
| 맵 (Map) | 키와 값의 쌍으로 이루어진 데이터 집합. 순서 유지 X, 키 중복 X, 값 중복 허용 |
이런 컬렉션의 모음을 컬렉션 프레임워크라고 한다.
컬렉션 프레임워크는 다양한 인터페이스와 구현 클래스로 구성된다.
- 리스트의 개요
- 여러 데이터를 순서대로 정렬하여 저장할 때 사용
| 구현 | 개요 |
|---|
| ArrayList | 요소를 배열로 유지 -> 요소의 검색을 고속으로 처리 가능. but, 요소의 수가 많아지면 추가/삭제 처리 시간 많이 소요 |
| LinkedList | 요소끼리 전후 양방향의 링크로 참조하는 리스트 구조를 이용해 관리 -> ArrayList 보다 추가/삭제 처리 시간이 빠름. but, 특정 요소 검색과 같은 인덱스 값에 의한 무작위 액세스에는 적합하지 않음 |
package chapter02;
import java.util.ArrayList;
import java.util.List;
public class ListExercise {
public static void main(String[] args) {
List<String> names = new ArrayList<>();
names.add("홍길동");
names.add("김선비");
names.add("James");
for (String name : names) {
System.out.println(name);
}
}
}
- 실행 결과

2-2. 웹 어플리케이션을 만들기 위한 필수 지식 복습
클라이언트와 서버
- 클라이언트는 서비스를 요청하는 쪽이고 서버는 서비스를 제공하는 쪽이다.
- 서버가 서비스를 제공해 그 서비스를 클라이언트가 사용하는 관계.

어플리케이션과 웹 어플리케이션
- 어플리케이션 (응용 프로그램) : 응용 프로그램 소프트웨어의 약어로 프로그래밍 언어로 작성한 소프트웨어다.
- 웹 어플리케이션 (웹 응용 프로그램) : 인터넷을 통해 사용되는 응용 프로그램이다.
웹 서버
- 웹 서버 : 웹 어플리케이션을 배포하는 서버다. 웹 서버는 항상 실행되며 클라이언트로부터 액세스 (요청) 를 계속 기다린다.
HTTP 통신 (프로토콜)
- 클라이언트와 웹 서버는 HTTP 요청 (request) 과 HTTP 응답 (response) 으로 상호작용하는 것
- 클라이언트의 요청에 대해 웹 서버가 응답하게 된다.
- HTTP 통신의 흐름
- 클라이언트가 브라우저에 URL을 입력한다.
- 클라이언트에서 웹 서버로 HTTP 요청이 전송된다.
- 웹 서버는 HTTP 요청을 받아 HTTP 요청에 해당하는 HTTP 응답을 클라이언트에게 반환한다.
- 브라우저는 받은 응답을 표시하고 클라이언트가 이를 확인한다.
GET 메서드와 POST 메서드
- GET 메서드 : 브라우저에서 웹 서버로 값을 전달할 때 URL 뒤에 값을 더하여 보내는 방식.
- URL 뒤에 오는 정보를 쿼리 스트링 또는 쿼리 문자열이라고 부른다.
- URL 끝에 '?' 가 붙어 쿼리 스트링의 시작을 나타낸다.
- 형식은 '이름 = 값' 이다.
- 여러 값을 전달하려면 '&' 로 연결한다.
(ex. domain.com/?name=value&tel=010)
- 쿼리 스트링은 많은 양의 값을 보내기에 적합하지 않다.
- POST 메서드 : 브라우저로부터 웹 서버에 값을 보낼 때 요청 본문이라고 하는 URL에는 보이지 않는 장소에 값을 넣어서 보내는 방법.
- e-커머스 사이트 등에서 개인정보를 등록할 때 입력한 내용을 URL에 표시하고 싶지 않을 경우에 POST 메서드가 사용되며, 많은 양의 값을 보내는 데 적합하다.
2-3. 개발에 사용하는 편리한 라이브러리와 도구
Lombok 이란?
- getter 나 setter 등의 코드를 작성하지 않아도 자동으로 구현해주는 라이브러리
Gradle 이란?
- Gradle 은 빌드 도구이며, 최근에는 자바 개발의 표준이 되고 있다.
- 빌드 : 요구된 실행 환경에서 동작할 수 있는 형식에 어플리케이션이나 라이브러리를 조립하는 것
- 빌드 도구는 아래 반복적인 작업을 자동화한다.
- 필요한 라이브러리를 리포지토리에서 다운로드한다.
- 소스코드를 컴파일한다.
- 테스트를 실행하여 보고서를 출력한다.
- 클래스 파일의 아카이브를 생성한다.
- 아카이브를 스테이징 환경 등에 배포한다.