Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
59 commits
Select commit Hold shift + click to select a range
fec3197
UserManagementService - createUser 수정
JupitorCentral Nov 25, 2025
be10ca5
사용자 생성 테스트 생성 - DB에 실제로 저장되는 persistentTest 와 @Transactional 어노테이션으로 …
JupitorCentral Nov 25, 2025
c8d1147
ReservationBookingService - book 테스트
JupitorCentral Nov 25, 2025
59250bc
ReservationBookingService - book eventProxy 선언 위치 변경
JupitorCentral Nov 25, 2025
0de0449
Seat 테이블의 status 컬럼 타입 변경 - varchar(20) 씩이나 컬럼이 클 필요가 없음.
JupitorCentral Nov 25, 2025
d7fc0e1
Reservation 테이블의 ReservationStatus 컬럼 타입 변경 - varchar(20) 씩이나 컬럼이 클 필…
JupitorCentral Nov 25, 2025
5b7c410
IllegalReservationStatusDbValueException 추가
JupitorCentral Nov 25, 2025
9f688e5
Seat 단계를 진행하는 방식 변경
JupitorCentral Nov 25, 2025
77dd612
ReservationBookingServiceIntegrationTest 테스트 변경 (setUp 단계추가), 이를 위한 S…
JupitorCentral Nov 25, 2025
2d5e51a
Foreign Constraint 에 해당하는 엔티티 필드를 읽기 전용으로 변경, F key 컬럼을 따로 설정
JupitorCentral Nov 25, 2025
3231608
일관성이 없는 변수설정 제거
JupitorCentral Nov 25, 2025
34a287f
Test method 가 하나인데 굳이 @BeforeEach 쓸 필요가 있나 ?
JupitorCentral Nov 25, 2025
fde3c7b
노출되지 말아야 할 내부 클래스 숨김
JupitorCentral Nov 25, 2025
13485af
ReservationBookingService - makeReservation 구현 변경
JupitorCentral Nov 26, 2025
18306ec
f key 코드 삭제
JupitorCentral Nov 27, 2025
69ad066
불필요 테스트 코드 삭제
JupitorCentral Nov 28, 2025
d8a57d5
테스트 h2 + embedded redis 쓰게 설정
JupitorCentral Nov 30, 2025
b918283
변수명 변경 ReservationBookingRequest.java -> ReservationRequest
JupitorCentral Nov 30, 2025
5b9ff84
Seat 관련된 Service 생성
JupitorCentral Nov 30, 2025
05dda77
SeatService 생성 (ReservationQueryService 에서 Seat 관련된 메소드 추출)
JupitorCentral Nov 30, 2025
44bf751
불필요한 ForeignKeyValidator 삭제
JupitorCentral Nov 30, 2025
056be87
SeatService - createValidSeat 테스트 추가
JupitorCentral Nov 30, 2025
af1e3b7
SeatService - createValidSeat 테스트 주석
JupitorCentral Nov 30, 2025
a63eda3
SeatService.java -> SeatManagementService.java
JupitorCentral Nov 30, 2025
0828515
Seat 생성시 일어날 수 있는 오류 추가
JupitorCentral Nov 30, 2025
9e26ddc
포맷팅
JupitorCentral Nov 30, 2025
c36aed6
주석 수정,
JupitorCentral Nov 30, 2025
3ca956b
Exception message 포맷 수정
JupitorCentral Dec 1, 2025
89db088
Reservation, Seat Enum 타입 값 수정
JupitorCentral Dec 1, 2025
a793100
Exception 의 파라미터 수정 (구현 숨기기), 테스트파일 위치 변경
JupitorCentral Dec 1, 2025
d9957a8
Seat ForeignKey 위반 클래스 재정의
JupitorCentral Dec 1, 2025
3767097
createSeat - isValidSeat 의 의미가 애매모호 한 것 같다
JupitorCentral Dec 1, 2025
d16b624
단어 통일성 ...
JupitorCentral Dec 1, 2025
83f4b50
테스트파일 위치 변경
JupitorCentral Dec 1, 2025
1be9459
Event - 티켓 가격 추가
JupitorCentral Dec 1, 2025
9bbf150
결제 service 생성 & 테스트
JupitorCentral Dec 1, 2025
8fd2946
불필요한 설정 코드 삭제
JupitorCentral Dec 2, 2025
f4432f0
InvalidStatusException.java -> InvalidReservationStatusException
JupitorCentral Dec 2, 2025
3a5243c
f key 관계에 대해, key 를 따로 저장하는것이 아니라, 엔티티 그대로 보관하는 것으로 변경
JupitorCentral Dec 4, 2025
28fc4b8
@Transactional 적용을 위해
JupitorCentral Dec 4, 2025
9938c32
객체지향화를 위한 메서드 추가
JupitorCentral Dec 4, 2025
4e37764
불필요한 변수 정의 삭제
JupitorCentral Dec 4, 2025
ad0cb21
proceed -> reserve, sell
JupitorCentral Dec 4, 2025
92b04ab
proxy 테스트 추가.
JupitorCentral Dec 4, 2025
c13f45d
테스트 버그 수정, @DisplayName 설정
JupitorCentral Dec 4, 2025
186eef5
Custom Exception 에 ProblemDetail 적용
JupitorCentral Dec 17, 2025
7f18b93
no!
JupitorCentral Dec 17, 2025
928af98
Integration Test 위치 변경 (Unit Test가 아닌것들),
JupitorCentral Dec 17, 2025
155b9fe
Custom Exception 을 위한 GlobalExceptionHandler 의 잘못된 시그니쳐 수정
JupitorCentral Dec 18, 2025
a423cb3
중복 테스트 코드 generic 을 사용해서 줄이기
JupitorCentral Dec 19, 2025
11f462a
ResponseEntityExceptionHandler 를 쓸 필요가 없었다.
JupitorCentral Dec 19, 2025
720b37a
내가 왜 썼는지 기억이 났다. Spring 이 제공하는 기본 핸들러를 사용하기 위해서이다.
JupitorCentral Dec 19, 2025
dc1fc08
github action 설정 (build, test)
JupitorCentral Dec 20, 2025
fc7f838
ReservationBookingControllerTest 테스트코드 추가
JupitorCentral Dec 20, 2025
b93051e
테스트 코드 수정
JupitorCentral Dec 27, 2025
a531369
예약 취소 기능 및 테스트
JupitorCentral Jan 3, 2026
ba223c0
record 클래스로 설정
JupitorCentral Jan 4, 2026
dd75ef1
docker-compose override 파일 없이 .env 로만 실행가능하게 설정
JupitorCentral Jan 8, 2026
3adca7e
docker-compose up 때 db 헬스체크 설정 추가
JupitorCentral Jan 9, 2026
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
49 changes: 0 additions & 49 deletions .env.example

