πŸ“˜ν΄λ¦°μ½”λ“œ (2022.02.02) - 였λ₯˜ 처리 (1)

μ‹ μœ€μ² Β·2022λ…„ 2μ›” 2일
0

ν΄λ¦°μ½”λ“œ

λͺ©λ‘ 보기
12/22

DAY 13

였늘 읽은 λ²”μœ„

7μž₯ 였λ₯˜ 처리 ~p137

πŸ˜ƒ μ±…μ—μ„œ κΈ°μ–΅ν•˜κ³  싢은 λ‚΄μš©μ„ μ¨λ³΄μ„Έμš”.

  • 였λ₯˜ μ²˜λ¦¬λŠ” μ€‘μš”ν•˜μ§€λ§Œ 였λ₯˜ 처리둜 인해 ν”„λ‘œκ·Έλž¨ 논리λ₯Ό μ΄ν•΄ν•˜κΈ° μ–΄λ €μ›Œμ Έμ„  μ•ˆλœλ‹€.

  • 였λ₯˜ μ½”λ“œλ³΄λ‹€ μ˜ˆμ™Έλ₯Ό μ‚¬μš©ν•˜λΌ

    • 였λ₯˜λ₯Ό ν•˜λ‚˜ν•˜λ‚˜ λ°˜ν™˜ν•˜λŠ” μ½”λ“œλŠ” λ‚œμž‘ν•˜κΈ° λ•Œλ¬Έμ— μ˜ˆμ™Έλ₯Ό 두어 논리가 λ’€μ„žμ΄μ§€ μ•Šκ²Œ ν•΄μ•Όν•œλ‹€.
  • Try-Catch-Finally λ¬ΈλΆ€ν„° μž‘μ„±ν•˜λΌ

    • try λΈ”λ‘μ—μ„œ μ–΄λ–€ 일이 λ°œμƒν•˜λ“  catch 블둝은 ν”„λ‘œκ·Έλž¨μ„ μΌκ΄€μ„±μžˆκ²Œ μœ μ§€ν•˜κΈ° λ•Œλ¬Έμ— μ‚¬μš©μžμ˜ κΈ°λŒ€κ°’μ„ μ •μ˜ν•˜κΈ° 쉽닀.
    • try-catch ꡬ쑰둜 λ²”μœ„λ₯Ό μ •μ˜ν•˜κ³  TDD(ν…ŒμŠ€νŠΈ 주도 개발)λ₯Ό μ‚¬μš©ν•΄ ν•„μš”ν•œ λ‚˜λ¨Έμ§€ 논리λ₯Ό μΆ”κ°€ν•˜λŠ” λ°©μ‹μœΌλ‘œ κ°œλ°œν•œλ‹€.
    • λ¨Όμ € κ°•μ œλ‘œ μ˜ˆμ™Έλ₯Ό μΌμœΌν‚€λŠ” ν…ŒμŠ€νŠΈ μΌ€μ΄μŠ€λ₯Ό μž‘μ„±ν•œ ν›„ ν…ŒμŠ€νŠΈλ₯Ό ν†΅κ³Όν•˜κ²Œ μ½”λ“œλ₯Ό μž‘μ„±ν•˜λŠ” 방법을 ꢌμž₯ν•œλ‹€.
  • 미확인(unchecked) μ˜ˆμ™Έλ₯Ό μ‚¬μš©ν•˜λΌ

    • ν™•μΈλœ μ˜ˆμ™ΈλŠ” OCPλ₯Ό μœ„λ°˜ν•˜μ—¬ λ§Žμ€ λΉ„μš©μ΄ λ“ λ‹€.
    • μƒμœ„ ν•¨μˆ˜κ°€ μ•„λž˜ ν•¨μˆ˜λ₯Ό ν˜ΈμΆœν•˜λŠ” λ°©μ‹μœΌλ‘œ κ΅¬ν˜„λœ μ½”λ“œμ—μ„œ μ΅œν•˜λ‹¨ ν•¨μˆ˜λ₯Ό λ³€κ²½ν•˜μ—¬ μƒˆλ‘œμš΄ ν™•μΈλœ 였λ₯˜λ₯Ό λ˜μ§„λ‹€λ©΄
      μ—°μ‡„μ μœΌλ‘œ λͺ¨λ“  ν•¨μˆ˜μ˜ try-catchꡬ문에 μˆ˜μ •μ΄ λ°œμƒν•œλ‹€.
  • μ˜ˆμ™Έμ— 의미λ₯Ό μ œκ³΅ν•˜λΌ

    • μ˜ˆμ™Έλ₯Ό 던질 λ•ŒλŠ” 였λ₯˜ λ°œμƒ 원인과 μœ„μΉ˜λ₯Ό μ‰½κ²Œ μ°ΎκΈ° μœ„ν•΄ μ „ν›„ 상황을 μΆ©λΆ„νžˆ 덧뢙인닀.
    • μ˜ˆμ™Έμ—λŠ” 였λ₯˜ 정보, μ‹€νŒ¨ν•œ μ—°μ‚° 이름, μ‹€νŒ¨ μœ ν˜•λ“€μ„ μΆ”κ°€ν•œλ‹€.
  • 호좜자λ₯Ό κ³ λ €ν•΄ μ˜ˆμ™Έ 클래슀λ₯Ό μ •μ˜ν•˜λΌ

    • 였λ₯˜λ₯Ό μ •μ˜ν•  λ•Œ κ°€μž₯ μ€‘μš”ν•œ κ΄€μ‹¬μ‚¬λŠ” 였λ₯˜λ₯Ό μž‘μ•„λ‚΄λŠ” 방법이 λ˜μ–΄μ•Ό ν•œλ‹€.
    • μ™ΈλΆ€ APIλ₯Ό ν˜ΈμΆœν•˜μ—¬ μ‚¬μš©ν• λ•Œ μ˜ˆμ™Έ 클래슀λ₯Ό μ •μ˜ν•˜μ—¬ 감싸기 기법을 μ‚¬μš©ν•˜μž.
      • μ˜μ‘΄μ„±μ΄ 크게 쀄어든닀.
      • ν…ŒμŠ€νŠΈμ½”λ“œλ₯Ό λ„£μ–΄ ν…ŒμŠ€νŠΈν•˜κΈ° μ‰¬μ›Œμ§„λ‹€.
      • APIλ₯Ό μ„€κ³„ν•œ 방식에 발λͺ©μž‘νžˆμ§€ μ•ŠλŠ”λ‹€.

