<< 학습 목표 >>

1. Spring Boot 프로젝트를 생성할 수 있다.

2. Spring Boot 프로젝트의 구성 요소를 설명할 수 있다.

3. Spring Boot 프로젝트를 실행시킬 수 있다.


sts로 샘플 Spring Boot 프로젝트를 만들어보자

 

1번 - sts 상단 [ File ] (1) -> [ New ] (2) -> [ Spring Starter Project ] (3) 로 만들거나

 

2번 - sts 내에서 [ Ctrl ] + N (1) -> spring 으로 검색 (2) -> [ Spring Starter Project ] (3) 를 선택해 만들면 됨

앞으로 하다 보면 단축키로 만드는 방법이 더 편해질 것이므로 2번 방법으로 Spring Boot 프로젝트를 만들자

 

Spring Boot 프로젝트를 만드는 창이 나옴

(1), (6). name : 프로젝트 명

(2). Type : 프로젝트를 관리할 도구

(3). Packaging : 프로젝트를 압축할 형식

(4). Java Version : 프로젝트의 자바 버전

(5). Group : 프로젝트를 관리할 회사 주소

(7). Version : 프로젝트 버전

(8). Description : 프로젝트 설명

(9). Package : 프로젝트 기본 패키지

 

프로젝트명(1)은 그대로 demo 로 사용하자

(2). Type -> Maven

(3). Packaging -> War

(4). Java Version -> 8

 

이 3가지만 바꾼 후 [ Next ] (10) 클릭

 

 

 

 

 

 

 

 

 

 

 

 

프로젝트를 Maven 으로 관리하면 프로젝트에 라이브러리를 추가할 때 직접 다운 받을 필요 없이 간단하게 URL만 입력하면 라이브러리를 추가할 수 있으므로 프로젝트를 관리할 도구로 Maven을 선택 했음

프로젝트를 관리할 도구로 Gradle 도 많이 사용하지만 아직도 현업에서는 Maven을 더 많이 사용하므로 Maven을 선택함

Spring Boot 를 한번 배워봤는데 Gradle로 배웠다거나 Gradle 을 알고 있다면 Gradle 을 써도 됨

 

우리는 JSP 를 사용해 웹 페이지를 만드는데 프로젝트를 jar 형식으로 압축하면 JSP 가 동작하지 않음

JSP가 동작하려면 프로젝트를 war 형식으로 압축해야함

그래서 압축 형식은 war 로 선택함

 

자바 버전의 경우 가장 높은 버전을 사용해도 되지만 아직도 현업에서는 8 버전을 많이 사용하므로 우리도 8 버전으로 선택함

 

 

이번에는 Spring Boot의 버전과 프로젝트에 필요한 라이브러리를 선택하는 창(1) 이 나옴

Spring Boot의 버전(2) 은 현재 상태 그대로 둠

 

이 글을 읽는 시점에 Spring Boot의 버전이 3. 으로 시작하는 다른 버전이라면 그대로 둬도됨

그러나 만약 이 글을 읽는 시점에 Spring Boot의 버전이 3. 이 아닌 4. 으로 시작하는 버전이라면 3. 으로 시작하는 버전을 선택하거나 이 글은 도움이 되지 않을 수 있음

 

이번에는 필요한 라이브러리를 검색해 추가 하자

Web 으로 검색(3) -> [ Spring Web ] (4) 선택

Spring Boot 를 사용해 웹 프로젝트를 개발할 것이므로 Spring Web 라이브러리를 선택했음

 

이제  [ Finish ] (5) 를 누르고 잠시 기다리면 sts 우측에 [ Package Explorer ] 에 생성한 프로젝트(1)가 보일 것

우리는 Spring Boot 프로젝트를 생성했으므로 반드시 프로젝트 명 옆에 [ boot ] 가 붙을 때(2) 까지 기다려야함

 

Spring Boot 프로젝트 생성 후 sts 하단에 [ Spring Java Reconcile ] 창(1)이 떴다면 [ Yes ] (2) 를 누르자

