[Spring] Springboot 프로젝트 구조

시내·2024년 1월 14일

Spring

목록 보기
3/10

🍄구조

🐘.gradle

  • Gradle의 빌드 과정에서 생성되는 각종 임시 파일들을 저장
  • 컴파일된 클래스 caching 통해 재빌드 시간을 단축

🐘gradle wrapper

  • Gradle의 특정 버전관리
  • Wrapper 통해 Cross-Platform (OS-wise) 호환성 제공

🐘gradlew / gradlew.bat

  • executable jar 파일을 만들기 위한 script 파일
  • 배포할 때 사용
  • ./gradlew build 명령을 사용하여 Gradle 빌드 스크립트를 실행
    -> plain.jar과 .jar 동시 생성

cf) ./gradlew bootJar 명령 사용시 -> .jar 파일 생성
java -jar <.jar파일명> -> jar 파일 실행

🐘settings.gradle

  • multi project를 사용할 경우, 해당 파일에서 선언

🐘build.gradle

  • build는 프로그램 실행을 위한 작업
  • 버전 정보, 빌드 환경, maven repo, 필요한 라이브러리 설정
  • maven 선택 시, Markup lang으로 이루어진 pom.xml이 대신 사용됨

cf) maven과 gradle-groovy는 다른 툴!


실습 ex)

plugins {
    id 'java'
    id 'org.springframework.boot' version '2.7.11'
    id 'io.spring.dependency-management' version '1.0.15.RELEASE'
}

//빌드된 jar파일의 버전명
group = 'com.prac'

//내 프로젝트에 해당하는 버전 (임의로 설정해도 됨)
version = '0.0.1-SNAPSHOT'

java {
    sourceCompatibility = '11'
}

repositories {
//    의존성(라이브러리)을 가져오는 대상 repository(저장소)
//    내부망에 구축되어 있는 프로젝트의 경우,
//	  nexus와 같은 라이브러리를 사용하여 내부망 repository 사용
//    ex) apt-get, yum과 유사
    mavenCentral()
}

//starter 종속성은 별도의 버전관리 필요 없음 -> 알아서 호환성을 맞춰줌
dependencies {
//    타임리프 관련한 의존성
    implementation 'org.springframework.boot:spring-boot-starter-thymeleaf'
//    스프링 mvc(model, view, controller) 구조의 web 서비스 관련 의존성
    implementation 'org.springframework.boot:spring-boot-starter-web'
//    테스트를 위한 의존성
    testImplementation 'org.springframework.boot:spring-boot-starter-test'
//    Getter, Setter 및 로그 관련 의존성
    compileOnly 'org.projectlombok:lombok'
    annotationProcessor 'org.projectlombok:lombok'
}

tasks.named('test') {
//    test 라이브러리로 주로 JUnit을 사용
    useJUnitPlatform()
}

🐘src/main

  • 프로젝트 실행 위한 실질적인 소스 코드 위치

🌿main/java

  • 실제 구현을 위한 소스 코드 위치

🌿main/resources

  • .xml, .properties, .yml 등 확장자를 가진 환경 설정 파일 위치
  • main/resources/static 내에는 HTML 등 정적인 파일 위치
  • main/resources/templates는 서버에서 화면까지 불러올 때 사용
  • cf) .properties VS .yml?

🌿src/test

  • 테스트를 위한 소스

🐘.idea

  • IntelliJ 관련 설정 파일

🐘.gitignore

  • git에서 무시할 대상 설정

🍄실행

  • SpringApplication 파일 실행!

  • 웹 브라우저에서 localhost:8080 접속 시, 아래와 같은 error 페이지가 뜨면 성공

profile
contact 📨 ksw08215@gmail.com

0개의 댓글