πŸ™„μ˜€λŠ˜ 읽은 μ†Œκ°μ€? λ– μ˜€λ₯΄λŠ” 생각을 κ°€λ³κ²Œ μ μ–΄λ³΄μ„Έμš”

  • Try-Catch-Finally λ¬ΈλΆ€ν„° μž‘μ„±ν• μ‹œ 얻을 수 μžˆλŠ” 이점듀과 κ°•μ œλ‘œ μ˜ˆμ™Έλ₯Ό μΌμœΌν‚€λŠ” ν…ŒμŠ€νŠΈ μΌ€μ΄μŠ€λ‘œ κ²€μ‚¬ν•œ λ’€ μ½”λ“œλ₯Ό κ΅¬ν˜„ν•˜λŠ” 방법등 μ‹€μ œ μ‚¬μš©μ— 쒋은 νŒμ„ 배울 수 μžˆμ—ˆμŠ΅λ‹ˆλ‹€.

πŸ”Ž κΆκΈˆν•œ λ‚΄μš©μ΄ μžˆκ±°λ‚˜, 잘 μ΄ν•΄λ˜μ§€ μ•ŠλŠ” λ‚΄μš©μ΄ μžˆλ‹€λ©΄ μ μ–΄λ³΄μ„Έμš”.

  • OCP(Open Closed Principle) : 기쑴의 μ½”λ“œλ₯Ό λ³€κ²½ν•˜μ§€ μ•ŠμœΌλ©΄μ„œ κΈ°λŠ₯을 μΆ”κ°€ν•  수 μžˆλ„λ‘ 섀계가 λ˜μ–΄μ•Ό ν•œλ‹€.
    (https://nesoy.github.io/articles/2018-01/OCP)

✏ μ†Œκ° 3쀄 μš”μ•½

  • κ·Έλ™μ•ˆ λ‚΄κ°€ κ΅¬ν˜„ν•œ 였λ₯˜μ²˜λ¦¬λŠ” 였λ₯˜μ²˜λ¦¬κ°€ μ•„λ‹ˆμ˜€λ‹€..
  • Try-Catch-Finally λ¬Έ κ΅¬ν˜„μ˜ 쒋은 방법을 배울 수 μžˆμ—ˆλ‹€.
  • ν™•μΈλœ μ˜ˆμ™Έκ°€ μ•„λ‹Œ λ―Έν™•μΈλœ μ˜ˆμ™Έλ₯Ό μ‚¬μš©ν•˜μž.
profile
기본을 νƒ„νƒ„ν•˜κ²ŒπŸŒ³

0개의 λŒ“κΈ€