이는 "Spring Boot 프로젝트에 자바 코드를 넣을 때 sts가 도와줄까?" 라고 물어보는 것


Spring Boot 프로젝트를 열어 구성 요소를 살펴보자

 

(1). 컨트롤러, 서비스, 모델 등 자바 소스 파일이 들어갈 곳

 

(2). HTML, CSS, JS, 이미지파일 등 정적인 컨텐츠가 들어갈 곳

 

(3). 프로젝트 설정 값이 들어갈 곳

 

(4). JSP 파일 등 동적인 컨텐츠가 들어갈 곳

 

(5). 프로젝트 관리 도구인 Maven 설정이 들어갈 곳

 

 

 

 

 

 


이제 프로젝트를 실행시켜보자

Servlet에서는 프로젝트를 실행시키기 위해서 서버를 추가하고 서버에 프로젝트를 Add 시키고 서버를 실행시키고 ... 등의 여러 과정을 거쳤지만 Spring Boot 는 서버를 내장하고 있음

기본적으로 톰캣을 사용하므로 톰캣 서버를 사용하고자 한다면 별도의 설정없이 곧바로 실행시킬 수 있음

 

Spring Boot 프로젝트를 실행시킬 때는 sts 하단 [ Boot Dashboard ] (1) -> (프로젝트명) 우클릭 (2) -> (Re)start (3)

 

 

만약 sts의 어딜 봐도 [ Boot Dashboard ] 가 안보인다면...

더보기

sts 상단 [ Windows ] (1) -> [ Show View ] (2) -> [ Other ] (3)

 

[ boot ] 로 검색(1) -> [ Boot Dashboard ] (2) 선택 -> [ Open ] (3)


 

Spring Boot 프로젝트를 처음 실행 시키면 아마도 다음과 같이 [ 액세스 허용 ] (1) 창이 뜨는데 [ 액세스 허용 ] 을 누르자

이 창이 뜨지 않을 수도 있으니 뜨지 않았다고 해서 걱정할 필요는 없음, 그래서 아마도 라고 말한 것

 

 

Spring Boot 프로젝트를 실행시켰다면 [ Console 패널 ] (1) 에 다음과 같이 서버가 실행됬다는 메세지(2) 가 나옴

이 메세지를 분석하면

(1). Tomcat 10.1.7 버전의 서버를 사용하고 있음

(2). 서버의 포트 번호는 8080 번

 

 

이제 브라우저에서 실행 시킨 Spring Boot 프로젝트로 접근하자

브라우저 주소창에 http://localhost:8080 입력

Spring Boot 프로젝트가 정상적으로 실행됐다면 왼쪽과 같은 페이지가 보임

어떤 문제로 인해 Spring Boot 프로젝트가 실행되지 못했다면 오른쪽과 같은 페이지가 보임

 

 

Spring Boot 프로젝트가 정상적으로 실행됐는데 Error Page 가 보이는 이유는 우리가 프로젝트를 만들기만 했지 요청을 받을 컨트롤러를 추가하지 않았기 때문임

 

어떤 문제로 인해 서버가 실행되지 못했다고해도 괜찮음

다음 글에서 설명할 것들을 잘 듣고 이해하며 따라온다면 서버가 실행되도록 직접 수정할 수 있을 것

728x90
LIST

<< 학습 목표 >>

1. Framework에 대해서 설명할 수 있다.

2. Spring Framework와 Spring Boot의 차이를 설명할 수 있다.

3. STS를 설치할 수 있다.

4. STS에 필요한 초기 설정을 할 수 있다.


Spring Boot는 기본적으로 Servlet, JSP 학습이 이뤄진 후에 공부하는 것을 추천함

Servlet, JSP 를 모른다면 우선 Servlet, JSP 를 학습한 후에 오자

Servlet, JSP 를 몰라도 Spring Boot 를 배울 순 있지만 이해하긴 어렵고 외울 수 밖에 없음

이해 없이 무조건 암기는 한계가 있음

 

