스프링부트란 무엇인가?
스프링부트는 자바프로그램을 좀더 쉽고빠르게 만들게하는 도구이다.
1. 11버전에서 17버전으로 변경하느라 파일을 다시 받아주었다...
Java Archive Downloads - Java SE 17 (oracle.com)
2. 인텔리제이에서 새프로젝트>
1).프로젝트이름쓰고, 2)언어는 자바, 3)타입은 Gradle , 4) 그룹 이름쓰고, 5)JDK는 17버전으로 설정한 후 > 다음 클릭
조상격인 Maven 최근대세는 Gradle이지만 현업에서는 아직도 Maven이 주로 사용된다.
그룹은 도메인의 개념. 아티팩트는 프로젝트이름.
Jar는 자바타입 자바런타임 , War는 웹어플리케이션 아카이브 웹에 띄우는 그러한 압축파일을 뜻함
3. Web 에서 Spring web 이랑 , Template Engines 에서 Thymeleat 를 추가한 후 생성을 눌러준다.
초기의 환경설정을 해놓는 단계이다
4.main에서 파일누른후 실행눌러주기
5.하단 터미널에 스프링이라는 문구가 크게 뜨고, Tomcat 부분에 8080이 아래사진처럼뜨면 잘 실행된 것이다.
+ 이때 버전이맞지않는다고 빨간 문구가 뜰수 있는데, 11버전으로 인텔리제이를 설정하고 계속쓰다가 17버전으로 변경해서 사용하면 평소와 버전이 다르다고 알려주는 경고문구가 뜰 수있다.
6. build.gradle을 누르고
아래 dependencies 부분에서 3줄만 있던 코드에 아래와같이 노란색부분처럼 텍스트를 친후
오른쪽 상단에 뜬 Gradle 변경 내용 로드를 클릭해준다.
외부 기능을 추가할 때 쓰는 것
spring-boot-devtools 라는 라이브러리에 있는 기능 중 tests 가 있음
implementation 'org.springframework.boot:spring-boot-devtools-tests:'
7. 구글에 localhost:8080을 친후 화면에 Error Page가 떠있는지 확인한다. 떠있다면 잘 된 것.
중요개념 : AOP / POJO / IoC / DI
Gradle이란?
2012년에 출시된 Groovy를 기반으로 한 오픈소스 빌드도구.
거의 모든 타입의 소프트웨어를 빌드할 수 있는 빌드자동화시스템
빌드: 소스 코드를 컴파일,테스트,정적분석등을 실행하여 실행가능한 애플리케이션으로 만들어주는 과정
다양한라이브러리의 등장에 따른 문제점 (테스트라이브러리- junit :테스트프레임워크 *중요!)
- 라이브러리를 다운로드 및 추가하는 번거로움
- 개발자들 간의 버전관리 어려움
- 다운받은 jar 파일의 보안위험
그런 문제들을 한번에 해결하는 도구가 빌드도구이다.
빌드도구 :
계속해서 늘어나는 라이브러리를 자동 추가 및 관리
프로젝트를 진행하며 라이브러리의 버전을 쉽게 동기화
*Groovy - JVM 상에서 실행되는 스크립트언어
Gradle
1. 프로젝트를 설정 주입 방식으로 정의
2. 멀티 프로젝트 빌드
3. 빌드 속도가 빠름
프로젝트를 설정 주입 방식으로 정의
- Maven의 상속구조보다 재사용에 용이
- 프로젝트의 조건을 체크할 수 있어서 프로젝트 별로 주입되는 설정을 다르게 할 수 있다.
멀티 프로젝트 빌드
- 하나의 repository내에 여러개의 하위프로젝트를 구성할 수 있다
Gradle 이 빌드 속도가 빠른 이유
점진적빌드 :
- Gradle은 빌드 실행중 마지막 빌드 호출이후에 taske의 입력, 출력 혹은 구현이 변경되었는지 확인한다
- 최신상태로 간주하지 않는다면 빌드는 실행되지않는다
빌드캐시 :
- 두개이상의 빌드가 돌아가고 하나의 빌드에서 사용되는 파일들이 다른 빌드들에 사용된다면 Gradle은 빌드캐시를 이용해 이전빌드의 결과물을 다른 빌드에서 사용할 수 있다
- 다시 빌드하지 않아도 되므로 빌드시간이 줄어들게 된다
데몬프로세스 :
- 서비스의 요청에 응답하기 위해 오래동안 살아있는 프로세스
- Gradle의 데몬 프로세스는 메모리 상에 빌드 결과물을 보관
- 이로인해 한번 빌드된 프로젝트는 다음 빌드에서 매우 적은 시간만 소요된다
- api - 내부 의존성을 컴파일과 런타임 모두에 보이는 API 의존성
- implementation - 내부의존성을 런타임에서만 보이는 구현 의존성
- compileOnly - 컴파일에만 사용되는 의존성 정의
- runtimeOnly - 런타임에만 사용되는 의존성 정의
- test + Implementation , CompileOnly, RuntimeOnly
- 해당 의존성을 테스트시에만 사용하도록 정의
결론 :
Gradle은 프로젝트를 설정주입방식으로 사용해서 재사용에 유리하고,
멀티프로젝트를 통해 여러 프로젝트를 사용할 수 있다.
빌드속도도 여러방면에서 최적화 했다.
Gradle 설명 원본 영상 :
'STUDY > SpringBoot' 카테고리의 다른 글
[SpringBoot] 22-07-28 SpringBoot 간단 게시판 예제 ☑ (0) | 2022.07.29 |
---|---|
[SpringBoot] MVC(Model·View·Contoller) 정리✔ [1] (0) | 2022.07.29 |
[SpringBoot] Spring Framework 개념 정리✔ (0) | 2022.07.28 |
[SpringBoot] 22-07-28 SpringBoot 전체 이해하기 ☑ (0) | 2022.07.28 |
[SpringBoot] 22-06-20 VSCode에서 Spring Boot 시작하기 (0) | 2022.06.20 |