์˜ˆ์™ธ์— ๋Œ€ํ•œ ์ƒˆ๋กœ์šด ์‹œ๊ฐ์— ๋Œ€ํ•œ ๋‚ด ์ƒ๊ฐ

2023. 12. 25. 14:15ยท๋ฉ”๋ชจ
728x90

์ตœ๊ทผ ํ•™์Šต์„ ํ•˜๋ฉฐ ์•Œ๊ฒŒ ๋œ ๋‚ด์šฉ์— ๋Œ€ํ•œ ๊ฐœ์ธ์ ์ธ ์ƒ๊ฐ์ž…๋‹ˆ๋‹ค.

Checked exception์€ OCP ์œ„๋ฐ˜

์ตœ๊ทผ ๋ณธ ์˜์ƒ์—์„œ "Checked exception์€ OCP(Open Closed Principle)๋ฅผ ์œ„๋ฐ˜ํ•œ ๊ฒƒ์ด๋‹ค."๋ผ๋Š” ๋‚ด์šฉ์„ ์ ‘ํ–ˆ๋‹ค. ๋‚ด์šฉ์ธ ์ฆ‰ ํ•˜์œ„ ์˜์กด์„ฑ์—์„œ Checked exception์ด ์ถ”๊ฐ€๋˜๋ฉด ๋ณ€๊ฒฝ์‚ฌํ•ญ์ด ์ „ํŒŒ๋˜๊ธฐ ๋•Œ๋ฌธ์— ๋ณ€๊ฒฝ์— ๋‹ซํ˜€์žˆ์ง€ ์•Š๋‹ค๋Š” ๊ฒƒ์ด๋‹ค.

 

์ด์ „๊นŒ์ง€ Checked exception๊ณผ OCP์™€์˜ ๊ด€๊ณ„๋ฅผ ์ƒ๊ฐํ•ด๋ณด์ง€ ๋ชปํ–ˆ๋Š”๋ฐ ๊ต‰์žฅํžˆ ์ข‹์€ ์ธ์‚ฌ์ดํŠธ๋ผ ๊ฐœ์ธ์ ์œผ๋กœ ์ข€ ๋” ์ฐพ์•„๋ณด๋ฉฐ ๋‚ด๋ฆฐ ๋‚˜๋ฆ„์˜ ๊ฒฐ๊ณผ๋Š” "์•„๋‹ˆ๋‹ค"์ด๋‹ค.

Checked exception

Java was a much safer language than most of its predecessors: all behaviour defined and consistent across all platforms, and many features intended to prevent crashes, unexpected behaviour, or fragile coding.

Stackoverflow — author gidds

Java์—์„œ ์˜ˆ์™ธ๋Š” Checked exception๊ณผ Unchecked exception์œผ๋กœ ๋‚˜๋‰  ์ˆ˜ ์žˆ๋‹ค. ์Šคํƒ์˜ค๋ฒ„ํ”Œ๋กœ์šฐ์˜ gidds์˜ ๋ง์„ ์ฐธ๊ณ ํ•˜๋ฉด, Java๋Š” Checked exception์„ ํ†ตํ•ด ๋ฉ€ํ‹ฐ ํ”Œ๋žซํผ ํ™˜๊ฒฝ์—์„œ๋„ ์ผ๊ด€๋˜๋ฉฐ ์ทจ์•ฝํ•œ ์ฝ”๋“œ ์ž‘์„ฑ์„ ๋ฐฉ์ง€ํ•˜๋ฉฐ ์•ˆ์ •์ ์ธ ์–ธ์–ด๋กœ ๋ฐœ์ „๋˜์—ˆ๋‹ค๊ณ  ํ•œ๋‹ค. ์ฆ‰, "์•ˆ์ „์„ฑ"์„ ์œ„ํ•œ ์–ธ์–ด ์‹œ์Šคํ…œ์ธ ๊ฒƒ์ด๋‹ค.

ํ™•์žฅ์„ฑ๊ณผ ์•ˆ์ „์„ฑ