Spring Boot 를 더 잘 이해하고 싶다면 Spring Framework 를 공부하면 됨

Spring Boot는 Spring Framework를 쉽게 생성하기 위한 도구라고 생각하면 됨

 

Spring Framework는 프로젝트 개발에 필요한 설정을 하나 하나 해줘야함

또한 설정끼리 호환이 잘되도록 버전도 맞춰줘야하는 경우가 많음

 

Spring Boot는 그 설정을 하나의 묶음으로 제공하기 때문에 설정을 하나 하나 해줄 필요가 없고 호환이 잘되는 설정끼리 묶어서 제공함

 

- "당장! Spring Framework를 사용한 프로젝트를 개발하고 싶다" Spring Boot 부터 시작

- "시간적 여유가 있거나 암기 위주가 아닌 이해 위주의 공부를 하고 싶다" Spring Framework 부터 시작


Framework 란 Frame + work 의 합성어라고 생각하면 됨

Frame은 틀이라는 뜻이고 work는 일이라는 뜻으로 "틀 안에서 일을 한다" 로 해석할 수 있음

 

Servlet/JSP 를 사용하면 웹 프로그램을 쉽게 개발할 수 있지만 Spring Framework에 비하면 제공하는 기능이 매우 한정적임

 

예를 들어 클라이언트가 서버로 정수값을 보냈을 때 Servlet은 클라이언트가 보낸 값을 무조건 문자열로 받으므로 클라이언트가 보낸 정수값을 우선 문자열로 꺼내고 정수값으로 변환해야함

그러나 Spring Framework를 사용하면 변환 없이 정수값으로 받을 수 있음

 

클라이언트가 서버로 정보, 예를 들어 회원 정보(이름, 나이, 연락처)를 보냈다면 Servlet은 그 정보를 문자열로 받는건 물론이고 클라이언트가 보낸 회원 정보 내 데이터(이름, 나이, 연락처)를 하나씩 꺼내서 나이는 정수로 변환한 다음 클래스를 사용해서 하나의 정보로 합쳐야함

그러나 Spring Framework를 사용하면 변환, 합칠 필요 없이 정보로 받을 수 있음

 

이 외에도 Spring Framework는 제공하는 기능이 매우 다양하기 때문에 웹 프로그램 개발을 할 때 개발자의 수고를 덜어줌

만약 Servlet, JSP 공부를 했는데 위 말이 이해가 안된다면 아직 Servlet, JSP 공부가 덜됐다는 뜻으로 다시 Servlet, JSP를 공부하고 오거나 그냥 그렇구나 정도로만 생각하고 넘어가도 됨

 

Spring Framework를 사용하면 개발자의 수고를 덜어주기는 하지만 Framework 라는 말이 붙은 것처럼 반드시 Spring의 틀 안에서 작업 해야하기 때문에 추가적으로 Spring Framework를 공부해야한다는 단점이 있음

또한 Spring Framework를 잘 모른 상태로 이를 사용해 개발을 하면 Spring Framework를 사용했지만 사용하지 않은(?) 마치 슈뢰딩거의 고양이 와 같은 상태의 프로젝트가 될 수 있음


Spring Boot 는 자체적으로 웹 서버를 내장하고 있어 웹 서버를 설치하고 연동하는 과정이 필요 없음

 

Spring Boot 는 이름에 starter 가 들어간 라이브러리를 제공함

이는 해당 라이브러리와 라이브러리를 사용하는데 필요한 부가적인 라이브러리까지 모두 포함하고 있는 "라이브러리 묶음(패키지)" 임

라이브러리와 부가적인 라이브러리 간에 버전을 맞춰줘야 제대로 동작하는데 이런 부분을 생략할 수 있게 버전이 다 맞춰진 패키지임


Spring Boot 로 개발하기 위한 개발툴을 설치하자

이 글의 처음에 언급했듯 Servlet, JSP는 반드시 선행되야하기 때문에 Java 설치 방법, 환경변수 설정 방법 등은 설명하지 않음

