chore(be): SpringBoot 세팅 (#3)#6
Conversation
📝 WalkthroughWalkthroughThe PR removes the old Eclipse-based, plain-JDBC ChangesBackend Reset to Spring Boot 3
Estimated code review effort🎯 2 (Simple) | ⏱️ ~10 minutes Poem
🚥 Pre-merge checks | ✅ 4 | ❌ 1❌ Failed checks (1 warning)
✅ Passed checks (4 passed)
✏️ Tip: You can configure your own custom pre-merge checks in the settings. ✨ Finishing Touches📝 Generate docstrings
🧪 Generate unit tests (beta)
Comment |
There was a problem hiding this comment.
Actionable comments posted: 2
Caution
Some comments are outside the diff and can’t be posted inline due to platform limitations.
⚠️ Outside diff range comments (1)
docs/02_ARCHITECTURE.md (1)
36-42:⚠️ Potential issue | 🟠 Major | 🏗️ Heavy liftReconcile architecture documentation with
pom.xmldependency configuration.The architecture document describes a layered stack with specific technologies—MyBatis DAO pattern (line 124), Spring Security (line 37), REST controllers, and database connectivity—but
pom.xmlcontains onlyspring-boot-starterandspring-boot-starter-testwith no database driver, persistence framework, or security dependencies.This creates a contract mismatch: developers reading this document will expect MyBatis, Spring Security, and database capabilities to be available, but they will encounter missing dependency errors at runtime.
Action: Either (a) add the missing dependencies to
pom.xmlnow (spring-boot-starter-web,spring-boot-starter-security,mybatis-spring-boot-starter, and a database driver), or (b) clarify in the documentation that the current commit is a bare-bones scaffold and these features will be added in follow-up PRs.Also applies to: 122-128
🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the rest with a brief reason, keep changes minimal, and validate. In `@docs/02_ARCHITECTURE.md` around lines 36 - 42, The architecture documentation describes a layered stack with MyBatis DAO pattern, Spring Security, REST controllers, and database connectivity, but pom.xml only contains spring-boot-starter and spring-boot-starter-test without any of the specific framework dependencies referenced in the docs. To fix this mismatch, either add the missing dependencies to pom.xml (spring-boot-starter-web, spring-boot-starter-security, mybatis-spring-boot-starter, and a database driver like spring-boot-starter-data-jpa or a specific DB driver) to match the documented architecture, or update the architecture documentation to clarify that the current commit is a bare-bones scaffold and these features will be added in follow-up PRs.
🧹 Nitpick comments (1)
docs/02_ARCHITECTURE.md (1)
36-42: ⚡ Quick winClarify the scope of the current architectural scaffold relative to planned implementation.
The architecture document (lines 36–42, 122–128) describes a complete three-layer Spring Boot design (Controller → Service → DAO with MyBatis) and infrastructure (Spring Security, database tables, batch jobs), but the accompanying
pom.xmlis a minimal scaffold without any of these dependencies.While it's clear from the PR objectives that this is foundational work, the mismatch between the aspirational architecture diagram and the actual buildable configuration could mislead developers about what is currently available. Consider adding a note to the architecture document (e.g., "Phase 1 Scaffold" vs. "Planned Full Stack") to clarify that the detailed design describes the target state, not the current state.
Alternatively, if the team plans to add all the described dependencies (database driver, MyBatis, Spring Security, Spring Web) in the next PR, explicitly document that as a known follow-up so reviewers and developers understand the phased approach.
🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the rest with a brief reason, keep changes minimal, and validate. In `@docs/02_ARCHITECTURE.md` around lines 36 - 42, Add clarification to the architecture document (docs/02_ARCHITECTURE.md) to distinguish between the current state and the planned target state. Insert a note near the architecture diagram sections (around lines 36-42 and 122-128) that clearly labels the described three-layer design, security configuration, and MyBatis components as "Planned Full Stack" or "Phase 2 Implementation" rather than current capabilities. Alternatively, if this is intentionally a phased approach, add an explicit section documenting that the dependencies described in the architecture (database driver, MyBatis, Spring Security, Spring Web) are planned follow-ups and will be integrated in subsequent PRs. This helps developers understand what is actually available in the current minimal scaffold versus what will be added next.
🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.
Inline comments:
In `@backend/.mvn/wrapper/maven-wrapper.properties`:
- Around line 1-3: The maven-wrapper.properties file lacks integrity
verification for the downloaded Maven distribution, creating a supply-chain
security gap. Add a distributionSha512Sum property to the file with the official
SHA512 checksum from
https://downloads.apache.org/maven/maven-3/3.9.16/binaries/apache-maven-3.9.16-bin.zip.sha512
to enable checksum validation. This aligns with Maven wrapper best practices and
ensures the downloaded archive matches the official distribution for Maven
3.9.16.
In `@backend/pom.xml`:
- Around line 33-36: The pom.xml file currently declares only the
spring-boot-starter dependency, but the backend is a REST API service that
requires web functionality. Change the artifactId from spring-boot-starter to
spring-boot-starter-web in the dependency block around line 35. This will
provide the necessary Spring Web/MVC functionality and embedded servlet
container required for the REST controller endpoints documented in the
architecture.
---
Outside diff comments:
In `@docs/02_ARCHITECTURE.md`:
- Around line 36-42: The architecture documentation describes a layered stack
with MyBatis DAO pattern, Spring Security, REST controllers, and database
connectivity, but pom.xml only contains spring-boot-starter and
spring-boot-starter-test without any of the specific framework dependencies
referenced in the docs. To fix this mismatch, either add the missing
dependencies to pom.xml (spring-boot-starter-web, spring-boot-starter-security,
mybatis-spring-boot-starter, and a database driver like
spring-boot-starter-data-jpa or a specific DB driver) to match the documented
architecture, or update the architecture documentation to clarify that the
current commit is a bare-bones scaffold and these features will be added in
follow-up PRs.
---
Nitpick comments:
In `@docs/02_ARCHITECTURE.md`:
- Around line 36-42: Add clarification to the architecture document
(docs/02_ARCHITECTURE.md) to distinguish between the current state and the
planned target state. Insert a note near the architecture diagram sections
(around lines 36-42 and 122-128) that clearly labels the described three-layer
design, security configuration, and MyBatis components as "Planned Full Stack"
or "Phase 2 Implementation" rather than current capabilities. Alternatively, if
this is intentionally a phased approach, add an explicit section documenting
that the dependencies described in the architecture (database driver, MyBatis,
Spring Security, Spring Web) are planned follow-ups and will be integrated in
subsequent PRs. This helps developers understand what is actually available in
the current minimal scaffold versus what will be added next.
🪄 Autofix (Beta)
Fix all unresolved CodeRabbit comments on this PR:
- Push a commit to this branch (recommended)
- Create a new PR with the fixes
ℹ️ Review info
⚙️ Run configuration
Configuration used: defaults
Review profile: CHILL
Plan: Pro Plus
Run ID: 2b378893-613c-48c6-a62e-7ae18cbfd372
⛔ Files ignored due to path filters (12)
backend/target/classes/com/ssafy/salmanApp/model/dao/BasicHouseDealDAO.classis excluded by!**/*.classbackend/target/classes/com/ssafy/salmanApp/model/dao/BasicHouseInfoDAO.classis excluded by!**/*.classbackend/target/classes/com/ssafy/salmanApp/model/dao/HouseDealDAO.classis excluded by!**/*.classbackend/target/classes/com/ssafy/salmanApp/model/dao/HouseInfoDAO.classis excluded by!**/*.classbackend/target/classes/com/ssafy/salmanApp/model/dto/HouseDealDTO.classis excluded by!**/*.classbackend/target/classes/com/ssafy/salmanApp/model/dto/HouseInfoDTO.classis excluded by!**/*.classbackend/target/classes/com/ssafy/salmanApp/model/service/BasicHouseService.classis excluded by!**/*.classbackend/target/classes/com/ssafy/salmanApp/model/service/HouseService.classis excluded by!**/*.classbackend/target/classes/com/ssafy/salmanApp/test/HouseDealTest.classis excluded by!**/*.classbackend/target/classes/com/ssafy/salmanApp/test/HouseInfoTest.classis excluded by!**/*.classbackend/target/classes/com/ssafy/salmanApp/test/TXTest.classis excluded by!**/*.classbackend/target/classes/com/ssafy/salmanApp/util/DBUtil.classis excluded by!**/*.class
📒 Files selected for processing (27)
backend/.classpathbackend/.gitattributesbackend/.gitignorebackend/.mvn/wrapper/maven-wrapper.propertiesbackend/.projectbackend/.settings/org.eclipse.jdt.apt.core.prefsbackend/.settings/org.eclipse.jdt.core.prefsbackend/.settings/org.eclipse.m2e.core.prefsbackend/mvnwbackend/mvnw.cmdbackend/pom.xmlbackend/src/main/java/com/ssafy/salmanApp/model/dao/BasicHouseDealDAO.javabackend/src/main/java/com/ssafy/salmanApp/model/dao/BasicHouseInfoDAO.javabackend/src/main/java/com/ssafy/salmanApp/model/dao/HouseDealDAO.javabackend/src/main/java/com/ssafy/salmanApp/model/dao/HouseInfoDAO.javabackend/src/main/java/com/ssafy/salmanApp/model/dto/HouseDealDTO.javabackend/src/main/java/com/ssafy/salmanApp/model/dto/HouseInfoDTO.javabackend/src/main/java/com/ssafy/salmanApp/model/service/BasicHouseService.javabackend/src/main/java/com/ssafy/salmanApp/model/service/HouseService.javabackend/src/main/java/com/ssafy/salmanApp/test/HouseDealTest.javabackend/src/main/java/com/ssafy/salmanApp/test/HouseInfoTest.javabackend/src/main/java/com/ssafy/salmanApp/test/TXTest.javabackend/src/main/java/com/ssafy/salmanApp/util/DBUtil.javabackend/src/main/java/com/ssafy/salmanhae/SalmanhaeApplication.javabackend/src/main/resources/application.propertiesbackend/src/test/java/com/ssafy/salmanhae/SalmanhaeApplicationTests.javadocs/02_ARCHITECTURE.md
💤 Files with no reviewable changes (17)
- backend/.settings/org.eclipse.jdt.core.prefs
- backend/.settings/org.eclipse.m2e.core.prefs
- backend/src/main/java/com/ssafy/salmanApp/test/HouseInfoTest.java
- backend/src/main/java/com/ssafy/salmanApp/model/dto/HouseInfoDTO.java
- backend/.settings/org.eclipse.jdt.apt.core.prefs
- backend/.classpath
- backend/src/main/java/com/ssafy/salmanApp/util/DBUtil.java
- backend/src/main/java/com/ssafy/salmanApp/test/HouseDealTest.java
- backend/.project
- backend/src/main/java/com/ssafy/salmanApp/model/dao/HouseInfoDAO.java
- backend/src/main/java/com/ssafy/salmanApp/model/dao/HouseDealDAO.java
- backend/src/main/java/com/ssafy/salmanApp/model/service/HouseService.java
- backend/src/main/java/com/ssafy/salmanApp/model/dto/HouseDealDTO.java
- backend/src/main/java/com/ssafy/salmanApp/model/dao/BasicHouseInfoDAO.java
- backend/src/main/java/com/ssafy/salmanApp/test/TXTest.java
- backend/src/main/java/com/ssafy/salmanApp/model/service/BasicHouseService.java
- backend/src/main/java/com/ssafy/salmanApp/model/dao/BasicHouseDealDAO.java
| wrapperVersion=3.3.4 | ||
| distributionType=only-script | ||
| distributionUrl=https://repo.maven.apache.org/maven2/org/apache/maven/apache-maven/3.9.16/apache-maven-3.9.16-bin.zip |
There was a problem hiding this comment.
🧩 Analysis chain
🏁 Script executed:
#!/bin/bash
set -euo pipefail
dist_url="$(awk -F= '/^distributionUrl=/{print $2}' backend/.mvn/wrapper/maven-wrapper.properties)"
tmp_dir="$(mktemp -d)"
trap 'rm -rf "$tmp_dir"' EXIT
curl -fsSL "$dist_url" -o "$tmp_dir/maven-dist.zip"
local_sha="$(sha256sum "$tmp_dir/maven-dist.zip" | awk '{print $1}')"
echo "local_sha256=$local_sha"
if curl -fsSL "${dist_url}.sha256" -o "$tmp_dir/remote.sha256"; then
remote_sha="$(awk '{print $1}' "$tmp_dir/remote.sha256" | tr -d '\r\n')"
echo "remote_sha256=$remote_sha"
[ "$local_sha" = "$remote_sha" ] && echo "checksum_match=true" || echo "checksum_match=false"
else
echo "No remote .sha256 file found at ${dist_url}.sha256; fetch checksum from official Maven release metadata before pinning."
fiRepository: ssafy-salman/salmanhae
Length of output: 116
🏁 Script executed:
if [ -f backend/.mvn/wrapper/maven-wrapper.properties ]; then
cat -n backend/.mvn/wrapper/maven-wrapper.properties
else
echo "File not found"
fiRepository: ssafy-salman/salmanhae
Length of output: 255
🌐 Web query:
Maven 3.9.16 official release sha256 checksum central repository
💡 Result:
Apache Maven 3.9.16 does not provide sha256 checksums in its official distribution directory [1][2]. Instead, the Apache Maven project provides sha512 checksums for its release artifacts [1][3]. You can find the official sha512 checksum files at the following location: https://downloads.apache.org/maven/maven-3/3.9.16/binaries/ The available files for verification in that directory are: - apache-maven-3.9.16-bin.tar.gz.sha512 [1] - apache-maven-3.9.16-bin.zip.sha512 [1] The Apache Maven team also strongly recommends verifying the PGP signatures (.asc files) of the release bundles against their public KEYS for security [4].
Citations:
- 1: https://downloads.apache.org/maven/maven-3/3.9.16/binaries/
- 2: https://downloads.apache.org/maven/maven-3/3.9.16/
- 3: https://dlcdn.apache.org/maven/maven-3/3.9.16/source/
- 4: https://maven.apache.org/download.cgi?Preferred=https%3A%2F%2Fdlcdn.apache.org%2F
🌐 Web query:
Maven wrapper distributionSha256Sum distributionSha512Sum supported properties
💡 Result:
The Maven Wrapper supports checksum verification to prevent supply-chain attacks by ensuring that downloaded binaries are not corrupted [1][2]. This verification is configured by adding specific properties to the maven-wrapper.properties file [1][3]. The supported checksum properties are: 1. distributionSha512Sum: Used to verify the integrity of the downloaded Maven distribution [4][5]. This was introduced because official Maven distributions provide SHA-512 checksums [4][6]. 2. wrapperSha512Sum: Used to verify the integrity of the maven-wrapper.jar file [4][5]. 3. distributionSha256Sum: An older property used to verify the Maven distribution using a SHA-256 checksum [7][1]. 4. wrapperSha256Sum: An older property used to verify the maven-wrapper.jar file using a SHA-256 checksum [7][1]. While the SHA-256 properties (distributionSha256Sum and wrapperSha256Sum) remain available for backward compatibility, the SHA-512 variants are preferred because they align with the checksums officially published by the Maven project [4][5]. The checksum values should be provided in hex notation, using only lowercase characters [1][3].
Citations:
- 1: https://maven.apache.org/tools/wrapper/
- 2: https://maven.apache.org/tools-archives/wrapper-LATEST/
- 3: https://maven.apache.org/components/tools-archives/wrapper-3.3.2/index.html
- 4: [MWRAPPER-117] added distributionSha512Sum and wrapperSha512Sum apache/maven-wrapper#398
- 5: https://mail-archive.com/issues@maven.apache.org/msg341528.html
- 6: [MWRAPPER-117] Wrapper distributions and jars sha256 checksums should be published apache/maven-wrapper#316
- 7: https://maven.apache.org/tools/wrapper/maven-wrapper-plugin/wrapper-mojo.html
Use distributionSha512Sum instead of distributionSha256Sum for Maven 3.9.16 integrity verification.
The file lacks a checksum property, so the Maven wrapper skips integrity validation of the downloaded archive—a supply-chain hardening gap. Apache Maven 3.9.16 does not publish SHA256 checksums; it officially provides SHA512 checksums at https://downloads.apache.org/maven/maven-3/3.9.16/binaries/apache-maven-3.9.16-bin.zip.sha512. Use distributionSha512Sum to align with the official distribution and Maven wrapper best practices.
🔧 Suggested change
wrapperVersion=3.3.4
distributionType=only-script
distributionUrl=https://repo.maven.apache.org/maven2/org/apache/maven/apache-maven/3.9.16/apache-maven-3.9.16-bin.zip
+distributionSha512Sum=<sha512_from_official_maven_release>🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.
In `@backend/.mvn/wrapper/maven-wrapper.properties` around lines 1 - 3, The
maven-wrapper.properties file lacks integrity verification for the downloaded
Maven distribution, creating a supply-chain security gap. Add a
distributionSha512Sum property to the file with the official SHA512 checksum
from
https://downloads.apache.org/maven/maven-3/3.9.16/binaries/apache-maven-3.9.16-bin.zip.sha512
to enable checksum validation. This aligns with Maven wrapper best practices and
ensures the downloaded archive matches the official distribution for Maven
3.9.16.
| <dependency> | ||
| <groupId>com.mysql</groupId> | ||
| <artifactId>mysql-connector-j</artifactId> | ||
| <version>8.3.0</version> | ||
| <groupId>org.springframework.boot</groupId> | ||
| <artifactId>spring-boot-starter</artifactId> | ||
| </dependency> |
There was a problem hiding this comment.
🧩 Analysis chain
🏁 Script executed:
#!/bin/bash
set -euo pipefail
echo "[POM starters]"
rg -n "<artifactId>spring-boot-starter(-web|-test)?</artifactId>" backend/pom.xml
echo
echo "[Backend contract clues]"
rg -n "spring-boot:run|REST|controller|Spring Boot 3" README.md docs/02_ARCHITECTURE.mdRepository: ssafy-salman/salmanhae
Length of output: 821
Use spring-boot-starter-web for the backend scaffold baseline.
Line 35 currently declares spring-boot-starter only. The backend is documented as a REST API service (with REST endpoints in the controller directory per architecture documentation), but spring-boot-starter-web is missing from the baseline dependencies. This is required for Spring Web/MVC functionality and the embedded servlet container needed for REST controller operations.
🔧 Suggested change
<dependency>
<groupId>org.springframework.boot</groupId>
- <artifactId>spring-boot-starter</artifactId>
+ <artifactId>spring-boot-starter-web</artifactId>
</dependency>🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.
In `@backend/pom.xml` around lines 33 - 36, The pom.xml file currently declares
only the spring-boot-starter dependency, but the backend is a REST API service
that requires web functionality. Change the artifactId from spring-boot-starter
to spring-boot-starter-web in the dependency block around line 35. This will
provide the necessary Spring Web/MVC functionality and embedded servlet
container required for the REST controller endpoints documented in the
architecture.
변경 내용
연결 이슈
closes #3
테스트
Summary by CodeRabbit
Release Notes
Chores
Tests
Documentation