BCSD-Android-Study / study-android

μ•ˆλ“œλ‘œμ΄λ“œ 기술 곡뢀λ₯Ό μ§„ν–‰ν•©λ‹ˆλ‹€!
1 stars 6 forks source link

🍏 2μ£Όμ°¨ μŠ€ν„°λ”” 과제 #18

Open Jokwanhee opened 5 months ago

Jokwanhee commented 5 months ago

πŸ¦– κ°œμš”

λ‹¨μœ„ ν…ŒμŠ€νŠΈμ— λŒ€ν•œ ν•™μŠ΅μ„ μ§„ν–‰ν•˜λ©°, Junit λΌμ΄λΈŒλŸ¬λ¦¬μ— μ΅μˆ™ν•΄μ§€λŠ” 과정을 μŠ€ν„°λ””ν•©λ‹ˆλ‹€.

객체지ν–₯ μƒν™œ 체쑰 원칙 9가지

κ·œμΉ™ 1: ν•œ λ©”μ„œλ“œμ— 였직 ν•œ λ‹¨κ³„μ˜ λ“€μ—¬μ“°κΈ°(indent)만 ν•œλ‹€.
κ·œμΉ™ 2: else μ˜ˆμ•½μ–΄λ₯Ό 쓰지 μ•ŠλŠ”λ‹€.
κ·œμΉ™ 3: λͺ¨λ“  μ›μ‹œκ°’κ³Ό λ¬Έμžμ—΄μ„ 포μž₯ν•œλ‹€.
κ·œμΉ™ 4: ν•œ 쀄에 점을 ν•˜λ‚˜λ§Œ μ°λŠ”λ‹€.
κ·œμΉ™ 5: 쀄여쓰지 μ•ŠλŠ”λ‹€(μΆ•μ•½ κΈˆμ§€).
κ·œμΉ™ 6: λͺ¨λ“  μ—”ν‹°ν‹°λ₯Ό μž‘κ²Œ μœ μ§€ν•œλ‹€.
κ·œμΉ™ 7: 3개 μ΄μƒμ˜ μΈμŠ€ν„΄μŠ€ λ³€μˆ˜λ₯Ό 가진 클래슀λ₯Ό 쓰지 μ•ŠλŠ”λ‹€.
κ·œμΉ™ 8: 일급 μ½œλ ‰μ…˜μ„ μ“΄λ‹€.
κ·œμΉ™ 9: κ²Œν„°/μ„Έν„°/ν”„λ‘œνΌν‹°λ₯Ό 쓰지 μ•ŠλŠ”λ‹€

ν…ŒμŠ€νŠΈ λŒ€μƒ ν•­λͺ© λ¦¬λ§ˆμΈλ“œ

κ΅¬κΈ€μ—μ„œ μ œμ•ˆν•˜λŠ” μ•±μ˜ 주된 ν…ŒμŠ€νŠΈ λŒ€μƒ ν•­λͺ©μ€Β κ΅¬κΈ€ ꢌμž₯ λ¬Έμ„œ 참쑰와 κ°™μŠ΅λ‹ˆλ‹€.

- λ‹¨μœ„ ν…ŒμŠ€νŠΈ λŒ€μƒ
    - ViewModels λ˜λŠ” Presenter
    - 데이터 λ ˆμ΄μ–΄
    - 유즈 μΌ€μ΄μŠ€
    - 값을 κ³„μ‚°ν•˜λŠ” μœ ν‹Έλ¦¬ν‹° 클래슀
- 엣지 μΌ€μ΄μŠ€
    - 음수, 0 및 경계 쑰건 을 μ‚¬μš©ν•˜λŠ” μˆ˜ν•™ μ—°μ‚°
    - κ°€λŠ₯ν•œ λͺ¨λ“  λ„€νŠΈμ›Œν¬ μ—°κ²° 였λ₯˜
    - ν˜•μ‹μ΄ 잘λͺ»λœ JSONκ³Ό 같은 μ†μƒλœ 데이터
    - 파일 μ €μž₯μ‹œ μŠ€ν† λ¦¬μ§€κ°€ 가득 μ°¬ 상황
    - ν”„λ‘œμ„ΈμŠ€ 쀑간에 λ‹€μ‹œ μƒμ„±λœ 개체(예: μž₯μΉ˜κ°€ νšŒμ „ν•  λ•Œμ˜ μ•‘ν‹°λΉ„ν‹°)
- UI ν…ŒμŠ€νŠΈ
    - 슀크린 UI
    - μœ μ € ν”Œλ‘œμš°
    - λ‚΄λΉ„κ²Œμ΄μ…˜
