Skip to content

Latest commit

ย 

History

History
113 lines (98 loc) ยท 11 KB

DOMAIN_MODULE.md

File metadata and controls

113 lines (98 loc) ยท 11 KB

๊ณต์œ  ๋„๋ฉ”์ธ ๋ชจ๋“ˆ (honeyrest-domain)

์‚ฌ์šฉ์ž API(์ด ์ €์žฅ์†Œ)์™€ ํ˜ธ์ŠคํŠธ ๊ด€๋ฆฌ์ž ์•ฑ(honeyRest_host)์€ ํ•˜๋‚˜์˜ MySQL ์Šคํ‚ค๋งˆ๋ฅผ ๊ณต์œ ํ•˜๋ฉด์„œ๋„ JPA ์—”ํ‹ฐํ‹ฐ๋ฅผ ๊ฐ์ž ๋ณต์‚ฌํ•ด ์จ ์™”๋‹ค. ์‚ฌ๋ณธ์€ ์‹œ๊ฐ„์ด ์ง€๋‚˜๋ฉฐ ์กฐ๊ธˆ์”ฉ ๋‹ฌ๋ผ์กŒ๋‹ค(ํ•„๋“œ๋ช…, ์ •๋ฐ€๋„, ๋„๋ฉ”์ธ ๋ฉ”์„œ๋“œ, ์ธ๋ฑ์Šค ์„ ์–ธ). ์ด ๋ฌธ์„œ๋Š” ๋‘ ์‚ฌ๋ณธ์„ ํ•˜๋‚˜์˜ ๋ชจ๋“ˆ๋กœ ํ•ฉ์น˜๋ฉด์„œ ์—”ํ‹ฐํ‹ฐ๋งˆ๋‹ค ๋ฌด์—‡์ด ๋‹ฌ๋ž๊ณ  ์–ด๋–ป๊ฒŒ ์ •ํ–ˆ๋Š”์ง€๋ฅผ ๊ธฐ๋กํ•œ๋‹ค.

  • ๊ธฐ์ค€(truth): Flyway V1~V11(src/main/resources/db/migration) + DB_SCHEMA.md. ์ปฌ๋Ÿผ์€ ๋ฐ”๊พธ์ง€ ์•Š์•˜๋‹ค(์ƒˆ ๋งˆ์ด๊ทธ๋ ˆ์ด์…˜ ์—†์Œ).
  • ์›์น™
    1. ์Šคํ‚ค๋งˆ์— ์žˆ๋Š” ์ปฌ๋Ÿผ์ด๋ฉด ์–ด๋А ํ•œ์ชฝ์—๋งŒ ๋งคํ•‘๋ผ ์žˆ์–ด๋„ ๊ณต์œ  ์—”ํ‹ฐํ‹ฐ์— ๋„ฃ๋Š”๋‹ค.
    2. ํ•œ์ชฝ์—๋งŒ ์žˆ๋Š” ๋„๋ฉ”์ธ ๋ฉ”์„œ๋“œ๋Š” ๋ชจ๋‘ ๊ณต์œ  ํด๋ž˜์Šค์— ๋‚จ๊ธด๋‹ค(์‚ญ์ œํ•˜์ง€ ์•Š์Œ).
    3. ์ด๋ฆ„์ด ๋‹ค๋ฅด๋ฉด ์ปฌ๋Ÿผ๋ช…๊ณผ ๋งž๋Š” ์ด๋ฆ„์„ ๊ณ ๋ฅด๊ณ  ๋‘ ์•ฑ์˜ ์‚ฌ์šฉ์ฒ˜๋ฅผ ๊ณ ์นœ๋‹ค.
    4. ํ•œ ์•ฑ๋งŒ ์“ฐ๊ณ  ์•„๋ฌด ์—”ํ‹ฐํ‹ฐ๋„ ์ฐธ์กฐํ•˜์ง€ ์•Š๋Š” ์—”ํ‹ฐํ‹ฐ๋Š” ๊ทธ ์•ฑ์— ๋‚จ๊ธด๋‹ค(ErrorLog โ†’ ํ˜ธ์ŠคํŠธ).

