Skip to content

Latest commit

ย 

History

History
85 lines (58 loc) ยท 2.34 KB

File metadata and controls

85 lines (58 loc) ยท 2.34 KB

AI Agent Development Guidelines

๐Ÿš€ ํ•„์ˆ˜ ์‹คํ–‰ ์ง€์นจ

โš ๏ธ ์ฝ”๋“œ ํŽธ์ง‘ ์™„๋ฃŒ ํ›„ ํ•„์ˆ˜ ์ž‘์—…

# ๋ชจ๋“  Kotlin ์ฝ”๋“œ ํŽธ์ง‘์ด ์™„๋ฃŒ๋˜๋ฉด ๋ฐ˜๋“œ์‹œ ์‹คํ–‰
./gradlew detekt

์ค‘์š”: detektFormat์€ ์กด์žฌํ•˜์ง€ ์•Š๋Š” task์ž…๋‹ˆ๋‹ค. ./gradlew detekt๋ฅผ ์‚ฌ์šฉํ•˜์„ธ์š”.

๋ชฉ์ :

  • ์ฝ”๋“œ ๋ถ„์„ ๋ฐ ํ’ˆ์งˆ ๊ฒ€์‚ฌ
  • ์ž๋™ formatting ์ ์šฉ (autoCorrect: true ์„ค์ •)
  • ktlint ๊ทœ์น™ ๋ฐ Compose ๊ทœ์น™ ์ ์šฉ
  • ์ผ๊ด€๋œ ์ฝ”๋“œ ํ’ˆ์งˆ ์œ ์ง€

๐Ÿ“‹ ํ”„๋กœ์ ํŠธ ์„ค์ • ์ •๋ณด

๐Ÿ”ง ๋„๊ตฌ ๊ตฌ์„ฑ

  • detekt: 1.23.7 (๊ธฐ๋ณธ ๋ฃฐ์…‹ ์‚ฌ์šฉ)
  • ktlint: detekt-formatting์„ ํ†ตํ•ด ํ†ตํ•ฉ
  • Compose Rules: 0.4.14 (Compose ์ „์šฉ ๊ทœ์น™)

๐Ÿ“ ์ฝ”๋”ฉ ๊ทœ์น™

  • ์ตœ๋Œ€ ๋ผ์ธ ๊ธธ์ด: 120์ž
  • Composable ํ•จ์ˆ˜: ๋Œ€๋ฌธ์ž๋กœ ์‹œ์ž‘, modifier ๋งค๊ฐœ๋ณ€์ˆ˜ ํ•„์ˆ˜
  • ๋„ค์ด๋ฐ: Android ์ปจ๋ฒค์…˜ ์ค€์ˆ˜ (camelCase, PascalCase)
  • ๋“ค์—ฌ์“ฐ๊ธฐ: 4 spaces

๐ŸŽฏ ์ฃผ์š” ์ฒดํฌ ํฌ์ธํŠธ

  1. Modifier ๊ด€๋ จ:

    • ๋ชจ๋“  Composable์— modifier ๋งค๊ฐœ๋ณ€์ˆ˜ ํฌํ•จ
    • modifier์— ๊ธฐ๋ณธ๊ฐ’ = Modifier ์„ค์ •
    • Root์—์„œ modifier ์‚ฌ์šฉ ํ™•์ธ
  2. CompositionLocal ์‚ฌ์šฉ:

    • ํ—ˆ์šฉ๋œ CompositionLocal๋งŒ ์‚ฌ์šฉ
    • ๋„ค์ด๋ฐ ๊ทœ์น™: Local ์ ‘๋‘์‚ฌ
  3. ๋งค๊ฐœ๋ณ€์ˆ˜ ์ˆœ์„œ:

    • Composable์—์„œ modifier๋Š” ์ฒซ ๋ฒˆ์งธ ์„ ํƒ์  ๋งค๊ฐœ๋ณ€์ˆ˜
    • lambda๋Š” ๋งˆ์ง€๋ง‰ ๋งค๊ฐœ๋ณ€์ˆ˜

๐Ÿ› ๏ธ detekt ์‚ฌ์šฉ๋ฒ•

์‚ฌ์šฉ ๊ฐ€๋Šฅํ•œ task๋“ค

# ๊ธฐ๋ณธ detekt ์‹คํ–‰ (๋ถ„์„ + ์ž๋™ formatting)
./gradlew detekt

# ๋‹ค๋ฅธ ์œ ์šฉํ•œ task๋“ค
./gradlew detektMain        # production ์ฝ”๋“œ๋งŒ ๋ถ„์„
./gradlew detektTest        # test ์ฝ”๋“œ๋งŒ ๋ถ„์„
./gradlew detektBaseline    # baseline ํŒŒ์ผ ์ƒ์„ฑ

์ฃผ์š” ์ด์Šˆ ์œ ํ˜•

  • Formatting: autoCorrect๋กœ ์ž๋™ ์ˆ˜์ •๋จ
  • Complexity: ์ˆ˜๋™ ๋ฆฌํŒฉํ† ๋ง ํ•„์š” (ํ•จ์ˆ˜ ๋ถ„ํ• , ๋งค๊ฐœ๋ณ€์ˆ˜ ์ถ•์†Œ)
  • Naming: ๋„ค์ด๋ฐ ์ปจ๋ฒค์…˜ ์ˆ˜๋™ ์ˆ˜์ •
  • Compose: Compose ๊ทœ์น™ ์ค€์ˆ˜ ํ™•์ธ

์˜ˆ์™ธ ์ฒ˜๋ฆฌ ์„ค์ • ์™„๋ฃŒ

  • @Composable: complexity ๊ทœ์น™์—์„œ ์ œ์™ธ
  • @Preview: UnusedPrivateMember์—์„œ ์ œ์™ธ
  • modifier: UnusedParameter์—์„œ ์ œ์™ธ
  • fromXXX: ReturnCount์—์„œ ์ œ์™ธ

๐Ÿ“š ์ฐธ๊ณ  ๋ฆฌ์†Œ์Šค