[스프링 프레임워크 첫걸음] ( 2 / 9 )

박북velog·2023년 3월 18일
0

제 2장. 기초 지식 배우기


2.1 인터페이스란 ?

자바에서 클래스에 포함하는 메서드의 구체적인 내용을 작성하지 않고 "상수와 메서드 타입만" 정의한 것

⬜ 인터페이스 선언하기

  • 인터페이스를 선언할 때는 interface 키워드를 사용
public interface Greet {
	/**
    * 인사하기
    */
    void greeting();
}
  • 암묵적 접근 제어자 : 인터페이스에 변수를 선언한 경우는 암묵적으로 public static final 한정자가 붙어서 상수가 된다.
public interface Greet {
	/**
    * 인사하기 (위와 아래는 같다)
    */
    public abstract void greeting();
}

⬜ 인터페이스 구현하기

  • 인터페이스를 구현할 때는 implements 키워드를 사용한다.
    또한 인터페이스로 정의되는 추상 메서드를 모두 구현할 필요가 있어서
    구현하지 않는 경우에는 컴파일 에러가 발생한다.
  • 인터페이스의 추상 메서드는 암묵적으로 public abstract 한정자가 붙어있기 때문에
    구현할 때는 public 을 선언할 필요가 있다.
public class MorningGreet implements Greet {
	@Override
    public void greeting() {
    	System.out.println("좋은 아침입니다.");
    }
}
  1. @Override : 어노테이션은 슈퍼 클래스나 인터페이스의 메서드를
    상속 혹은 구현하는 클래스에서 재정의하는 것.
  1. @Override 를 메서드에 부여하는 것으로 "이것은 재정의된 메서드입니다.
    만약 재정의되어 있지 않으면 에러가 발생합니다." 를 알려줌

2.1.2 리스트란?

자바에서는 복수의 데이터를 더 쉽게 사용할 수 있게 해주는 Collection 클래스를 제공한다.

종류 (인터페이스)개요
리스트 (List)순서대로 데이터를 저장. 데이터의 중복을 허용
세트 (Set)순서를 유지하지 않는 집합, 중복을 허용하지 않음
맵 (Map)키와 값의 쌍으로 이루어진 데이터 집합, 순서는 유지되지 않고 키의 중복을 허용하지 않으며, 값의 중복을 허용

이러한 컬렉션의 모음을 "컬렉션 프레임워크" 라고 한다.
이 중 List는 여러 데이터를 순서대로 정렬하여 저장할 때 사용한다. (ArrayList , LinkedList)

2.2 웹 애플리케이션 만들기의 필수 지식

2.2.1 클라이언트와 서버

  1. 클라이언트와 서버의 관계
    클라이언트는 서비스를 요청 ↔ 서버는 서비스를 제공

  2. 브라우저
    인터넷을 사용할 때 이용하는 소프트웨어이다. (ex. 구글 크롬, 인터넷 익스플로러, ...)

  3. 애플리케이션과 웹 애플리케이션
    애플리케이션 (응용 프로그램)은 응용 프로그램 소프트웨어의 약어이다.

  4. 웹 서버
    웹 서버는 웹 애플리케이션을 배포하는 서버이다. 웹 서버는 항상 실행되며 클라이언트로부터 액세스(요청)를 계속 기다린다.

  5. HTTP 통신 (프로토콜)
    클라이언트와 웹 서버는 HTTP 요청(request)과 HTTP 응답(response)으로 상호작용한다.
    이를 HTTP 통신이라고 한다.

    1. 클라이언트가 브라우저에 URL을 입력 ➡ 2. 클라이언트에서 웹 서버로 HTTP 요청 전송
      ➡ 3. 웹 서버가 HTTP 요청을 받아 HTTP 요청에 해당하는 HTTP 응답을 클라이언트에 반환
      ➡ 4. 브라우저가 받은 응답을 표시하고 클라이언트가 확인
  6. GET 메서드와 POST 메서드

HTTP 요청의 유형 중 하나.
6-1. GET 메서드
브라우저에서 웹 서버로 값을 전달할 때 URL 뒤에 값을 더하여 보내는 방식.
URL 뒤에 오는 정보를 '쿼리 스트링(query string)' 또는 '쿼리 문자열' 이라고 한다.

  • URL 끝에 '?' 를 붙여 쿼리 스트링의 시작을 나타낸다 (domain.com/?~~)
  • 형식은 '이름=값' 이다. (domain.com/?name=value)
  • 여러 값을 전달하려면 '&'로 연결한다.(domain.com/?name=value&tel=010)

6-2. POST 메서드
브라우저로부터 웹 서버에 값을 보낼 때 '요청 본문(request body)' 이라고 하는 URL에는 보이지 않는 장소에 값을 넣어서 보내는 방법입니다. 개인정보를 등록할 때 입력한 내용을 URL에 표시하지 않으려할 때 POST 메서드를 활용한다.

2.3 개발에 사용하는 편리한 라이브러리와 도구

2.3.1 Lombok 이란 ?

Lombok을 사용하면 getter 나 setter 등의 코드를 작성하지 않아도 자동으로 구현해주는 기능

2.3.2 Gradle 이란 ?

Gradle : 최근에 자바 개발의 표준이 되고 있는 빌드 도구
( 빌드 : 요구된 실행 환경에서 동작할 수 있는 형식에 애플리케이션이나 라이브러리를 조립하는 것 )

빌드 도구의 반복적인 작업 자동화
  • 필요한 라이브러리를 Repository ( 라이브러리가 저장되어 있는 곳 ) 에서 다운로드한다.
  • 소스코드를 컴파일한다.
  • 테스트를 실행하여 보고서를 출력한다.
  • 클래스 파일의 아카이브 (여러 파일이나 폴더를 하나로 정리하는 것)를 생성
  • 아카이브를 스테이징 환경 (프로덕션 환경에 가까운 환경) 등에 배포
profile
느리지만 끝까지 해보자구

0개의 댓글