[코딩자율학습단 5기] SpringBoot

[코딩자율학습단] 1일차. 스프링 부트 시작하기

wlalsu_u 2023. 11. 25. 17:40

1.0 1일차 학습 목표

 

 

 

'1일차 스프링 부트 시작하기' 에서는

 

자바 기반 웹 서비스를 편리하게 만들기 위한 도구인 스프링 부트에 대해 알아보고,

 

"Hello World!"를 출력하여 웹 서비스 동작 원리를 살펴본다. 

 

 

 

 

 

1) 스프링 부트란?

2) 스프링 부트 개발환경 설정하기

3) 웹 서비스의 동작 원리 이해하기

 

 

 

 

 

 


 

 

 

 

1.1 스프링 부트란?

 

 

 

스프링 부트 (Spring Boot)

 

 

 

- 자바 웹 프로그램을 쉽고 간편하게 만들기 위한 도구

 

- 자바 웹 프로그램을 만들기 위한 기능과 도구가 모여 있음

 

- 스프링과 달리 개발 환경 설정이 간소화

 

- 웹 애플리케이션 서버(WAS) 인 톰캣을 내장하여 jar 파일로 간편하게 배포 가능

 

- 예를 들어, 가게를 운영할 때 프랜차이즈에 가입해 레시피와 서비스 노하우를 전수받는 것과 유사

 

 

 

 


 

 

 

 

1.2 스프링 부트 개발환경 설정하기

 

 

 

 

개발 환경을 설정하기 위해 JDK 설치 / IDE 설치 / 스프링부트 프로젝트 생성

 

과정을 하나씩 진행해보자.

 

 

 

 

1) JDK 설치하기

 

 

 

해당 실습에서는 Spring Boot 3 을 사용하기 위해

 

JDK 17 버전을 설치하여야 한다. 

 

 

 

먼저 cmd 창에서 'java -version' 을 통해 java 버전을 확인한다.

 

 

 

 

 

 

 

java 11 버전이 설치되어 있는 것을 확인할 수 있는데,

 

해당 버전의 JDK를 삭제한 후, JDK 17 버전을 다시 다운받았다.

 

 

 

 

먼저 아래의 AdoptOpenJDK 사이트에 방문한 후

 

컴퓨터의 운영체제에 맞는 JDK 를 다운받는다.

 

 

 

 

https://adoptium.net/temurin/releases/

 

Latest Releases | Adoptium

 

adoptium.net

 

 

 

 

 

Window의 경우 Window / x64 / JDK / 17 - LTS 버전으로 선택한 후

 

.msi 파일을 다운받았다.

 

 

 

 

 

 

 

 

 

 

다운로드가 완료되면 설치를 진행하고,

 

다시 cmd 창에서 'java -version' 을 확인해보면, OpenJDK 17 설치가 완료된 것을 확인할 수 있다.

 

 

 

 

 

 

 

 

 

2) IDE 설치하기

 

 

 

자바에서는 주로 Eclipse와 IntelliJ IDE를 사용하는데,

 

이미 IntelliJ Ultimate 버전을 사용하고 있으므로, 이 부분은 생략하였다.

 

( 책의 실습을 따라갈 때 Community Edition도 충분하다 )

 

 

 

https://www.jetbrains.com/ko-kr/idea/download/?section=windows

 

최고의 Java 및 Kotlin IDE인 IntelliJ IDEA를 다운로드하세요

 

www.jetbrains.com

 

 

 

 

 

3) 스프링 부트 프로젝트 만들기

 

 

 

 