1. ๊ตฌ์„ฑ

honeyRest_user/                               (๋ฃจํŠธ ํ”„๋กœ์ ํŠธ = ์‚ฌ์šฉ์ž API. ๊ธฐ์กด ์œ„์น˜ ๊ทธ๋Œ€๋กœ)
โ”œโ”€โ”€ settings.gradle                           include 'honeyrest-domain'
โ”œโ”€โ”€ build.gradle                              implementation project(':honeyrest-domain')
โ”œโ”€โ”€ honeyrest-domain/
โ”‚   โ”œโ”€โ”€ build.gradle                          java-library, group com.honeyrest
โ”‚   โ””โ”€โ”€ src/main/java/com/honeyrest/domain/
โ”‚       โ”œโ”€โ”€ entity/   ์—”ํ‹ฐํ‹ฐ 30๊ฐœ + BaseEntity + ReservationChanges(์ธํ„ฐํŽ˜์ด์Šค)
โ”‚       โ””โ”€โ”€ type/     ReservationStatus, BannerPosition
โ””โ”€โ”€ src/main/resources/db/migration/          Flyway V1~V12 (API ๋ชจ๋“ˆ์— ๋‚จ์Œ)

honeyRest_host/
โ”œโ”€โ”€ .gitmodules                               libs/honeyrest-user โ†’ Seongwonp/honeyRest_user (branch main)
โ”œโ”€โ”€ settings.gradle                           includeBuild('libs/honeyrest-user') + substitute com.honeyrest:honeyrest-domain
โ”œโ”€โ”€ build.gradle                              implementation 'com.honeyrest:honeyrest-domain'
โ””โ”€โ”€ src/main/java/com/honeyrest/honeyrest_host/entity/ErrorLog.java   (ํ˜ธ์ŠคํŠธ ์ „์šฉ ์—”ํ‹ฐํ‹ฐ๋งŒ ๋‚จ์Œ)
  • ๋ ˆ์ด์•„์›ƒ ์„ ํƒ: ์‚ฌ์šฉ์ž API๋ฅผ honeyrest-api/ ๋กœ ์˜ฎ๊ธฐ์ง€ ์•Š๊ณ  ๋ฃจํŠธ์— ๋‘” ์ฑ„ honeyrest-domain/ ์„œ๋ธŒํ”„๋กœ์ ํŠธ๋งŒ ์ถ”๊ฐ€ํ–ˆ๋‹ค. ์†Œ์Šคยท๋ฆฌ์†Œ์ŠคยทCIยทREADME ๋งํฌยทIDE ์„ค์ • ๊ฒฝ๋กœ๊ฐ€ ๋ชจ๋‘ ๊ทธ๋Œ€๋กœ๋ผ ๋ณ€๊ฒฝ์ด ๊ฐ€์žฅ ์ž‘๊ณ , ํ˜ธ์ŠคํŠธ๋Š” composite build ์˜ project(':honeyrest-domain') ์น˜ํ™˜์œผ๋กœ ์ด ๋ชจ๋“ˆ๋งŒ ๊น”๋”ํ•˜๊ฒŒ ๊ฐ€์ ธ๊ฐˆ ์ˆ˜ ์žˆ๋‹ค(๋ฃจํŠธ ์•ฑ ํ”„๋กœ์ ํŠธ๋Š” ๊ตฌ์„ฑ๋งŒ ๋˜๊ณ  ๋นŒ๋“œ๋˜์ง€ ์•Š๋Š”๋‹ค).
  • ์˜์กด์„ฑ: jakarta.persistence-api(api), Lombok, hibernate-core(compileOnly โ€” @CreationTimestamp/@UpdateTimestamp), querydsl-apt/querydsl-core(compileOnly โ€” ์‚ฌ์šฉ์ž API ์˜ QueryDSL ๋ฆฌํฌ์ง€ํ† ๋ฆฌ๊ฐ€ ์“ฐ๋Š” QReservation ๋“ฑ Q ํƒ€์ž…์„ ์—”ํ‹ฐํ‹ฐ์™€ ๊ฐ™์€ ํŒจํ‚ค์ง€์— ์ƒ์„ฑ). Spring ์˜์กด์„ฑ, ์„œ๋น„์Šค/๋ฆฌํฌ์ง€ํ† ๋ฆฌ๋Š” ์—†๋‹ค.
  • ์Šค์บ”: ๋‘ ์•ฑ ๋ชจ๋‘ @EntityScan ์„ ๋ช…์‹œํ•œ๋‹ค. ์‚ฌ์šฉ์ž API @EntityScan("com.honeyrest.domain"), ํ˜ธ์ŠคํŠธ @EntityScan({"com.honeyrest.domain", "com.honeyrest.honeyrest_host.entity"})(ErrorLog ํฌํ•จ).
  • ํ…Œ์ŠคํŠธ: honeyrest-domain/src/test ์— DBยทSpring ์—†๋Š” ๋‹จ์œ„ ํ…Œ์ŠคํŠธ 6๊ฐœ(ReservationStatus, Reservation ๋„๋ฉ”์ธ ๋ฉ”์„œ๋“œ).