์†Œํ”„ํŠธ์›จ์–ด ๊ฐœ๋ฐœ์€ ๋ณ€๊ฒฝ์˜ ์˜ˆ์ˆ ์ด๋‹ค. ํŠนํžˆ ์›น ์„œ๋น„์Šค ๋ถ„์•ผ๋Š” ๋น ๋ฅด๊ฒŒ ์ฆ๊ฐ€ํ•˜๋Š” ๊ฒฝ์Ÿ์‚ฌ, ๊ทธ๋ฆฌ๊ณ  ์‹œ์‹œ๊ฐ๊ฐ ๋ณ€ํ™”ํ•˜๋Š” ์‚ฌํšŒ ํ๋ฆ„๊ณผ ์‚ฌ์šฉ์ž์˜ ์š”๊ตฌ์‚ฌํ•ญ์„ ๋ฐ˜์˜ํ•˜๊ธฐ ์œ„ํ•ด์„œ ํ•˜๋ฃจ์—๋„ ์ˆ˜์‹ญ ๋ฒˆ์˜ ๋ฐฐํฌ๊ฐ€ ์ด๋ค„์ง„๋‹ค. ์ฆ‰ ํ™•์žฅ์„ฑ์€ ์„œ๋น„์Šค์˜ ์ƒ์กด๊ณผ๋„ ์—ฐ๊ด€์ด ์žˆ๋‹ค.

 

ํ•˜์ง€๋งŒ ๊ทธ ์•ž์— ๋‹น์—ฐํžˆ ๋งŒ์กฑํ•ด์•ผ ํ•˜๋Š” ๊ฒƒ์ด ์žˆ๋Š”๋ฐ, ๊ทธ๊ฒƒ์€ ์•ˆ์ „์„ฑ์ด๋‹ค. ์„œ๋น„์Šค๊ฐ€ ์•ˆ์ •์ ์œผ๋กœ ์šด์˜์ด ๋˜์ง€ ์•Š๋Š”๋‹ค๋ฉด ์•„๋ฌด๋ฆฌ ์ข‹์€ ๊ธฐ๋Šฅ๊ณผ ์‚ฌ์šฉ์ž์˜ ์š”๊ตฌ์‚ฌํ•ญ์„ ๋งŒ์กฑํ•ด๋„ ์‹ ๋ขฐ์„ฑ์ด ๋ฌด๋„ˆ์ง€๋ฉฐ ์‚ฌ์šฉ์ž๋Š” ์ดํƒˆํ•˜๊ฒŒ ๋œ๋‹ค.

 

์ฆ‰, ์•ˆ์ „์„ฑ์„ ์œ„ํ•œ ์žฅ์น˜๋กœ ์ธํ•ด ๋ณ€๊ฒฝ์ด ๋˜์—ˆ๋‹ค๊ณ  "๋ณ€๊ฒฝ์— ๋‹ซํ˜€์žˆ๋‹ค"๋ผ๊ณ  ํ‘œํ˜„ํ•˜๊ธฐ๋Š” ์–ด๋ ต๋‹ค๋Š” ๊ฒƒ์ด ๋‚ด ์˜๊ฒฌ์ด๋‹ค. ํ•„์š”ํ•œ ๋ณ€๊ฒฝ์— ์˜ํ•ด ๋ณ€๊ฒฝ๋˜๋Š” ๊ฒƒ์€ ์†Œํ”„ํŠธ์›จ์–ด์„œ ๋‹น์—ฐํ•˜๋‹ค.

๊ทธ๋Ÿผ์—๋„ ๋ถˆ๊ตฌํ•˜๊ณ 

I'm not happy throwing the baby out with the bathwater

 

