본문 바로가기
Spring

02 - 2 웹 애플리케이션 만들기의 필수 지식, Lombok, Gradle

by hjwjddl 2023. 6. 28.

 

웹 애플리케이션을 만들기 위한 필수 지식, 

그리고 애플리케이션 개발을 훨씬 편리하게 하는 라이브러리와 도구 'Lombok', 'Grandle'

 

 

웹 애플리케이션을 만들기 위한 필수 지식

1) 클라이언트와 서버의 관계

클라이언트는 서비스를 요청하는 쪽

서버는 서비스를 제공하는 쪽

 

즉, 서버가 서비스를 제공해 그 서비스를 클라이언트가 사용하는 관계이다.

 

 

 

2) 브라우저란?

 인터넷을 사용할 때 이용하는 소프트웨어이다. 

대표적인 브라우저로,

  • 구글 크롬(Google Chrome)
  • 파이어 폭스(Firefox)
  • 마이크로소프트 엣지(Microsoft Edge)
  • 인터넷 익스플로러(Internet Explorer)
  • 사파리(Safari)

 

 

3) 애플리케이션과 웹 애플리케이션

 애플리케이션(응용 프로그램) : 응용 프로그램 소프트웨어의 약어 즉, 프로그래밍 언어로 작성한 소프트웨어를 의미

 웹 애플리케이션(웹 응용 프로그램) : 인터넷을 통해 사용되는 응용 프로그램

 

 

 

4) 웹서버 

 웹 서버는 웹 애플리케이션을 배포하는 서버를 말한다.

 웹 서버는 항상 실행되며 클라이언트로부터 엑세스(요청)를 계속 기다린다.

 

 

 

5) HTTP 통신(프로토콜)

 클라이언트와 웹 서버는 HTTP 요청(request)과 HTTP 응답(response)으로 상호작용한다.

이를 HTTP 통신이라고 한다.

 클라이언트의 요청에 대해 웹서버가 응답하게된다.

 

  HTTP 통신의 흐름
  1. 클라이언트가 브라우저에 URL을 입력한다.
  2. 클라이언트에서 웹 서버로 HTTP 요청(request)이 전송된다.
  3. 웹 서버는 HTTP 요청(request)을 받아 HTTP 요청에 해당하는 HTTP 응답(response)을 클라이언트에게 반환한다.
  4. 브라우저는 받은 응답을 표시하고 클라이언트가 이를 확인한다.

 

 

6) GET 메서드와 POST 메서드

HTTP 요청의 한 유형이다.

 

GET 메서드란

 브라우저에서 웹 서버로 값을 전달할 때 URL 뒤에 값을 더하여 보내는 방식이다.

URL 뒤에 오는 정보를 '쿼리 스트링(query string)' 또는 '쿼리 문자열'이라고 한다. 

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

 쿼리 스트링은 많은 양의 값을 보내기에 적합하지 않다.

 

POST 메서드란

 브라우저로부터 웹 서버에 값을 보낼 때 '요청 본문(request body)'라고 하는 URL에는 보이지 않는 장소에 값을 넣어서 보내는 방식이다.

 예를 들어 개인정보를 등록할 때 처럼 입력한 내용을 URL에 표시하고 싶지 않을 경우 사용한다. 

 

 POST 메서드는 많은 양의 값을 보내는 데 적합하다.

 

GET 메서드 POST 메서드
'받는다'
지정한 URL에 대한 내용을 받기 위한 메서드
'보낸다'
지정한 URL에 입력 정보를 보내기 위한 메서드
즐겨찾기에 등록 가능 즐겨찾기에 등록 불가능
요청 방법 : 
브라우저의 주소 표시줄에 URL 직접 입력,
브라우저의 즐겨찾기에서 URL에 엑세스
하는 것
요청방법 : 
HTML의 <form> 태그 속성에서 method=POST 지정

 

 

 

 


 

 

 

Lombok과 Gradle

애플리케이션 개발을 훨씬 편리하게 하는 라이브러리 'Lombok'과 빌드 도구 'Gradle'

 

 

Lombok이란?

 프로그램의 세계에서 편리한 프로그램을 모아 모듈화한 것을 '라이브러리'라고 한다. 

Lombok은 그러한 라이브러리의 하나이다.

 

 자바 언어에서 이클립스의 기능을 사용하여 'setter/getter'를 자동으로 생성한 적이 있을 것이다. 이 기능은 편리하지만

필드를 추가하거나 변경, 삭제하면 자동 생성을 다시 수행해야 한다는 단점이 있다. 

 Lombok을 사용하면 getter나 setter 등의 코드를 작성하지 않아도 자동으로 구현해 준다. 매우 편리한 기능으로 자주 사용된다.

 

 ( IntelliJ IDEA에는 기본으로 Lombok이 추가되어 있다. [파일] - [설정] - [플러그인]에서 IntelliJ IDEA에 추가된 Lombok을 확인할 수 있다. )

 

 

Gradle이란?

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

 

 빌드 도구는 다음의 반복적인 작업을 자동화 한다.

  • 필요한 라이브러리를 리포지토리(라이브러리가 저장되어 있는 곳)에서 다운로드
  • 소스코드 컴파일
  • 테스트를 실행하여 보고서 출력
  • 클래스 파일의 아카이브(여러 파일이나 폴더를 하나로 정리하는 것) 생성
  • 아카이브를 스테이징 환경(프로덕션 환경에 가까운 환경) 등에 배포

 

 

 

 

 

 

 

 

https://wikibook.co.kr/spring/

 

스프링 프레임워크 첫걸음: 그림과 실습으로 쉽게 배우는 스프링 프레임워크 완벽 입문서

세상에서 가장 친절한 스프링 프레임워크 입문서! 스프링 프레임워크는 전 세계적으로 가장 널리 사용되는 오픈소스 자바 애플리케이션 프레임워크입니다. 이 책에서는 스프링 프레임워크를

wikibook.co.kr