2. ์—”ํ‹ฐํ‹ฐ๋ณ„ ํ†ตํ•ฉ ๊ฒฐ๊ณผ

"๋™์ผ"์€ ๋‘ ์‚ฌ๋ณธ์˜ ๋งคํ•‘ยท๋ฉ”์„œ๋“œ๊ฐ€ ๊ฐ™์•„ ํŒจํ‚ค์ง€๋งŒ ์˜ฎ๊ธด ๊ฒฝ์šฐ๋‹ค. ์ธ๋ฑ์Šค(@Index)๋Š” ์‚ฌ์šฉ์ž ์‚ฌ๋ณธ์—๋งŒ ์„ ์–ธ๋ผ ์žˆ์—ˆ๊ณ  ๊ณต์œ  ์—”ํ‹ฐํ‹ฐ์— ๊ทธ๋Œ€๋กœ ๋‘์—ˆ๋‹ค (์šด์˜์€ Flyway ๊ฐ€ ์Šคํ‚ค๋งˆ๋ฅผ ๋งŒ๋“ค๊ณ  validate ๋Š” ์ธ๋ฑ์Šค๋ฅผ ๊ฒ€์‚ฌํ•˜์ง€ ์•Š์œผ๋ฏ€๋กœ, H2 create-drop ํ…Œ์ŠคํŠธ ์Šคํ‚ค๋งˆ์—๋งŒ ์˜ํ–ฅ).