๊ทธ๋Ÿผ์—๋„ ๋ถˆ๊ตฌํ•˜๊ณ  ์ฝ”ํ‹€๋ฆฐ์—์„œ๋Š” Checked exception์„ ์ œ๊ฑฐํ–ˆ๋‹ค. ํ•˜์ง€๋งŒ ์ด๋Ÿฌํ•œ ๊ฒฐ์ •์€ ๊ฐœ๋ฐœ์ž๋“ค์ด Checked exception์— ๋Œ€ํ•œ ์ฒ˜๋ฆฌ๊ฐ€ ์ž˜๋ชป๋œ ๊ด€์Šต์„ ๋งŒ๋“ค๊ธฐ ๋•Œ๋ฌธ์— ์ œ๊ฑฐํ•œ ๊ฒƒ์ด๋ฉฐ, ์ด ์˜๊ฒฌ์— ๋Œ€ํ•ด์„œ ๋‹ค๋ฅธ ์ธก์—์„œ๋Š” ๊ฐœ๋ฐœ์ž๊ฐ€ ์ž˜๋ชป ์‚ฌ์šฉํ•œ๋‹ค๊ณ  ์–ธ์–ด์  ์•ˆ์ „์žฅ์น˜๋ฅผ ์ œ๊ฑฐํ•˜๋Š” ๊ฒƒ์ด ์˜ฌ๋ฐ”๋ฅธ ๊ฒฐ์ •์ธ๊ฐ€?๋ผ๋Š” ์˜๋ฌธ์„ ๋‚˜ํƒ€๋‚ด๋Š” ๋ถ„๋“ค๋„ ๋งŽ์€ ๊ฒƒ ๊ฐ™๋‹ค. ๊ฐœ์ธ์ ์œผ๋ก  ํ›„์ž๋กœ ๊ฐœ๋ฐœ์ž๋Š” ์ „๋ฌธ๊ฐ€์ด๋ฉฐ, ์ž˜๋ชป๋œ ๋ฐฉ์‹์€ ๊ณ ์ณ๋‚˜๊ฐ€์•ผ ํ•  ๋ฌธ์ œ๋ผ๊ณ  ์ƒ๊ฐํ•œ๋‹ค.

์ฐธ๊ณ 

- https://stackoverflow.com/a/58646575

'๋ฉ”๋ชจ' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๋‹ค๋ฅธ ๊ธ€

Keycloak and ArgoCD integration  (0) 2025.06.06
์„œ๋ฒ„ ์„ฑ๋Šฅ ๋ณ‘๋ชฉ์€ ์–ด๋””์„œ ๋ฐœ์ƒํ• ๊นŒ?  (0) 2023.11.29
'๋ฉ”๋ชจ' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๋‹ค๋ฅธ ๊ธ€
  • Keycloak and ArgoCD integration
  • ์„œ๋ฒ„ ์„ฑ๋Šฅ ๋ณ‘๋ชฉ์€ ์–ด๋””์„œ ๋ฐœ์ƒํ• ๊นŒ?
mooowu
mooowu
  • mooowu
    ์ˆ˜๋‹ฌ๋‹ฌ ๐Ÿฆฆ
    mooowu
  • ์ „์ฒด
    ์˜ค๋Š˜
    ์–ด์ œ
    • ๋ถ„๋ฅ˜ ์ „์ฒด๋ณด๊ธฐ (6)
      • ๊ณต๋ถ€ (0)
      • ๋…์„œ (1)
        • ์•Œ๊ณ ๋ฆฌ์ฆ˜ (0)
        • ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค (0)
        • ์šด์˜์ฒด์ œ (0)
        • ๋„คํŠธ์›Œํฌ (1)
      • ๋ฉ”๋ชจ (3)
      • ํ”„๋กœ์ ํŠธ (1)
        • ๊ฐœ๋ฐœ (1)
  • ๋ธ”๋กœ๊ทธ ๋ฉ”๋‰ด

    • ํ™ˆ
    • ํƒœ๊ทธ
    • ๋ฐฉ๋ช…๋ก
  • ๋งํฌ

  • ๊ณต์ง€์‚ฌํ•ญ

  • ์ธ๊ธฐ ๊ธ€

  • ํƒœ๊ทธ

  • ์ตœ๊ทผ ๋Œ“๊ธ€

  • ์ตœ๊ทผ ๊ธ€

  • hELLOยท Designed By์ •์ƒ์šฐ.v4.10.0
mooowu
์˜ˆ์™ธ์— ๋Œ€ํ•œ ์ƒˆ๋กœ์šด ์‹œ๊ฐ์— ๋Œ€ํ•œ ๋‚ด ์ƒ๊ฐ
์ƒ๋‹จ์œผ๋กœ

ํ‹ฐ์Šคํ† ๋ฆฌํˆด๋ฐ”