2026. 3. 16. 09:51ㆍ📚 빅데이터 분산
빅데이터 분산 처리 프로젝트 - Spring Boot 프로젝트 생성 및 PostgreSQL 연동
목표
1단계에서 Docker로 인프라(PostgreSQL, Hadoop, Spark)를 구성했다.
2단계에서는 Spring Boot 프로젝트를 생성하고, Docker로 띄운 PostgreSQL과 연결하는 것이 목표다.
1. Spring Initializr로 프로젝트 생성
https://start.spring.io 에서 프로젝트를 생성했다.
프로젝트 설정
| 항목 | 설정값 |
|---|---|
| Project | Gradle - Groovy |
| Language | Java |
| Spring Boot | 3.5.11 |
| Group | com.travel |
| Artifact | bigdata |
| Packaging | Jar |
| Configuration | YAML |
| Java | 17 |
Dependencies
| 의존성 | 용도 |
|---|---|
| Spring Web | REST API 개발 |
| Spring Data JPA | PostgreSQL과 ORM 연동 |
| PostgreSQL Driver | PostgreSQL JDBC 드라이버 |
| Lombok | 보일러플레이트 코드 자동 생성 |
GENERATE 버튼을 눌러 zip 파일을 다운로드하고, 압축을 풀어 IntelliJ에서 열었다.
2. Gradle이란?
Spring Boot 프로젝트는 수많은 외부 라이브러리에 의존한다.
Gradle은 이 라이브러리들을 자동으로 다운로드하고, 코드를 컴파일하고, 실행 가능한 파일(.jar)로 빌드해주는 도구다.
build.gradle 파일에 필요한 라이브러리를 선언하면, Gradle이 알아서 다운받아준다.
dependencies {
implementation 'org.springframework.boot:spring-boot-starter-web'
implementation 'org.springframework.boot:spring-boot-starter-data-jpa'
runtimeOnly 'org.postgresql:postgresql'
compileOnly 'org.projectlombok:lombok'
}
새로운 라이브러리가 필요하면 여기에 한 줄 추가하고 Gradle 새로고침만 하면 된다.
3. IntelliJ에서 프로젝트 열기
프로젝트 로드
- IntelliJ 실행 → Open → 압축 푼 bigdata 폴더 선택
- 우측 하단에 "Load Gradle Project" 팝업이 뜨면 클릭
- Gradle이 의존성 다운로드 및 프로젝트 빌드를 자동 수행
JDK 설정
프로젝트를 열면 "Project JDK is not defined" 경고가 뜰 수 있다.
상단의 Setup SDK 링크를 클릭하고 JDK 21을 선택하면 된다.
⚠️ Java 버전 주의
Spring Initializr에서 Java 17로 설정했지만, IntelliJ가 자동으로 JDK 21을 다운받은 경우
build.gradle의languageVersion을 21로 맞춰줘야 빌드 에러가 발생하지 않는다.java { toolchain { languageVersion = JavaLanguageVersion.of(21) } }
빌드 확인
Gradle 패널의 새로고침 버튼(🔄)을 클릭하면 빌드가 시작된다.
하단 Build 탭에 BUILD SUCCESSFUL이 표시되면 성공이다.
4. PostgreSQL 연동 설정
application.yml
src/main/resources/application.yml 파일에 DB 접속 정보와 JPA 설정을 작성했다.
spring:
datasource:
url: jdbc:postgresql://localhost:5432/travel_db
username: admin
password: admin1234
driver-class-name: org.postgresql.Driver
jpa:
hibernate:
ddl-auto: update
show-sql: true
properties:
hibernate:
dialect: org.hibernate.dialect.PostgreSQLDialect
server:
port: 8090
주요 설정 설명
| 항목 | 설명 |
|---|---|
datasource.url |
Docker로 띄운 PostgreSQL의 JDBC 접속 URL. 1단계에서 설정한 DB명(travel_db)과 포트(5432) 사용 |
datasource.username / password |
docker-compose.yml의 POSTGRES_USER, POSTGRES_PASSWORD와 동일하게 설정 |
jpa.hibernate.ddl-auto: update |
엔티티 클래스를 기반으로 테이블을 자동 생성/수정. 개발 단계에서 편리함 |
jpa.show-sql: true |
실행되는 SQL 쿼리를 콘솔에 출력하여 디버깅에 활용 |
server.port: 8090 |
기본 포트 8080은 Spark Master가 사용 중이므로 8090으로 변경 |
5. 연결 테스트
실행 전 확인사항
Docker 컨테이너가 켜져 있어야 한다. 터미널에서 확인 가능하다.
# travel-project 폴더에서
docker-compose up -d
docker ps
5개 컨테이너(postgres, namenode, datanode, spark-master, spark-worker)가 모두 Up 상태여야 한다.
Spring Boot 실행
IntelliJ에서 BigdataApplication.java 파일을 열고, public class BigdataApplication 옆의 초록색 ▶ 버튼을 클릭하여 Run을 선택한다.
성공 로그
콘솔에서 다음 로그들이 확인되면 연동 성공이다.
HikariPool-1 - Start completed. ← PostgreSQL 연결 성공
Tomcat started on port 8090 (http) ← 서버 8090 포트에서 실행
Started BigdataApplication in X.XX seconds ← Spring Boot 정상 기동
💡 WARN 로그에 대하여
실행 시 두 가지 WARN 메시지가 나올 수 있다.
PostgreSQLDialect does not need to be specified explicitly— dialect를 명시하지 않아도 자동 감지된다는 안내. 무시해도 무방하다.spring.jpa.open-in-view is enabled by default— open-in-view 설정 관련 안내. 개발 단계에서는 무시해도 된다.두 가지 모두 에러가 아닌 참고용 경고이므로 정상 동작에 영향을 주지 않는다.
프로젝트 구조
bigdata/
├── build.gradle ← Gradle 빌드 설정 (의존성 관리)
├── src/
│ ├── main/
│ │ ├── java/
│ │ │ └── com/travel/bigdata/
│ │ │ └── BigdataApplication.java ← Spring Boot 메인 클래스
│ │ └── resources/
│ │ └── application.yml ← DB 연결 및 서버 설정
│ └── test/
└── gradle/'📚 빅데이터 분산' 카테고리의 다른 글
| [특화 프로젝트] 추천 장소 조회 API 개발 (3) | 2026.03.16 |
|---|---|
| [특화 프로젝트] Spark 배치 분석 및 결과 저장 (0) | 2026.03.16 |
| [특화 프로젝트] HDFS에 사용자 로그 적재 (0) | 2026.03.16 |
| [특화 프로젝트]Docker 인프라 세팅하는 법 (2) | 2026.03.16 |