스프링 프레임워크 첫걸음_북스터디_2주차
2장_기초 지식 배우기
2-1 자바 기초 지식 복습.
2-1-1 인터페이스란?
인터페이스 선언하기 (아래 예)
public interface Greet {
/**
* 인사하기
*/
void greeting();
}
인터페이스는 다른 클래스에서 구현하는 것을 전제로 만들어진다. 이 때문에 public abstract 접근 제어자(access modifier) 가 붙은 추상 클래스라고 불린다.
public interface Greet {
/**
* 인사하기
*/
public abstract void greeting();
}
위 코드블럭(인터페이스 선언) 과 아래 코드블럭(압묵적 접근 제어자) 는 같은 의미를 가진다.
또한 인터페이스에 변수를 선언한 경우는 암묵적으로 public static final 한정자가 붙어서 상수가 된다.
인터페이스 구현하기
implements 키워드 사용, 또한 인터페이스로 정의되는 추상 메서드를 모두 구현할 필요가 있어 구현하지 않는 경우에는 컴파일 에러가 발생, 그리고 public abstract 한정자가 붙기 때문에 구현할 때는 public을 선언해 둘 필요가 있다.
public class Morning implements Greet {
@Override
public void greeting() {
System.out.println("좋은 아침입니다.");
}
}
@Override 어노테이션은 슈퍼 클래스나 인터페이스의 메서드를 상속 혹은 구현하는 클래스에서 재정의하는 것을 뜻함.
즉, @Override를 메서드에 부여하는 것으로 "이것은 재정의(Override)된 메서드입니다. 만약 재정의되어 있지 않으면 에러가 발생합니다." 라는 것을 알려준다.
2-1-2. 리스트란?
여러 개의 데이터를 취급하는 기능으로 배열이란 것이 있다. 길이가 정해져 있기 때문에 요소를 추가하거나 삭제하기가 어렵다는 단점이 있다.
그리고 복수의 데이터를 더 쉽게 사용할 수 있게 하는 컬렉션(Collection) 이라는 클래스를 제공한다.
종류(인터페이스) | 개요 |
리스트(List) | 순서대로 데이터를 저장, 데이터의 중복을 허용 |
세트(Set) | 순서를 유지하지 않는 집합, 중복을 허용하지 않음. |
맵(Map) | 키와 값의 쌍으로 이루어진 데이터 집합. 순서는 유지되지 않고키의 중복을 허용하지 않으며 값의 중복을 허용. |
위의 표는 컬렉션의 종류와 용도에 대한 표.
컬렉션의 모음 = 컬렉션 프레임워크. : 다양한 인터페이스와 구현 클래스로 구성.
리스트란? :
여러 데이터를 순서대로 정렬하여 저장할 때 사용한다. 실제로 사용 시 List 인터페이스를 구현한 클래스를 사용.
아래의 표는 List 인터페이스의 구현 클래스.
구현 | 개요 |
ArrayList | List 인터페이스의 구현 클래스에서 가장 많이 사용된다. 요소를 배열로 유지하기 때문에 요소의 검색을 고속으로 처리할 수 있지만, 요소의 수가 많아지면 추가/삭제를 처리하는 데 시간이 소요된다. |
LinkedList | 요소끼리 전후 양방향의 링크로 참조하는 리스트 구조를 이용해 관리하기 때문에 요소의 추가, 삭제가 ArrayLIst 보다 빠른다. 단, 특정 요소 검색과 같은 인덱스 값에 의한 무작위 인덱스에는 적합치 않다. |
* 칼럼 "List 개념잡기"
- 사진 참고, List와 요소에 대해 이해하기 쉽게 표현.
2-2 웹 애플리케이션 만들기의 필수 지식 확인
2-2-1. 클라이언트와 서버.
클라이언트는 서비스를 요청하는 쪽, 서버는 서비스를 제공하는 쪽 ( <- : 서비스 )
2-2-2. 브라우저.
크롬, 폭스 와 같은 인터넷을 사용할 때 이용하는 SW.
2-2-3. 애플리케이션과 웹 애플리케이션
애플리케이션(응용 프로그램)은 응용 프로그램 SW 의 약어. 즉, 프로그래밍 언어로 작성한 SW.
2-2-4. 웹 서버
웹 서버는 웹 애플리케이션을 배포하는 서버, 항상 실행되며 클라이언트로부터 액세스(요청) 를 계속 기다린다.
(사진 참고)
2-2-5. HTTP 통신(프로토콜)
HTTP 통신 : 클라이언트와 웹 서버는 HTTP 요청(request) 과 HTTP 응답(response) 으로 상호작용한다.
HTTP 통신의 흐름 (사진 참고)
1. 클라이언트가 브라우저에 URL를 입력.
2. 클라이언트에서 웹 서버로 HTTP 요청이 전송.
3. 웹 서버는 HTTP 요청을 받아 HTTP 요청에 해당하는 HTTP 응답을 클라이언트에게 반환.
4. 브라우저는 받은 응답을 표시하고 클라이언트가 이를 확인.
2-2-6. GET 메소드와 POST 메소드.
둘 다 HTTP 요청의 한 유형.
GET 메소드 : 브라우저에서 웹 서버로 값을 전달할 때 URL 뒤에 값을 더하여 보내는 방식.
URL 뒤에 오는 정보를 쿼리 스트링(query string) 또는 쿼리 문자열 이라 한다.
쿼리 스트링의 특징은 3가지다.
- URL 끝에 ? 가 붙어 쿼리 스트링의 시작을 나타낸다 (예: domain.com/?)
- 형식은 '이름 = 값' 이다. (예: domain.com/?name=value)
- 여러 값을 전달하려면 & 로 연결한다. (예: domain.com/?name=value&tel=010)
쿼리스트링은 많은 양의 값을 보내기에 적합치 않아 POST 메소드가 이에 적합하여 수행 중이다.
POST 메소드 : 브라우저로부터 웹 서버에 값을 보낼 때 요청 본문(request body) 이라고 하는 URL 에는 보이지 않는 장소에 값을 넣어서 보내는 방법.
2-3. 개발에 사용하는 편리한 라이브러리와 도구.
2-3-1. Lombok 이란?
라이브러리 : 편리한 프로그램을 모아 모듈화 한것.
Lombok 은 그 라이브러리들 중 하나다.
2-3-2. Gradle 이란?
빌드 도구이며 최근들어 자바 개발의 표준이 되고 있다.
빌드 : 요구된 실행 환경에서 동작할 수 있는 형식에 애플리케이션이나 라이브러리를 조립하는 것
빌드 도구는 다음의 반복적인 작업을 자동화한다.
- 필요한 라이브러리를 리포지토리(라이브러리가 저장되어 있는 곳) 에서 다운로드한다.
- 소스코드를 컴파일 한다.
- 테스트를 실행하여 보고서를 출력한다.
- 클래스 파일의 아카이브(여러 파일이나 폴더를 하나로 정리하는 것) 를 생성한다.
- 아카이브를 스테이징 환경(프로덕션 환경에 가까운 환경) 등에 배포한다.
2주차 완료.
230730 학습 정리 완료 및 업로드.
'진행중인 학습 > 스프링 프레임워크 첫걸음_학습' 카테고리의 다른 글
스프링 프레임워크 첫걸음_5장_MVC 모델 알아보기 (0) | 2023.08.19 |
---|---|
스프링 프레임워크 첫걸음_4장_데이터베이스 작업 (0) | 2023.08.13 |
스프링 프레임워크 첫걸음_3장_스프링 프레임워크의 핵심 기능 알아보기 (0) | 2023.08.06 |
스프링 프레임워크 첫걸음_1장_스프링 프레임워크 알아보기 (0) | 2023.07.23 |
들어가기 앞서, 게시판 목차_스프링 프레임워크 첫걸음 (0) | 2023.07.21 |