놀이공원 회원, 상품·장바구니·주문, 티켓 예매, 공지를 제공하는 Spring Boot REST 백엔드와 React SPA다. 기존 Maven/WAR, Spring MVC, MyBatis, Oracle 실행 코드는 제거했고 기존 화면 구조와 이미지·스타일·스크립트는 이후 React 화면 작업에서 재사용하거나 참고할 자료로 별도 보존한다.
backend: Java 25 / Spring Boot / Gradle 백엔드backend/src/main/java/com/land/domain: JPA 매핑을 직접 소유하는 도메인 모델backend/src/main/java/com/land/application: provided 유스케이스와 required Spring Data 저장소backend/src/main/java/com/land/adapter: REST, 보안, 결제 등 외부 어댑터frontend/src: React 19 / TypeScript / Vite 사용자·관리자 화면frontend/legacy-webapp: React 전환에 재사용·참고할 기존 마크업·이미지·CSS·JavaScriptfrontend/프론트엔드개발가이드.md: 프런트엔드 구조·상태·API·테스트 규칙개발가이드.md,도메인모델.md,도메인모델.drawio: 개발 규칙과 도메인 설계
프로젝트를 열 때 저장소 루트의 build.gradle.kts를 Link Gradle Project 대상으로
선택한다. 같은 위치의 settings.gradle.kts는 자동으로 발견되며 backend를
서브프로젝트로 포함하므로 별도로 연결하지 않는다.
- Project SDK와 Gradle JVM을 Java 25로 설정한다.
- Gradle 동기화를 완료한다.
com.land.LandBackendApplication을 실행하거나 Gradle의backend > application > bootRun을 실행한다.
프런트엔드는 Gradle 프로젝트가 아니다. frontend/package.json을 npm Run
Configuration에 지정하고 dev script를 실행한다. 백엔드와 프런트엔드를 함께
실행하려면 두 구성을 IntelliJ Compound 구성으로 묶는다.
백엔드 터미널:
./gradlew :backend:test
./gradlew clean check
./gradlew :backend:bootRun:backend:test는 MySQL 전용 통합 테스트를 제외한 H2 기반 테스트를 실행한다.
clean check는 MySQL Testcontainers 테스트까지 포함하므로 실행 중인 Docker 데몬이
필요하다.
프런트엔드 터미널:
cd frontend
npm ci
npm run dev로컬 프로필은 H2를 사용한다. 실행 후 상태 확인은
http://localhost:8080/actuator/health, API 문서는
http://localhost:8080/swagger-ui.html에서 확인할 수 있다.
환경별 실행과 MySQL 구성은 backend/README.md를 참고한다.
React 실행과 개발 규칙은 frontend/README.md와
frontend/프론트엔드개발가이드.md를 참고한다.