# ์—”ํ‹ฐํ‹ฐ (ํ…Œ์ด๋ธ”) ์‚ฌ์šฉ์ž ์‚ฌ๋ณธ ํ˜ธ์ŠคํŠธ ์‚ฌ๋ณธ ๊ณต์œ  ์—”ํ‹ฐํ‹ฐ ๊ฒฐ์ •
1 Accommodation (accommodation) updateRating() ๋ณด์œ  ๋ฉ”์„œ๋“œ ์—†์Œ ๋งคํ•‘ ๋™์ผ. updateRating() ์œ ์ง€. ๋ฏธ์‚ฌ์šฉ java.sql.Time import ์ œ๊ฑฐ
2 AccommodationCategory โ€” โ€” ๋™์ผ
3 AccommodationImage โ€” โ€” ๋™์ผ
4 AccommodationRequestMap ํ•„๋“œ RequestMapId(๋Œ€๋ฌธ์ž) ๋™์ผ ํ•„๋“œ๋ช… requestMapId ๋กœ ์ •์ •. getter(getRequestMapId)๋Š” ๊ทธ๋Œ€๋กœ, ๋นŒ๋” ๋ฉ”์„œ๋“œ๋งŒ .requestMapId() (์‚ฌ์šฉ์ฒ˜ ์—†์Œ)
5 AccommodationTag iconName icon (๋‘˜ ๋‹ค ์ปฌ๋Ÿผ icon_name) iconName ์ฑ„ํƒ(์ปฌ๋Ÿผ๋ช…๊ณผ ์ผ์น˜). ํ˜ธ์ŠคํŠธ ์ฝ”๋“œยทํ…œํ”Œ๋ฆฟ์— icon ์‚ฌ์šฉ์ฒ˜ ์—†์Œ
6 AccommodationTagMap โ€” โ€” ๋™์ผ
7 Banner entity.BannerPosition entity.enums.BannerPosition ๋งคํ•‘ ๋™์ผ. BannerPosition ์€ Banner ๊ฐ€ ์ฐธ์กฐํ•˜๋ฏ€๋กœ com.honeyrest.domain.type ์œผ๋กœ ์ด๋™
8 BaseEntity (MappedSuperclass) Spring AuditingEntityListener (@CreatedDate/@LastModifiedDate), ์ปฌ๋Ÿผ๋ช… ์•”๋ฌต ๊ฐ™์€ ๋ฆฌ์Šค๋„ˆ + @PrePersist/@PreUpdate ํด๋ฐฑ, ์ปฌ๋Ÿผ๋ช… ๋ช…์‹œ Hibernate @CreationTimestamp/@UpdateTimestamp + ์ปฌ๋Ÿผ๋ช… ๋ช…์‹œ(created_at, updated_at). ๊ณต์œ  ๋ชจ๋“ˆ์„ Spring ๋ฌด์˜์กด์œผ๋กœ ๋‘๊ธฐ ์œ„ํ•จ. INSERT ์‹œ ๋‘˜ ๋‹ค, UPDATE ์‹œ updated_at ๊ฐฑ์‹ ์œผ๋กœ ๊ฒฐ๊ณผ ๋™์ผ
9 CancellationPolicy detail = TEXT detail = JSON TEXT (V6 ์Šคํ‚ค๋งˆ ๊ธฐ์ค€)
10 Company โ€” โ€” ๋™์ผ
11 Coupon maxOrderAmount maxDiscountAmount (์ปฌ๋Ÿผ max_discount_amount) maxDiscountAmount ์ฑ„ํƒ. ์‚ฌ์šฉ์ž PaymentOrchestrationService, CouponService ํ˜ธ์ถœ๋ถ€ ์ˆ˜์ •. ํ”„๋ก ํŠธ ๊ณ„์•ฝ์ธ AvailableCouponDTO.maxOrderAmount ํ•„๋“œ๋ช…์€ ์œ ์ง€
12 CouponUsage โ€” @ManyToOne ์— ์ž˜๋ชป ๋ถ™์€ @Enumerated(STRING) ์ž˜๋ชป๋œ @Enumerated ์ œ๊ฑฐ, ๋‚˜๋จธ์ง€ ๋™์ผ
13 EmailVerificationToken pending_email(V8) ๋งคํ•‘, ์ธ๋ฑ์Šค, @PrePersist ์—์„œ ๋งŒ๋ฃŒ +24h pending_email ์—†์Œ, @PrePersist ์—์„œ isVerified=false pendingEmail ํฌํ•จ. @PrePersist ๋Š” createdAtยท๋งŒ๋ฃŒ(+24h) + isVerified ๊ฐ€ null ์ผ ๋•Œ๋งŒ false
14 Event โ€” โ€” ๋™์ผ
15 Inquiry ์ธ๋ฑ์Šค 3๊ฐœ changeTitle/Content/Category/Reply/User/Accommodation() ์ธ๋ฑ์Šค + ํ˜ธ์ŠคํŠธ ๋ณ€๊ฒฝ ๋ฉ”์„œ๋“œ ๋ชจ๋‘ ์œ ์ง€ (changeReply ๋Š” isReplied ๋™๊ธฐํ™”)
16 Notification isRead = false (๋นŒ๋” ๊ธฐ๋ณธ๊ฐ’ ๊ฒฝ๊ณ ) @Builder.Default @Builder.Default ์ฑ„ํƒ
17 PasswordResetToken ์ •์  ํŒฉํ† ๋ฆฌ create() @PrePersist(createdAt, isUsed=false) ๋‘˜ ๋‹ค ์œ ์ง€. @PrePersist ๋Š” ๊ฐ’์ด ๋น„์–ด ์žˆ์„ ๋•Œ๋งŒ ์ฑ„์›€(create() ๊ฐ’ ๋ณด์กด)
18 Payment ์ธ๋ฑ์Šค, @OneToOne(mappedBy) paymentDetail(cascade ALL, orphanRemoval), isCompleted/isCancelled/isTossPayment() ์—†์Œ ๋ชจ๋‘ ์œ ์ง€. ์ปฌ๋Ÿผ ์ถ”๊ฐ€ ์—†์Œ(์—ญ๋ฐฉํ–ฅ ์—ฐ๊ด€). ํ˜ธ์ŠคํŠธ์—๋Š” Payment ์‚ญ์ œ ๊ฒฝ๋กœ๊ฐ€ ์—†์–ด cascade ์˜ํ–ฅ ์—†์Œ
19 PaymentDetail isCardPayment/isVirtualAccountPayment/isInstalledPayment() ์—†์Œ ์œ ์ง€
20 PointHistory ์ธ๋ฑ์Šค 2๊ฐœ โ€” ์ธ๋ฑ์Šค ์œ ์ง€, ๋งคํ•‘ ๋™์ผ
21 PriceCalendar โ€” โ€” ๋™์ผ
22 RefreshToken ์ธ๋ฑ์Šค โ€” ์ธ๋ฑ์Šค ์œ ์ง€, ๋งคํ•‘ ๋™์ผ
23 Region โ€” โ€” ๋™์ผ
24 Reservation ์ธ๋ฑ์Šค 4๊ฐœ, status/cancelReason @Setter, price ์ •๋ฐ€๋„ ๋ˆ„๋ฝ public Long reservationId, price precision=10,scale=2, validateNew()/update(ReservationDTO,โ€ฆ)/cancel() PK ํ•„๋“œ๋ช…์€ ์–‘์ชฝ ๋ชจ๋‘ reservationId ๋ผ ์œ ์ง€ํ•˜๋˜ private ๋กœ(ํ˜ธ์ŠคํŠธ ์ง์ ‘ ํ•„๋“œ ์ ‘๊ทผ ์—†์Œ, JPQL r.reservationId ๊ทธ๋Œ€๋กœ). price ๋Š” DECIMAL(10,2). @Setter + ํ˜ธ์ŠคํŠธ ๋ฉ”์„œ๋“œ ๋ชจ๋‘ ์œ ์ง€. update() ๋Š” ํ˜ธ์ŠคํŠธ DTO ์˜์กด์„ ๋Š๊ธฐ ์œ„ํ•ด ReservationChanges ์ธํ„ฐํŽ˜์ด์Šค๋ฅผ ๋ฐ›๊ฒŒ ๋ฐ”๊พธ๊ณ  ํ˜ธ์ŠคํŠธ ReservationDTO ๊ฐ€ ๊ตฌํ˜„
25 Review rating precision=3,scale=2, updateContent(), likeCount @Setter, ์ธ๋ฑ์Šค rating scale=1 scale=2 (V1 DECIMAL(3,2)). ์‚ฌ์šฉ์ž ๋ฉ”์„œ๋“œ/์„ธํ„ฐ ์œ ์ง€
26 ReviewImage ์ธ๋ฑ์Šค โ€” ์ธ๋ฑ์Šค ์œ ์ง€, ๋งคํ•‘ ๋™์ผ
27 Room โ€” โ€” ๋™์ผ
28 RoomImage โ€” โ€” ๋™์ผ
29 User tokenValidAfter(V9), revokeExistingTokens(), verify/updateEmail/updateProfileโ€ฆ/deleteAccount() isVerified @Builder.Default ๋ชจ๋‘ ์œ ์ง€ + @Builder.Default(๋นŒ๋” ๊ธฐ๋ณธ๊ฐ’์ด null โ†’ false, is_verified NOT NULL)
30 UserCoupon use(), ์ธ๋ฑ์Šค โ€” ์œ ์ง€
31 WishList ์ธ๋ฑ์Šค(user_id, accommodation_id UNIQUE ํฌํ•จ) โ€” ์ธ๋ฑ์Šค ์œ ์ง€, ๋งคํ•‘ ๋™์ผ
32 ErrorLog (error_log, V11) ์—†์Œ ํ˜ธ์ŠคํŠธ ์ „์šฉ ํ˜ธ์ŠคํŠธ์— ๋‚จ๊น€ (com.honeyrest.honeyrest_host.entity). ๋‹ค๋ฅธ ์—”ํ‹ฐํ‹ฐ๊ฐ€ ์ฐธ์กฐํ•˜์ง€ ์•Š์Œ

