본문 바로가기
Back-end/Spring

[Spring] chapter02 기초 지식 배우기

by na1-4an 2023. 7. 11.

아래 글은 스프링 프레임 워크 첫걸음 책을 기반하여 작성한 글입니다.

2-1 자바 기초 지식 복습

(1) 인터페이스란?

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

 

- 인터페이스 선언하기

public interface Greet{
	void greeting();
    /*public abstract void greeting();과 동일함*/
    int greet;
    /*public static final greet;와 동일함*/
}

 인터페이스 안의 함수는 추상메서드로 인식함.

 

- 인터페이스 구현하기

public class MorningGreet implements Greet{
	@Override
    public coid greeting(){
    	System.out.println("좋은 아침입니다~")
    }
}

 implements: 인터페이스를 상속 받을 때 사용

 @Override: 상속 받은 클래스에서 메서드를 재정의 하는 것을 알리는 역할을 함.

 

(2) 리스트란?

- 컬랙션(Collection): 복수의 데이터를 더 쉽게 사용할 수 있게 도우는 클래스

- 컬랙션 종류(3)

리스트(list) 순서대로 데이터 저장, 데이터의 중복 허용.
세트(set) 순서를 유지 않는 집합, 데이터의 중복 허용 X.
맵(map) 키와 값의 쌍으로 이루어진 데이터 집합, 순서를 유지 않는 집합, 키의 중복은 허용하지 않지만 값의 중복은 허용.

- List 인터페이스의 구현 클래스: ArrayList, LinkedList

 

(3) 리스트 프로그램 만들기

package chapter02;
import java.util.ArrayList;
import java.util.List;

public class ListExercise {
    public static void main(String[] args){
        //String 타입을 저장할 List를 준비
        List<String> names = new ArrayList<>();

        //데이터 넣기
        names.add("홍길동");
        names.add("김선비");
        names.add("James");

        //출력
        for (String name: names){
            System.out.println(name);
        }
    }
}

제네릭: 데이터 타입을 일반화하는 것을 의미. <String>


2-2 웹 애플리케이션 만들기의 필수 지식 확인

(1) 클라이언트와 서버

서버가 제공한 서비스를 클라이언트가 사용

(2) 브라우저

인터넷을 사용할 떄 이용하는 소프트웨어

(3) 웹 애플리케이션

인터넷을 통해 사용되는 응용 프로그램

(4) 웹 서버

클라이언트의 요청을 받으면 웹 애플리케이션을 배포하는 서버

(5) HTTP 통신(프로토콜)

클라이언트와 웹서버의 상호작용하는 방법

- HTTP 통신의 흐름

 ① 클라이언트가 브라우저에 URL 입력

 ② 클라이언트가 웹서버로 HTTP 요청이 전송

 ③ 웹서버는 이를 받아 HTTP 응답을 클라이언트에게 전송

 ④ 브라우저는 받은 응답을 표시하고 클라이언트가 이를 확인

(6) GET 메서드와 POST 메서드

모두 HTTP요청의 한 유형임.

- GET 메서드: 브라우저에서 웹 서버로 값을 전달할 때 URL 뒤에 값을 더해 보내는 방식.

   URL 뒤에 붙든 정보를 '쿼리 스트링' 혹은 '쿼리 문자열'이라고 함.

   쿼리스트링의 특징 3가지:

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

- POST 메서드: 웹서버에 값을 보낼 때 '요청 본문(request body)'에 값을 넣어서 보내는 방법.

   이는 입력한 내용을 URL에 표시하고 싶지 않거나 많은 양의 값을 보내는 데 적합함.

 

피우다 공모전 할 때 주구장창 쓴 게 생각난다..!


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

(1) Lombok이란?

Lombok 라이브러리를 사용하면 getter나 setter 등의 코드를 작성하지 않아도 자동으로 구현해줌.

 

(2) Gradle이란?

빌드('요구된 실행 환경에서 동작할 수 있는 형식에 애플리케이션이나 라이브러리를 조립하는 것') 도구.

빌드 도구의 반복적인 작업(5)

  • 필요한 라이브러리를 레포지토리에서 다운로드
  • 소스코드 컴파일
  • 테스트 실행해 보고서 출력
  • 클래스 파일의 아카이브를 생성
  • 아카이브를 스테이징 환경 등에 배포