-
Notifications
You must be signed in to change notification settings - Fork 0
๐ :: [#732] - ์ ํ๋ฆฌ์ผ์ด์ ์์ฑ๋ฐ ์์ ์ ์ด๊ธฐํ ์คํฌ๋ฆฝํธ ์คํ ์ถ๊ฐ #735
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. Weโll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Conversation
Walkthrough์ ํ๋ฆฌ์ผ์ด์
์์ฑยท์
๋ฐ์ดํธ ์์ฒญ์ Changes
Sequence Diagram(s)sequenceDiagram
autonumber
participant Client
participant UseCase as CreateApplicationUseCase
participant Env as EnvAutoMatchService
participant ScriptSvc as InitialScriptService
participant CmdPort as CommandApplicationInitialScriptPort
participant Repo as Persistence
Client->>UseCase: execute(createRequest)
UseCase->>Env: match(application)
Env-->>UseCase: matched
UseCase->>ScriptSvc: write(application, initialScripts)
ScriptSvc->>CmdPort: deleteByApplication(application)
CmdPort->>Repo: DELETE existing scripts
Repo-->>CmdPort: deleted
ScriptSvc->>ScriptSvc: map strings -> ApplicationInitialScript (UUID ์์ฑ)
ScriptSvc->>CmdPort: saveAll(newScripts)
CmdPort->>Repo: INSERT scripts
Repo-->>CmdPort: saved
CmdPort-->>ScriptSvc: saved
ScriptSvc-->>UseCase: done
UseCase-->>Client: createdApplication
Estimated code review effort๐ฏ 3 (Moderate) | โฑ๏ธ ~20 ๋ถ
Possibly related PRs
์
Pre-merge checks and finishing touchesโ Failed checks (1 warning)
โ Passed checks (2 passed)
โจ Finishing touches
๐งช Generate unit tests (beta)
๐ Recent review detailsConfiguration used: CodeRabbit UI Review profile: CHILL Plan: Pro ๐ Files selected for processing (2)
๐ง Files skipped from review as they are similar to previous changes (1)
๐งฐ Additional context used๐ง Learnings (1)๐ Common learningsโฐ Context from checks skipped due to timeout of 90000ms. You can increase the timeout in your CodeRabbit configuration to a maximum of 15 minutes (900000ms). (1)
๐ Additional comments (1)
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Actionable comments posted: 2
๐งน Nitpick comments (2)
src/main/kotlin/com/dcd/server/presentation/domain/application/data/request/UpdateApplicationRequest.kt (1)
14-14: port ํ๋ ๊ฒ์ฆ ํ์ธ์ด ํ์ํฉ๋๋ค.
portํ๋์ ์ ํจ ๋ฒ์ ๊ฒ์ฆ(1-65535)์ด ์๋์ง ๋น์ฆ๋์ค ๋ก์ง์์ ํ์ธํ์ธ์.src/main/kotlin/com/dcd/server/core/domain/application/usecase/CreateApplicationUseCase.kt (1)
48-48: ์ด๊ธฐํ ์คํฌ๋ฆฝํธ ์ ์ฅ ์์น๋ฅผ ํ์ธํ์ธ์.
initialScriptService.write๊ฐ ์ฝ๋ฃจํด ์ธ๋ถ์์ ๋๊ธฐ์ ์ผ๋ก ํธ์ถ๋์ด ์์ฒญ ์ค๋ ๋๋ฅผ ๋ธ๋กํนํ ์ ์์ต๋๋ค. ์ด ์์ ์ด I/O ์์ (๋ฐ์ดํฐ๋ฒ ์ด์ค ์ ์ฅ ๋ฑ)์ ํฌํจํ๋ ๊ฒฝ์ฐ, ์ฑ๋ฅ์ ์ํฅ์ ์ค ์ ์์ต๋๋ค.์์ ์ด ๋น ๋ฅด๊ฒ ์๋ฃ๋๊ฑฐ๋ ํธ๋์ญ์ ์ปจํ ์คํธ ๋ด์์ ์คํ๋์ด์ผ ํ๋ ์ด์ ๊ฐ ์๋์ง ํ์ธํ์ธ์. ๊ทธ๋ ์ง ์๋ค๋ฉด, ์ฝ๋ฃจํด ๋ด๋ถ๋ก ์ด๋ํ๋ ๊ฒ์ ๊ณ ๋ คํ์ธ์.
Based on learnings
๐ Review details
Configuration used: CodeRabbit UI
Review profile: CHILL
Plan: Pro
๐ Files selected for processing (13)
src/main/kotlin/com/dcd/server/core/domain/application/dto/request/CreateApplicationReqDto.kt(1 hunks)src/main/kotlin/com/dcd/server/core/domain/application/dto/request/UpdateApplicationReqDto.kt(1 hunks)src/main/kotlin/com/dcd/server/core/domain/application/service/InitialScriptService.kt(1 hunks)src/main/kotlin/com/dcd/server/core/domain/application/service/impl/InitialScriptServiceImpl.kt(1 hunks)src/main/kotlin/com/dcd/server/core/domain/application/usecase/CreateApplicationUseCase.kt(2 hunks)src/main/kotlin/com/dcd/server/core/domain/application/usecase/UpdateApplicationUseCase.kt(3 hunks)src/main/kotlin/com/dcd/server/presentation/domain/application/data/exetension/ApplicationRequestDataExtension.kt(2 hunks)src/main/kotlin/com/dcd/server/presentation/domain/application/data/request/CreateApplicationRequest.kt(1 hunks)src/main/kotlin/com/dcd/server/presentation/domain/application/data/request/UpdateApplicationRequest.kt(1 hunks)src/test/kotlin/com/dcd/server/core/domain/application/usecase/CreateApplicationUseCaseTest.kt(8 hunks)src/test/kotlin/com/dcd/server/core/domain/application/usecase/UpdateApplicationUseCaseTest.kt(3 hunks)src/test/kotlin/com/dcd/server/presentation/domain/application/ApplicationWebAdapterTest.kt(2 hunks)src/test/resources/data.sql(1 hunks)
๐งฐ Additional context used
๐ง Learnings (10)
๐ Common learnings
Learnt from: dolong2
Repo: dolong2/dcd PR: 703
File: src/main/kotlin/com/dcd/server/core/domain/volume/model/Volume.kt:1-12
Timestamp: 2025-09-01T14:52:42.625Z
Learning: dolong2 prefers to implement validation logic (such as path validation for Volume.physicalPath) in the business logic layer rather than in domain model init blocks, keeping domain models as simple data containers.
Learnt from: dolong2
Repo: dolong2/dcd PR: 703
File: src/test/resources/data.sql:28-30
Timestamp: 2025-09-01T14:57:07.656Z
Learning: dolong2 prefers to implement deletion validation in business logic rather than using database CASCADE constraints. For volume deletion, they want to validate if any mounts exist before allowing deletion, preventing accidental data loss while maintaining explicit control over the deletion process.
Learnt from: dolong2
Repo: dolong2/dcd PR: 655
File: src/main/kotlin/com/dcd/server/persistence/workspace/entity/WorkspaceJpaEntity.kt:12-14
Timestamp: 2025-07-12T14:05:23.333Z
Learning: dolong2๋ JPA์ GeneratedValue(strategy = GenerationType.UUID) ๋์ ์์ฑ์์์ UUID.randomUUID()๋ก ์ง์ ์ด๊ธฐํํ๋ ๋ฐฉ์์ ์ ํธํ๋ค. ๋ ๊ฐ๋จํ๊ณ ์์ธก ๊ฐ๋ฅํ ๋์์ ์ํด์๋ค.
Learnt from: dolong2
Repo: dolong2/dcd PR: 659
File: src/main/kotlin/com/dcd/server/core/domain/domain/usecase/ConnectDomainUseCase.kt:40-41
Timestamp: 2025-07-14T15:01:47.531Z
Learning: dolong2๋ ๊ธฐ๋ฅ์ ์ผ๋ก ๋ฌธ์ ๊ฐ ์๋ ์ฝ๋ ๊ฐ์ ์ฌํญ์ ๊ฒฝ์ฐ, ์ค์ ๋ก ํ์ํ ๋๊น์ง ์์ ์ ๋ฏธ๋ฃจ๋ ์ค์ฉ์ ์ธ ์ ๊ทผ๋ฒ์ ์ ํธํ๋ค. ์๋ฅผ ๋ค์ด ์๋ฏธ๋ก ์ ์ ํ์ฑ์ ์ํ ๋ณ๊ฒฝ์ ํด๋น ๊ธฐ๋ฅ์ด ์ค์ ๋ก ํ์ํ ๋ ์์ ํ๋ ๋ฐฉ์์ ํํ๋ค.
๐ Learning: 2024-11-01T15:14:45.123Z
Learnt from: dolong2
Repo: dolong2/dcd PR: 363
File: src/main/kotlin/com/dcd/server/core/domain/application/usecase/UpdateApplicationEnvUseCase.kt:35-52
Timestamp: 2024-11-01T15:14:45.123Z
Learning: ๊ฐ๋ฐ์๋ `UpdateApplicationEnvUseCase.kt` ํ์ผ์ `execute` ํจ์์์ `updatedApplicationList`๊ฐ ๋น์ด ์๋์ง ํ์ธํ๊ฑฐ๋, `envKey`๊ฐ ์๋ ์ ํ๋ฆฌ์ผ์ด์
์ ๋ํ ๋ก๊ทธ๋ฅผ ์ถ๊ฐํ๋ ๊ฒ์ ์์น ์์ต๋๋ค.
Applied to files:
src/test/kotlin/com/dcd/server/presentation/domain/application/ApplicationWebAdapterTest.ktsrc/test/kotlin/com/dcd/server/core/domain/application/usecase/CreateApplicationUseCaseTest.ktsrc/test/kotlin/com/dcd/server/core/domain/application/usecase/UpdateApplicationUseCaseTest.kt
๐ Learning: 2025-08-10T14:46:38.244Z
Learnt from: dolong2
Repo: dolong2/dcd PR: 688
File: src/main/kotlin/com/dcd/server/core/domain/env/usecase/PutApplicationEnvUseCase.kt:60-71
Timestamp: 2025-08-10T14:46:38.244Z
Learning: DCD ํ๋ก์ ํธ์ PutApplicationEnvUseCase.execute(id, putApplicationEnvReqDto) ๋ฉ์๋์์ ํ๊ฒฝ๋ณ์ ์
๋ฐ์ดํธ ์ details๋ ๊ธฐ์กด ๊ฐ๊ณผ ๋ณํฉํ์ง ์๊ณ ์์ฒญ ๋ฐ์ดํฐ๋ก ์์ ํ ๋ฎ์ด์์ฐ๋ ๋ฐฉ์์ผ๋ก ๋์ํด์ผ ํ๋ค.
Applied to files:
src/test/kotlin/com/dcd/server/presentation/domain/application/ApplicationWebAdapterTest.kt
๐ Learning: 2025-08-08T15:07:46.340Z
Learnt from: dolong2
Repo: dolong2/dcd PR: 683
File: src/main/kotlin/com/dcd/server/presentation/domain/env/ApplicationEnvWebAdapter.kt:30-0
Timestamp: 2025-08-08T15:07:46.340Z
Learning: DCD ํ๋ก์ ํธ: ApplicationEnvWebAdapter(ํ์ผ: src/main/kotlin/com/dcd/server/presentation/domain/env/ApplicationEnvWebAdapter.kt)์ DELETE /{workspaceId}/env/{envId} ์ฑ๊ณต ์๋ต์ ํ ์ปจ๋ฒค์
์ 204๊ฐ ์๋ 200 OK๋ฅผ ์ ์งํ๋ค.
Applied to files:
src/test/kotlin/com/dcd/server/presentation/domain/application/ApplicationWebAdapterTest.kt
๐ Learning: 2025-08-08T15:09:11.874Z
Learnt from: dolong2
Repo: dolong2/dcd PR: 683
File: src/main/kotlin/com/dcd/server/core/domain/env/usecase/DeleteApplicationEnvUseCase.kt:14-18
Timestamp: 2025-08-08T15:09:11.874Z
Learning: DCD ํ๋ก์ ํธ: DeleteApplicationEnvUseCase๋ workspaceId๋ฅผ ๋ฐ์ง ์์ผ๋ฉฐ, ์ํฌ์คํ์ด์ค ๊ฒฝ๊ณ ๊ฒ์ฆ์ ApplicationEnvWebAdapter์ WorkspaceOwnerVerification(AOP)์์ ์ฒ๋ฆฌํ๋ค. ๋ถ์ผ์น ์ NotFound๋ก ์๋ตํ๋ ๊ฒ์ ํ๋ ์ ํ
์ด์
๋ ์ด์ด์์ ๋ณด์ฅํ๋ ๊ฒ์ด ์ ํธ๋๋ค.
Applied to files:
src/test/kotlin/com/dcd/server/presentation/domain/application/ApplicationWebAdapterTest.kt
๐ Learning: 2024-11-09T09:51:02.007Z
Learnt from: dolong2
Repo: dolong2/dcd PR: 373
File: src/main/kotlin/com/dcd/server/core/domain/application/usecase/CreateApplicationUseCase.kt:55-56
Timestamp: 2024-11-09T09:51:02.007Z
Learning: `CreateApplicationUseCase`์ ์ฝ๋ฃจํด ๋ด์์ ํธ์ถ๋๋ ์๋น์ค๋ค์ ์คํจ ์ ์ ํ๋ฆฌ์ผ์ด์
์ ์ํ๋ฅผ ์๋์ผ๋ก FAILURE๋ก ๋ณ๊ฒฝํฉ๋๋ค.
Applied to files:
src/main/kotlin/com/dcd/server/core/domain/application/usecase/CreateApplicationUseCase.ktsrc/test/kotlin/com/dcd/server/core/domain/application/usecase/CreateApplicationUseCaseTest.kt
๐ Learning: 2025-01-30T10:42:29.969Z
Learnt from: dolong2
Repo: dolong2/dcd PR: 483
File: src/main/kotlin/com/dcd/server/core/domain/workspace/usecase/DeleteWorkspaceUseCase.kt:23-24
Timestamp: 2025-01-30T10:42:29.969Z
Learning: In this Spring application, service objects are called within transaction context, so adding explicit transaction handling in UseCase classes is not necessary as it's already managed at a higher level.
Applied to files:
src/main/kotlin/com/dcd/server/core/domain/application/usecase/CreateApplicationUseCase.kt
๐ Learning: 2024-10-26T02:32:19.442Z
Learnt from: dolong2
Repo: dolong2/dcd PR: 359
File: src/main/kotlin/com/dcd/server/core/domain/application/usecase/StopApplicationUseCase.kt:44-45
Timestamp: 2024-10-26T02:32:19.442Z
Learning: `StopApplicationUseCase.kt`์์ `this`๊ฐ ์ด๋ฏธ `CoroutineScope(Dispatchers.IO)`๋ฅผ ์์ํ๊ณ ์๋ ๊ฒฝ์ฐ, ์๋ก์ด `CoroutineScope`๋ฅผ ์์ฑํ ๋ `this + job`์ ์ฌ์ฉํ๋ ๊ฒ์ด ์ฝ๋ ์ผ๊ด์ฑ์ ์ ์งํ๋ ๋ฐ ๋์์ด ๋ฉ๋๋ค.
Applied to files:
src/main/kotlin/com/dcd/server/core/domain/application/usecase/CreateApplicationUseCase.kt
๐ Learning: 2025-08-12T14:59:22.963Z
Learnt from: dolong2
Repo: dolong2/dcd PR: 692
File: src/main/kotlin/com/dcd/server/core/domain/env/spi/QueryApplicationEnvPort.kt:0-0
Timestamp: 2025-08-12T14:59:22.963Z
Learning: In the dcd codebase, when updating port interface method signatures to include workspace parameters for tenant isolation, all layers must be updated together: the port interface, service interface, service implementation, persistence adapter, repository layer, and use case callers. The user dolong2 demonstrated proper multi-layer refactoring by updating QueryApplicationEnvPort.findAllByLabelsIn to include workspace parameter and systematically updating all dependent code in a single commit, including updating repository method name to findAllByWorkspaceAndLabelsIn.
Applied to files:
src/test/kotlin/com/dcd/server/core/domain/application/usecase/CreateApplicationUseCaseTest.ktsrc/test/kotlin/com/dcd/server/core/domain/application/usecase/UpdateApplicationUseCaseTest.kt
๐ Learning: 2024-10-23T14:48:00.144Z
Learnt from: dolong2
Repo: dolong2/dcd PR: 357
File: src/main/kotlin/com/dcd/server/core/domain/application/usecase/RunApplicationUseCase.kt:37-68
Timestamp: 2024-10-23T14:48:00.144Z
Learning: RunApplicationUseCase.kt์ `execute` ํจ์์์๋ ์ ํ๋ฆฌ์ผ์ด์
์ ๋น๋๊ธฐ๋ก ์คํํ๊ณ ์ํ๋ฅผ `PENDING`์ผ๋ก ๋ณ๊ฒฝํ ํ ์ฆ์ ๋ฐํํ๋ ๊ฒ์ด ๋ชฉ์ ์ด๋ค.
Applied to files:
src/test/kotlin/com/dcd/server/core/domain/application/usecase/CreateApplicationUseCaseTest.ktsrc/test/kotlin/com/dcd/server/core/domain/application/usecase/UpdateApplicationUseCaseTest.kt
โฐ Context from checks skipped due to timeout of 90000ms. You can increase the timeout in your CodeRabbit configuration to a maximum of 15 minutes (900000ms). (1)
- GitHub Check: Build and Test
๐ Additional comments (19)
src/test/resources/data.sql (1)
39-44: ์ธ๋ ํค ์ ์ฝ์กฐ๊ฑด ์ถ๊ฐ๊ฐ ์ ์ ํฉ๋๋ค.์ ํ๋ฆฌ์ผ์ด์ ๊ด๋ จ ์ํฐํฐ๋ค์ ๋ํ ์ฐธ์กฐ ๋ฌด๊ฒฐ์ฑ ์ ์ฝ์กฐ๊ฑด์ด ์ฌ๋ฐ๋ฅด๊ฒ ์ถ๊ฐ๋์์ต๋๋ค. ์๋ก ์ถ๊ฐ๋
application_initial_script_entity์ ๋ํ FK ์ ์ฝ์กฐ๊ฑด๋ ํฌํจ๋์ด ์์ต๋๋ค.src/main/kotlin/com/dcd/server/core/domain/application/dto/request/UpdateApplicationReqDto.kt (1)
9-12: DTO ํ๋ ์ถ๊ฐ๊ฐ ์ ์ ํฉ๋๋ค.
port์initialScriptsํ๋๊ฐ ์ฌ๋ฐ๋ฅด๊ฒ ์ถ๊ฐ๋์์ต๋๋ค. ๋น์ฆ๋์ค ๋ก์ง ๋ ์ด์ด์์ port ๋ฒ์ ๊ฒ์ฆ(1-65535) ๋ฐ initialScripts ๋ด์ฉ ๊ฒ์ฆ(๋น ๋ฌธ์์ด, ๊ธธ์ด ์ ํ ๋ฑ)์ด ์ํ๋๊ณ ์๋์ง ํ์ธํ์ธ์.src/main/kotlin/com/dcd/server/core/domain/application/service/InitialScriptService.kt (1)
5-7: ์ธํฐํ์ด์ค ์ค๊ณ๊ฐ ๋ช ํํ๊ณ ๊ฐ๊ฒฐํฉ๋๋ค.
InitialScriptService์ธํฐํ์ด์ค๊ฐ ๋จ์ผ ์ฑ ์ ์์น์ ์ ๋ฐ๋ฅด๊ณ ์์ผ๋ฉฐ, ์๊ทธ๋์ฒ๊ฐ ๋ช ํํฉ๋๋ค.src/main/kotlin/com/dcd/server/core/domain/application/dto/request/CreateApplicationReqDto.kt (1)
12-12: DTO ํ๋ ์ถ๊ฐ๊ฐ ์ ์ ํฉ๋๋ค.
initialScriptsํ๋๊ฐ ์ฌ๋ฐ๋ฅด๊ฒ ์ถ๊ฐ๋์์ต๋๋ค. ํ๋ ์ ํ ์ด์ ๋ ์ด์ด์์ ์ด ํ๋๋ก์ ๋งคํ์ด ์ ์ ํ ์ฒ๋ฆฌ๋๊ณ ์์ต๋๋ค.src/main/kotlin/com/dcd/server/core/domain/application/usecase/CreateApplicationUseCase.kt (1)
31-31: ์์กด์ฑ ์ถ๊ฐ๊ฐ ์ ์ ํฉ๋๋ค.
InitialScriptService์์กด์ฑ์ด ์ฌ๋ฐ๋ฅด๊ฒ ์ถ๊ฐ๋์์ต๋๋ค.src/test/kotlin/com/dcd/server/presentation/domain/application/ApplicationWebAdapterTest.kt (2)
42-42: ํ ์คํธ๊ฐ ์ฌ๋ฐ๋ฅด๊ฒ ์ ๋ฐ์ดํธ๋์์ต๋๋ค.์๋ก์ด
initialScriptsํ๋๊ฐ ํ ์คํธ ๋ฐ์ดํฐ์ ์ ์ ํ ํฌํจ๋์์ต๋๋ค.
161-161: ํ ์คํธ๊ฐ ์ฌ๋ฐ๋ฅด๊ฒ ์ ๋ฐ์ดํธ๋์์ต๋๋ค.
port์initialScriptsํ๋๊ฐ ์ ๋ฐ์ดํธ ์์ฒญ ํ ์คํธ์ ์ ์ ํ ํฌํจ๋์์ต๋๋ค.src/main/kotlin/com/dcd/server/core/domain/application/usecase/UpdateApplicationUseCase.kt (2)
12-12: ์์กด์ฑ ์ฃผ์ ๋ฐฉ์์ด ์ ์ ํฉ๋๋ค.InitialScriptService๋ฅผ ์์ฑ์ ์ฃผ์ ๋ฐฉ์์ผ๋ก ์ถ๊ฐํ ๊ฒ์ ๊ธฐ์กด ์ฝ๋๋ฒ ์ด์ค์ ํจํด๊ณผ ์ผ์นํฉ๋๋ค.
Also applies to: 27-27
56-56: ๋ฆฌ๋ทฐ ์ฝ๋ฉํธ๋ ๋ถ์ ํํฉ๋๋ค.
@UseCase์ด๋ ธํ ์ด์ ์ด@Transactional์ ๋ฉํ-์ด๋ ธํ ์ด์ ์ผ๋ก ํฌํจํ๊ณ ์์ด์,UpdateApplicationUseCase.execute()๋ฉ์๋๋ ์ด๋ฏธ ํธ๋์ญ์ ์ผ๋ก ๊ฐ์ธ์ ธ ์์ต๋๋ค.commandApplicationPort.save()์initialScriptService.write()ํธ์ถ์ ๋ชจ๋ ๋์ผํ ํธ๋์ญ์ ๋ฒ์ ๋ด์์ ์คํ๋๋ฉฐ,write()๋ฉ์๋ ๋ด๋ถ์deleteByApplication()๊ณผsaveAll()๋ ๊ฐ์ ํธ๋์ญ์ ์ ์ฐธ์ฌํฉ๋๋ค. ๋ฐ๋ผ์write()ํธ์ถ์ด ์คํจํ๋ฉด ์ ์ฒด ํธ๋์ญ์ ์ด ๋กค๋ฐฑ๋์ด ๋ฐ์ดํฐ ๋ถ์ผ์น ์ํ๊ฐ ๋ฐ์ํ์ง ์์ต๋๋ค. ์๋ณธ ์ฝ๋๋ ์ฌ๋ฐ๋ฅธ ํธ๋์ญ์ ์ฒ๋ฆฌ๋ฅผ ์ด๋ฏธ ๊ฐ์ถ๊ณ ์์ต๋๋ค.Likely an incorrect or invalid review comment.
src/main/kotlin/com/dcd/server/presentation/domain/application/data/exetension/ApplicationRequestDataExtension.kt (2)
22-22: LGTM!CreateApplicationRequest์์ initialScripts ํ๋๋ฅผ DTO๋ก ์ ํํ๊ฒ ๋งคํํ๊ณ ์์ต๋๋ค.
33-34: LGTM!UpdateApplicationRequest์์ port์ initialScripts ํ๋๋ฅผ DTO๋ก ์ ํํ๊ฒ ๋งคํํ๊ณ ์์ต๋๋ค.
src/test/kotlin/com/dcd/server/core/domain/application/usecase/UpdateApplicationUseCaseTest.kt (3)
10-10: LGTM!QueryApplicationInitialScriptPort ์์กด์ฑ์ ์ ์ ํ๊ฒ ์ถ๊ฐํ์ฌ ์ด๊ธฐํ ์คํฌ๋ฆฝํธ ๊ฒ์ฆ์ ์ง์ํฉ๋๋ค.
Also applies to: 34-34
41-41: LGTM!ํ ์คํธ ๋ฐ์ดํฐ์ port์ initialScripts ํ๋๋ฅผ ์ถ๊ฐํ์ฌ ์ค์ ์ฌ์ฉ ์๋๋ฆฌ์ค๋ฅผ ๋ฐ์ํ๊ณ ์์ต๋๋ค.
66-71: LGTM!์ด๊ธฐํ ์คํฌ๋ฆฝํธ์ ๊ฐ์์ ๋ด์ฉ์ ๋ชจ๋ ๊ฒ์ฆํ๋ ๋ช ํํ ํ ์คํธ ์ผ์ด์ค์ ๋๋ค. ๊ฒ์ฆ ๋ก์ง์ด ์ ์ ํฉ๋๋ค.
src/main/kotlin/com/dcd/server/core/domain/application/service/impl/InitialScriptServiceImpl.kt (2)
22-22: LGTM!
UUID.randomUUID()๋ฅผ ์ฌ์ฉํ ID ์์ฑ ๋ฐฉ์์ ํ๋ก์ ํธ์ ๊ธฐ์กด ํจํด๊ณผ ์ผ์นํฉ๋๋ค. Based on learnings
14-28: ๊ฒ์ฆ ์๋ฃ: ์๋๋ ๋์์ ๋๋ค
initialScripts๊ฐ ๋น ๋ฆฌ์คํธ์ธ ๊ฒฝ์ฐ์ ๋์์ ํ์ธํ์ต๋๋ค:
๊ตฌํ ๋ถ์:
ApplicationInitialScriptPersistenceAdapter.saveAll()์ Spring Data JPA์ ์์ํ๋ฉฐ, ๋น ๋ฆฌ์คํธ๋ ์ ์ฅ ์์ ์์ (no-op)์ค์ ๋์:
deleteByApplication()์คํ โsaveAll([])์คํ โ ๋ชจ๋ ๊ธฐ์กด ์คํฌ๋ฆฝํธ ์ญ์ , ์ ์คํฌ๋ฆฝํธ ์์ํ ์คํธ ์ฆ๊ฑฐ:
CreateApplicationUseCaseTest(lines 62, 89, 112, 151)UpdateApplicationUseCaseTest(line 41+)ApplicationWebAdapterTest(lines 42, 161)์ ํ ์คํธ๋ค์์
emptyList()๋ฅผ ์ฌ์ฉํ์ฌ ์ ์ ๋์ ๊ฒ์ฆ๋จ์ค๊ณ ํจํด: "์ญ์ ํ ์ ์ฅ" ํจํด์ผ๋ก ๊ธฐ์กด ์คํฌ๋ฆฝํธ๋ฅผ ์์ ํ ๊ต์ฒดํ๋ ์๋๋ ์ค๊ณ์ ๋๋ค.
src/test/kotlin/com/dcd/server/core/domain/application/usecase/CreateApplicationUseCaseTest.kt (3)
8-8: LGTM!QueryApplicationInitialScriptPort ์์กด์ฑ์ ์ ์ ํ๊ฒ ์ถ๊ฐํ์ฌ ์ด๊ธฐํ ์คํฌ๋ฆฝํธ ๊ฒ์ฆ์ ์ง์ํฉ๋๋ค.
Also applies to: 38-38
62-62: LGTM!๊ธฐ์กด ํ ์คํธ ์ผ์ด์ค๋ค์ ๋น initialScripts ๋ฆฌ์คํธ๋ฅผ ์ถ๊ฐํ์ฌ ํ์ ํธํ์ฑ์ ์ ์งํ๊ณ ์์ต๋๋ค.
Also applies to: 89-89, 112-112, 151-151
175-197: LGTM!์ด๊ธฐํ ์คํฌ๋ฆฝํธ๊ฐ ์๋ ๊ฒฝ์ฐ๋ฅผ ๋ช ์์ ์ผ๋ก ํ ์คํธํ๋ ์ผ์ด์ค๊ฐ ์ ์์ฑ๋์์ต๋๋ค. ์คํฌ๋ฆฝํธ์ ๊ฐ์์ ๋ด์ฉ์ ๋ชจ๋ ๊ฒ์ฆํ๊ณ ์์ด ํ ์คํธ ์ปค๋ฒ๋ฆฌ์ง๊ฐ ์ถฉ๋ถํฉ๋๋ค.
๊ฐ์
์์ ๋ด์ฉ
์ฒดํฌ๋ฆฌ์คํธ
Summary by CodeRabbit
๋ฆด๋ฆฌ์ค ๋ ธํธ
New Features
Bug Fixes / Data
Tests