Upgrade to Pro — share decks privately, control downloads, hide ads and more …

10년 개발한 프로젝트. 애자일 업무 조직에서 모듈화 했던 경험을 공유합니다.

Winter
March 01, 2025

10년 개발한 프로젝트. 애자일 업무 조직에서 모듈화 했던 경험을 공유합니다.

MVL. TADA 는 라이드 헤일링, 모빌리티 서비스입니다.

이 프로젝트의 최초 커밋은 2015 년으로, 현재 10년 째 개발중인 프로젝트입니다.

싱가폴, 태국, 베트남, 캄보디아, 홍콩에서 운영되고 있습니다.

운영 국가는 매년 늘어가는 추세이며,

효율적인 개발 환경을 위해 모듈화를 했던 과정과 경험을 공유하는 발표입니다.

Winter

March 01, 2025
Tweet

Other Decks in Programming

Transcript

  1. Korea Android 10֙ ѐߊೠ ೐۽ં౟ গ੗ੌ সޖ ઑ૒ীࢲ ݽٕച ೮؍

    ҃೷ਸ ҕਬ೤פ׮ Seonghun Kim TADA, MVL Korea Android super.init(version=6)
  2. ݽٕചח ೞա੄ ௾ ೐۽Ӓ۔ਸ ৈ۞ ѐ੄ ة݀੸ੋ ೞਤ ݽٕ۽ ա־ח

    Ѫ উ٘۽੉٘ীࢲ ৈ۞ Gradle ݽٕ੉ ੓ח ೐۽ં౟ܳ ݣ౭ ݽٕ ೐۽ં౟ۄҊ ೤פ׮ ೞա੄ ௾ ೐۽ં౟ (ݽ֥ܻ౮ ೐۽ં౟) ݣ౭ ݽٕ ೐۽ં౟ https://developer.android.com/topic/modularization?what-is-modularization#what-is-modularization ݽٕച ੄޷ ੿੄৬ উ٘۽੉٘ ইఃఫ୊
  3. അ؀ ݽٕച੄ ӝ߈੉ ػ ইఃఫ୊ о੉٘ উ٘۽੉٘ ҕध ইఃఫ୊ о੉٘ী

    ٮܰݶ ௾ ҙ੼ীࢲ UI ۨ੉য, Data ۨ੉য ܻ࠙ ੘সਸ ӂ੢ೣ Domain਷ ࢶఖ ࢎ೦ https://developer.android.com/topic/architecture ݽٕച ੄޷ ੿੄৬ উ٘۽੉٘ ইఃఫ୊
  4. ݽٕചܳ ೞח ੉ਬ ૐоೞח ࠁੌ۞ ೒ۨ੉౟, ௏٘ ߬੉झ दр੉ ૑աݶ

    Ѣ؀ೠ ঵൨੉ ٜ݅য૗ ഛ੢ࢿ, оةࢿ੉ աࡅ૑Ҋ ੹߈੸ੋ ௏٘ ಿ૕੉ ڄয૕ ࣻ ੓णפ׮ தࠁ٣ই కҴ ߬౟թ TADA о ਍৔غח ૑৉ ഘ௖ new यоನܰ
  5. ݽٕചܳ ೞח ੉ਬ TADAח ੼੼ ഛ੢غח ࢲ࠺झ ૑৉ 10֙ р

    ऺੋ ௏٘ ߬੉झ 10֙ ੹੄ ѐߊ ߑधࠗఠ അ؀ ইఃఫ୊ ੸ਊী ੉ܰӝө૑ ׮নೠ ௏٘о ঵൦ ೐۽ં౟৓णפ׮ यоಫ தࠁ٣ই కҴ ߬౟թ TADA о ਍৔غח ૑৉ ഘ௖
  6. ݽٕചܳ ೞח ੉ਬ TADA জ ؀ӏݽ ѐಞ ੘স द੘ Revamp

    ೐۽ં౟۽ டೣ यӖ ݫੋ ಕ੉૑ ীࢲ ߄థ ֎࠺ѱ੉࣌ਵ۽ ҳઑ ߸҃
  7. ݽٕചܳ ೞח ੉ਬ TADA জ ؀ӏݽ ѐಞ ੘স द੘ Revamp

    ೐۽ં౟۽ டೣ यӖ ݫੋ ಕ੉૑ ীࢲ ߄థ ֎࠺ѱ੉࣌ਵ۽ ҳઑ ߸҃
  8. ݽٕച ҅ദ झ೐ܽ౟׼ 2઱ সޖ ૓೯ ੉ ӝр੄ ౣ উীࢲ

    ѐߊ, ݽٕച ੘স Ѿҗޛ੉ ೙ਃ ࢸ҅ ৮ࢿ ݾ಴ܳ ੿ೞҊ झ೐ܽ౟ ݃׮ ݽٕച ੘সਸ V1, V2... ੘স ݺਵ۽ டೣ
  9. ݽٕച V1 ੘স BuildConfig ա־ӝ https://developer.android.com/build/dependencies#dependency_configurations ف ѐ੄ BuildConfig ݽٕਸ

    ٜ݅঻णפ׮ build-config: पઁ чҗ ݽٚ Flavor чਸ о૑Ҋ ੓ח ݽٕ build-config-stub: о૞ чਸ о૑Ҋ ੓Ҋ, Flavor ੿ࠁب হח ݽٕ
  10. पઁ ч, ݽٚ Flavor ੿ࠁܳ о૑Ҋ ੓ח :build-config ః ч਷

    زੌೞ૑݅ о૞ ч (stub) ਸ о૑Ҋ ੓ח :build-config-stub ƀ https://developer.android.com/build/dependencies#dependency_configurations ݽٕച V1 ੘স BuildConfig ա־ӝ ƀ ƀ ƀ
  11. ݽٕച V1 ੘স Resource ա־ӝ https://developer.android.com/build/optimize-your-build#use-non-transitive-r-classes ఫझ౟, ੉޷૑ ١ জ

    ղ ݽٚ ܻࣗझ ౵ੌਸ :resource ݽٕ۽ ৤ӝӝ ܻࣗझܳ ೠ ݽٕীࢲ ة੼ ҙܻೞݶ? - ઺ࠂ ܻࣗझ ࢎਊ ߑ૑ - ױੌ R ௿ېझ import ఃਕ٘ ࢎਊ оמ - ࠽٘ ࣘبী ੉ٙ੉ ؼ ࣻ ੓਺ import com.example.app.R ݽٚ ݽٕীࢲ э਷ ܻࣗझ import ఃਕ٘ܳ ࢎਊೡ ࣻ ੓਺
  12. ݽٕച V1 ੘স Model ա־ӝ Data ҅கਸ ܻ࠙ೞӝ ਤ೧ ೧׼

    ҅கীࢲ ଵઑغח ݽ؛ਸ ਋ࢶ ࣽਤ۽ :model ݽٕ۽ ৤ӝӝ ੄৻۽ ݽٚ ݽٕച ੘স઺ о੢ ൨ٜ঻؍ ױ҅৓णפ׮ ف ߣ ૩ द۲਷ ؘ੉ఠ ۨ੉যীࢲ...
  13. ݽٕച V1 ੘স ੿ܻ ୐ ߣ ૩ झ೐ܽ౟ীࢲ ৮ࢿೠ v1

    ࢸ҅੄ ݽٕ ҳࢿ - ੗ܐ ܻࢲட - ۨ੉য٘ ইఃఫ୊۽ ௾ Ӓܿ Ӓܻӝ - V1 ࢸ҅ ݾ಴ ੿ܻ BuildConfig, Resource, Data Model п ݽٕ۽ ة݀ दఃӝ
  14. ݽٕച V2 ੘স ࠄѺ੸ੋ Revamp ѐߊ ೐۽ં౟ܳ द੘ೞח झ೐ܽ౟ ই૒

    UI ۨ੉যܳ ݽٕ۽ աׂ ࣻ হח ࢚క చ ߹ ചݶҗ ߬੉झ ചݶө૑ ୨ 6౵౟۽ ա׋ ੘স ࢎ੹ ࢸ҅ࠗఠ ૓೯ೞҊ ౱ਗٜҗ ܻ࠭ೣ
  15. ݽٕച V2 ੘স ࢎ੹ ࢸ҅ https://developer.android.com/topic/modularization#benefits п ҳഅ੄ ੘স ҕр੉

    ة݀ غݶࢲ ؊ ױࣽೠ ௏٘ܳ ਬ૑ೡ ࣻ ੓णפ׮ ੗োझۣѱ ݽٕ݃׮ ੹ޙ ੘স੗, ଼੐х ഋࢿਸ ӝ؀ೡ ࣻ ੓णפ׮
  16. ݽٕച V2 ੘স https://developer.android.com/topic/modularization/patterns#cohesion-coupling ࢸ҅ ߑೱ ࢸ੿ - ֫਷ Ѿ೤ࢿ

    ױࣽೣ - ծ਷ Ѿ೤ࢿ ࠂ੟ೣ TADA ח ӝઓ੄ ֫਷ Ѿ೤ࢿ ജ҃੄ ࠛಞೣਸ ೧ࣗೞӝ ਤ೧ ݽٕചܳ Ѿ੿೮णפ׮ ૊ ծ਷ Ѿ೤ࢿ ਵ۽ ࢸ҅ ߑೱਸ Ѿ੿!
  17. https://developer.android.com/topic/modularization/patterns#how_to_implement ೠ ҙबࢎ੄ ݽٕਸ api, impl ݽٕ۽ ա׈णפ׮ :api ݽٕ

    ҕѐ ݽٕ - interface ৬ ৻ࠗ ҕѐ model ਸ ࢶ঱ೞח ݽٕ :impl ݽٕ ࠺ҕѐ ݽٕ - interface ۽ ҳഅ ௏٘ܳ ੘ࢿೞח ݽٕ ݽٕച V2 ੘স Data layer ա־ӝ
  18. new ݽٕച V3 ੘স о੢ рױ೧ࢲ, एযщ؍ ౵౟ ӝઓ ࢸ҅؀۽

    UI ۨ੉যܳ ܻ࠙ ੌࠗ ࠺ૉפझ ۽૒਷ Domain ۨ੉য۽ ܻ࠙ ׮਺ ಕ੉૑ী ߄۽ ৮ࢿػ ҳઑо ҕѐؾפ׮
  19. ConventionPlugin: https://www.youtube.com/watch?v=7iag6zpGd98 navigator: https://developer.android.com/guide/navigation/integrations/multi-module new new ݽٕച V3 ੘স ୒ࢎ૓

    ݽٕച ੘স੄ ৮ࢿػ ҳઑੑפ׮ ҃೷׸ਸ ؊ ੗ࣁ൤ ׮ܖҊ रযࢲ ࢎप ݆਷ ղਊ੉ ࢤۚ غ঻חؘਃ Navigator ৬ Convention Plugin ੗ܐח ؀୓ ݂௼ܳ ୎ࠗ٘݀פ׮
  20. ਋ܻ੄ ݽٕച ҃೷ਸ ಴അೠ Ӓې೐ ੑפ׮ द੘਷ ࢸۨ੐੄ ੿੼ ೞ૑݅

    җ੿਷ ൨ٜ঻णפ׮ п੗ ѻ਷ ۞׬ழ࠳о ׳ۋҊ ੸਽ೡ दр੉ ೙ਃ೮णפ׮ ࣻ ѐਘ੉ ૑դ അ੤ ਋ܻח ؊ ա਷ ݽٕച ҳઑܳ ਤ೧ ৈ۞ ֤੄ܳ ೞҊ੓णפ׮ (উ੿ ױ҅) ݽٕച ഥҊ
  21. ഥࢎীࢲ ݽٕചܳ ೞӝ੹ী Ҋ۰ೡ Ѫ 1 ݠन ࢎন ࢸ҅ ߑೱ

    ࢸ੿ - ֫਷ Ѿ೤ࢿ ױࣽೣ - ծ਷ Ѿ೤ࢿ ࠂ੟ೣ ݽٕ ࣻо ݆ই૕ࣻ۾ ࠽٘ݠन ࢎন ૐо ߓನܳ ਤೠ CI ࠽٘ ӝળ, ಣӐ RAM 23 GB ࢎਊ઺ (ݽٕ ࣻ ড 140ѐ ӝળ) ࠽٘ ജ҃ীࢲ ࢎਊೞח RAM 16GB ࢎਊ੗ח ݽٕ ӏݽ ഛ੢ী ઁೠ੸੐ द੘਷ ױࣽೠ ҳઑ۽ ੽ӔೞҊ ܻࣗझ ࢎਊ ૐо۝ਸ ੜ ҙ଴ ೧ࠅѪ
  22. ծ਷ Ѿ೤ࢿ ୡ߈ী য়൤۰ ߣѢ܂Ҋ ࠛಞೣ. ࢤ࢑ࢿী ૑੢੉ ੓ਸࣻ ੓਺.

    ௏٘р੄ ঵൨੉ ୭ࣗച غӝ ٸޙী ੢ӝ੸ਵ۽ ௏٘ Ү୓, সؘ੉౟ী ਬܻೣ ഥࢎীࢲ ݽٕചܳ ೞӝ੹ী Ҋ۰ೡ Ѫ 2 ಞ੄ࢿ ֫਷ Ѿ೤ࢿ ૊п੸ੋ ಞ੄ࢿ ੢ӝ੸ਵ۽ ௏٘ Ѿ೤ ߊࢤ https://developer.android.com/topic/modularization/patterns
  23. ഥࢎীࢲ ݽٕചܳ ೞӝ੹ী Ҋ۰ೡ Ѫ 3 ࢿҗ۽ ಣо߉ӝ ഥࢎਗਵ۽ࢲ সޖ

    ࢿҗܳ ಣо ߉חѤ ઺ਃ೤פ׮. જ਷ ѐߊ ജ҃ਸ ٜ݅ӝ ਤ೧ ৌब൤ ੘সೠ ݽٕച. ѐߊ੗੄ જ਷ ࢿҗ۽ ಣо ߉ਸࣻ ੓যਃ. ೞ૑݅ Ӓۧ૑ ঋ਷ ઑ૒ب ੓ѷભ. ಣࣗী ೞ؍ ੿ӏ সޖীࢲ ؊ જ਷ ಣоܳ ߉ਸࣻب ੓णפ׮. ݽٕച ੘স੉ ࢿҗ۽ ಣоؼ ࣻ ੓ѱ ౱ਗٜ, ઑ૒੢җ അ੤੄ ࠛಞೣী ؀ೠ ҕх؀ܳ ഋࢿೞҊ ݽٕച ੘স੄ ੢ӝ੸ о஖ܳ ࢸݺ೧઱ࣁਃ. (ӝࣿ ࠗ଻ хࣗ, ௏٘ ױࣽച۽ ੘স ࣘب ೱ࢚, ߡӒ хࣗਯ ١)
  24. ౱ਗٜ੉ ߄Ո ѐߊ ߑधਸ ੉೧ೞҊ ੸਽ਸ ب਋ח Ѫө૑ ݽٕച ੘স੗о

    ೧ঠؼ ੌੑפ׮. ݽٕਸ աׇࢲ ௏٘ܳ ؊ ױࣽೞѱ ҙܻೠ׮੄ ੉੼ ࠁ׮ ؊ ࠂ੟ೞҊ ࠛಞೞѱ ו՜ࣻ ੓णפ׮. - ۞׬ழ࠳ ੉ग۽ ൨ٜয ೞח ౱ਗ - ੉೧ח ೮૑݅ Modular ѐߊ ߑधী ੸਽ೞוۄ ൨ٚ ౱ਗ п੗ ׮নೠ ੉ਬ۽ ۞׬ழ࠳৬ ࠛಞਸ ѻҊ ੓ਸ ഛܫ੉ ֫णפ׮. ੸ӓ੸ਵ۽ աࢲࢲ ޙઁܳ ૓ױೞҊ ب৬઱ࣁਃ. ഥࢎীࢲ ݽٕചܳ ೞӝ੹ী Ҋ۰ೡ Ѫ 4 ۞׬ ழ࠳
  25. хࢎ೤פ׮ Korea Android super.init(version=6) 10֙ ѐߊೠ ೐۽ં౟. গ੗ੌ সޖ ઑ૒ীࢲ

    ݽٕച ೮؍ ҃೷ਸ ҕਬ೤פ׮. ӣࢿള linkedin.com/in/sam-winter-h ݽٕച ೒ې׬ җ੿ਸ ੿ܻೠ ച੉౟ࠁ٘ ࠁ۞оӝ (QR) github.com/winter-love-dev