๊ฐ’ ํƒ€์ž…

ํƒ€์ž… ๊ฒฐ์ •
ReservationStatus ์ƒ์ˆ˜ยทOCCUPYING ์€ ์–‘์ชฝ ๋™์ผ. ํ˜ธ์ŠคํŠธ์˜ ALL, isOccupying(), normalize() ๋ฅผ ํ•ฉ์ณ com.honeyrest.domain.type ์œผ๋กœ ์ด๋™
BannerPosition ๊ฐ’ ๋™์ผ(MAIN_TOP, MAIN_MIDDLE, CATEGORY_TOP). com.honeyrest.domain.type ์œผ๋กœ ์ด๋™
ReservationChanges (์‹ ๊ทœ) Reservation.update() ๋ถ€๋ถ„ ๋ณ€๊ฒฝ ๊ฐ’ ์ธํ„ฐํŽ˜์ด์Šค. null = ๋ณ€๊ฒฝ ์—†์Œ

3. ํŒ๋‹จ์ด ํ•„์š”ํ–ˆ๋˜ ์ 

  • ๊ฐ์‚ฌ(auditing) ๋ฐฉ์‹ ๋ณ€๊ฒฝ: AuditingEntityListener โ†’ Hibernate ํƒ€์ž„์Šคํƒฌํ”„. @CreationTimestamp ๋Š” INSERT ๋•Œ ํ•ญ์ƒ ํ˜„์žฌ ์‹œ๊ฐ์œผ๋กœ ๋ฎ์–ด์“ด๋‹ค (ํ˜ธ์ŠคํŠธ ํด๋ฐฑ์€ ๋ฏธ๋ฆฌ ์ฑ„์šด createdAt ์„ ๋ณด์กดํ–ˆ๋‹ค). ๋‘ ์•ฑ ๋ชจ๋‘ createdAt ์„ ์ง์ ‘ ์ฑ„์›Œ ์ €์žฅํ•˜๋Š” ์ฝ”๋“œ๊ฐ€ ์—†์–ด ๋™์ž‘ ์ฐจ์ด๋Š” ์—†๋‹ค. @EnableJpaAuditing ์€ ๋‘ ์•ฑ์— ๋‚จ์•„ ์žˆ์ง€๋งŒ ๋ฌดํ•ดํ•˜๋‹ค.
  • EmailVerificationToken ๋งŒ๋ฃŒ: ์‚ฌ์šฉ์ž ์‚ฌ๋ณธ๋Œ€๋กœ @PrePersist ์—์„œ ํ•ญ์ƒ +24h ๋กœ ์ •ํ•œ๋‹ค. ํ˜ธ์ŠคํŠธ๋Š” ์ด ํ† ํฐ์„ ๋งŒ๋“ค์ง€ ์•Š๋Š”๋‹ค.
  • AvailableCouponDTO.maxOrderAmount: ์—”ํ‹ฐํ‹ฐ ํ•„๋“œ๋ช…๋งŒ ๋ฐ”๊พธ๊ณ  API ์‘๋‹ต ํ•„๋“œ๋ช…์€ ํ”„๋ก ํŠธ์—”๋“œ ๊ณ„์•ฝ์ด๋ผ ๊ทธ๋Œ€๋กœ ๋‘์—ˆ๋‹ค.
  • QueryDSL Q ํƒ€์ž…: ์—”ํ‹ฐํ‹ฐ๊ฐ€ ๋ชจ๋“ˆ๋กœ ์˜ฎ๊ฒจ๊ฐ€ Q ํƒ€์ž…๋„ honeyrest-domain ์—์„œ ์ƒ์„ฑ๋œ๋‹ค(com.honeyrest.domain.entity.QReservation). ์ €์žฅ์†Œ์— ์ปค๋ฐ‹๋ผ ์žˆ๋˜ ์˜› ํŒจํ‚ค์ง€์˜ Q ํƒ€์ž… ์Šค๋ƒ…์ƒท(src/main/generated/โ€ฆ, ๋นŒ๋“œ์— ์“ฐ์ด์ง€ ์•Š์Œ)์€ ์‚ญ์ œํ–ˆ๋‹ค.
  • ํ˜ธ์ŠคํŠธ entity/ ํด๋”์˜ ๋ ˆ๊ฑฐ์‹œ SQL(accommodation.sql, insert.sql)์€ ์ด๋ฒˆ ๋ฒ”์œ„ ๋ฐ–์ด๋ผ ErrorLog.java ์˜†์— ๊ทธ๋Œ€๋กœ ๋‘์—ˆ๋‹ค.

