Gradle Multi Module Project - upswp/THXSTORE GitHub Wiki

Gradle Multi Module Project κ΅¬μ„±ν•˜κΈ°

Gradle Multi Module

ν”„λ‘œμ νŠΈλ₯Ό ꡬ성 μ‹œ web, api λ“±μœΌλ‘œ μš©λ„κ°€ λ‹€λ₯Έ ν”„λ‘œμ νŠΈλ₯Ό Gradle Multi Moduleλ₯Ό μ΄μš©ν•΄ κ°œλ°œμ„ μ§„ν–‰ν–ˆμŠ΅λ‹ˆλ‹€.

Gradle Multi Module둜 ν”„λ‘œμ νŠΈλ₯Ό μ§„ν–‰ν•  경우 λ‹€μŒκ³Ό 같은 μž₯점을 κ°€μ§€κ³  μžˆμŠ΅λ‹ˆλ‹€.


1. 각각의 λͺ¨λ“ˆμ—μ„œ κ³΅ν†΅μœΌλ‘œ μ‚¬μš©ν•˜λŠ” dependencies, 클래슀 λΆ„λ¦¬ν•˜μ—¬ common λͺ¨λ“ˆμ—μ„œ κ΄€λ¦¬ν•©λ‹ˆλ‹€. 이λ₯Ό 톡해 각 λͺ¨λ“ˆλ“€μ„ 독립적이고 ν•„μš”ν•œ μ΅œμ†Œν•œμ˜ μ˜μ‘΄μ„±μ„ λΆ€μ—¬ν•˜μ—¬ μž¬μ‚¬μš©κ³Ό μœ μ§€ 보수λ₯Ό μ‰½κ²Œ λ§Œλ“­λ‹ˆλ‹€.

ν™”λ©΄ 캑처 2021-06-13 124042

저희 thx-store ν”„λ‘œμ νŠΈμ—μ„œλŠ” λ‹€μŒκ³Ό 같이 κ³΅λ™μœΌλ‘œ μ‚¬μš©λ˜λŠ” dependencies와 클래슀λ₯Ό κ΄€λ¦¬ν•˜λŠ” 'module-common' λͺ¨λ“ˆμ„ λ§Œλ“€μ–΄ λ‹€λ₯Έ λͺ¨λ“ˆμ—μ„œ κ³΅ν†΅μœΌλ‘œ μ‚¬μš©λ˜λŠ” domain, dto, repository와 μ„€μ •, util 을 λΆ„λ¦¬ν•˜μ˜€μŠ΅λ‹ˆλ‹€.


2. TDDλ°©μ‹μœΌλ‘œ κ°œλ°œμ„ μ§„ν–‰ μ‹œ λͺ¨λ“  ν”„λ‘œμ νŠΈλ₯Ό λΉŒλ“œν•  ν•„μš”μ—†μ΄ ν…ŒμŠ€νŠΈκ°€ ν•„μš”ν•œ λͺ¨λ“ˆλ§Œ λΉŒλ“œλ₯Ό μ§„ν–‰ν•˜μ—¬ λΉŒλ“œμ— ν•„μš”ν•œ μ‹œκ°„μ„ 단좕할 수 μžˆμŠ΅λ‹ˆλ‹€.

ν™”λ©΄ 캑처 2021-06-13 124416

ν…ŒμŠ€νŠΈ 주도 λ°©μ‹μœΌλ‘œ μ§„ν–‰ν•œ 저희 ν”„λ‘œμ νŠΈλŠ” λͺ¨λ“ˆλ³„λ‘œ ν…ŒμŠ€νŠΈλ₯Ό μž‘μ„±ν•˜κ³  ν…ŒμŠ€νŠΈκ°€ ν•„μš”ν•œ λͺ¨λ“ˆλ§Œ λΉŒλ“œλ₯Ό μ§„ν–‰ν•˜μ—¬ ν…ŒμŠ€νŠΈν•  수 μžˆμŠ΅λ‹ˆλ‹€. μ΄λŠ” ν”„λ‘œμ νŠΈμ˜ μœ μ§€λ³΄μˆ˜ μ‹œ 큰 이점이 λœλ‹€κ³  μƒκ°ν•©λ‹ˆλ‹€.


3. THX-store ν”„λ‘œμ νŠΈμ—μ„œλŠ” 개발, 운영의 ν•„μš”μ„±μ— μ˜ν•΄ λͺ¨λ“ˆμ„ λΆ„λ¦¬ν•˜μ˜€μŠ΅λ‹ˆλ‹€.(아직은 λͺ¨λ†€λ¦¬μ‹μž…λ‹ˆλ‹€.) μΆ”ν›„ μ„œλΉ„μŠ€κ°€ ν™•μž₯λ˜μ—ˆμ„ 경우 λ©€ν‹° λͺ¨λ“ˆ 기반이기 λ•Œλ¬Έμ— [μ£Όλ¬Έ μ„œλΉ„μŠ€ - 배달 μ„œλΉ„μŠ€], [κ΅­λ‚΄ μ„œλΉ„μŠ€-ν•΄μ™Έ μ„œλΉ„μŠ€] 와 같은 ν˜•μ‹μœΌλ‘œ MSA둜 μ „ν™˜ν•˜κΈ° μ‰½μŠ΅λ‹ˆλ‹€.

λͺ¨λ“ˆμ˜ λΆ„λ¦¬λŠ” 1. 개발과 μš΄μ˜μ„ μœ„ν•œ 톡합 μ„œλΉ„μŠ€λ₯Ό λΆ„λ¦¬ν•˜λŠ” 것 2. λ‹€μ–‘ν•œ μ„œλΉ„μŠ€λ₯Ό λͺ¨λ“ˆλ‘œ 뢄리해 κ΄€λ¦¬ν•˜λŠ” 것 (MSA) 둜 λ‚˜λˆ μ§‘λ‹ˆλ‹€.

image

THX-store ν”„λ‘œμ νŠΈλŠ” ν˜„μž¬ 1번 방식을 μ‚¬μš©ν•΄ λͺ¨λ†€λ¦¬μ‹ μ„œλΉ„μŠ€ μƒμ—μ„œ λͺ¨λ“ˆμ„ λΆ„λ¦¬ν•˜μ˜€μœΌλ©° μ„œλΉ„μŠ€ ν™•μž₯ μ‹œ API μ„œλ²„λ₯Ό 뢄리λ₯Ό ν†΅ν•œ MSA둜의 μ „ν™˜μ„ κ³ λ €ν•˜κ³  μžˆμŠ΅λ‹ˆλ‹€.

image

곡톡 λͺ¨λ“ˆμ„ κ°€μ§€κ³  있고 Gradle Multi Module둜 κ΅¬μ„±λœ ν™˜κ²½μ€ μ„œλΉ„μŠ€ λ³„λ‘œ λͺ¨λ“ˆμ„ ν™•μž₯ν•˜κ±°λ‚˜ 개발, μš΄μ˜μ„ μœ„ν•œ MSAλ₯Ό ꡬ좕할 λ•Œ μ‰½κ²Œ μ „ν™˜ν•  수 μžˆμŠ΅λ‹ˆλ‹€.


4. λͺ¨λ“ˆμ„ λΆ„λ¦¬ν•˜κ³  μ„œλ²„λ₯Ό λ”°λ‘œ κ΅¬μ„±ν•˜μ—¬ νŠΈλž˜ν”½ 관리λ₯Ό μœ„ν•œ λΆ„μ‚° μ„œλ²„λ₯Ό κ΅¬μΆ•ν•˜κΈ° μ‰½μŠ΅λ‹ˆλ‹€.

image