[Spring] 프로젝트 환경 설정

Seongho·2023년 1월 3일
0

Spring

목록 보기
2/13

스프링 프로젝트 생성

https://start.spring.io/ 에서 스프링 프로젝트를 생성해준다.

1. Project : Gradle - Groovy 선택 (Gradle은 Groovy를 기반으로 한 빌드 툴)
2. Spring Boot : 최신의 버전 선택
3. Project Metadata : Group은 보통 기업, 단체의 이름을 쓴다. Artifact는 프로젝트가 빌드 되었을 때, 그 결과물의 이름을 쓴다. Name과 동일하다. Description은 맘대로.
4. Dependencies : 사용할 외부 라이브러리

빌드 설정

윈도우 기준 File -> Settings -> Gradle 에서 체크한 두 부분을 IntelliJ IDEA로 바꾼다.(빌드 속도 빨라짐)

프로젝트 초기 폴더 구조

  • src 하위에는 main과 test로 나뉘는데, main에 실제 프로젝트 코드가 작성되고, test는 이를 테스트하기 위한 코드가 작성된다.
  • src/main/java/NestNet.webSite/WebSiteApplication는 메인 메소드를 가진 실행 클래스이다.

build.gradle

주요 라이브러리

스프링 부트 라이브러리

  • spring-boot-starter-web
    + spring-boot-starter-tomcat : 톰캣 (웹서버)
    + spring-webmvc: 스프링 웹 MVC
  • spring-boot-starter-thymeleaf : 타임리프 템플릿 엔진(View)
  • spring-boot-starter(공통) : 스프링 부트 + 스프링 코어 + 로깅
    + spring-boot
    + + spring-core
    + spring-boot-starter-logging
    + + logback, slf4j
    테스트 라이브러리
  • spring-boot-starter-test
    + junit : 테스트 프레임워크
    + mockito : 목 라이브러리
    + assertj : 테스트 코드를 좀 더 편하게 작성하게 도와주는 라이브러리
    + spring-test : 스프링 통합 테스트 지원

프로젝트 시작(MVC)

  • 프로젝트 패키지 하위에 controller라는 폴더를 만든다. 이 폴더는 기능마다 라우팅 처리를 하며 특정 동작을 수행하는 클래스를 담고 있는 패키지이다.
  • main의 하위에 resources 폴더 하위에는 static, templates 폴더가 있는데, static에 들어 있는 html 파일은 정적 콘텐츠 제공을 위해 사용된다. 스프링 프로젝트에서 빌드 후 실행할 때, 자동으로 controller에 GetMapping이 있는지 확인하고, 없으면 static 하위에 있는 index.html을 찾아 실행한다. templates에 들어 있는 html 파일은 동적 컨텐츠 제공을 위해 사용된다. controller에서 라우팅 처리 하여 서버에 요청을 하면, 서버에서 브라우저에 요청을 보내고 브라우저에서 해당 파일을 읽는다.

    1. index.html
    여기에서 테스트 페이지로 이동을 누르면 controller의 test로 넘어가게 된다.
    2. controller/test.class
    Controller anotation을 정의하고 코드를 짠 후, return "test"를 하면 templates 하위에 test.html 파일로 이동한다.
    3. test.html
    data를 받아와 페이지를 띄운다.

빌드

**참고: 인텔리제이 터미널에 Git Bash 사용중
1. IntelliJ에서 View -> Tool Windows -> Terminal 을 통해 터미널을 연다.
2. ./gradlew build 를 하면 build 하위에 libs가 생긴다.

3. cd build/libs
4. java -jar webSite-0.0.1-SNAPSHOT.jar
5. 실행. 나중에에 배포할 때, build/libs에 있는 jar 파일을 배포하는 것이다.

**출처 : 스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술 (김영한)

profile
Record What I Learned

0개의 댓글