오늘이라도
[I. 프로젝트 환경설정] 1. 프로젝트 생성 본문
https://github.com/upcake/hello-spring
0. 사전 준비물
1) Java 11 설치 https://www.oracle.com/java/technologies/javase/jdk11-archive-downloads.html
2) IntelliJ 또는 Eclipse 설치
https://www.jetbrains.com/ko-kr/idea/download/#section=windows
현재 실무에서는 이클립스를 사용하지만 강의가 인텔리J로 진행되고 또 요즘에는 인텔리J를 사용하는 추세니까 인텔리J 무료버전을 사용해서 진행하려합니다.
1. 스프링 프로젝트 생성
1) https://start.spring.io : 스프링에서 운영하는 프로젝트 생성 사이트
① Project : Maven / Gradle
- 라이브러리를 당겨오고 빌드하는 라이프사이클까지 관리해주는 툴
- 과거에는 Maven을 주로 사용했으나 요즘에는 대부분 Gradle을 사용하는 추세
② Spring Boot
- SNAPSHOT : 만들고 있는 버전
- M1 : 정식버전이 아님
- 정식 릴리즈된 버전중 가장 최신인 2.6.1 선택
③ Project Meta
- Group : 보통 기업명을 적음
- Artifact : 빌드되어 나올 결과물 (프로젝트명)
④ Dependencies
- 스프링 기반으로 프로젝트를 할 건데 어떤 라이브러리를 당겨서 쓸거냐
- Spring Web : 웹 프로젝트 할거니까
- Thymeleaf : 템플릿 엔진
⑤ 다 했으면 GENERATE 눌러서 다운로드
2. IntelliJ 프로젝트 설명
1) 다운받은 hello-spring 폴더를 압축푼 뒤 open으로 build.gradle을 선택
① .gradle 무시
② .idea 인텔리J가 사용하는 설정 파일
③ gradle과 관련되어 gradle을 사용하는 폴더
④ src/main : 실제 패키지
⑤ src/test : 테스트 코드 ==> 따로 나눠진게 정석 ==> 테스트 코드가 정말 중요하다!
⑥ resources : 자바 코드 파일을 제외한 xml, properties 설정 파일, html 등 자바 파일을 제외한 나머지
⑦ build.gradle
- 예전에는 초기 설정도 직접 입력해야 했지만 요즘에는 스프링이 자동으로 해줌
- plugins : 스프링부트 버전, 언어 등의 정보
- sourceCompatibility : 자바11
- repositories
i) mavenCentral() : dependencies를 다운받는 장소를 간편하게 설정해둔 것
ii) 필요하다면 특정 사이트 URL을 입력 가능
- dependencies
i) 시작하면서 선택했떤 타임리프, 웹이 들어가있음
ii) 기본적으로 테스트 라이브러리, junit5도 들어가있음
⑧ .gitignore : git 소스코드 관리, 필요한 파일만 올라갈수 있게 spring.start.io에서 설정해줌
⑨ gradlew, gradlew.bat : gradle로 빌드할때 사용
⑩ settings.gradle : 나중에 gradle할때 배움
3. 프로젝트 시작
1) @SpringBootApplication : 어노테이션, 뭔진몰라도 스프링으로 뭔가 하는구나
2) main() : 메인메서드, 자바는 이거부터 시작
3) 메인메서드 옆에 버튼으로 Run 하면 실행되면서 8080포트로 뭔가뜸
4) localhost:8080 으로 들어가서 확인 가능, 에러페이지가 뜨면 프로젝트 환경설정에 성공한 것
5) 실행 과정
① main() 실행 => SpringApplication.run에 HelloSpringApplication 클래스를 넣어주면
② @SpringBootApplication이 실행됨
③ 자기가 알아서 띄우면서 내장된 웹서버 톰캣을 띄움
6) gradle이 아닌 인텔리J로 실행하게 설정
- File - Settings - Build, Execution, Deployment - Gradle - Build and run을 gradle에서 인텔리J로 변경
7) 콘솔창 색 변경
application.properties에 아래 코드 추가
spring.output.ansi.enabled=always
'인프런 > 스프링 입문 (김영한)' 카테고리의 다른 글
[II. 스프링 웹 개발 기초] 6. MVC와 템플릿 엔진 (0) | 2021.12.23 |
---|---|
[II. 스프링 웹 개발 기초] 5. 정적 컨텐츠 (0) | 2021.12.23 |
[I. 프로젝트 환경설정] 4. 빌드하고 실행하기 (0) | 2021.12.23 |
[I. 프로젝트 환경설정] 3. View 환경설정 (0) | 2021.12.23 |
[I. 프로젝트 환경설정] 2. 라이브러리 살펴보기 (0) | 2021.12.23 |