- ν…ŒμŠ€νŠΈ μ œμ™Έ λŒ€μƒ
    - ν”„λ ˆμž„μ›Œν¬ 자체의 λ™μž‘
    - activities, fragments, ν˜Ήμ€ servicesμ—λŠ” ν…ŒμŠ€νŠΈκ°€ ν•„μš”ν•œ λ‘œμ§μ„ κ°€λŠ₯ν•œ λ°°μΉ˜ν•˜μ§€ μ•ŠμŒ

πŸ˜Άβ€πŸŒ«οΈ μš”κ΅¬μ‚¬ν•­

@Test fun x1_multiplyBy2_2() { // GIVEN val x = 1

// WHEN val result = Utils.multipleBy2(x)

// THEN assertEquals(2, result) }

// ν•œκ΅­μ–΄ 버전 @Test fun x_κ³±ν•˜κΈ°2_2() { val x = 1

val result = Utils.multipleBy(x)

assertEquals(2, result) }


- ν•˜λ‚˜μ˜ ν΄λž˜μŠ€λŠ” ν•˜λ‚˜μ˜ ν…ŒμŠ€νŠΈλ§Œ μ§„ν–‰ν•œλ‹€.
  - μ—¬λŸ¬ 클래슀λ₯Ό λŒ€μƒμœΌλ‘œ ν…ŒμŠ€νŠΈλ₯Ό μ§„ν–‰ν•œλ‹€λ©΄, 그것은 ν†΅ν•©ν…ŒμŠ€νŠΈ!

### μ‹€μŠ΅ 과제
μ°Έμ‘°ν•  [μ½”λ“œλž© λ¬Έμ„œ](https://developer.android.com/codelabs/basic-android-kotlin-compose-kotlin-fundamentals-practice-problems?hl=ko#0)λ₯Ό ν™•μΈν•΄μ£Όμ„Έμš”.
  - μ½”λ“œλž© ν”„λ‘œκ·Έλž˜λ° 쀑 3개λ₯Ό μ„ νƒν•˜μ—¬, μžμ‹ λ§Œμ˜ μš”κ΅¬μ‚¬ν•­μ„ λ§Œλ“€κ³  ν…ŒμŠ€νŠΈ μΌ€μ΄μŠ€λ₯Ό μž‘μ„±ν•΄λ³΄μ„Έμš”.
  - μ½”λ“œλž©μ—μ„œ μ œκ³΅λ˜λŠ” ν”„λ‘œκ·Έλž˜λ° μ„Έμ…˜ ν•˜λ‚˜λŠ” ν•˜λ‚˜μ˜ 클래슀λ₯Ό κ°€μ§‘λ‹ˆλ‹€.

### ✍️ μ •λ¦¬ν•΄λ³΄μ„Έμš”!
- Unit Test (λ‹¨μœ„ ν…ŒμŠ€νŠΈ)
  - Local Unit Test
  - Instrumented Unit Test
- Integration Test (톡합 ν…ŒμŠ€νŠΈ)
- Junit 
- Mockito

## πŸ‘» κ²°λ‘ 
λ‹¨μœ„ ν…ŒμŠ€νŠΈλ₯Ό μ§„ν–‰ν•˜λ©° ν…ŒμŠ€νŠΈμ— λŒ€ν•œ 이해λ₯Ό μ¦κ°€μ‹œν‚€κ³ , ν…ŒμŠ€νŠΈ 라이브러리λ₯Ό μ‚¬μš©ν•˜μ—¬ 이해λ₯Ό λ•λŠ”λ‹€.
nodobi commented 4 months ago

이슈 νƒ€μ΄ν‹€μ΄λ‚˜ ν”„λ‘œμ νŠΈ 넀이밍을 인원듀이 톡일할 수 있게 λ‚΄μš©μ— μΆ”κ°€λ˜λŠ” 것도 쒋을 κ±° κ°™μ•„μš”!

Jokwanhee commented 4 months ago

이슈 타이틀 ν†΅μΌν•œλ‹€

레포 이슈 타이틀을 "[쑰관희] ν…ŒμŠ€νŠΈ μ½”λ“œ μž‘μ„±" 의 ν˜•μ‹μ΄ ν†΅μΌν•˜λ©΄ 쒋을 것 κ°™λ‹€λŠ” μ˜κ²¬μ΄μ‹ κ°€μš”?

ν”„λ‘œμ νŠΈ 넀이밍을 ν†΅μΌν•œλ‹€

μ•ˆλ“œλ‘œμ΄λ“œ ν”„λ‘œμ νŠΈ 생성 μ‹œ, "AndroidStudy" 와 같이 폴더 넀이밍을 ν†΅μΌν•˜μžλŠ” μ˜κ²¬μ΄μ‹ κ°€μš”?

@nodobi μ œκ°€ μ΄ν•΄ν•œ 뢀뢄이 맞으면, ν†΅μΌν•˜λŠ” 것도 λ„ˆλ¬΄ 쒋을 것 κ°™λ„€μš”!