[IntelliJ] 프로젝트 생성 및 준비 단계
2023. 12. 23. 13:17ㆍPratice/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에서 실행되는 범용 언어
- 정적 타입 언어로, 변수의 타입을 선언해야함
- 정적으로 타입을 검사하고 컴파일되므로 런타임 에러를 줄일 수 있음
더보기
JAR 와 WAR 의 차이
- 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/
반응형
'Pratice > IntelliJ' 카테고리의 다른 글
[IntelliJ] 디버그/디버거/디버깅(debugging) 뜻 + 하는 이유 + 방법 (0) | 2024.01.08 |
---|---|
[IntelliJ] 인텔리제이 단축키 (1) | 2024.01.08 |