[ 스프링부트란? ]
- 스프링 프레임워크를 사용한, 프로젝트를 간편하게 설정할 수 있는 웹 프레임워크이다. ( 웹 프로그램을 만들기 위한 스터티 키드 )
- 단독 실행할 수 있는 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
'Prj PJ' 카테고리의 다른 글
| [SpringBoot] build.gradle 설정 정리 및 조사 (0) | 2023.06.26 |
|---|---|
| 정리필요/[springBoot] spring 프로젝트 설정하기의 나머지 전부 (0) | 2023.06.23 |
| [리눅스] mysql 완전 삭제 (0) | 2023.05.24 |
| [리눅스] Nginx 설치 및 포트포워딩 (0) | 2023.05.23 |
| [리눅스] wordpress 설치 ( docker, mysql , nginx ) (0) | 2023.05.19 |