스프링 부트 프로젝트는 Spring Initializer( https://start.spring.io/ )

 

웹사이트를 통해 쉽게 만들 수 있다.

 

 

 

각 환경설정에 대한 자세한 내용은 아래의 블로그에 작성해두었다.

 

 

https://wlalsu.tistory.com/8

 

[스프링 입문] 섹션 1.1 프로젝트 환경설정 (프로젝트 생성)

1.1.1 프로젝트 생성 ( spring initializr 사이트 사용) JAVA 11 / IntelliJ (IDE) 사용 Spring 프레임 워크를 사용하는 프로젝트는 SpringBoot를 기반으로 간편하게 만들 수 있다. 아래의 spring initializr 사이트를 이

wlalsu.tistory.com

 

 

 

 

 

아래와 같이 설정을 완료한 후 Generate 버튼을 클릭하여

 

zip 파일을 다운로드 받는다.

 

 

 

 

 

 

 

[ 참고 ] 기본 설정 - GA 또는 아무런 접미사가 없는 버전 선택하는 것이 좋음

- SNAPSHOT : 현재 테스트 단계

- Mx(Milestone) : 주요 기능 및 버그 수정 단계

- RC(Release Candidate) : 기능과 버그 수정된 최종 배포 전 단계

- GA(General Availability) : 최종 배포 단계

 

 

 

 

이후 다운받은 zip 파일의 압축을 해제하고,

 

IntelliJ 에서 해당 파일을 열었을 때 BUILD SUCCESSFUL 메시지가 뜨면 된다.

 

 

 

 

처음에는 프로젝트를 실행하자 마자 Spring Boot 3 버전을 실행할 수 없다는 오류가 떴다😮

 

build.gradle 파일을 살펴봐도 문제가 없었는데..

 

 

 

 

 

 

 

 

 

 

알고보니 IntelliJ 설정에서 이전에 JVM 11 버전으로 설정해 놓았다..!

 

먼저 Project Structure에서 SDK 17 버전을 추가해 준다.

 

 

 

 

 

 

 

 

 

 

 

이후 File > Settings > Build, Execution, Deployment > Gradle 에서

 

Gradle JVM 을 17 버전으로 수정해주면 오류가 발생하지 않는다.

 

 

 

 

 

 

 

 

 

빌드가 성공적으로 완료되었다면, build.gradle 파일에서

 

Spring Boot 버전을 3.1.0 버전으로 바꾼 후 아래의 프로젝트를 진행한다.

 

 

 

 

[ 참고 ] 빌드(build) 란?

- 소스 코드를 실행할 수 있는 독립적인 형태로 만드는 것

- 빌드 이후 독립 파일이 생성되고, 이를 실행하여 기능을 이용할 수 있음

 

 

 

 

 

 

 

4) Hello World! 출력하기

 

 

 

 

먼저 Spring Boot 프로젝트를 실행해보자.

 

 

main > java > com.example.firstproject > FirstProjectApplication 클래스를 실행한 후,

 

아래와 같이 "Started FirstprojectApplication" 문구가 뜨면 서버 실행이 완료된 것이다.

 

 

 

 

 

 

 

 

 

 

크롬 브라우저에서 localhost:8080을 입력하면

 

아래와 같은 Error 페이지가 뜨는 것을 확인할 수 있다.

 

 

 

 

이는 아직 웹 페이지를 생성하지 않았기 때문에 뜨는 기본 페이지이다.

 

localhost:8080/hello.html 에 접속하면 Hello World! 문구가 뜨도록 해보자.

 

 

 

 

src > main > resources > static 에서 hello.html 파일을 생성한다.

 

html 파일의 body 부분에 <h1> 태그로 "Hello World!" 를 작성한다.

 

 

 

 

 

 

 

 

 

이후 새로 만든 hello.html 파일을 서버에 반영하기 위해

 

서버를 재시작하고, localhost:8080/hello.html 주소로 접속하면

 

아래와 같이 Hello World! 문구가 뜨는 것을 확인할 수 있다.

 

 

 

 

 

 

 

 

 


 

 

 

 

1.3 웹 서비스의 동작 원리 이해하기

 

 

 

앞선 hello.html 파일을 출력하기 위해

 

서버 내부에서 어떤 동작이 일어나는지 알아보자.

 

 

 

 

1) 클라이언트 - 서버 구조

 

 

 

- 웹 서비스는 클라이언트의 요청과 서버의 응답으로 동작

 

- 클라이언트 : 서비스를 사용하는 프로그램 / 컴퓨터 (웹 브라우저)

 

- 서버 : 서비스를 제공하는 프로그램 / 컴퓨터 (스프링 부트)

 

 

 

 

 

이때 서버가 클라이언트의 요청에 응답하기 위해서는,

 

서버가 반드시 실행중이어야 한다.

 

 

 

실제로 서버를 실행중일 때 메시지를 살펴보면,

 

톰캣이 8080 포트 위에서 수행된다는 "Tomcat stated on port(s): 8080..." 메시지를 확인할 수 있다.

 

 

 

 

 

 

 

 

 

 

2) localhost:8080/hello.html 의 의미

 

 

 

- localhost : 내 컴퓨터를 의미하며, IP 주소로 변경하면 127.0.0.1이 됨

 

- 8080 : 포트 번호를 의미, 웹 서버인 Tomcat(스프링 부트가 담겨있음)이 수행되는 포트 번호

 

- hello.html : 서버에 요청하는 파일 (기본적으로 src > main > resources > static에서 찾음) 

 

 

 

 

 

 

 

 


 

 

 

💡1장 셀프 체크

 

 

 

 

 

 

 

 

홍팍 '스프링 부트3 자바 백엔드 개발 입문' 책 내용을 기반으로 작성하였습니다.