[Book Study] Spring Framework 스프링 프레임워크 첫걸음
2. 기초 지식 배우기
2 - 1 자바 기초 지식 복습
인터페이스 (Interface)
- 클래스에 포함하는 메서드의 구체적인 내용을 작성하지 않고 상수와 메서드 타입만 정의한 것
인터페이스 선언하기
- 인터페이스를 선언한 메서드 = public abstract 접근 제어자가 붙은 추상 클래스
public intetface Greet {
/**
* 인사하기
*/
void Greeting();
}
public intetface Greet {
/**
* 인사하기
*/
public abstract void Greeting();
//변수를 선언하는 경우 -> 상수가 됨
public static final int a = 0;
}
인터페이스 구현하기
- implements 키워드 사용
- 구현하지 않는 경우에는 컴파일 에러 발생
- 구현할 때는 public 선언에 둘 필요가 있음
public class MorningGreet implements Greet {
@Override
public void greeting() {
System.out.println("좋은 아침입니다");
}
}
@Override 어노테이션 : 슈퍼클래스나 인터페이스의 메서드를 상속 혹은 구현하는 클래스에서 재정의하는 것
@Override를 메서드에 부여하는 것 -> "이것은 재정의된 메서드입니다. 만약 재정의되어 있지 않으면 에러가 발생합니다"
컬렉션 (Collection)
- 복수의 데이터를 더 쉽게 사용할 수 있게 하는 컬렉션이라는 클래스를 제공
1. 리스트(List) : 순서대로 데이터를 저장, 데이터의 중복을 허용
2. 세트(Set) : 순서를 유지하지 않는 집합, 중복을 허용하지 않음
3. 맵(Map) : 키와 값의 쌍으로 이루어진 뎅터 집합, 순서는 유지되지 않고 키의 중복을 허용하지 않으며 값의 중복을 허용
리스트 (List)
- 컬렉션 프레임워크에서 제공하는 인터페이스
- 여러 데이터를 순서대로 정렬하야 저장할 때 사용
- 실제로 사용할 때는 List 인터페이스를 구현한 클래스를 사용
1) 요소를 배열로 유지하기 때문에 요소의 검색을 고속으로 처리할 수 있지만, 요소의 수가 많아지면 추가/삭제를 처리하는 데 시간이 걸임
2) 요소끼리 전후 양방향의 링크로 참조하는 리스트 구조를 이용해 관리하기 때문에 요소의 추가나 삭제가 ArrayList보다 빠름, 그러나 특정 요소 검색과 같은 인덱스 값에 의한 무작위 액세스에는 적합하지 않음
리스트 프로그램 만들기
package chapter02;
import java.util.ArrayList;
import java.util.List;
public class ListExercise {
public staic void main(String[] args) {
// String 타입을 저장할 List를 준비
List<String> names = new ArrayList<>(); //제네릭(List에 넣을 수 있는 형태 제한)
// String 타입의 데이터 넣기
names.add("홍길동");
names.add("김선비");
names.ass("James");
// for문으로 데이터를 하나씩 출력
for (String name : names) {
System.out.println(name);
}
}
}
2 - 2 웹 애플리케이션 만들기의 필수 지식 확인
클라이언트와 서버
- 클라이언트 : 서비스를 요청하는 쪽
- 서버 : 서비스를 제공하는 쪽
브라우저
- 인터넷을 사용할 때 이용하는 소프트웨어
애플리케이션과 웹 애플리케이션
- 애플리케이션(응용 프로그램) : 프로그래밍 언어로 작성한 소프트웨어
- 웹 애플리케이션 (웹 응용 프로그램) : 인터넷을 통해 사용되는 응용 프로그램
웹 서버
- 웹 애플리케이션을 배포하는 서버
HTTP 통신(프로토콜)
- 클라이언트와 웹 서버는 HTTP 요청과 HTTP 응답으로 상호작용
- 클라이언트의 요청에 대해 웹 서버가 응답
* HTTP 통신의 흐름
1. 클라이언트가 브라우저에 URL을 입력합니다.
2. 클라이언트에서 웹 서버로 HTTP 요청이 전송됩니다.
3. 웹 서버는 HTTP 요청을 받아 HTTP 요청에 해당하는 HTTP 응답을 클라이언트에게 반환합니다.
4. 브라우저는 받은 응답을 표시하고 클라이언트가 이를 확인합니다.
GET 메서드와 POST 메서드
- HTTP 요청의 한 유형
1. GET 메서드 : 브라우저에서 웹 서버로 값을 전달할 때 URL 뒤에 값을 더하여 보내는 방식 (URL 뒤에 오는 정보를 '쿼리 스트링(query string)' 또는 '쿼리 문자열'이라고 함)
* 쿼리 스트링(query string) 의 특징
1. URL 끝에 '?'가 붙어 쿼리 스트링의 시작을 나타냄 (예: domain.com/?)
2. 형식은 '이름=값'입니다 (예 : domain.com/?name=value)
3. 여러 값을 전달하려면 '&'로 연결합니다. (예: domain.com/?name=value&tel=010)
2. POST 메서드 : 브라우저로부터 웹 서버에 값을 보낼 때 '요청 본문(request body)' 이라고 하는 URL에는 보이지 않는 장소에 값을 넣어서 보내는 방법
* 요청 본문(request body) 의 특징
- e-커머스 사이트 등에서 개인정보를 등록할 때 입력한 내용을 URL에 표시하지고 싶지 않을 경우에 POST 메서드 사용
- POST 메서드는 많은 양의 값을 보내는데 적합
GET 메서드와 POST 메서드의 차이
GET 메서드 | POST 메서드 | |
의미 | 받는다 (지정한 URL에 대한 내용을 받기 위한 메서드) |
보낸다 (지정한 URL에 입력 정보를 보내기 위한 메서드) |
브라우저의 즐겨찾기에 등록할 수 있는가? | URL에 연결해 데이터를 송신하기 때문에 '즐겨찾기'에 등록하는 URL 자체에 쿼리 스트링으로 검색 데이터를 포함 가능 | 검색 데이터를 요청 본문에 저장하기 때문에 '즐겨찾기'에 등록 불가 |
요청 | 브라우저의 주소 표시줄에 URL을 직접 입력하는 것과 브라우저의 즐겨찾기에서 URL에 액세스하는 것 | HTML의 <form> 태그 속성에서 method=POST 지정 |
2 - 3 개발에 사용하는 편리한 라이브러리와 도구
라이브러리 (Library)
- 편리한 프로그램을 모아 모듈화 한 것
Lombok
- gettersk setter 등의 코드를 작성하지 않아도 자동으로 구현해 줌
Gradle
- 빌드 도구, 빌드 파일에 설정을 작성하는 것으로 여러 가지 작업을 자동으로 해주는 편리한 도구
- 빌드 : 요구된 실행 환경에서 동작할 수 있는 형식에 애플리케이션이나 라이브러리를 조립 하는 것
* 빌드 도구의 반복적인 작업 자동화
1) 필요한 라이브러리를 리포지토리(라이브러리가 저장되어 있는 곳)에서 다운로드
2) 소스코드를 컴파일
3) 테스트를 실행하여 보고서 출력
4) 클래스 파일의 아카이브(여러 파일이나 폴더를 하나로 정리하는 것)를 생성
5) 아카이브를 스테이징 환경(프로덕션 환경에 가까운 환경)등에 배포
'Web Develop > Book Study' 카테고리의 다른 글
[Book Study] 스프링 프레임워크 첫걸음 - 6. 템플릿 엔진 알아보기 (0) | 2023.08.12 |
---|---|
[Book Study] 스프링 프레임워크 첫걸음 - 5. MVC 모델 알아보기 (0) | 2023.08.11 |
[Book Study] 스프링 프레임워크 첫걸음 - 4. 데이터베이스 작업 (0) | 2023.08.09 |
[Book Study] 스프링 프레임워크 첫걸음 - 3. 스프링 프레임워크의 핵심 기능 알아보기 (0) | 2023.08.09 |
[Book Study] 스프링 프레임워크 첫걸음 - 1. 스프링 프레임워크 알아보기 (0) | 2023.08.08 |
댓글