혹시 Servlet, JSP를 학습할 시간이 없어서 못한다 라고 하시는 분은 인터넷에 Java 설치 방법과 Java 환경변수 설정 방법을 찾아보고 Java를 설치한 이후에 다음 내용들을 보자

 

Spring Boot 개발툴은 이클립스 + STS 애드온이 설치된 [ Spring Tools 4 for Eclipse ] 를 사용할 것임

만약 Intelli J 를 사용하고 있다면 프로젝트 생성 방식에서 버튼의 이름만 다를 뿐 프로젝트를 생성하는 방법이나 생성 후 의 프로젝트 모습 등은 완전히 동일하기 때문에 Intelli J 로 Spring Boot 프로젝트 생성 방법만 따로 검색해보거나 Intelli J 는 잠시 두고 여기서 설치하는 Spring Tools 4 for Eclipse 로 학습 해도 무방함

 

우선 인터넷에서 sts 로 검색(1)하자

검색 후 검색 결과에 [ Spring | Home ] 으로 나오는 검색 결과(2)를 눌러 Spring 공식 홈페이지로 들어가자

검색 결과에 없다면 직접 이동 하자 ( https://spring.io )

 

Spring 공식 홈페이지 안에서 [ Projects ] (1) -> [ Spring Tools 4 ] (2) 로 이동

 

Spring Tools 4 페이지 내에서 스크롤을 살짝 내리면 다음과 같이 [ Spring Tools 4 for Eclipse ] 항목이 있음

이 항목 내에서 마지막에 있는 [ 4.18.0 - WINDOWS X86_64 ] (1) 를 선택해 Spring 개발 툴인 STS를 다운 받자

 

다운 받은 파일을 확인해보면 아마도 우리가 처음보는 확장자가 jar인 파일이 보일 것

이는 자바를 사용해서 압축한 파일이라고 생각하면 됨

자바를 사용해서 압축했기 때문에 압축을 풀 때도 자바를 사용해서 압축을 풀어야함

 

자바를 사용해서 압축을 풀려면 우선 cmd 창을 열어야함

바탕화면 내 제일 하단에 있는 작업 표시줄 내 [ 시작 ] 버튼 (1) 클릭 -> 그 상태 그대로 cmd 입력 (2) -> 명령 프롬프트 (3) 실행

 

이제 cmd 창 내에서 다운 받은 STS 압축 파일이 위치한 곳으로 이동해야함

그러기 위해서 다운 받은 STS 압축 파일의 경로를 알아보자

 

키보드의 [ 시작 버튼 + E ] 를 누르면 [ 파일 탐색기 ] 가 열림

또는 여러분이 알고 있는 방법으로 파일 탐색기를 열자

 

파일 탐색기 내 우측 메뉴에서 [ 다운로드 ] (1) -> 다운 받은 STS 압축 파일 우클릭 (2) -> [ 속성 ] (3) 클릭

 

속성 창 내에서 [ 위치 ] (1) 가 다운 받은 STS 압축 파일의 경로임

위치를 복사 하자

 

그 후 cmd 창으로 돌아가 cd "(복사한 위치)" (1) 를 입력 후 Enter 키를 누르자

그럼 cmd 창의 경로가 (2)와 같이 바뀐걸 알 수 있음

cmd 창이 다운 받은 STS가 위치한 경로로 이동한 것

 

cmd 창이 다운 받은 STS가 위치한 경로로 이동했으니 다음과 같이 java 를 사용해 압축을 푸는 명령(1)을 입력하자

대소문자와 띄어쓰기 꼭 맞춰야함 java 띄고 -jar 띄고 spring~~ 임

한 가지 팁으로는 java -jar spring 까지만 쓰고 키보드의 Tab 키를 누르면 나머지는 자동 완성됨

 

위 명령을 다 입력했으면 Enter 키를 눌러 자바를 사용해 압축 푸는 명령을 실행하자

그러면 아래와 같이 압축 해제 상태(1)가 나오며 압축이 풀림

 

압축이 모드 풀려 다음과 같이 커서가 깜박이고 있다면(1) cmd 창을 닫자

 

이제 다운로드 폴더를 보면 다음과 같이 sts~ 폴더(1)가 있을 것

 

만약 sts~ 폴더가 없다면 cmd 창을 여는 부분부터 다시 따라와보자

sts~ 폴더 안으로 들어가면 [ SpringToolSuite4 ] (1) 가 있음

이 프로그램이 Spring Boot 개발툴임

 

Spring Boot 개발툴을 실행시켜보자

 

실행시킨 후 약간의 시간이 흐르면 아래와 같은 [ Workspace ] 를 지정(1)하는 창이나옴

Workspace 란 이 개발툴을 사용해 생성한 프로젝트가 위치할 기본 경로임

Workspace 는 그대로 사용해도 되고 [ Browse ] 를 눌러 다른 폴더를 지정해도 됨

 

이 화면은 개발툴을 실행시킬 때 마다 매번 열리므로 [ Use this as ~ ] 체크 박스(2) 를 체크 해 다음부터는 묻지 않도록 하자

설정이 끝났다면 [ Launch ] (3) 를 눌러 개발툴을 실행시키자

 

여기까지 개발툴을 설치했음

개발툴은 일반적으로 sts 라고 부르니 우리도 앞으로 sts라고 부르자


마지막으로 꼭 해줘야하는 간단한 sts 설정을 하고 마무리 하자

 

sts는 이클립스의 최소한 + Spring Boot 개발에 필요한 환경 이 설정된 개발툴임

앞으로 우리가 HTML, CSS, JSP 파일 등을 추가해 학습을 해야하는데 현재 sts 에는 이런 파일을 추가할 수 있는 설정이 되어있지 않음

이러한 파일들을 추가할 수있도록 설정을 하자

 

sts 내 상단 [ Help ] (1) -> [ Eclipse Marketplace... ] (2) 클릭

 

[ Eclipse Java EE developer tools ] 로 검색(1) -> Eclipse Java EE developer tools [ install ] 버튼(2) 클릭

검색 결과가 나오기 까지 시간이 다소 소요되므로 기다리면 됨

 

설치할 항목들이 나오는데 모든 항목을 다 설치하도록 체크(1) -> [ Confirm ] (2) 클릭

 

설치에 동의함(1) 을 선택 -> [ Finish ] (2) 클릭

 

sts 오른쪽 하단(1)에 작게 설치되고 있다는걸 알 수 있음

 

설치 중 다음과 같이 다시 한번 "진짜 설치하는거 맞아?" 라고 물어보는 창(1)이 뜨는데 [ 맞다 ] (2) 로 체크 -> [ Trust Selected ] (3) 클릭

( 정확히 설명하면 진짜 설치하는거 맞아? 창은 아니지만 그렇게 생각하고 넘어가자 )

 

 

설치가 다 되고나면 [ Restart Now ] (1) 를 눌러 sts 를 재시작하자

 

 

 

한글 관련된 것들이 정상적으로 보이도록 문자열 인코딩을 UTF-8 로 설정해줘야함

 

sts 내 상단 [ Window ] (1) -> [ Preferences ] (2) 클릭

 

Preferences 창 내에서 [ encoding ] 으로 검색(1) -> [ Workspace ] (2) 선택 -> [ Text file encoding ] (3) 이 UTF-8 이 아니라면 UTF-8 로 설정 후 [ Apply ] (4)

 

그 후 나머지 항목(CSS Files, HTML Files, JSP Files, XML Files)의 Encoding을 모두 UTF-8 로 변경

 

마지막으로 JSON 으로 검색 (1) -> [ JSON Files ] (2) 의 encoding (3) 도 UTF-8 로 변경

변경 후 [ Apply and Close ] (4) 클릭

 

Encoding 을 UTF-8 로 설정해야 한글이 제대로 입력됨

728x90
LIST