๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ
๐Ÿ“ฑ| Android/๐Ÿ“˜ | ๊ธฐ๋ก

[Android] Clean Architecture ๊ธฐ๋ก

by immgga 2022. 4. 1.

์˜ค๋Š˜์€ ๋‚ด๊ฐ€ Clean Architecture๋ฅผ ๊ณต๋ถ€ํ•œ ๋‚ด์šฉ์„ ์ •๋ฆฌํ•ด ๋ณด๋„๋ก ํ•˜๊ฒ ๋‹ค.

 

Clean Architecture๋ž€?

Clean Architecture๋Š” Robert C. Martin์ด๋ผ๋Š” ์‚ฌ๋žŒ์ด 2012๋…„์— ์ œ์‹œํ•œ ๊ฐœ๋…์œผ๋กœ,

๊ด€์‹ฌ์‚ฌ๋ฅผ ๋ถ„๋ฅ˜ํ•˜๋Š” ๊ฒƒ์ด ๋ชฉํ‘œ์ด๋‹ค.

 

์ด๋ ‡๊ฒŒ ๊ด€์‹ฌ์‚ฌ๋ฅผ ๋ถ„๋ฅ˜ํ•ด์„œ ์–ป๋Š” ์žฅ์ ์€

  • ํ”„๋กœ์ ํŠธ ์œ ์ง€, ๊ด€๋ฆฌ๊ฐ€ ์šฉ์ดํ•˜๋‹ค.
  • ์ƒˆ๋กœ์šด ๊ธฐ๋Šฅ ์ ์šฉ์ด ๋นจ๋ผ์ง„๋‹ค.
  • ํ…Œ์ŠคํŠธ ์ฝ”๋“œ ์ž‘์„ฑ์ด ์šฉ์ดํ•˜๋‹ค.

๋“ฑ ์—ฌ๋Ÿฌ ์žฅ์ ๋“ค์ด ์žˆ๋‹ค.


์•„๋ž˜์˜ ์‚ฌ์ง„์œผ๋กœ ํด๋ฆฐ ์•„ํ‚คํ…์ฒ˜์˜ ๊ตฌ์กฐ๋ฅผ ์‚ดํŽด๋ณด์ž

ํด๋ฆฐ ์•„ํ‚คํ…์ฒ˜ ๊ตฌ์กฐ

ํด๋ฆฐ ์•„ํ‚คํ…์ฒ˜๋Š” 4๊ฐ€์ง€์˜ ๊ณ„์ธต์œผ๋กœ ๋ถ„๋ฅ˜๋œ๋‹ค.

  • Entity
  • User Cases
  • Controllers
  • UI

ํด๋ฆฐ ์•„ํ‚คํ…์ฒ˜์˜ ๊ตฌ์กฐ๋ฅผ ๋ณด๋ฉด ๋ฐ”๊นฅ ๊ณ„์ธต์ด ์•ˆ์ชฝ ๊ณ„์ธต์— ์˜์กด์„ฑ์„ ๊ฐ€์ง€๋Š” ๊ฒƒ์„ ๋ณผ ์ˆ˜ ์žˆ๋‹ค.


android ๊ธฐ์ค€์œผ๋กœ ๋ณด๊ธฐ์—๋Š” ์–ด๋ ค์›€์ด ์žˆ์–ด ์•ˆ๋“œ๋กœ์ด๋“œ ์ „์šฉ ํด๋ฆฐ ์•„ํ‚คํ…์ฒ˜ ๊ตฌ์กฐ๋ฅผ ๋ด๋ณด๋„๋ก ํ•˜์ž.

ํด๋ฆฐ ์•„ํ‚คํ…์ฒ˜ ์•ˆ๋“œ๋กœ์ด๋“œ ๊ธฐ์ค€

 

์•ˆ๋“œ๋กœ์ด๋“œ์—์„œ ํด๋ฆฐ ์•„ํ‚คํ…์ฒ˜๋Š” Presentation, Domain, Data๋กœ 3๊ฐœ์˜ Layer๋กœ ๋‚˜๋‰˜์–ด ์žˆ๋Š” ๊ฒƒ์„ ๋ณผ ์ˆ˜ ์žˆ๋‹ค.

