#참고도서: '스프링 프레임워크 첫걸음' (키노시타 마사아키, 위키북스)
02장: 기초 지식 배우기
1. 인터페이스
- 자바에서 클래스에 포함하는 메서드의 구체적인 내용을 작성하지 않고 상수와 메서드 타입만 정의한 것
1) 인터페이스 선언
- interface 키워드 사용
- public abstract 암묵적 접근 제어자
public interface Greet {
/**
* 인사하기
*/
public abstract void greeting();
}
2) 인터페이스 구현
- implements 키워드 사용
- 인터페이스로 정의되는 추상 메서드를 모두 구현할 필요가 있어 구현하지 않는 경우에는 컴파일 에러 발생
- 구현 시 public 선언 필요
- @Override:슈퍼 클래스나 인터페이스의 메서드를 상속 혹은 구현하는 클래스에서 재정의하는 것
public class MorningGreet implements Greet{
@Override
public void greeting(){
System.out.println("좋은 아침입니다");
}
}
2. 리스트
1) 컬렉션(Collection): 복수의 데이터를 더 쉽게 사용할 수 있는 클래스
- 리스트(List): 순서대로 데이터를 저장, 데이터의 중복을 허용
- 세트(Set): 순서를 유지하지 않는 집합, 중복을 허용하지 않음
- 맵(Map): 키와 값의 쌍으로 이루어진 데이터 집합, 순서는 유지되지 않고 키의 중복을 허용하지 않으며 값의 중복을 허용
2) 리스트 개요
- 컬렉션 프레임워크에서 제공하는 인터페이스
- ArrayList: 요소를 배열로 유지하기 때문에 요소의 검색을 고속으로 처리할 수 있지만, 요소의 수가 많아지면 추가/삭제를 처리하는 데 시간이 걸림
- LinkedList: 요소끼리 전후 양방향의 링크를 참조하는 리스트 구조를 이용해 관리하기 때문에 요소의 추가나 삭제 ArrayList보다 빠름, 그러나 특정 요소 검색과 같은 인덱스 값에 의한 무작위 액세스에는 적합하지 않음
3. 클라이언트와 서버
- 클라이언트: 서비스를 요청하는 쪽
- 서버: 서비스를 제공하는 쪽
4. 브라우저
- 인터넷을 사용할 때 이용하는 소프트웨어
- 크롬, 파이어폭스, 사파리 등
5. 애플리케이션
- 응용 프로그램 소프트웨어의 약어
- 프로그래밍 언어로 작성한 소프트웨어
6. 웹 서버
- 웹 애플리케이션을 배포하는 서버
- 웹 서버는 항상 실행되며 클라이언트로부터 액세스(요청)을 계속 기다림
7. HTTP 통신(프로토콜)
- 클라이언트와 웹 서버는 HTTP 요청(request)와 HTTP 응답(response)으로 상호작용
- HTTP 통신의 흐름: 클라이언트가 브라우저에 URL 입력 → 클라이언트에서 웹 서버로 HTTP 요청이 전송됨 → 웹 서버는 HTTP 요청에 해당하는 HTTP 응답을 클라이언트에게 반환 → 브라우저는 받은 응답을 표시하고 클라이언트가 이를 확인
8. GET 메서드와 POST 메서드
- HTTP 요청의 한 유형
1) GET 메서드
- 브라우저에서 웹 서버로 값을 전달할 때 URL 뒤에 값을 더하여 보내는 방식
- URL 뒤에 오는 정보를 '쿼리 스트링' 또는 '쿼리 문자열'이라고 함
2) 쿼리 스트링의 특징
- URL 끝에 '?'가 붙어 쿼리 스트링의 시작을 나타냄 (예: domain.com/?)
- 형식은 '이름=값' (예: domain.com/?name=value)
- 여러 값을 전달하려면 '&'로 연결 (예: domain.com/?name=value&tel=010)
3) POST 메서드
- 브라우저로부터 웹 서버에 값을 보낼 때 '요청 본문(request body)'이라고 하는 URL에는 보이지 않는 장소에 값을 넣어서 보내는 방법
- 개인정보 등의 내용을 URL에 표시하고 싶지 않을 때 사용
- 많은 양의 값을 보내는 데 적합
'zb_backend19' 카테고리의 다른 글
[북스터디] 스프링 프레임워크 첫걸음 4주차 (0) | 2024.02.19 |
---|---|
[북스터디] 스프링 프레임워크 첫걸음 3주차 (0) | 2024.02.05 |
[북스터디] 스프링 프레임워크 첫걸음 1주차 (0) | 2024.01.29 |
자료구조 1 Page 노트 정리_Heap 힙 (0) | 2023.11.21 |
자료구조 1 Page 노트 정리_Hash Map 해시맵 (0) | 2023.11.17 |