Skip to content

SHINJIHAN/string-buffer

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

20 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Spring Boot JPA 최적화 쇼핑몰 시스템

이 프로젝트는 인프런 - 스프링 부트와 JPA 활용 1
인프런 - 스프링 부트와 JPA API 개발 성능 최적화 강좌를 기반으로 작성되었다.

실습을 통해 Spring Boot + JPA의 기본 동작부터 API 개발, 성능 최적화 기법까지 구현하였다.
새 창에서 열 때 Ctrl 클릭 후 404 페이지가 나오면 새로고침 해 주세요.

웹사이트 첫 페이지 - 스프링 부트 JPA 쇼핑몰


1. 학습 및 실무 적용 포인트

  • JPA 기본기: 엔티티 매핑, 연관관계 설정, 지연 로딩(Lazy Loading) 이해

  • API 설계: RESTful API 구현, DTO 패턴 활용

  • 성능 최적화: N+1 문제 해결, 페이징 처리, 쿼리 최적화

  • 실무 활용:

    • 유지보수성과 확장성을 고려한 계층형 아키텍처
    • 데이터베이스 트래픽 최소화를 위한 쿼리 튜닝 전략
    • 테스트 코드로 기능 검증 및 회귀 방지

2. 기술 스택

  • 백엔드: Java 17, Spring Boot, Spring Data JPA
  • 데이터베이스: H2, MySQL (환경에 맞게 선택 가능)
  • 빌드 툴: Gradle
  • 기타: Lombok, Hibernate

3. 프로젝트 구조

jpashop
├── build.gradle         # Gradle 빌드 스크립트
├── settings.gradle      # Gradle 프로젝트 설정 파일
├── src
│   ├── main
│   │   ├── java
│   │   │   └── jpashop
│   │   │       ├── domain         # 핵심 비즈니스 엔티티 클래스 및 도메인 모델
│   │   │       ├── repository     # JPA 리포지토리, 데이터베이스 접근 계층
│   │   │       ├── service        # 비즈니스 로직 구현, 트랜잭션 관리
│   │   │       └── controller     # REST API 엔드포인트 및 요청/응답 처리
│   │   └── resources
│   │       └── application.yml    # 환경 설정 파일 (DB 연결, JPA 설정 등)
│   └── test
│       └── java
│           └── jpashop            # 단위 및 통합 테스트 코드
└── README.md                      # 프로젝트 개요 및 문서

4. 실행 방법

  1. 저장소 클론
git clone https://github.com/SHINJIHAN/string-buffer.git
  1. 프로젝트 디렉토리 이동
cd jpashop
  1. 애플리케이션 실행
./gradlew bootRun

5. 본 프로젝트 적용 현황

  • 기존 주문 내역 검색 기능을 QueryDSL을 활용한 동적 쿼리 방식으로 변경하려 시도하였으나,
  • 현재는 QueryDSL 적용이 완전히 구현되지 않아, 관련 코드는 주석 처리된 상태로 보존 중입니다.
  • 향후 QueryDSL을 활용하여 동적 쿼리를 안정적으로 구현할 계획입니다.

❗ 오류 및 개선사항은 상단의 Issues 탭을 이용해주세요.

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors