[IntelliJ] 프로젝트 생성 및 준비 단계

2023. 12. 23. 13:17Pratice/IntelliJ

반응형

 

 

1단계

Sprong Initializr 선택

프로젝트 이름 작성 : partice

타입 선택 : Gradle - Groovy

Java 버전 선택

패캐지 생성 선택 : War

 

더보기

Gradle과 Maven의 차이

  • Maven
    • XML 기반의 프로젝트 설정 파일을 사용
    • 일반적인 빌드 구조에 대한 규칙이 이미 정해져 있어 유연성이 부족
    • 빌드 시간이나 성능 면에서 Gradle에 비해 느림
    • 플러그인 사용이 제한적이며, 설정이 상대적으로 덜 복잡
  • Gradle
    • Groovy 또는 Kotlin 기반의 DSL(Domain Specific Language)을 사용
    • 더 큰 유연성을 제공하며, 프로젝트에 특화된 빌드 스크립트를 작성 가능
    • Maven과 동일한 중앙 저장소를 사용할 수 있지만, 필요에 따라 다양한 리포지토리를 사용 가능
    • 풍부한 플러그인 생태계를 가지고 있으며, 더 복잡한 빌드 작업을 수행 가능
더보기

Groovy와 Kotlin의 차이

  • Groovy
    • 동적 타입 언어이며, Java 플랫폼에서 실행
    • 동적 타입 언어이므로 변수의 타입을 선언하지 않아도됨
    • 간결하고 표현력이 뛰어나며, DSL 작성에 용이
    • 런타임에 에러가 발견 가능성 있음
    • 자바 코드와의 통합이 용이하며, 기존의 자바 코드를 그대로 활용 가능
  • Kotlin
    • 정적 타입 언어이며, JVM에서 실행되는 범용 언어
    • 정적 타입 언어로, 변수의 타입을 선언해야함
    • 정적으로 타입을 검사하고 컴파일되므로 런타임 에러를 줄일 수 있음
더보기

JARWAR 의 차이

  • JAR (Java ARchive)
    • 일반적인 Java 어플리케이션의 패키징에 사용
    • Java 클래스 파일과 리소스를 압축하여 포함
    • 독립적인 Java 어플리케이션 또는 라이브러리로 사용
  • WAR (Web ARchive)
    • Java 웹 어플리케이션의 패키징에 사용
    • 웹 어플리케이션의 모든 관련 자원을 포함
    • Java EE 서버에 배포되어 동작하는 웹 어플리케이션으로 사용

 

 

 

2단계

SpringBoot 버전 선택 : 3.1.7

종속성 선택 : SpringBootDevTools / Lombok / Spring Web / Thymeleaf / Validation / MariaDB Driver / Spring Data JPA

 

 

 

3단계

build.gradle 작성

dependencies 내용 추가 후, 우측 상단 코끼리 모양 눌러 로드

 

* 주석 추가 부분

    //JPA
    implementation 'org.springframework.boot:spring-boot-starter-data-jpa'
    
    //보안인증
    implementation 'org.springframework.boot:spring-boot-starter-security'
    
    //타임리프에 보안인증
    implementation 'org.thymeleaf.extras:thymeleaf-extras-springsecurity5'
    
    //타임리프
    implementation 'org.springframework.boot:spring-boot-starter-thymeleaf'
    
    //검증
    implementation 'org.springframework.boot:spring-boot-starter-validation'
    
    //웹개발
    implementation 'org.springframework.boot:spring-boot-starter-web'
    
    //룸북
    compileOnly 'org.projectlombok:lombok'
    annotationProcessor 'org.projectlombok:lombok'
    
    //유틸리티
    developmentOnly 'org.springframework.boot:spring-boot-devtools'
    
    //데이터베이스
    runtimeOnly 'org.mariadb.jdbc:mariadb-java-client'
    
    //서버
    providedRuntime 'org.springframework.boot:spring-boot-starter-tomcat'
    
    //테스트
    testImplementation 'org.springframework.boot:spring-boot-starter-test'
    testImplementation 'org.springframework.security:spring-security-test'

 

 

* 사용자 추가 부분

    //테스트에서 룸북 사용 가능
    testCompileOnly 'org.projectlombok:lombok'
    testAnnotationProcessor 'org.projectlombok:lombok'

    //java8time 타임리프 추가 (메이븐에서 참고)
    implementation 'org.thymeleaf.extras:thymeleaf-extras-java8time'
    implementation group: 'org.thymeleaf.extras', name: 'thymeleaf-extras-java8time', version: '3.0.4.RELEASE'

    //Thymeleaf - layout
    implementation 'nz.net.ultraq.thymeleaf:thymeleaf-layout-dialect'
    
    //mapper 생성 (맵핑. DTO- Entity 사이의 변환 작업)
    implementation "org.modelmapper:modelmapper:3.1.1"

 

 

 

4단계

파일 인코딩

(필수는 아니지만 apllication.properties 작성시 한글 깨짐 방지를 위해)

 

우측 상단 점 3개 버튼 → 설정 → 에디터 →  파일 인코딩 → UTF-8로 변경

 

 

5단계

src > resources >apllication.properties 작성

#서버
server.port=8080


#Thymeleaf (화면디자인 작업을 할 떄 필요한 설정)
spring.thymeleaf.check-template-location=true
spring.thymeleaf.cache=false
spring.thymeleaf.prefix=classpath:/templates/
spring.thymeleaf.suffix=.html
spring.thymeleaf.encoding=UTF-8


#데이터베이스(데이터베이스 서버 연결)
spring.datasource.driver-class-name=org.mariadb.jdbc.Driver
spring.datasource.url=jdbc:mariadb://localhost:3306/이름
spring.datasource.username=이름
spring.datasource.password=비밀번호


#JPA (Entity와 Repository)
spring.jpa.hibernate.ddl-auto=update
#JPA에서 질의어를 만들기 위한 데이터베이스를 지정
spring.jpa.database-platform=org.hibernate.dialect.MariaDB103Dialect
#JPA 명령을 실행할 때 콘솔에 질의어를 출력
spring.jpa.properties.hibernate.show_sql=true
#콘솔에 출력되는 질의어를 가독성 높게 만들어서 출력
spring.jpa.properties.hibernate.format_sql=true


#DevTools(수정시 바로 적용)
spring.devtools.livereload.enabled=true


#멀티파트 파일
spring.servlet.multipart.enabled=true
#한 개 파일의 최대 크기
spring.servlet.multipart.max-file-size=10MB
#한 번에 보낼 수 있는 최대 용량
spring.servlet.multipart.max-request-size=30MB

#업로드 위치
#사용자 변수(빈스)
imgLocation=C:/image/item/
#환경클래스에서 사용할 사용자 변수
uploadPath = file:///C:/image/
반응형