[그린컴퓨터] Server/Spring

스프링 프로젝트 생성 { Spring Boot 환경설정, 프로젝트 생성, 테스트 }

Ben의 프로그램 2023. 7. 7. 11:09
728x90

Create new Spring Starter Project 를 선택해서 Spring Boot 로 프로젝트를 생성한다.

Spring Boot 로 프로젝트를 만들면 옵션을 선택해야하는 것들이 있다. 다 외울 필요는 없지만 한번 살펴보고 가자. 

 

Type 은 프로젝트 안에서 관리할 때 어떤 도구를 사용할 것인지 묻는 것이다. Maven 과 Gradle 을 사용할 수 있는데, 두 개 차이가 크지 않다. Gradle 이라는 도구를 우리는 사용할 것이다. 

 

Packaging 은 우리가 실행을 하려고 했을 때 이클립스 바깥에서 프로그램을 구동시키려면 소스코드를 압축해서 컴파일하는 과정이 필요하다. 즉, 이클립스에서 소스코드를 컴파일해서 바이트코드로 바꾸는 과정을 컴파일 과정이라고 했는데, STS 에서는 패키징이라는 과정이 추가된 것이다. 외부 사용자는 패키징된 파일 하나만으로 프로그램을 실행시킬 수 있게 된다. Jar 는 웹 리소스가 없는 것을 의미하는데, 웹 리소스는 HTML, CSS, JS 등을 의미하는데 우리는 포함할 것이기 때문에 War 를 사용한다. 

 

Language 와 Java Version 은 당연히 설치한 것을 토대로 설정한다. 

 

META 정보에 들어가는 것들이 뒤를 잇게 된다. 회사에 가면 정확하게 작성을 해주어야 한다. Group 에는 회사명을 사용하고, Artifact 는 빌드 결과물 파일의 이름을 설정한다. 아무튼, 지금 엄청 신경쓸 부분은 아니라는 것을 알 수 있다.

다음 화면은 위와 같은 것이 보인다. Dependecies 는 라이브러리들을 의미하는데, 내 프로젝트에서 사용할 Library 들을 선택해주면 자동으로 다운로드를 받게 된다. 

 

라이브러리에는 2가지가 있다. 기본 라이브러리와 외부 라이브러리이다. 외부 라이브러리는 다운로드하여 내 프로젝트에 포함시켜주어야 한다. 지금 하는 것이 외부 라이브러리를 선택하는 과정이다.

우리는 Lombok, Spring Web, Thymeleaf 선택한다.

이렇게 라이브러리를 선택해주면 된다. Finish 를 선택하면 라이브러리를 다운로드하기 시작한다.

이렇게 설치가 진행되는 것을 볼 수 있다.

좌측에 demo 가 보이면 Spring Boot 가 완료된 것이다. 

폴더 구조를 살펴보겠습니다. 굉장히 많은 파일들이 있는데, 이것이 프레임워크의 장점입니다. 개발자는 적절한 위치에 나의 코드만 넣어주면 동작하는 애플리케이션을 개발할 수 있습니다.

Demo 를 열어보겠습니다.

여기 있는 main 함수가 이 프로젝트의 main 함수가 됩니다. Spring 프로젝트에서는 main 클래스와 메서드는 한 개만 기본적으로 갖게 됩니다.(여러 개 만들 수 있는데, 보통 그렇지 않습니다.)

 

프로젝트 구조를 확인하기 전에 프로젝트 구동이 잘 되는지 확인 부터 하겠습니다. 

프로젝트 구동 여부 확인

위와 같이 demo 패키지 아래에 TestController 파일에 코드를 작성했습니다.

좌측 하단에 Local 을 확장하면 demo 가 보이는데 이것은 프로젝트입니다. 그래서 프로젝트를 생성한 만큼 여기에 보이게 되고 실행할 때도 이것을 활용하게 됩니다.

demo 를 우클릭해서 실행시켜 보면 다음과 같은 콘솔창이 보이게 됩니다.

스프링 부트는 내장 tomcat 이 있기 때문에 자동으로 포트가 할당되는 것을 볼 수 있습니다. 스프링 프레임워크에서는 was 를 직접 설치해야하는데, 스프링 부트에는 기본적으로 tomcat 이 설치되어 있어서 생기는 현상입니다. 

 

이 상태에서 웹 브라우저에서 localhost:8080/hello 로 주소를 입력해봅니다.

웹 브라우저에서 localhost:8080/hello 를 입력하면 위와 같이 안녕하세요가 출력된 웹 브라우저를 볼 수 있습니다. 이렇게 보이는 이유를 코드로 보겠습니다.

@GetMapping 어노테이션으로 상세 주소를 지정해주고 출력될 화면을 코드로 작성한 것으로 이해할 수 있습니다.