Java | Spring
[Spring Boot] Bank App (1) 초기 세팅과 환경 구축
@leem
2025. 2. 17. 00:10
Spring Boot 프로젝트를 실행하는 방법과 Gradle 설정, 그리고 application.yml 파일 관리에 대해 정리해볼게요.
Project Setting
Spring Boot 프로젝트를 일반 Java 프로젝트처럼 실행 가능
main() 함수가 있는 클래스를 실행
IntelliJ에서 실행하는 방법
- 프로젝트에서 ▶ Run 버튼을 눌러 실행
- Application 실행을 선택하면 바로 실행됨
- 별도의 빌드 도구 없이 Java만 설치되어 있으면 실행 가능
Gradle로 Spring Boot 프로젝트 실행하기
Spring Boot 프로젝트는 일반 Java 프로젝트와 다르게 Gradle 또는 Maven을 사용해서 실행하는 게 일반적이에요.
실행 방법
- Gradle Run Configuration에서 bootRun 설정 후 실행
- 또는 터미널에서 아래 명령어 실행
./gradlew bootRun
Gradle
프로젝트 빌드 및 의존성 관리 도구 (Java, Kotlin 등에서 사용)
- 필요한 라이브러리를 자동으로 다운로드
- 프로젝트 빌드 및 실행을 도와줌
- build.gradle 파일에서 라이브러리 선언 후 자동 설정
왜 Spring Boot에서 Gradle을 사용할까?
- 📦 라이브러리 자동 관리: 필요한 패키지를 쉽게 가져올 수 있음
- 🔄 빌드 자동화: 애플리케이션을 빠르게 패키징하고 실행
- ⚙ 환경 설정 간소화: 배포 환경별 설정 관리 가능
실행 방식 비교
실행 방식 | 특징 | 실행 속도 | 사용 예시 |
Gradle (bootRun) | Gradle을 통해 실행 | ⏳ 느림 (빌드 포함) | 새로운 환경에서 처음 실행할 때 |
Application 실행 | IDE에서 직접 실행 | ⚡ 빠름 (빌드 없이 실행) | 디버깅, 빠른 테스트 |
📑 application.yml 설정
Spring Boot에서 application.yml은 주요 환경 설정을 관리하는 파일
👉 서버, 데이터베이스, 로깅, API 키 등 다양한 설정을 저장할 수 있다.
기본 설정 예시
server:
port: 8080 # 서버가 사용할 포트 번호 설정
servlet:
encoding:
charset: UTF-8 # 서블릿의 응답과 요청 인코딩을 UTF-8로 설정
force: true # 요청과 응답에 대해 이 인코딩을 강제로 사용하도록 설정
spring:
mvc:
view:
prefix: /WEB-INF/view # JSP 파일이 위치한 디렉토리 접두사
suffix: .jsp # 뷰 이름에 자동으로 추가될 파일 확장자 설정 (.jsp)
servlet:
multipart:
max-file-size: 20MB # 업로드할 파일의 최대 크기 (20MB)
max-request-size: 20MB # 멀티파트 요청의 전체 크기 제한 (20MB)
datasource:
# H2 데이터베이스 설정
url: jdbc:h2:mem:bankdb;MODE=MySQL # H2 인메모리 데이터베이스 사용 (MySQL 모드 활성화)
driver-class-name: org.h2.Driver # H2 JDBC 드라이버 지정
username: sa # H2 기본 사용자 이름
password: '' # H2 기본 비밀번호 (빈 값)
# MySQL 데이터베이스 설정 (사용하지 않을 경우 주석 처리)
# url: jdbc:mysql://localhost:3306/mybank?serverTimezone=Asia/Seoul
# driver-class-name: com.mysql.cj.jdbc.Driver
# username: root
# password: asd123
# sql:
# init:
# schema-locations:
# - classpath:db/table.sql # 데이터베이스 테이블 생성 스크립트 위치
# data-locations:
# - classpath:db/data.sql # 초기 데이터 삽입 스크립트 위치
h2:
console:
enabled: true # H2 데이터베이스 콘솔 활성화 (http://localhost:8080/h2-console 접속 가능)
output:
ansi:
enabled: always # 콘솔 출력에 ANSI 색상 코드 사용 가능하도록 설정
# MyBatis 설정
#mybatis:
# mapper-locations:
# - classpath:mapper/**/*.xml # MyBatis 매퍼 파일 경로 설정 (모든 XML 매퍼 파일 포함)
# configuration:
# map-underscore-to-camel-case: true # 데이터베이스의 언더스코어 네이밍을 카멜 케이스로 자동 매핑
# log-impl: org.apache.ibatis.logging.stdout.StdOutImpl # MyBatis SQL 로그를 콘솔에 출력
# 로깅 설정
logging:
level:
org.apache.ibatis: DEBUG # MyBatis SQL 실행 로그를 DEBUG 레벨로 출력
# 사용자 정의 설정
tenco:
key: 54d5cb2d332dbdb4850293caae4559ce88b65163f1ea5d4e4b3ac49d772ded14 # (API 키 예제, 실제 사용 시 보안에 주의)
왜 application.yml로 관리할까?
✔ 코드를 수정하지 않고 설정 변경 가능
✔ 배포 환경별 설정 분리 가능 (dev/prod)
✔ 보안 및 외부 설정 관리 가능
주요 설정 카테고리 정리
설정 종류 | 설명 | 예제 |
서버 설정 | 서버 포트, 인코딩 | server.port: 8080 |
DB 설정 | MySQL, H2 등 연결 정보 | spring.datasource.url: jdbc:mysql://… |
JPA 설정 | Hibernate, DDL 전략 | spring.jpa.hibernate.ddl-auto: update |
로깅 설정 | 로그 레벨 조정 | logging.level.org.springframework: DEBUG |
파일 업로드 설정 | 업로드 가능 크기 제한 | spring.servlet.multipart.max-file-size: 10MB |
MyBatis 설정 | MyBatis 매퍼 설정 | mybatis.mapper-locations: classpath:mapper/*.xml |
외부 API 설정 | API 키, 외부 연동 | tenco.key: xxxxxx |
프로파일 설정 | 개발/운영 환경 분리 | spring.profiles.active: dev |
정리
💡 Spring Boot 프로젝트 실행 → Gradle bootRun 사용 권장
💡 Gradle은 빌드 및 라이브러리 관리 도구
💡 application.yml은 환경 설정을 쉽게 변경할 수 있는 파일