4. ๋ณ€๊ฒฝ ์ ˆ์ฐจ (์•ž์œผ๋กœ)

  1. ์—”ํ‹ฐํ‹ฐ๋ฅผ ๋ฐ”๊ฟ€ ๋•Œ๋Š” ์ด ์ €์žฅ์†Œ์—์„œ honeyrest-domain ์—”ํ‹ฐํ‹ฐ์™€ Flyway ๋งˆ์ด๊ทธ๋ ˆ์ด์…˜์„ ๊ฐ™์€ ์ปค๋ฐ‹์œผ๋กœ ๋ฐ”๊พผ๋‹ค.
  2. ./gradlew test (๋ฃจํŠธ + :honeyrest-domain) โ†’ ๊ฐ€๋Šฅํ•˜๋ฉด ./gradlew integrationTest(Docker).
  3. ํ˜ธ์ŠคํŠธ ์ €์žฅ์†Œ์—์„œ ์„œ๋ธŒ๋ชจ๋“ˆ์„ ๊ทธ ์ปค๋ฐ‹์œผ๋กœ ์žฌ๊ณ ์ •ํ•œ๋‹ค.
    cd honeyRest_host
    git submodule update --remote libs/honeyrest-user   # ๋˜๋Š”: git -C libs/honeyrest-user checkout <์ปค๋ฐ‹>
    ./gradlew test
    git add libs/honeyrest-user && git commit -m "honeyrest-user ์„œ๋ธŒ๋ชจ๋“ˆ ์žฌ๊ณ ์ •"
  4. ์ปค๋ฐ‹ ์ „ ๋ณ€๊ฒฝ์„ ํ˜ธ์ŠคํŠธ์—์„œ ๋ฐ”๋กœ ํ™•์ธํ•˜๋ ค๋ฉด ๋‘ ์ €์žฅ์†Œ๋ฅผ ๋‚˜๋ž€ํžˆ ๋‘๊ณ  ./gradlew test -PhoneyrestUserDir=../honeyRest_user.