Skip to content
Open
Show file tree
Hide file tree
Changes from all 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
2 changes: 1 addition & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@

| 이름 | 폴더 | 1주차 | 2주차 | 3주차 | 4주차 | 5주차 | 현재 |
|---|---|---|---|---|---|---|---|
| 오찬혁 | `chanhyeok` | 선착순 쿠폰 | 호텔 객실 예약 | P2P 송금 (11) | | 분산락 AOP (8) | 5주차 |
| 오찬혁 | `chanhyeok` | 선착순 쿠폰 | 호텔 객실 예약 | P2P 송금 (11) | 결제 PG 연동 (3) | 분산락 AOP (8) | 5주차 |
| 김가빈 | `gabin` | 이중 환불 | 장바구니 결제 | — | 할인 정책 (11) | 캐싱 (5) | 5주차 |
| 김민서 | `minseo` | 출퇴근 기록 | 회의실 / 스터디룸 예약 | 티켓 예매 (6) | 인증 전략 (4) | 감사 로그 (1) | 5주차 |
| 박수진 | `sujin` | volatile 집중 | 콘서트 좌석 예약 | 주식 매수/매도 (2) | 알림 발송 (1) | 권한 검증 (4) | 5주차 |
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -25,7 +25,7 @@ public TransferService(DataSource dataSource) {
this.dataSource = dataSource;
}

@DistributedLock(key = "wallet:#{fromId}", ttlSeconds = 5)
@DistributedLock(key = "wallet:#{#fromId}", ttlSeconds = 5)
@Audited(action = "TRANSFER") // Stage4 advice 안-밖 — @Order(1) Lock > @Order(2) Audit
public void transfer(long fromId, long toId, BigDecimal amount) {
try (Connection conn = dataSource.getConnection()) {
Expand Down
Empty file.
37 changes: 37 additions & 0 deletions topics/06-event/members/chanhyeok/build.gradle
Original file line number Diff line number Diff line change
@@ -0,0 +1,37 @@
// 6주차 학습 — Spring Event (publishEvent + @TransactionalEventListener + @Async)
// 5주차 P2P 송금 도메인 (PostgreSQL + Redis + 분산락 AOP) 연장.
// 5주차 @Audited 제거 → publishEvent + AFTER_COMMIT listener 로 옮김.

plugins {
id 'java'
id 'application'
}

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

repositories {
mavenCentral()
}

dependencies {
implementation 'org.springframework.boot:spring-boot-starter:3.2.0'
implementation 'org.springframework.boot:spring-boot-starter-aop:3.2.0' // 5주차 분산락 AOP
implementation 'org.springframework.boot:spring-boot-starter-jdbc:3.2.0' // @Transactional + JdbcTemplate

// 5주차 인프라 그대로
implementation 'org.postgresql:postgresql:42.7.4'
implementation 'io.lettuce:lettuce-core:6.3.0.RELEASE'
}

application {
mainClass = providers.gradleProperty('mainClass').orElse('stage.Stage1Hello')
}

// -parameters: AspectJ 어노테이션 파라미터 바인딩 + SpEL 안전장치
tasks.withType(JavaCompile).configureEach {
options.compilerArgs << '-parameters'
}
Binary file not shown.
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.5-bin.zip
networkTimeout=10000
validateDistributionUrl=true
zipStoreBase=GRADLE_USER_HOME
zipStorePath=wrapper/dists
249 changes: 249 additions & 0 deletions topics/06-event/members/chanhyeok/gradlew

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

Loading