This file was deleted.

32 changes: 32 additions & 0 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,32 @@
name: CI

on:
pull_request:
branches: [ main, feature/** ]
push:
branches: [ main ]

jobs:
build-and-test:
runs-on: ubuntu-latest

steps:
- name: Checkout code
uses: actions/checkout@v4
with:
fetch-depth: 0

- name: Set up JDK 21
uses: actions/setup-java@v4
with:
java-version: '21'
distribution: 'adopt'
cache: 'gradle'

- name: Grant execute permission for gradlew
run: chmod +x ./gradlew

- name: Build and Test
run: ./gradlew build --info
env:
SPRING_PROFILES_ACTIVE: test
11 changes: 1 addition & 10 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -38,21 +38,12 @@ qodana.yaml
### VS Code ###
.vscode/


### AI Tool ###
.serena
CLAUDE.md
.cursor
.claude
.mcp.json
AGENTS.md
.codex

### Temp Files ###
cookies.txt

### Environment Variables ###
.env
gradle.properties

### Docker Compose Override ###
docker-compose.override.yml
Expand Down
29 changes: 25 additions & 4 deletions build.gradle.kts
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,8 @@ plugins {
group = "personnel.jupitorSendsme"
version = "0.0.1-SNAPSHOT"
description = "PulseTicket"
// Mockito agent 정적 로딩을 위한 변수
val mockitoAgent = configurations.create("mockitoAgent")

java {
toolchain {
Expand All @@ -28,15 +30,28 @@ dependencies {
implementation("org.springframework.boot:spring-boot-starter-data-jpa")
implementation("org.springframework.boot:spring-boot-starter-data-redis")
implementation("org.springframework.boot:spring-boot-starter-web")
// Spring Session Redis 의존성 추가
// Redis를 세션 저장소로 사용하기 위한 의존성
implementation("org.springframework.boot:spring-boot-starter-actuator")
implementation("org.springframework.session:spring-session-data-redis")

// lombok
compileOnly("org.projectlombok:lombok")
developmentOnly("org.springframework.boot:spring-boot-devtools")
runtimeOnly("org.postgresql:postgresql")
annotationProcessor("org.projectlombok:lombok")
runtimeOnly("org.postgresql:postgresql")

// dev
developmentOnly("org.springframework.boot:spring-boot-devtools")

// test
testImplementation("org.springframework.boot:spring-boot-starter-test")
testImplementation("org.assertj:assertj-core")
testRuntimeOnly("org.junit.platform:junit-platform-launcher")
testCompileOnly("org.projectlombok:lombok")
testAnnotationProcessor("org.projectlombok:lombok")
testRuntimeOnly("com.h2database:h2")
testImplementation("com.github.codemonstur:embedded-redis:1.4.3")

// Mockito agent (Java 21+ 지원)
mockitoAgent("org.mockito:mockito-core") { isTransitive = false }

// Argon2id 비밀번호 해싱
implementation("org.springframework.security:spring-security-crypto")
Expand All @@ -54,6 +69,12 @@ tasks.withType<JavaCompile> {
tasks.withType<Test> {
systemProperty("file.encoding", "UTF-8")
useJUnitPlatform()

// 클래스 데이터 공유 관련 경고 방지
jvmArgs("-Xshare:off")

// Mockito agent 정적 로딩 (Java 21+ 동적 agent 로딩 경고 방지)
jvmArgs("-javaagent:${mockitoAgent.asPath}")
}

// ============================================================================
Expand Down
29 changes: 15 additions & 14 deletions db_creation_query.sql
Original file line number Diff line number Diff line change
Expand Up @@ -4,30 +4,31 @@
-- USERS 테이블
CREATE TABLE users
(
id BIGSERIAL PRIMARY KEY,
login_id VARCHAR(50) UNIQUE NOT NULL,
password_hash VARCHAR(255) NOT NULL,
created_at TIMESTAMP NOT NULL,
updated_at TIMESTAMP NOT NULL
id BIGSERIAL PRIMARY KEY,
login_id VARCHAR(100) UNIQUE NOT NULL,
password_hash VARCHAR(255) NOT NULL,
created_at TIMESTAMP NOT NULL,
updated_at TIMESTAMP NOT NULL
);

-- EVENTS 테이블
CREATE TABLE events
(
id BIGSERIAL PRIMARY KEY,
name VARCHAR(255) NOT NULL,
total_seats INT NOT NULL,
created_at TIMESTAMP NOT NULL,
updated_at TIMESTAMP NOT NULL
id BIGSERIAL PRIMARY KEY,
name VARCHAR(255) NOT NULL,
total_seats INT NOT NULL,
ticket_price NUMERIC(10, 2) NOT NULL,
created_at TIMESTAMP NOT NULL,
updated_at TIMESTAMP NOT NULL
);

-- SEATS 테이블
CREATE TABLE seats
(
id BIGSERIAL PRIMARY KEY,
id BIGSERIAL PRIMARY KEY,
event_id BIGINT NOT NULL, -- FK -> events.id
seat_number INT NOT NULL,
status VARCHAR(20) NOT NULL,
status VARCHAR(20) NOT NULL, -- AVAILABLE, RESERVED, SOLD
reserved_until TIMESTAMP NULL,
created_at TIMESTAMP NOT NULL,
updated_at TIMESTAMP NOT NULL,
Expand All @@ -37,11 +38,11 @@ CREATE TABLE seats
-- RESERVATIONS 테이블
CREATE TABLE reservations
(
id BIGSERIAL PRIMARY KEY,
id BIGSERIAL PRIMARY KEY,
user_id BIGINT NOT NULL, -- FK -> users.id
seat_id BIGINT NOT NULL, -- FK -> seats.id
event_id BIGINT NOT NULL, -- FK -> events.id
status VARCHAR(20) NOT NULL,
status VARCHAR(20) NOT NULL, -- PENDING, CONFIRMED, CANCELLED, EXPIRED
expires_at TIMESTAMP NOT NULL,
confirmed_at TIMESTAMP NULL,
cancelled_at TIMESTAMP NULL,
Expand Down
30 changes: 0 additions & 30 deletions docker-compose.override.yml.example

This file was deleted.

78 changes: 0 additions & 78 deletions docker-compose.test.yml

This file was deleted.

Loading