hkh7670/spring-boot-kotlin-practice

★ 0Forks 0KotlinGitHub ↗Compare

README

spring-boot-kotlin-practice

Kotlin + Spring Boot 4로 만든 쇼핑몰 백엔드 학습/실습 프로젝트입니다.

기술 스택

구분 사용 기술
언어 / 런타임 Kotlin 2.4.10, JDK 25
프레임워크 Spring Boot 4.1.1 (Spring Framework 7, Jakarta EE 11)
빌드 Gradle 9.7.1 (Kotlin DSL)
데이터 Spring Data JPA, QueryDSL 7.6 (OpenFeign), MySQL, H2
인증 / 보안 Spring Security, OAuth2 Client (Google / Kakao / Naver), JWT (jjwt 0.13.0), TOTP 2단계 인증
캐시 / 세션 Redis (Spring Data Redis)
메시징 Apache Kafka (Spring Kafka)
검색 OpenSearch (opensearch-java 3.9.0, 상품명 자동완성)
결제 Toss Payments
API 문서 springdoc-openapi 3.1.0 (Swagger UI)

주요 기능

  • 회원: 이메일 / OAuth 가입·로그인, JWT 인증, TOTP 2단계 인증
  • 상품: 카테고리·검색·페이징 조회, 상품 옵션(가격/재고), 상품명 자동완성
  • 장바구니, 주문, 결제(Toss), 주문 취소 / 반품, 배송 상태 관리
  • 쿠폰 / 포인트 적용
  • 관리자: 상품 / 쿠폰 / 포인트 관리, 주문 처리
  • 주문 이벤트 Kafka 발행

실행

민감 정보(DB, Redis, Kafka, OpenSearch 접속 정보, JWT 키 등)는 git에 올리지 않는 .env에서 환경변수로 주입합니다. DB 프로파일로 mysql 또는 h2를 함께 지정해야 합니다.

./gradlew bootRun --args='--spring.profiles.active=local,mysql'   # 외부 MySQL
./gradlew bootRun --args='--spring.profiles.active=local,h2'      # 인메모리 H2
./gradlew test
  • 로컬 서버 포트: 16000
  • API 문서: http://localhost:16000/swagger.html
  • DB 스키마: ddl.sql

관련 프로젝트

Contributors

hkh7670

Issues