01 프로젝트 환경설정 - 기본 애플리케이션

shin·2023년 7월 22일
0

1. 기본 Application 실행 테스트

1) 기본 환경

  • Project: Gradle - Groovy Project
  • 사용 기능: web, thymeleaf, jpa, h2, lombok, validation
    • groupId: jpabook
    • artifactId: jpashop

2) Gradle 전체 설정

build.gradle

    plugins {
        id 'java'
        id 'org.springframework.boot' version '3.1.1'
        id 'io.spring.dependency-management' version '1.1.0'
    }
    
    group = 'jpabook'
    version = '0.0.1-SNAPSHOT'
    
    java {
        sourceCompatibility = '17'
    }
    
    configurations {
        compileOnly {
            extendsFrom annotationProcessor
        }
    }
    
    repositories {
        mavenCentral()
    }
    
    dependencies {
        implementation 'org.springframework.boot:spring-boot-starter-data-jpa'
        implementation 'org.springframework.boot:spring-boot-starter-validation'
        implementation 'org.springframework.boot:spring-boot-starter-thymeleaf'
        implementation 'org.springframework.boot:spring-boot-starter-web'
        compileOnly 'org.projectlombok:lombok'
        runtimeOnly 'com.h2database:h2'
        annotationProcessor 'org.projectlombok:lombok'
        testImplementation 'org.springframework.boot:spring-boot-starter-test'
    
        //JUnit4 추가
        testImplementation("org.junit.vintage:junit-vintage-engine") {
            exclude group: "org.hamcrest", module: "hamcrest-core"
        }
    }
    
    tasks.named('test') {
        useJUnitPlatform()
    }
  • validation 모듈은 최신 스프링 부트에서는 직접 추가해야 함
  • 강의 영상이 JUnit4를 기준으로 하기 때문에 아래 코드 직접 추가
         //JUnit4 추가
            testImplementation("org.junit.vintage:junit-vintage-engine") {
                exclude group: "org.hamcrest", module: "hamcrest-core"
            }

3) Spring boot 3.0버전 사용 시 주의사항

  • Java 17 이상을 사용함
  • javax 패키지 이름을 jakarta로 변경해야 함
    • 오라클과 자바 라이센스 문제로 모든 javax 패키지를 jakarta로 변경
  • H2 데이터베이스를 2.1.214 버전 이상 사용해주세요.
  • 패키지 이름 변경 예
    • JPA 애노테이션
      • javax.persistence.Entity jakarta.persistence.Entity
    • 스프링에서 자주 사용하는 @PostConstruct 애노테이션
      • javax.annotation.PostConstruct jakarta.annotation.PostConstruct
    • 스프링에서 자주 사용하는 검증 애노테이션
      • javax.validation jakarta.validation

4) web server failed to start. port 8080 was already in use 오류 발생 시

문제 상황

  • 기본으로 생성되는 메인 애플리케이션 실행 시 포트가 겹치면 아래와 같은 오류 창이 출력됨

해결방법

  • 프로세스 강제 종료
    • netstat -ano 명령어로 실행 중인 포트를 찾음
    • TCP 0.0.0.0:8080 0.0.0.0:0 LISTENING 5728
    • taskkill /F /pid 5728
  • application.properties(또는 yml)에 server port 번호 지정
    • server.port=8000
  • 개인적으로 여러 프로젝트를 진행하다보면 포트 번호가 겹치는 경우가 많아서 두 번째 방법을 통해서 포트를 나누는 편..!

5) 동작확인

  • 스프링 부트 메인 실행 후 에러페이지로 간단하게 동작 확인

    • 8000 포트를 할당했기 때문에, 해당 포트 번호를 이용해서 톰캣이 실행됨
  • 아직 아무것도 개발하지 않았기 때문에 아래와 같은 화면이 나와야 정상

  • 환경설정 확인을 위해 테스트도 실행


강의 : 스프링 부트와 JPA 활용1 - 웹 애플리케이션 개발

profile
Backend development

0개의 댓글