Prj PJ

[Spring Boot]1-Spring Boot 프로젝트 셋팅하기 ( macOS + eclipse )

솔헬레나 2023. 6. 2. 23:05

[ 스프링부트란? ] 

- 스프링 프레임워크를 사용한, 프로젝트를 간편하게 설정할 수 있는 웹 프레임워크이다. ( 웹 프로그램을 만들기 위한 스터티 키드 )

- 단독 실행할 수 있는 spring application 을 생성한다.

- spring boot는 최소한의 초기 스프링 구성으로 가능한한 빨리 시작하고 실행할 수 있도록 설계되었다.

- 웹 컨테이너를 내장하고 있어 최소한의 설정으로 쉽게 웹 어플리케이션을 만들 수 있다.

- 스프링 프레임워크에서 가지고있던 단점들(xml설정파일을 작성하는 등의 설정작업들)을 하지 않고도 쉽고 빠르게 프로젝트를 설정할 수 있는 기능을 지원한다.

- 빠르게 모든 스프링 개발에 관한 경험에 광범위한 접근을 제공한다.

- 프로젝트 환경 구축에 큰 영역을 차지하는 비기능적인 기능들을 기본적으로 제공한다. ( 내장형 서버, 시큐리티, 측정, 상태점검, 외부설정 .. 등 )

- 톰캣과 같은 WAS가 불필요하다. 

 

[ 프로젝트 셋팅하기 ]

1. 스프링 초기화 사이트에서 기본 틀 다운로드받기

https://start.spring.io/ 아래의 화면에서 필요한 옵션을 설정한다.

ㄴ 화면 왼쪽부분에서  프로젝트, 언어, spring boot 버전, 프로젝트 메타 데이터, pakaging , java 버전을 설정한다

ㄴ 화면 오른쪽 부분에서 추가할 dependencies 를 검색하여 추가한다.

ㄴ 아래와 같이 설정한 후 [GENERATE]를 눌러 패키지를 다운로드 받는다. 

<maven?>
ㄴ 라이브러리 저장소이다. 각종 라이브러리의 웹 다운로드 경로를 제공한다. 

< gradle? >
ㄴ groovy를 기반으로 만들어진 빌드 자동화 시스템이다. 
ㄴ maven을 이용하여 외부 라이브러리를 다운로드하고 빌드한다.
하나의 프로젝트를 빌드하기 위해서는 경우에 따라 여러개의 프로젝트가 필요하거나, 빌드될 환경에 따라 옵션을 달리해야하는 경우가 많은데, 이런 경우에 gradle을 이용하여 한번에 빌드할 수 있다. 

< lombok ? >
ㄴ 반복되는 메소드들을 Annotation을 사용하여 자동으로 작성해주는 java 라이브러리이다.
ㄴ DTO나 Model,Entity에서 속성이 여러개인 경우 getter, setter을 생성하지 않아도 자동으로 만들어준다. 

< jar과 war ?>
ㄴ 둘 다 java -jar을 이용하여 생성도니 압축파일로서, 어플리케이션을 쉽게 배포할 수 있도록 관련된 파일들을 패키징한 파일이다. 
ㄴ jar은 java 어플리케이션이 동작할 수 있도록 자바프로젝트를 압축한 파일이다. class,라이브러리 파일을 포함한다.
ㄴwar 은 웹 애플리케이션 전체를 패키징하기 위한 JAR 파일이다. 웹관련자원인 jsp , servlet, jar, class, xml, html, javascript 를 포함한다.

 

 

2. 다운받은 패키지를 이클립스에 import

다운로드 받은 패키지를 압축해제한 후 이클립스에 import한다.  

- 마우스오른쪽 버튼 클릭 > import > Gradle - Exisiting Gradle Project 클릭 > next > next 

 

-> Import Gradle Project에서 추가할 프로젝트를 Project root directory 에서 선택한다. 

 

-> Override workspace settings 를 check +. java home 버전으로 jdk 버전을 설정한 후 [Next>] 클릭하여 적용확인한다. 문제가 없으면 [finish]를 클릭한다. 

 

 

3. 실행

gradle Tasks >  application > bootRun을 더블클릭하여 실행한다.

 

Console에서 실행결과를 볼 수 있다.

 

4. build.gradle 설정 확인

spring-boot-starter-web 과 lombok가 추가되어있다.

 

 

 

5. 실행확인

> resources 폴더 클릭 >  static 파일 안에 index.html 파일을 생성한다. -> index.html 파일 내에 화면에 표시할 내용을 입력하고 > 다시 BootRun 한다. 

서버가 잘 실행되었으면 브라우저에서 "http://localhost:8080/index.html"으로 이동 후 본문에 남긴 메시지를 확인한다.

 

 

 

 

 

 

 

 

 

 

[ 스프링부트 프로젝트 내부구조 이해하기 ]

1) build.gradle 파일

 -> 프로그램 구성 및 실행에 필요한 라이브러리 정보를 기술한다. 이 파일에 기재된 내용은  

-> Project Object를 위한 프로퍼티(속성값) 또는 메서드를 정의한다. 

메서드 의 종류 : repositories , dependencies , configurations... 등

프로퍼티 형태 예시

- 프로퍼티이름 = 값

- project.프로퍼티이름 = 값

- project.ext.커스텀프로퍼티이름 = 값

 

메서드 형태 예시 

- 메서드이름{ }

- ext.메서드 이름 = { param1 , param2 -> 메서드 바디 }

 

 

 

 

 

 

2) ~Application.java 파일

- 모든 프로그램의 시작을 담당한다. 스프링부트 프로젝트의 메인 실행을 담당한다.

- @SpringBootApplication 어노테이션으로 Application.java가 있는 파일을 최상위 패키지로 인식시킨다.

- SpringApplication.run 을 통해 스프링을 실행시킨다. 이 전/후에 수행되는 것은 그저 java..

 

3) src/main/java 디렉토리

ㄴ 실제 소스파일 등의 자바 파일을 저장하는 공간

 

4) src/main/resources 디렉토리

ㄴ 자바파일을 제외한 HTML, CSS, Javascript, 환경파일 , xml파일등을 저장하는 공간.

 

5) static 디렉토리

ㄴ 스타일시트(.css), 자바스크립트(.js) 그리고 이미지 파일(.jpg, .png) 등을 저장하는 공간

 

6) application.properties 파일

ㄴ 프로젝트의 환경, 데이터베이스 등의 설정을 저장한다. 실행 시 데이터를 읽어 와 실행한다.

 

7) src/test/java 디렉토리

ㄴ프로젝트에서 작성한 파일을 테스트하기 위한 테스트 코드를 작성하는 공간이다. JUnit과 스프링부트의 테스팅 도구를 사용하여 서버를 실행하지 않은 상태에서 src/main/java 디렉터리에 작성한 코드를 테스트할 수 있다.

 


참고 

https://goddaehee.tistory.com/238

 

https://wikidocs.net/160047