Skip to content
Open
Show file tree
Hide file tree
Changes from 2 commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
40 changes: 37 additions & 3 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,3 +1,37 @@
## [본 과정] 이커머스 핵심 프로세스 구현
[단기 스킬업 Redis 교육 과정](https://hh-skillup.oopy.io/) 을 통해 상품 조회 및 주문 과정을 구현하며 현업에서 발생하는 문제를 Redis의 핵심 기술을 통해 해결합니다.
> Indexing, Caching을 통한 성능 개선 / 단계별 락 구현을 통한 동시성 이슈 해결 (낙관적/비관적 락, 분산락 등)
# JM 항해 시네마소개

## 프로젝트 소개
- 해당과정은 [단기 스킬업 Redis 교육 과정](https://hh-skillup.oopy.io/) 을 하면서 진행한 프로젝트이다.
- 영화목록을 조회할수 있는 서비스 프로젝트
- 향후 진행하면서 README파일은 계속 업데이트

## API
### Get
|#|API|내용|비고|
|---|------|---|---|
|1|/api/movies|서버가 가지고 있는 영화목록 리턴| |

### Post
|#|API|내용|비고|
|---|------|---|---|
|1|/api/movies|서버에 영화목록을 입력| |

## Architecture
- 해당과제는 Controller, Service, domain으로 나누어져있는 Layered Architecture를 기본으로한다.
- 구현을 진행하면서, 필요시 Layered Architecture를 기반으로 Module을 분리예정
<img width="375" alt="image" src="https://github.com/user-attachments/assets/98b55ce4-fea4-46ef-9525-fe0485645097" />


## TABLE
- 현재 DB에 저장되는 Data는 아래와 같다.
- 구현 진행하면서, 필요시 변경예정
<img width="148" alt="image" src="https://github.com/user-attachments/assets/fdb9bb75-d6a9-4710-b67a-a278d1079f26" />



## TODO
- docker compose를 사용하여 container화 (현재 미사용)
- 메인페이지 추가 구현



3 changes: 3 additions & 0 deletions app/.gitattributes
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
/gradlew text eol=lf
*.bat text eol=crlf
*.jar binary
37 changes: 37 additions & 0 deletions app/.gitignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,37 @@
HELP.md
.gradle
build/
!gradle/wrapper/gradle-wrapper.jar
!**/src/main/**/build/
!**/src/test/**/build/

### STS ###
.apt_generated
.classpath
.factorypath
.project
.settings
.springBeans
.sts4-cache
bin/
!**/src/main/**/bin/
!**/src/test/**/bin/

### IntelliJ IDEA ###
.idea
*.iws
*.iml
*.ipr
out/
!**/src/main/**/out/
!**/src/test/**/out/

### NetBeans ###
/nbproject/private/
/nbbuild/
/dist/
/nbdist/
/.nb-gradle/

### VS Code ###
.vscode/
41 changes: 41 additions & 0 deletions app/build.gradle
Original file line number Diff line number Diff line change
@@ -0,0 +1,41 @@
plugins {
id 'java'
id 'org.springframework.boot' version '3.4.1'
id 'io.spring.dependency-management' version '1.1.7'
}

group = 'com.movie'
version = '0.0.1-SNAPSHOT'

java {
toolchain {
languageVersion = JavaLanguageVersion.of(17)
}
}

configurations {
compileOnly {
extendsFrom annotationProcessor
}
}

repositories {
mavenCentral()
}

dependencies {
implementation 'org.springframework.boot:spring-boot-starter-data-jpa'
implementation 'org.springframework.boot:spring-boot-starter-thymeleaf'
implementation 'org.springframework.boot:spring-boot-starter-validation'
implementation 'org.springframework.boot:spring-boot-starter-web'
compileOnly 'org.projectlombok:lombok'
developmentOnly 'org.springframework.boot:spring-boot-docker-compose'
runtimeOnly 'com.mysql:mysql-connector-j'
annotationProcessor 'org.projectlombok:lombok'
testImplementation 'org.springframework.boot:spring-boot-starter-test'
testRuntimeOnly 'org.junit.platform:junit-platform-launcher'
}

tasks.named('test') {
useJUnitPlatform()
}
10 changes: 10 additions & 0 deletions app/compose.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
services:
mysql:
image: 'mysql:latest'
environment:
- 'MYSQL_DATABASE=redis1st'
- 'MYSQL_PASSWORD=PASSWORD'
- 'MYSQL_ROOT_PASSWORD=PASSWORD'
- 'MYSQL_USER=ID'
ports:
- '3306'
Binary file added app/gradle/wrapper/gradle-wrapper.jar
Binary file not shown.
7 changes: 7 additions & 0 deletions app/gradle/wrapper/gradle-wrapper.properties
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
distributionBase=GRADLE_USER_HOME
distributionPath=wrapper/dists
distributionUrl=https\://services.gradle.org/distributions/gradle-8.11.1-bin.zip
networkTimeout=10000
validateDistributionUrl=true
zipStoreBase=GRADLE_USER_HOME
zipStorePath=wrapper/dists
252 changes: 252 additions & 0 deletions app/gradlew

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

Loading
Loading