[스프링] 프로젝트 생성

Kyu·2021년 2월 1일
0

Spring 공부기록

목록 보기
1/10
post-thumbnail

인프런 스프링 입문 by 김영한


스프링 부트

정의

스프링을 편리하게 사용하도록 도와주는 것이 스프링 부트인데,
쉽게 이야기해서 스프링을 편리하게 사용하도록 도와주는 껍데기.

프로젝트 생성

예전에는 프로젝트를 밑바닥부터 만들었는데 이젠 스프링부트로 쉽게 만들수있다.
https://start.spring.io

Maven, Gradle ?

필요한 라이브러리를 땡겨서 오고 빌드하고 라이프사이클까지 관리하는 툴
요즘은 Gradle을 많이 쓴다. 스프링 라이브러리 자체도 Gradle로 많이 넘어온 상태

스프링 부트 버전

스냅샷이라는 말은 만들고 있다는 뜻. M1은 정식 릴리즈가 되어있지 않음

프로젝트 메타

  • Group
    기업같은 경우 보통 도메인을 사용한다
  • Artifact
    빌드되었을때 결과물

Dependencies

어떤 라이브러리를 쓸껀가?

웹을 만들거기 때문에 Spring Web을 선택하고, html을 만들어주는 템플릿 엔진이 필요한데 Thymeleaf을 부른다.

인텔리제이에 import 하기

  1. https://start.spring.io 에서 설정을 다하고 Generate를 누르면 zip파일을 다운받을 수 있다
  2. 인텥리제이에서 open file or import file 을 누르고 zip파일을 해제하면 보이는 build.gradle 을 선택한다.
  3. 처음에 외부에서 다운로드하는게 많기때문에 처음에 좀 시간이 걸림

내부 살펴보기

- 📁.idea 
	인텔리제이 설정파일
- 📁gradle
	gradle 관련 폴더
- 📁src --------📁main----📁java에 실제 패키지파일
	    |          |
            |          --📁resources 자바파일을 제외한 모든파일
	    ----📁test 테스트 코드와 관련된 소스
	이렇게 나뉘어져있다는건 테스트코드가 굉장히 중요하다는 뜻

📁build.gradle

이 부분이 중요함.
옛날에는 한땀한땀 모두 작성한다고 하더라.
지금은 개발자 친화적으로 스프링부트가 나오면서 설정하기가 편해짐.

그리고 지금은 Gradled은 버전설정하고 라이브러리 땡긴다는 정도만 이해해도 됨.

dependencies 에는 아까 선택한 디펜던시가 들어가고 테스트관련된거 기본적으로 또 들어감

기본 자바 파일 실행해보기

📁java.hello.hellospring 패키지 내에 있는 HelloSpringApplication 을 실행해본다.
(프로젝트 생성할때 홈페이지에서 네이밍을 hello 로 지음)

12:43:49: Executing task 'HelloSpringApplication.main()'...

> Task :compileJava
> Task :processResources
> Task :classes

> Task :HelloSpringApplication.main()

  .   ____          _            __ _ _
 /\\ / ___'_ __ _ _(_)_ __  __ _ \ \ \ \
( ( )\___ | '_ | '_| | '_ \/ _` | \ \ \ \
 \\/  ___)| |_)| | | | | || (_| |  ) ) ) )
  '  |____| .__|_| |_|_| |_\__, | / / / /
 =========|_|==============|___/=/_/_/_/
 :: Spring Boot ::                (v2.4.2)

2021-02-02 12:44:04.465  INFO 40344 --- [           main] h.hellospring.HelloSpringApplication     : Starting HelloSpringApplication using Java 13.0.2 on Dongkyus-MBP.fritz.box with PID 40344 (/Users/kyu/study/hello-spring/build/classes/java/main started by kyu in /Users/kyu/study/hello-spring)
2021-02-02 12:44:04.478  INFO 40344 --- [           main] h.hellospring.HelloSpringApplication     : No active profile set, falling back to default profiles: default
2021-02-02 12:44:06.850  INFO 40344 --- [           main] o.s.b.w.embedded.tomcat.TomcatWebServer  : Tomcat initialized with port(s): 8080 (http)
2021-02-02 12:44:06.866  INFO 40344 --- [           main] o.apache.catalina.core.StandardService   : Starting service [Tomcat]
2021-02-02 12:44:06.866  INFO 40344 --- [           main] org.apache.catalina.core.StandardEngine  : Starting Servlet engine: [Apache Tomcat/9.0.41]
2021-02-02 12:44:07.060  INFO 40344 --- [           main] o.a.c.c.C.[Tomcat].[localhost].[/]       : Initializing Spring embedded WebApplicationContext
2021-02-02 12:44:07.060  INFO 40344 --- [           main] w.s.c.ServletWebServerApplicationContext : Root WebApplicationContext: initialization completed in 2413 ms
2021-02-02 12:44:07.442  INFO 40344 --- [           main] o.s.s.concurrent.ThreadPoolTaskExecutor  : Initializing ExecutorService 'applicationTaskExecutor'
2021-02-02 12:44:07.752  INFO 40344 --- [           main] o.s.b.w.embedded.tomcat.TomcatWebServer  : Tomcat started on port(s): 8080 (http) with context path ''
2021-02-02 12:44:07.782  INFO 40344 --- [           main] h.hellospring.HelloSpringApplication     : Started HelloSpringApplication in 4.231 seconds (JVM running for 4.97)

다음과 같이 나온다.

뭔진 모르겠지만 Tomcat started on port 부분을 보면 뭔가 8080포트에 연결 됐고 http와 관련 된게 있다라는 걸 알수있다.

그러고 나서 웹브라우저 주소창에 localhost:8080 라고 입력하고 다음과 같은 메시지를 보면 프로젝트 환경 설정에 성공한 것이다

스프링 어플리케이션이 실행되면서 톰캣이라는 서버를 내장하고 있어서 이렇게 접속이 가능한거다.

원래 gradle을 이용해서 실행되서 실행시에 조금 느린데 인텔리제이 설정에서 gradle 항목에서 build and run using: 과 Run test using: 을 인텔리제이로 바꾸면 좀 빠르게 실행이 가능하다.

profile
TIL 남기는 공간입니다

0개의 댓글