krkarma777 / online-store

SEED: An open-market platform built with JDK 17, Spring Boot, and Oracle DB, focusing on RESTful architecture and secure user experiences.

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

SEED: Open Market Project

설명

SEED는 JDK 17, Oracle DB 19c, Spring Boot, JPA, Thymeleaf를 기반으로 구현된 오픈마켓 웹 프로젝트입니다. 본 프로젝트는 테스트 주도 개발(TDD)과 RESTful 아키텍처를 중심으로 개발되어, 복잡한 시스템의 효과적인 관리와 고품질 코드 작성에 초점을 맞추고 있습니다. 사용자와 판매자 모두를 위한 다양한 기능을 포함하며, Spring Security 6, JWT, OAuth2 등 최신 웹 기술을 통해 사용자 경험과 보안성을 강화한 프로젝트입니다.

특징

  • RESTful Architecture: 전통적인 MVC 패턴에서 API 중심 아키텍처로 전환하여, 코드 중복 감소와 유지보수 향상을 도모했습니다.
  • Security Implementations: Spring Security와 JWT를 사용한 강력한 인증 및 권한 부여 프로세스 구현.
  • Dynamic Content Management: Thymeleaf와 함께 다이나믹 웹 콘텐츠를 효율적으로 관리합니다.
  • E-Commerce Ready: 다양한 결제 API 통합으로 사용자와 판매자에게 매끄러운 거래 경험 제공.

기술 스택

  • JDK 17
  • Oracle DB 19c
  • Spring Boot
  • JPA & Hibernate
  • Thymeleaf
  • Spring Security, OAuth2, JWT
  • Daum Address API, CKEditor5, Chart JS
  • Kakao and Naver Login API
  • PayPal API

시작하기

  • JDK 17
  • Oracle DB 19c 설치 필요
  • 필요한 모든 의존성은 build.gradle에 명시되어 있습니다.
  1. 프로젝트 클론: git clone https://github.com/krkarma777/online-store

환경 설정

이 프로젝트를 올바르게 실행하기 위해서는 여러 환경 설정이 필요합니다. 아래에 필요한 구성 상세 정보를 제공합니다.

데이터베이스 구성

Oracle DB가 설치되어 있고 실행 중인지 확인하세요. 데이터베이스 연결을 위한 다음 환경 변수를 설정하세요.

  • SPRING_DATASOURCE_URL: Oracle 데이터베이스 연결을 위한 JDBC URL.
  • SPRING_DATASOURCE_USERNAME: 데이터베이스 사용자 이름.
  • SPRING_DATASOURCE_PASSWORD: 데이터베이스 비밀번호.

로컬 설정 예시:

spring.datasource.url=jdbc:oracle:thin:@localhost:1522:orcl
spring.datasource.username=사용자이름
spring.datasource.password=비밀번호

이메일 서비스 구성

알림 및 확인 이메일을 보낼 수 있도록 메일 서버를 구성합니다.

spring.mail.host=smtp.gmail.com
spring.mail.port=587
spring.mail.username=yourEmail@gmail.com
spring.mail.password=앱비밀번호
spring.mail.properties.mail.smtp.auth=true
spring.mail.properties.mail.smtp.starttls.enable=true

OAuth2 구성

각 서비스(카카오, 네이버 등)에 대한 클라이언트 ID, 클라이언트 비밀번호 및 리다이렉트 URI를 지정하여 OAuth2 제공자를 설정하세요. 이 값들은 버전 관리 시스템에 노출되지 않도록 안전하게 저장되어야 합니다.

spring.security.oauth2.client.registration.kakao.client-id=카카오클라이언트ID
spring.security.oauth2.client.registration.kakao.client-secret=카카오클라이언트비밀번호
spring.security.oauth2.client.registration.naver.client-id=네이버클라이언트ID
spring.security.oauth2.client.registration.naver.client-secret=네이버클라이언트비밀번호

JWT 비밀 키

JWT 토큰을 서명하는 데 사용되는 비밀 키를 구성하세요. 이 키는 기밀로 유지되어야 합니다.

spring.jwt.secret=비밀키

애플리케이션 실행

모든 구성이 설정되면, 다음을 사용하여 애플리케이션을 실행할 수 있습니다.

./gradlew bootRun

추가 사항

  • 요구 사항에 맞게 로깅 설정을 조정하여 디버깅 및 모니터링을 개선하세요.
  • 처리할 예정인 파일 크기를 기반으로 멀티파트 설정을 수정하세요.
  • 애플리케이션의 보안 설정을 주기적으로 검토하고 업데이트하여 강력한 보안을 유지하세요.

Contributing

모든 종류의 기여를 환영합니다. 이슈 트래킹, 풀 리퀘스트 등을 통해 참여해주세요. 기여 전에 CONTRIBUTING.md를 확인해주세요.

License

이 프로젝트는 MIT 라이센스를 따릅니다. 자세한 내용은 LICENSE 파일을 참조하십시오.

Contact

오유준 - krkarma777@gmail.com

Project Link: https://github.com/krkarma777/online-store

  • Features and Screenshots: Link

About

SEED: An open-market platform built with JDK 17, Spring Boot, and Oracle DB, focusing on RESTful architecture and secure user experiences.

License:MIT License


Languages

Language:Java 50.8%Language:HTML 47.0%Language:CSS 1.4%Language:JavaScript 0.8%