๊ฐ์ž์˜ ์—ญํ• ์€

  • Presentation: ์‚ฌ๋žŒ๋“ค์—๊ฒŒ ๋ณด์ด๋Š” ํ™”๋ฉด, UI ๊ด€๋ จ ์ฒ˜๋ฆฌ ๋‹ด๋‹น
  • Domain: ์•ฑ์˜ ๋น„์ฆˆ๋‹ˆ์Šค ๋กœ์ง์„ ๋‹ด๋‹นํ•˜๋Š” UseCase์™€ Model์„ ๊ฐ€์ง„๋‹ค. Repository interface๋ฅผ ๊ฐ€์งˆ ์ˆ˜ ์žˆ๋‹ค.
  • Data: Repository๋ฅผ ๊ฐ€์ง€๋ฉฐ, ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค, ์„œ๋ฒ„์™€์˜ ํ†ต์‹ ์„ ํ•  ์ˆ˜ ์žˆ๋‹ค.

 

ํ”„๋กœ์ ํŠธ์˜ ๊ตฌ์กฐ

ํด๋ฆฐ ์•„ํ‚คํ…์ฒ˜ ๊ตฌํ˜„์„ ์œ„ํ•ด ์•ˆ๋“œ๋กœ์ด๋“œ ํ”„๋กœ์ ํŠธ์— ๋ชจ๋“ˆ์„ ์—ฌ๋Ÿฌ ๊ฐœ ๋งŒ๋“  ๊ฒƒ์„ ๋ณผ ์ˆ˜ ์žˆ๋‹ค.

 

์‹ค์ œ ์˜ˆ์ œ๋Š” ํ•„์ž์˜ ์ดํ•ด๋„ ๋ถ€์กฑ์œผ๋กœ ๋„˜์–ด๊ฐ€๊ฒ ๋‹ค..

ํ‹€๋ฆฐ ๋ถ€๋ถ„์ด๋‚˜ ์ž˜๋ชป๋œ ๋ถ€๋ถ„์€ ๋Œ“๊ธ€๋กœ ๋‚จ๊ฒจ์ฃผ์„ธ์š”


๋ณด๋ฉด ๋„์›€์ด ๋  ๋งŒํ•œ ๊ฒƒ๋“ค

https://youngest-programming.tistory.com/484

 

[์•ˆ๋“œ๋กœ์ด๋“œ] ํด๋ฆฐ ์•„ํ‚คํ…์ฒ˜(Clean Architecture) ์ •๋ฆฌ ๋ฐ ๊ตฌํ˜„

[2021-04-28 ์—…๋ฐ์ดํŠธ] [2022-02-01 ์—…๋ฐ์ดํŠธ] Hilt ์‚ฌ์šฉํ•œ ํ”„๋กœ์ ํŠธ ๋งํฌ ํ•˜๋‹จ์— ์ถ”๊ฐ€ [ํ”„๋กœ์ ํŠธ] github.com/mtjin/mtjin-android-clean-architecture-movieapp mtjin/mtjin-android-clean-architecture-movieap..

youngest-programming.tistory.com

https://leveloper.tistory.com/205

 

[Android] Clean Architecture in Android

Clean Architecture๋ž€?  ๊ณ ๊ฐ๋“ค์—๊ฒŒ ์ œ๊ณตํ•˜๋Š” ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ๊ฐ™์€ ๊ฒฝ์šฐ์—๋Š” ์ˆ˜๋งŽ์€ ๊ธฐ๋Šฅ๋“ค์ด ์žˆ๊ธฐ์— ๋ณต์žก๋„๊ฐ€ ๊ต‰์žฅํžˆ ๋†’์Šต๋‹ˆ๋‹ค. ๋ณต์žก๋„๊ฐ€ ๋†’์€ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ๊ฐœ๋ฐœํ•  ๋•Œ ์–ด๋–ป๊ฒŒ ํ•˜๋ฉด ์œ ์ง€ ๋ณด์ˆ˜ํ•˜๊ธฐ

leveloper.tistory.com

728x90

๋Œ“๊ธ€