CodeGym/Java Blog/๋ฌด์ž‘์œ„์˜/์˜ฌ๋“œ ๋ ˆ๋ฒจ 09
John Squirrels
๋ ˆ๋ฒจ 41
San Francisco

์˜ฌ๋“œ ๋ ˆ๋ฒจ 09

๋ฌด์ž‘์œ„์˜ ๊ทธ๋ฃน์— ๊ฒŒ์‹œ๋˜์—ˆ์Šต๋‹ˆ๋‹ค
ํšŒ์›

์ง€์‹ ๋Œ€ ๊ธฐ์ˆ 

์ด์ „ ๋ ˆ๋ฒจ 09 - 1๋Œ€ํ•™์€ ์šฐ๋ฆฌ์—๊ฒŒ ์ด๋ก ๊ณผ ์‹ค์ œ ์‚ฌ์ด์— ํฐ ์ฐจ์ด๊ฐ€ ์—†๋‹ค๊ณ  ๊ฐ€๋ฅด์ณค์Šต๋‹ˆ๋‹ค. ๊ธ€์Ž„, ํ™•์‹คํžˆ ๋‹น์‹ ์€ ๊ทธ๊ฒƒ์ด ๋™์ผํ•˜์ง€ ์•Š๋‹ค๋Š” ๊ฒƒ์„ ์ดํ•ดํ•ฉ๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ ํ•ต์‹ฌ์ ์ธ ์ฐจ์ด์ ์€ ๋ณด์ด์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ ํ•˜๋‚˜๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค. ๋Œ€๋ถ€๋ถ„์˜ ์‚ฌ๋žŒ๋“ค์€ "I know"์™€ "I can" ์‚ฌ์ด์— ๋“ฑํ˜ธ๋ฅผ ๋„ฃ์Šต๋‹ˆ๋‹ค. ๋‹น์‹ ์€? ๋ช‡ ๊ฐ€์ง€ ์˜ˆ๋ฅผ ๋“ค๋ฉด ์–ด๋–ป์Šต๋‹ˆ๊นŒ?
  1. ํก์—ฐ์ด ๋‚˜์—๊ฒŒ ๋‚˜์˜๋‹ค๋Š” ๊ฒƒ์„ ์•Œ์ง€๋งŒ ๋‚˜๋Š” ๋‹ด๋ฐฐ๋ฅผ ํ”ผ์šด๋‹ค.
  2. ํŒจ์ŠคํŠธํ‘ธ๋“œ๊ฐ€ ๋‚˜์—๊ฒŒ ์ข‹์ง€ ์•Š๋‹ค๋Š” ๊ฒƒ์„ ์•Œ์ง€๋งŒ ๋จน์Šต๋‹ˆ๋‹ค.
  3. ๊ตํ†ต๋ฒ•๊ทœ๋Š” ์•Œ์ง€๋งŒ ์šด์ „์„ ๋ชปํ•ด์š”.
  4. ๋‚˜๋Š” ์กฐ๊น…์ด ๋‚˜์—๊ฒŒ ์ข‹๋‹ค๋Š” ๊ฒƒ์„ ์•Œ์ง€๋งŒ ์•„์นจ์— ์กฐ๊น…์„ ํ•˜์ง€ ์•Š๋Š”๋‹ค.
์‚ฌ๋žŒ๋“ค์ด "๋‚˜๋Š” ํ•  ์ˆ˜ ์žˆ๋‹ค"๋ฅผ "์•Œ๊ณ  ์žˆ๋‹ค"๋กœ ๋ฐ›์•„๋“ค์ด๋Š” ๊ฒฝ์šฐ๊ฐ€ ์ข…์ข… ์žˆ์Šต๋‹ˆ๋‹ค. ๊ตํ†ต๋ฒ•๊ทœ์˜ ์ข‹์€ ์˜ˆ์ž…๋‹ˆ๋‹ค. ์‚ฌ๋žŒ์ด ๊ทœ์ •์„ ์•Œ๊ณ  ์šด์ „ํ•  ์ค„ ์•ˆ๋‹ค๋ฉด ์šด์ „์„ ํ•  ์ˆ˜ ์žˆ๋‹ค๋Š” ๋ง์ธ๊ฐ€? ์•„๋‹ˆ์š”. ๊ทธ๊ฐ€ ์šด์ „ํ•  ์ค„ ์•ˆ๋‹ค๊ณ  ์ƒ๊ฐํ•œ๋‹ค๋ฉด? ๊ทธ๋ ‡๋‹ค๋ฉด ๊ฐ•์‚ฌ๊ฐ€ ํ•„์š”ํ•œ ์ด์œ ๋Š” ๋ฌด์—‡์ž…๋‹ˆ๊นŒ? ๊ทธ๋Š” ์ด๋ฏธ ๋ชจ๋“  ๊ฒƒ์„ ์•Œ๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ์ด๋ฏธ ๋ชจ๋“  ๊ฒƒ์„ ์•Œ๊ณ  ์žˆ๋‹ค๊ณ  ํ™•์‹ ํ•˜๋ฉด ์ƒˆ๋กœ์šด ๊ฒƒ์„ ๋ฐฐ์šฐ์ง€ ๋ชปํ•  ๊ฒƒ์ž…๋‹ˆ๋‹ค. ๊ทธ๋ฆฌ๊ณ  ๋‹น์‹ ์ด ๋ชจ๋“  ๊ฒƒ์„ ํ•  ์ค„ ์•ˆ๋‹ค๊ณ  ํ™•์‹ ํ•œ๋‹ค๋ฉด, ๋‹น์‹ ์€ ๊ณต๋ถ€ํ•˜์ง€ ์•Š์„ ๊ฒƒ์ž…๋‹ˆ๋‹ค. ์ด๋Ÿฐ ์ƒ๊ฐ์€ ๋จธ๋ฆฌ์— ๋– ์˜ค๋ฅด์ง€๋„ ์•Š์„ ๊ฒƒ์ž…๋‹ˆ๋‹ค. ๊ทธ๋ฆฌ๊ณ  ๊ทธ๊ฒƒ์€ ๋‹น์‹ ์ด ๋ฌด์–ธ๊ฐ€๋ฅผ ๋ฐฐ์šธ ์ˆ˜ ์žˆ๋Š” ๋ชจ๋“  ๋ฉ‹์ง„ ๊ธฐํšŒ๋ฅผ ๋†“์น˜๊ฒŒ ๋œ๋‹ค๋Š” ๊ฒƒ์„ ์˜๋ฏธํ•ฉ๋‹ˆ๋‹ค. ์ผ๋ฐ˜์ ์ธ ๋Œ€ํ•™์€ ์ง€์‹๋งŒ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค. ์Šค์Šค๋กœ ๊ธฐ์ˆ ์„ ์Šต๋“ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ํ•˜์ง€๋งŒ ๋‚˜๋Š” ๋ฌด์—‡์„ ๋“ฃ์Šต๋‹ˆ๊นŒ? ๋‹น์‹ ์€ ๋‹น์‹ ์˜ ๋Œ€ํ•™์—์„œ ์ด๋ก  ์™ธ์— ์—ฐ์Šต์„ ํ–ˆ์Šต๋‹ˆ๊นŒ? ์ข‹์•„, ๋ฌผ๋ฆฌํ•™๊ณผ์—์„œ ๊ณต๋ถ€ํ–ˆ๋‹ค๋ฉด, ํšจ์œจ์ด 20% ์ด์ƒ์ธ ์ฆ๊ธฐ ๊ธฐ๊ด€์˜ ์ž‘๋™ ๋ชจ๋ธ์„ ๋งŒ๋“œ์‹ญ์‹œ์˜ค. ๋‚˜๋Š” ๋‹น์‹ ์ด ๊ทธ๊ฒƒ์„ํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ์•Œ๊ณ  ์žˆ๋‹ค๊ณ  ์žฅ๋‹ดํ•˜์ง€๋งŒ ๋‹น์‹ ์€ ์‹ค์ œ๋กœ ๊ทธ๊ฒƒ์„ ํ•  ์ˆ˜ ์—†์„ ๊ฒƒ์ž…๋‹ˆ๋‹ค, ๋งž์Šต๋‹ˆ๊นŒ? ๋‹น์‹ ์€ ํ™”ํ•™์ž ์ž…๋‹ˆ๊นŒ ? ๋ฌด์—ฐ ๊ฐ€๋ฃจ๋ฅผ ๋งŒ๋“œ์‹ญ์‹œ์˜ค. ๋‹น์‹ ์€ ๋ฐฉ๋ฒ•์„ ์•Œ๊ณ  ์žˆ์ง€๋งŒ ํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค, ํ•˜? ์ˆ˜ํ•™์ž, ๋‹น์‹ ์€? ํฌํƒ„์˜ ๊ถค์ ์„ ๊ณ„์‚ฐํ•ฉ๋‹ˆ๋‹ค. ๊ป์งˆ์˜ ๋ชจ์–‘์„ ๊ณ ๋ คํ•˜๋Š” ๊ฒƒ์„ ์žŠ์ง€ ๋งˆ์‹ญ์‹œ์˜ค. ์ˆ˜ํ•™ ์ ์€ ์‹ค์ƒํ™œ์—์„œ ๋‚ ์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ๊ทธ๋ฆฌ๊ณ  ๊ตฌํ˜• ๋ง์ด ์—†์Šต๋‹ˆ๋‹ค. ์ด์ „ ๋ ˆ๋ฒจ 09 - 2์ƒ๋ฌผํ•™์ž? ํŽ˜๋‹ˆ์‹ค๋ฆฐ์„ ๋ถ„๋ฆฌํ•ฉ๋‹ˆ๋‹ค. ์ด ๊ณฐํŒก์ด๋Š” ๋ฉœ๋ก ์—์„œ ์ž๋ž๋‹ˆ๋‹ค. ๋‹น์‹ ์€ ๋ฐฉ๋ฒ•์„ ์•Œ๊ณ  โ€“ ํ›Œ๋ฅญํ•ฉ๋‹ˆ๋‹ค! ๋‹น์‹ ์€ ๊ทธ๊ฒƒ์„ ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค? ๊ฒฝ์ œํ•™์ž?์œ ๊ฐ€ ์ƒ์Šน์„ ์˜ˆ์ธกํ•ฉ๋‹ˆ๋‹ค. ์™„๋ฃŒ? ์ด์ œ ์˜ˆ์ธก์— ๋”ฐ๋ผ ์—ฐ๊ฐ„ $2,000 ๋˜๋Š” $200,000๋กœ ๋ฐ”๊พธ์‹ญ์‹œ์˜ค. FOREX์—์„œ ํ”Œ๋ ˆ์ดํ•œ ์ ์ด ์žˆ์Šต๋‹ˆ๊นŒ? ์ง„์งœ ๋ˆ์„ ์œ„ํ•ด? ์•„๋‹ˆ๋ฉด ๊ทธ๋ƒฅ ๋ญ”์ง€ ์•„์„ธ์š”? ๊ตญ์ œ๊ฒฝ์ œ? ํ™”๋ คํ•œ! ํ•ด์™ธ ํšŒ์‚ฌ๋Š” ์–ด๋””์—์„œ ์—ด ์ˆ˜ ์žˆ์Šต๋‹ˆ๊นŒ? ํ™์ฝฉ, ์•„์ผ๋žœ๋“œ ๋˜๋Š” ๋ฏธ๊ตญ. ์™œ? ์˜์‹ฌ์Šค๋Ÿฌ์šด ์‚ฌ์‹ค์„ ์•Œ๋”๋ผ๋„ ์‹ค์ œ๋กœ ํ•ด๋ณธ ์ ์ด ์—†๊ธฐ ๋•Œ๋ฌธ์— ๊ฑฐ์˜ ํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค. ๋‹น์‹ ์€ ๊ทธ๊ฒƒ์„ํ•˜๋Š” ๋ฐฉ๋ฒ•์— ๋Œ€ํ•œ ์•ฝ๊ฐ„์˜ ์‹ค๋งˆ๋ฆฌ์กฐ์ฐจ ๊ฐ€์ง€๊ณ  ์žˆ์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ์˜ค, ๋‹น์‹ ์€ ๋Œ€ํ•™์—์„œ ๊ทธ๊ฒƒ์„ ๊ณต๋ถ€ํ•˜์ง€ ์•Š์•˜๋‚˜์š”? ๋‹น์‹ ์ด ์ค€๋น„๋˜์ง€ ์•Š์€ ์ผ์„ ๋‹น์‹ ์—๊ฒŒ ์ค„ ๊ถŒ๋ฆฌ๊ฐ€ ์žˆ์Šต๋‹ˆ๊นŒ? ์ด๊ฒƒ์ด ์‹ค์ƒํ™œ์˜ ๊ณผ์ œ์ด๊ธฐ ๋•Œ๋ฌธ์ž…๋‹ˆ๋‹ค. ์ด ๊ด€ํ–‰์€ ๋Œ€ํ•™์—์„œ ๊ณต๋ถ€ํ•œ ๋ชจ๋“  ๊ฒƒ์ž…๋‹ˆ๋‹ค: ๊ตฌํ˜• ๋ง, ์™„๋ฒฝํ•œ ๊ฒฝ์Ÿ - ์‹ค์ƒํ™œ์—๋Š” ์กด์žฌํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ๊ทผ๋ฐ ์™œ ์–ธ๊ธ‰์„ ์žŠ์—ˆ์ง€๋งˆ์ผ€ํŒ… ์ „๋ฌธ๊ฐ€ ? ๊ฐ€๋Šฅํ•œ ํ•œ ๋งŽ์€ ์‚ฌ๋žŒ๋“ค์ด ๋‚ด ๊ฐ•์˜์— ๋Œ€ํ•ด ์•Œ ์ˆ˜ ์žˆ๋„๋ก $500๋ฅผ ์ง€์ถœํ•˜๋Š” ๊ฐ€์žฅ ์ข‹์€ ๋ฐฉ๋ฒ•์€ ๋ฌด์—‡์ž…๋‹ˆ๊นŒ? ๊ด‘๊ณ ? ๊ณ ์ „์ ์ธ ๊ด‘๊ณ ๋ฟ๋งŒ ์•„๋‹ˆ๋ผ ๋Œ€ํ•™์—์„œ ๊ฑฐ์˜ ๋…ํŠนํ•œ ๋งŒ๋ณ‘ํ†ต์น˜์•ฝ์œผ๋กœ ๋ฐฐ์› ๋‹ค๊ณ  ํ™•์‹ ํ•˜๋Š” USP(๋…ํŠนํ•œ ํŒ๋งค ์ œ์•ˆ)์˜ ๊ฐœ๋…๋„ ์ด๋ฏธ ๊ตฌ์‹์ด๋ผ๋Š” ์‚ฌ์‹ค์„ ์•Œ๊ณ  ๊ณ„์‹ญ๋‹ˆ๊นŒ? ๋‹น์‹ ์ด ์•„๋Š” ๊ฒƒ์„ ์žŠ์–ด ๋ฒ„๋ฆฌ์‹ญ์‹œ์˜ค. ์ž์‹ ์—๊ฒŒ ๋ฌผ์–ด๋ณด์‹ญ์‹œ์˜ค โ€“ ๋ฌด์—‡์„ ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๊นŒ? ์œ ์šฉํ•˜๋‹ค๊ณ ์š”? ์‚ฌ๋žŒ๋“ค์ด ๋ˆ์„ ์ง€๋ถˆํ•˜๋Š” ๊ฒƒ? ์ข‹์€ ๋ˆ, ๋‚ด ๋ง์€? ์นœ๊ตฌ ์—ฌ๋Ÿฌ๋ถ„, CodeGym๊ณผ ๊ฐ™์€ ๋ฉ‹์ง„ ์ฝ”์Šค์— ๊ฐ์‚ฌ๋ฅผ ํ‘œํ•ฉ์‹œ๋‹ค. ๊ทธ๊ฒƒ์œผ๋กœ ์ธํ•ด ๋‹น์‹ ์€ ํ”„๋กœ๊ทธ๋žจํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ์•Œ ๋ฟ๋งŒ ์•„๋‹ˆ๋ผ ์‹ค์ œ๋กœ ๊ทธ๊ฒƒ์„ ํ•  ์ˆ˜ ์žˆ๊ฒŒ ๋  ๊ฒƒ์ž…๋‹ˆ๋‹ค. ๋‹น์‹ ์€ ๋˜ํ•œ ์ง์—…์„ ์–ป์„ ์ˆ˜ ์žˆ๊ณ  ๋ช‡ ๋…„ ์•ˆ์— ์ข‹์€ ๋ˆ์„ ๋ฒŒ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ด ๋ˆ์ด๋ฉด ์ฐฉํ•˜๊ณ  ์•„๋Š‘ํ•˜๊ฒŒ ์‚ด ์ˆ˜ ์žˆ๊ธฐ๋ฅผ ๋ฐ”๋ž๋‹ˆ๋‹ค. ๋‹ค์‹œ ํ•œ ๋ฒˆ ๋ง์”€๋“œ๋ฆฌ์ง€๋งŒ ๊ธฐ์–ตํ•˜์„ธ์š”. ๋ฌด์—‡์„ ์•„๋Š”์ง€๋Š” ์ค‘์š”ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ์ค‘์š”ํ•œ ๊ฒƒ์€ ๋‹น์‹ ์ด ๊ฐ€์ง€๊ณ  ์žˆ๋Š” ์œ ์šฉํ•œ ๊ธฐ์ˆ , ์‚ฌ๋žŒ๋“ค์ด ๋‹น์‹ ์—๊ฒŒ ๊ธฐ๊บผ์ด ์ง€๋ถˆํ•  ๊ธฐ์ˆ ์ž…๋‹ˆ๋‹ค. ์ด๊ฒƒ์„ ๋นจ๋ฆฌ ์ดํ•ดํ• ์ˆ˜๋ก ์ข‹์Šต๋‹ˆ๋‹ค.

๋‹น์‹ ์€ ์ƒˆ๋กœ์šด ์ˆ˜์ค€์— ๋„๋‹ฌํ–ˆ์Šต๋‹ˆ๋‹ค

๋ ˆ๋ฒจ 9

์ด์ „ ๋ ˆ๋ฒจ 09 - 3

1 Risha, ์Šคํƒ ์ถ”์ 

์ด์ „ ๋ ˆ๋ฒจ 09 - 4- ์—ฌ๊ธฐ์š”! ์˜ค๋Š˜์€ ์Šคํƒ ํŠธ๋ ˆ์ด์Šค๊ฐ€ ๋ฌด์—‡์ธ์ง€ ์•Œ๋ ค๋“œ๋ฆฌ๊ฒ ์Šต๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ ๋จผ์ € ์Šคํƒ์ด ๋ฌด์—‡์ธ์ง€ ์„ค๋ช…ํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค. - ์„œ๋ฅ˜ ๋”๋ฏธ๋ฅผ ์ƒ์ƒํ•ด๋ณด์‹ญ์‹œ์˜ค - ํŠน์ • ์‚ฌ๋ฌด์›์— ๋Œ€ํ•œ ๊ณผ์ œ. ์ƒˆ ๊ณผ์ œ๋ฅผ ์Šคํƒ ๋งจ ์œ„์— ๋†“์„ ์ˆ˜ ์žˆ์œผ๋ฉฐ ์Šคํƒ ๋งจ ์œ„์—์„œ ๊ณผ์ œ๋ฅผ ๊ฐ€์ ธ์˜ต๋‹ˆ๋‹ค. ๋”ฐ๋ผ์„œ ๊ณผ์ œ๋Š” ์„ ์ฐฉ์ˆœ์ด ์•„๋‹™๋‹ˆ๋‹ค. ์ ์›์ด ๋งˆ์ง€๋ง‰์œผ๋กœ ์˜ค๋Š” ๊ณผ์ œ๋ฅผ ๋งก์„ ๋•Œ๋งˆ๋‹ค. ์ด๋Ÿฌํ•œ ์ˆ˜์ง‘ ๊ตฌ์กฐ๋ฅผ ์Šคํƒ์ด๋ผ๊ณ  ํ•ฉ๋‹ˆ๋‹ค . - Java์—๋Š” ํŠน๋ณ„ํ•œ ์ปฌ๋ ‰์…˜์ธ Stack์ด ์žˆ์Šต๋‹ˆ๋‹ค. ์ด ์ปฌ๋ ‰์…˜์—๋Š” ยซ์š”์†Œ ์ถ”๊ฐ€ยป ๋ฐ ยซ์š”์†Œ ๊ฐ€์ ธ์˜ค๊ธฐ(๊ฐ€์ ธ์˜ค๊ธฐ)ยป ๋ฉ”์„œ๋“œ๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค. ์ด๋ฏธ ์•Œ๊ณ  ์žˆ๋“ฏ์ด ๋งˆ์ง€๋ง‰์œผ๋กœ ์ถ”๊ฐ€๋œ ์š”์†Œ๊ฐ€ ๋จผ์ € ์‚ฌ์šฉ๋ฉ๋‹ˆ๋‹ค. - ํ . ์–ด๋ ต์ง€ ์•Š์€ ๊ฒƒ ๊ฐ™์•„์š”. - ๊ดœ์ฐฎ์€. ๊ทธ๋Ÿฐ ๋‹ค์Œ ์Šคํƒ ์ถ”์  ์ด ๋ฌด์—‡์ธ์ง€ ์„ค๋ช…ํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค.์ด๋‹ค. - Java์—์„œ ํ•จ์ˆ˜ ะ๊ฐ€ ํ•จ์ˆ˜ B๋ฅผ ํ˜ธ์ถœ ํ•˜๊ณ  ํ›„์ž๋Š” ํ•จ์ˆ˜ C๋ฅผ ํ˜ธ์ถœ ํ•˜๊ณ  ์ฐจ๋ก€๋กœ ํ•จ์ˆ˜ D๋ฅผ ํ˜ธ์ถœํ•œ๋‹ค๊ณ  ์ƒ์ƒํ•ด ๋ณด์‹ญ์‹œ์˜ค . ๋”ฐ๋ผ์„œ ํ•จ์ˆ˜ B๋ฅผ ์ข…๋ฃŒํ•˜๋ ค๋ฉด ๋จผ์ € ํ•จ์ˆ˜ C๋ฅผ ์ข…๋ฃŒํ•ด์•ผ ํ•˜๋ฉฐ ๊ทธ๋ ‡๊ฒŒ ํ•˜๋ ค๋ฉด ํ•จ์ˆ˜ D๋ฅผ ์ข…๋ฃŒํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค . ์ด๊ฒƒ์€ ์Šคํƒ๊ณผ ๋งค์šฐ ์œ ์‚ฌํ•ฉ๋‹ˆ๋‹ค. - ์œ ์‚ฌ์ ์€ ๋ฌด์—‡์ž…๋‹ˆ๊นŒ? - ์Šคํƒ์—์„œ ํŠน์ • ๊ณผ์ œ์— ๋„๋‹ฌํ•˜๋ ค๋ฉด ๋งจ ์œ„์— ๋†“์ธ ๊ณผ์ œ๋„ ๋ชจ๋‘ ์™„๋ฃŒํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. - ๊ธ€์Ž„์š”, ์ผ์ข…์˜ ๋น„์œ ์ธ๋ฐ ์ œ๊ฐ€ ๋ชจ๋“  ๊ฒƒ์„ ์ œ๋Œ€๋กœ ์ดํ•ดํ–ˆ๋Š”์ง€ ์ž˜ ๋ชจ๋ฅด๊ฒ ์Šต๋‹ˆ๋‹ค. - ์ด๋ด. Java์—์„œ ์Šคํƒ์€ ์š”์†Œ ์ง‘ํ•ฉ์ž…๋‹ˆ๋‹ค. ๊ทธ๊ฒƒ์€ ์Šคํƒ์— ์žˆ๋Š” ์ข…์ด ์‹œํŠธ์™€ ๊ฐ™์Šต๋‹ˆ๋‹ค. ์œ„์—์„œ ์„ธ ๋ฒˆ์งธ๋ฅผ ๊ฐ€์ ธ์˜ค๋ ค๋ฉด ๋‘ ๋ฒˆ์งธ ์‹œํŠธ๋ฅผ ๊ฐ€์ ธ์™€์•ผ ํ•˜์ง€๋งŒ ๊ทธ ์ „์— ์ฒซ ๋ฒˆ์งธ ์‹œํŠธ๋ฅผ ๊ฐ€์ ธ์™€์•ผ ํ•ฉ๋‹ˆ๋‹ค. ์‹œํŠธ๋Š” ํ•ญ์ƒ ๋„ฃ๊ณ  ๋นผ๋ฉด ๋˜์ง€๋งŒ ์‹œํŠธ๋Š” ๋งจ ์œ„์—๋งŒ ๋†“๊ณ  ๋งจ ์œ„์—์„œ๋งŒ ๊ฐ€์ ธ๊ฐˆ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ํ•จ์ˆ˜ ํ˜ธ์ถœ์—๋„ ๋™์ผํ•˜๊ฒŒ ์ ์šฉ๋ฉ๋‹ˆ๋‹ค. ํ•จ์ˆ˜ ะ ๋Š” ํ•จ์ˆ˜ B๋ฅผ ํ˜ธ์ถœ ํ•˜๊ณ  ํ›„์ž๋Š” ํ•จ์ˆ˜ C๋ฅผ ํ˜ธ์ถœํ•ฉ๋‹ˆ๋‹ค . ะ ๋ฅผ ์ข…๋ฃŒํ•˜๋ ค๋ฉด ๋จผ์ € B๋ฅผ ์ข…๋ฃŒํ•ด์•ผ ํ•˜๋ฉฐ ์ด๋ฅผ ์œ„ํ•ด์„œ๋Š” C๋ฅผ ์ข…๋ฃŒํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค . - ์ž ๊น ๊ธฐ๋‹ค๋ ค์š”. ์ œ๋Œ€๋กœ ๋œ ๊ฒฝ์šฐ ์ „์ฒด ์Šคํƒ์€ ยซ์Šคํƒ์— ๋„ฃ์€ ๋งˆ์ง€๋ง‰ ์‹œํŠธ๋งŒ ๊ฐ€์ ธ์˜ฌ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹คยป ๋ฐ ยซ๋จผ์ € ๋งˆ์ง€๋ง‰์œผ๋กœ ํ˜ธ์ถœ๋œ ํ•จ์ˆ˜๊ฐ€ ์ข…๋ฃŒ๋˜์–ด์•ผ ํ•ฉ๋‹ˆ๋‹คยป๋กœ ๋‚˜ํƒ€๋‚ฉ๋‹ˆ๋‹ค. ๊ทธ๋ ‡์Šต๋‹ˆ๊นŒ? - ์˜ˆ. ๋”ฐ๋ผ์„œ ํ•จ์ˆ˜ ํ˜ธ์ถœ์˜ ์ˆœ์„œ๋Š” ยซํ•จ์ˆ˜ ํ˜ธ์ถœ ์Šคํƒยป ๋˜๋Š” ๋‹จ์ˆœํžˆ ยซํ˜ธ์ถœ ์Šคํƒยป์ž…๋‹ˆ๋‹ค. last ํ˜ธ์ถœ๋œ ํ•จ์ˆ˜๊ฐ€ ๋จผ์ € ์ข…๋ฃŒ๋˜์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ์‚ดํŽด๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค. ์ด์ „ ๋ ˆ๋ฒจ 09 - 5- ์ข‹์Šต๋‹ˆ๋‹ค. ํ•จ์ˆ˜ ํ˜ธ์ถœ๋กœ ๋ชจ๋“  ๊ฒƒ์ด ๋ช…ํ™•ํ•ฉ๋‹ˆ๋‹ค. ํ•˜์ง€๋งŒ ์ด StackTraceElement ๋Š” ๋ฌด์—‡์ž…๋‹ˆ๊นŒ ? - JVM(Java Virtual Machine)์€ ๋ชจ๋“  ํ•จ์ˆ˜ ํ˜ธ์ถœ์„ ๊ธฐ๋กํ•ฉ๋‹ˆ๋‹ค. ์ด๋ฅผ ์œ„ํ•ด ํŠน๋ณ„ํ•œ ์ปฌ๋ ‰์…˜์ธ ์Šคํƒ์ด ์žˆ์Šต๋‹ˆ๋‹ค. ํ•œ ํ•จ์ˆ˜๊ฐ€ ๋‹ค๋ฅธ ํ•จ์ˆ˜๋ฅผ ํ˜ธ์ถœํ•˜๋ฉด JVM์€ ์ƒˆ ์š”์†Œ StackTraceElement๋ฅผ ์ด ์Šคํƒ์— ๋ฐฐ์น˜ํ•ฉ๋‹ˆ๋‹ค. ํ•จ์ˆ˜๊ฐ€ ๋๋‚˜๋ฉด ์š”์†Œ๊ฐ€ ์Šคํƒ์—์„œ ์‚ญ์ œ๋ฉ๋‹ˆ๋‹ค. ๋”ฐ๋ผ์„œ ์ด ์Šคํƒ์€ ํ•ญ์ƒ ยซํ•จ์ˆ˜ ํ˜ธ์ถœ ์Šคํƒยป์˜ ํ˜„์žฌ ์ƒํƒœ์— ๋Œ€ํ•œ ์ตœ์‹  ์ •๋ณด๋ฅผ ์ €์žฅํ•ฉ๋‹ˆ๋‹ค. - ๋ชจ๋“  StackTraceElementํ˜ธ์ถœ๋œ ๋ฉ”์„œ๋“œ์— ๋Œ€ํ•œ ์ •๋ณด๋ฅผ ํฌํ•จํ•ฉ๋‹ˆ๋‹ค. ๋”ฐ๋ผ์„œ getMethodName์„ ์‚ฌ์šฉํ•˜์—ฌ ์ด ๋ฉ”์„œ๋“œ์˜ ์ด๋ฆ„์„ ๊ฐ€์ ธ์˜ฌ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค . - ์œ„์˜ ์˜ˆ๋Š” ๋‹ค์Œ์„ ๋ณด์—ฌ์ค๋‹ˆ๋‹ค.
  1. ยซํ˜ธ์ถœ ์Šคํƒยป ๊ฐ€์ ธ์˜ค๊ธฐ:
  2. for-each ๋ฃจํ”„๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๋ฐฐ์—ด์„ ๋ฐ˜๋ณตํ•ฉ๋‹ˆ๋‹ค . ์žŠ์ง€ ์•Š์œผ์…จ์œผ๋ฉด ์ข‹๊ฒ ์Šต๋‹ˆ๋‹ค.
  3. ๋ฉ”์„œ๋“œ ์ด๋ฆ„์„ System.out ์— ์ธ์‡„ํ•ฉ๋‹ˆ๋‹ค .
- ํฅ๋ฏธ๋กญ๊ณ  ์‰ฌ์šด ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค. ๊ณ ๋งˆ์›Œ์š”, ๋ฆฌ์ƒค!

2 Diego, ์Šคํƒ ํŠธ๋ ˆ์ด์Šค ํ‘œ์‹œ ์ž‘์—…

- ์ด๋ด, ์•„๋ฏธ๊ณ ! ๋‹ค์Œ์€ ์Šคํƒ ์ถ”์ ์„ ํ™”๋ฉด์— ํ‘œ์‹œํ•˜๋Š” ์ž‘์€ ์ž‘์—…์ž…๋‹ˆ๋‹ค.
์ž‘์—…
1 ๊ฐ ๋ฉ”์„œ๋“œ๋Š” StackTrace๋ฅผ ๋ฐ˜ํ™˜ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.
์„œ๋กœ๋ฅผ ํ˜ธ์ถœํ•˜๋Š” 5๊ฐœ์˜ ๋ฉ”์„œ๋“œ๋ฅผ ์ž‘์„ฑํ•ฉ๋‹ˆ๋‹ค. ๊ฐ ๋ฉ”์„œ๋“œ๋Š” StackTrace๋ฅผ ๋ฐ˜ํ™˜ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.
2 StackTrace ๋‹ค์‹œ
์„œ๋กœ๋ฅผ ํ˜ธ์ถœํ•˜๋Š” 5๊ฐœ์˜ ๋ฉ”์„œ๋“œ๋ฅผ ์ž‘์„ฑํ•ฉ๋‹ˆ๋‹ค. ๊ฐ ๋ฉ”์„œ๋“œ๋Š” ํ˜ธ์ถœ์ž ๋ฉ”์„œ๋“œ์˜ ์ด๋ฆ„์„ ๋ฐ˜ํ™˜ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. StackTrace๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ํ˜ธ์ถœ์ž ๋ฉ”์„œ๋“œ๋ฅผ ์–ป์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
์‚ผ
์ด ๋ฉ”์„œ๋“œ๋Š” ์„œ๋กœ ํ˜ธ์ถœํ•˜๋Š” 5๊ฐœ์˜ ๋ฉ”์„œ๋“œ ์ž‘์„ฑ ์—์„œ ์ด ๋ฉ”์„œ๋“œ๊ฐ€ ํ˜ธ์ถœ๋œ ์ฝ”๋“œ์˜ ์ค„ ๋ฒˆํ˜ธ๋ฅผ ๋ฐ˜ํ™˜ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค . ๊ฐ ๋ฉ”์„œ๋“œ๋Š” ์ด ๋ฉ”์„œ๋“œ๊ฐ€ ํ˜ธ์ถœ๋œ ์ฝ”๋“œ์˜ ์ค„ ๋ฒˆํ˜ธ๋ฅผ ๋ฐ˜ํ™˜ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. element.getLineNumber() ํ•จ์ˆ˜๋ฅผ ์‚ฌ์šฉํ•˜์‹ญ์‹œ์˜ค .
4 10๋ฒˆ ํ˜ธ์ถœ์˜ ์Šคํƒ ์ถ”์ 
10๋ฒˆ ํ˜ธ์ถœ์˜ ์Šคํƒ ์ถ”์ ์„ ๊ฐ€์ ธ์˜ค๋Š” ์ฝ”๋“œ๋ฅผ ์ž‘์„ฑํ•ฉ๋‹ˆ๋‹ค.
5 ๋ฉ”์„œ๋“œ๋Š” ๊ฒฐ๊ณผ๋ฅผ ๋ฐ˜ํ™˜ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ์Šคํƒ ์ถ”์  ๊นŠ์ด
์Šคํƒ ์ถ”์  ๊นŠ์ด๋ฅผ ํ‘œ์‹œํ•˜๊ณ  ๋ฐ˜ํ™˜ํ•˜๋Š” ๋ฉ”์„œ๋“œ๋ฅผ ์ž‘์„ฑํ•ฉ๋‹ˆ๋‹ค. ์Šคํƒ ์ถ”์  ๊นŠ์ด๋Š” ํ•ด๋‹น ๋ฉ”์„œ๋“œ์˜ ์ˆ˜(๋ชฉ๋ก์˜ ์š”์†Œ ์ˆ˜)์ž…๋‹ˆ๋‹ค.

3 Elly, ์˜ค๋ฅ˜ ๋ฐ ์˜ˆ์™ธ

- ์ด๋ด, ์•„๋ฏธ๊ณ ! ์˜ค๋Š˜ ์šฐ๋ฆฌ๋Š” ๋งค์šฐ ํฅ๋ฏธ๋กœ์šด ๊ตํ›ˆ์„ ๊ฐ€์ง€๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ์˜ˆ์™ธ ์‚ฌํ•ญ์— ๋Œ€ํ•ด ์•Œ๋ ค๋“œ๋ฆฌ๊ฒ ์Šต๋‹ˆ๋‹ค. ์˜ˆ์™ธ๋Š” ํ”„๋กœ๊ทธ๋žจ์˜ ์˜ค๋ฅ˜๋ฅผ ์ œ์–ดํ•˜๋Š” โ€‹โ€‹ํŠน๋ณ„ํ•œ ๋ฉ”์ปค๋‹ˆ์ฆ˜์ž…๋‹ˆ๋‹ค. ๋‹ค์Œ์€ ํ”„๋กœ๊ทธ๋žจ์—์„œ ๋ฐœ์ƒํ•  ์ˆ˜ ์žˆ๋Š” ์˜ค๋ฅ˜์˜ ๋ช‡ ๊ฐ€์ง€ ์˜ˆ์ž…๋‹ˆ๋‹ค.
  1. ํ”„๋กœ๊ทธ๋žจ์ด ์ „์ฒด ๋””์Šคํฌ์— ํŒŒ์ผ ์“ฐ๊ธฐ๋ฅผ ์‹œ๋„ํ•ฉ๋‹ˆ๋‹ค.
  2. ํ”„๋กœ๊ทธ๋žจ์€ null ์ฐธ์กฐ๋ฅผ ์ €์žฅํ•˜๋Š” ๋ณ€์ˆ˜์˜ ๋ฉ”์„œ๋“œ๋ฅผ ํ˜ธ์ถœํ•˜๋ ค๊ณ  ์‹œ๋„ํ•ฉ๋‹ˆ๋‹ค.
  3. ํ”„๋กœ๊ทธ๋žจ์€ ์ˆซ์ž๋ฅผ 0์œผ๋กœ ๋‚˜๋ˆ„๋ ค๊ณ  ์‹œ๋„ํ•ฉ๋‹ˆ๋‹ค.
์ด๋Ÿฌํ•œ ์กฐ์น˜๋กœ ์ธํ•ด ์˜ค๋ฅ˜๊ฐ€ ๋ฐœ์ƒํ•ฉ๋‹ˆ๋‹ค. ์ผ๋ฐ˜์ ์œผ๋กœ ์ด๊ฒƒ์€ ํ”„๋กœ๊ทธ๋žจ ์ข…๋ฃŒ๋กœ ์ด์–ด์ง€๋ฉฐ ์ฝ”๋“œ ์‹คํ–‰์„ ๊ณ„์†ํ•  ํ•„์š”๊ฐ€ ์—†์Šต๋‹ˆ๋‹ค. - ์™œ ๊ทธ๋Ÿฐ ๊ฒ๋‹ˆ๊นŒ? - ์ž๋™์ฐจ๊ฐ€ ๋‚ญ๋– ๋Ÿฌ์ง€์—์„œ ๋–จ์–ด์งˆ ๋•Œ ํ•ธ๋“ค์„ ๋Œ๋ฆฌ๋Š” ๊ฒƒ์ด ์˜๋ฏธ๊ฐ€ ์žˆ๋‚˜์š”? - ํ”„๋กœ๊ทธ๋žจ์ด ์ข…๋ฃŒ๋˜์–ด์•ผ ํ•œ๋‹ค๋Š” ๋œป์ธ๊ฐ€์š”? - ์˜ˆ. ์ด์ „์—๋Š” ๊ทธ๋žฌ์Šต๋‹ˆ๋‹ค. ๋ชจ๋“  ์˜ค๋ฅ˜๋กœ ์ธํ•ด ํ”„๋กœ๊ทธ๋žจ์ด ์ข…๋ฃŒ๋˜์—ˆ์Šต๋‹ˆ๋‹ค. - ๋งค์šฐ ํ˜„๋ช…ํ•œ ๊ฒฐ์ •์ž…๋‹ˆ๋‹ค. - ๋…ธ๋ ฅํ•˜๋Š” ๊ฒƒ์ด ์ข‹์ง€ ์•Š์„๊นŒ์š”? - ์‘. MS Word์— ๊ฑฐ๋Œ€ํ•œ ํ…์ŠคํŠธ๋ฅผ ์ž…๋ ฅํ•˜๊ณ  ์ €์žฅํ–ˆ์ง€๋งŒ ์ €์žฅ๋˜์ง€ ์•Š์•˜์ง€๋งŒ ํ”„๋กœ๊ทธ๋žจ์€ ๋ชจ๋“  ๊ฒƒ์ด ์ •์ƒ์ด๋ผ๊ณ  ์•Œ๋ ค์ค๋‹ˆ๋‹ค. ๊ทธ๋ฆฌ๊ณ  ๊ณ„์† ์ž…๋ ฅํ•ฉ๋‹ˆ๋‹ค. ์–ด๋ฆฌ์„์€, ๊ทธ๋ ‡์ง€? - ์‘. - ๊ทธ๋Ÿฐ ๋‹ค์Œ ํ”„๋กœ๊ทธ๋ž˜๋จธ๋Š” ํฅ๋ฏธ๋กœ์šด ์กฐ์น˜๋ฅผ ๋‚ด๋†“์•˜์Šต๋‹ˆ๋‹ค.๊ฐ ํ•จ์ˆ˜๋Š” ์ž‘์—… ์ƒํƒœ๋ฅผ ๋ฐ˜ํ™˜ํ–ˆ์Šต๋‹ˆ๋‹ค. 0์€ ํ•จ์ˆ˜๊ฐ€ ์˜ˆ์ƒ๋Œ€๋กœ ์ž‘๋™ํ–ˆ์Œ์„ ์˜๋ฏธํ•˜๋ฉฐ, ๋‹ค๋ฅธ ๊ฐ’์€ ์˜ค๋ฅ˜๊ฐ€ ๋ฐœ์ƒํ–ˆ์Œ์„ ์˜๋ฏธํ•ฉ๋‹ˆ๋‹ค . ์ด ๊ฐ’์€ ์˜ค๋ฅ˜ ์ฝ”๋“œ์ž…๋‹ˆ๋‹ค. - ํ•˜์ง€๋งŒ ์ด ๋ฐฉ์‹์—๋Š” ๋‹จ์ ์ด ์žˆ์—ˆ์Šต๋‹ˆ๋‹ค. ๊ฐ(!) ํ•จ์ˆ˜ ํ˜ธ์ถœ ํ›„ ํ•จ์ˆ˜์—์„œ ๋ฐ˜ํ™˜๋œ ์ฝ”๋“œ(์ˆซ์ž)๋ฅผ ํ™•์ธํ•ด์•ผ ํ–ˆ์Šต๋‹ˆ๋‹ค. ์ฒซ์งธ, ๋ถˆํŽธํ–ˆ์Šต๋‹ˆ๋‹ค. ์˜ค๋ฅ˜ ์ฒ˜๋ฆฌ ์ฝ”๋“œ๊ฐ€ ๊ฑฐ์˜ ์‹คํ–‰๋˜์ง€ ์•Š์•˜์ง€๋งŒ ํ•ญ์ƒ ์ž‘์„ฑํ•ด์•ผ ํ–ˆ์Šต๋‹ˆ๋‹ค. ๋‘˜์งธ, ํ•จ์ˆ˜ ์ž์ฒด๋Š” ์ข…์ข… ๋‹ค๋ฅธ ๊ฐ’์„ ๋ฐ˜ํ™˜ํ•ฉ๋‹ˆ๋‹ค. ์–ด๋–ป๊ฒŒ ํ•ด์•ผ ํ• ๊นŒ์š”? - ์‘. ๊ทธ๊ฒŒ ๋‚ด๊ฐ€ ๋ฌป๊ณ  ์‹ถ์—ˆ๋˜ ๊ฒƒ์ž…๋‹ˆ๋‹ค. - ๊ทธ๋Ÿฐ ๋‹ค์Œ ๋ฐ์€ ๋ฏธ๋ž˜๊ฐ€ ์™”์Šต๋‹ˆ๋‹ค. ์˜ˆ์™ธ์™€ ์˜ค๋ฅ˜ ์ฒ˜๋ฆฌ๊ฐ€ ๋‚˜ํƒ€๋‚ฌ์Šต๋‹ˆ๋‹ค. ์ž‘๋™ ๋ฐฉ์‹์€ ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค.
  1. ์˜ค๋ฅ˜๊ฐ€ ๋ฐœ์ƒํ•˜๋ฉด JVM(Java Virtual Machine)์€ ์˜ค๋ฅ˜์— ๋Œ€ํ•œ ๋ชจ๋“  ์ •๋ณด๋ฅผ ํฌํ•จํ•˜๋Š” ํŠน์ˆ˜ ๊ฐœ์ฒด(์˜ˆ์™ธ)๋ฅผ ์ƒ์„ฑํ•ฉ๋‹ˆ๋‹ค. ๋‹ค๋ฅธ ์˜ค๋ฅ˜์˜ ๊ฒฝ์šฐ ๋‹ค๋ฅธ ์˜ˆ์™ธ๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค.
  2. ๊ทธ๋Ÿฐ ๋‹ค์Œ ์ด ์˜ˆ์™ธ๋Š” ํ”„๋กœ๊ทธ๋žจ์ด ํ˜„์žฌ ํ•จ์ˆ˜๋ฅผ ์ฆ‰์‹œ ์ค‘๋‹จํ•˜๋„๋ก ๊ฐ•์ œํ•˜๊ณ  ๋‹ค์Œ ํ•จ์ˆ˜๋Š” ๋ฉ”์ธ ๋ฉ”์„œ๋“œ๋ฅผ ์ข…๋ฃŒํ•  ๋•Œ๊นŒ์ง€ ์ค‘๋‹จํ•ฉ๋‹ˆ๋‹ค. ๊ทธ ํ›„ ํ”„๋กœ๊ทธ๋žจ์ด ์ข…๋ฃŒ๋ฉ๋‹ˆ๋‹ค. Java ๊ฐœ๋ฐœ์ž๋Š” ์ด ํ”„๋กœ์„ธ์Šค๋ฅผ ยซํ˜ธ์ถœ ์Šคํƒ ๋กค๋ฐฑยป์ด๋ผ๊ณ  ํ•ฉ๋‹ˆ๋‹ค.
- ํ•˜์ง€๋งŒ ๋‹น์‹ ์€ ํ”„๋กœ๊ทธ๋žจ์ด ํ™•์‹คํžˆ ์ข…๋ฃŒ๋˜์ง€ ์•Š์„ ๊ฒƒ์ด๋ผ๊ณ  ๋งํ–ˆ์Šต๋‹ˆ๋‹ค. - ๊ทธ๋ ‡์Šต๋‹ˆ๋‹ค. ์˜ˆ์™ธ๋ฅผ ์žก์„ ์ˆ˜ ์žˆ๋Š” ๋ฐฉ๋ฒ•์ด ์žˆ๊ธฐ ๋•Œ๋ฌธ์ž…๋‹ˆ๋‹ค. ํ•„์š”ํ•  ๋•Œ ์–ธ์ œ ์–ด๋””์„œ๋‚˜ ํŠน์ˆ˜ ์ฝ”๋“œ๋ฅผ ์ž‘์„ฑํ•˜์—ฌ ์ด๋Ÿฌํ•œ ์˜ˆ์™ธ๋ฅผ ํฌ์ฐฉํ•˜๊ณ  ์ค‘์š”ํ•œ ์ž‘์—…์„ ์ˆ˜ํ–‰ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. - ์ด๋ฅผ ์œ„ํ•ด ํŠน๋ณ„ํ•œ ๊ตฌ์กฐ์˜ try-catch ๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค . ์ž‘๋™ ๋ฐฉ์‹ ๋ณด๊ธฐ: ์ด์ „ ๋ ˆ๋ฒจ 09 - 6- ์™œ ยซmethod1 ํ˜ธ์ถœ ํ›„. ํ‘œ์‹œ๋˜์ง€ ์•Š์Šต๋‹ˆ๋‹คยป๊ฐ€ ํ™”๋ฉด์— ํ‘œ์‹œ๋˜์ง€ ์•Š์Šต๋‹ˆ๊นŒ? - ๋ฌผ์–ด๋ด์ฃผ์…”์„œ ๊ธฐ์ฉ๋‹ˆ๋‹ค. 25ํ–‰์—๋Š” 0์œผ๋กœ ๋‚˜๋ˆ„๊ธฐ๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค. ์ด๋กœ ์ธํ•ด ์˜ค๋ฅ˜(์˜ˆ์™ธ)๊ฐ€ ๋ฐœ์ƒํ•ฉ๋‹ˆ๋‹ค. JVM(Java Virtual Machine)์ด ์˜ค๋ฅ˜ ์ •๋ณด๋ฅผ ํฌํ•จํ•˜๋Š” ๊ฐ์ฒด ArithmeticException์„ ์ƒ์„ฑํ–ˆ์Šต๋‹ˆ๋‹ค. ์ด ๊ฐœ์ฒด๋Š” ์˜ˆ์™ธ์ž…๋‹ˆ๋‹ค. - method1() ๋ฉ”์„œ๋“œ ๋‚ด์—์„œ ์˜ˆ์™ธ๊ฐ€ ๋ฐœ์ƒํ–ˆ์Šต๋‹ˆ๋‹ค .์ด๋กœ ์ธํ•ด ๋ฉ”์„œ๋“œ๊ฐ€ ์ฆ‰์‹œ ์ข…๋ฃŒ๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ๋˜ํ•œ try-catch ๋ธ”๋ก์ด ์—†๋Š” ๊ฒฝ์šฐ main ๋ฉ”์†Œ๋“œ๊ฐ€ ์ข…๋ฃŒ๋ฉ๋‹ˆ๋‹ค . - try ๋ธ”๋ก ๋‚ด์—์„œ ์˜ˆ์™ธ๊ฐ€ ๋ฐœ์ƒํ•˜๋ฉด catch ๋ธ”๋ก ์—์„œ catch๋ฉ๋‹ˆ๋‹ค . ๋ธ”๋ก try ์˜ ๋‚˜๋จธ์ง€ ์ฝ”๋“œ๋Š” ์‹คํ–‰๋˜์ง€ ์•Š๊ณ  ๋ธ”๋ก catch ์˜ ์‹คํ–‰์ด ์ฆ‰์‹œ ์‹œ์ž‘๋ฉ๋‹ˆ๋‹ค. - ์ž˜ ์ดํ•ด๊ฐ€ ์•ˆ๋˜๋„ค์š”. - ์ฆ‰, ์ด ์ฝ”๋“œ๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์ด ์ž‘๋™ํ•ฉ๋‹ˆ๋‹ค.
  1. try ๋ธ”๋ก ๋‚ด์—์„œ ์˜ˆ์™ธ๊ฐ€ ๋ฐœ์ƒํ•˜๋ฉด ์ด ๋ธ”๋ก์˜ ์ฝ”๋“œ๋Š” ๋” ์ด์ƒ ์‹คํ–‰๋˜์ง€ ์•Š์ง€๋งŒ ๋ธ”๋ก catch ์˜ ์‹คํ–‰์ด ์‹œ์ž‘๋ฉ๋‹ˆ๋‹ค.
  2. ์˜ˆ์™ธ๊ฐ€ ๋ฐœ์ƒํ•˜์ง€ ์•Š์œผ๋ฉด try ๋ธ”๋ก์€ ๋๊นŒ์ง€ ์‹คํ–‰๋˜๊ณ  catch ๋Š” ์‹คํ–‰๋˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค .
- ์—ํ—ด! - ๊ฐ ๋ฉ”์„œ๋“œ ํ˜ธ์ถœ ํ›„ ํ˜ธ์ถœ๋œ ๋ฉ”์„œ๋“œ๊ฐ€ ์ž์ฒด์ ์œผ๋กœ ์ข…๋ฃŒ๋˜์—ˆ๋Š”์ง€ ๋˜๋Š” ์˜ˆ์™ธ๋กœ ์ธํ•ด ์ข…๋ฃŒ๋˜์—ˆ๋Š”์ง€ ํ™•์ธํ•œ๋‹ค๊ณ  ์ƒ์ƒํ•ด ๋ณด์‹ญ์‹œ์˜ค. ์˜ˆ์™ธ๊ฐ€ ์žˆ๋Š” ๊ฒฝ์šฐ JVM์€ ์‚ฌ์šฉ ๊ฐ€๋Šฅํ•œ ๊ฒฝ์šฐ ๋ธ”๋ก catch๋ฅผ ์‹คํ–‰ํ•˜๊ธฐ ์‹œ์ž‘ํ•˜๊ณ  ์˜ˆ์™ธ๋ฅผ catchํ•ฉ๋‹ˆ๋‹ค. catch ๋ธ”๋ก์ด ์—†์œผ๋ฉด JVM์€ ํ˜„์žฌ ๋ฉ”์„œ๋“œ๋ฅผ ์ข…๋ฃŒํ•ฉ๋‹ˆ๋‹ค. ๊ทธ๋Ÿฐ ๋‹ค์Œ ํ˜„์žฌ ๋ฉ”์„œ๋“œ๋ฅผ ํ˜ธ์ถœํ•œ ๋ฉ”์„œ๋“œ์—์„œ ๋™์ผํ•œ ๊ฒ€์‚ฌ๊ฐ€ ์‹œ์ž‘๋ฉ๋‹ˆ๋‹ค. - ์ด์ œ ์•Œ ๊ฒƒ ๊ฐ™์•„์š”. - ๊ดœ์ฐฎ์•„. - catch ๋ธ”๋ก ์•ˆ์— ์žˆ๋Š” Exception์€ ๋ฌด์—‡์ž…๋‹ˆ๊นŒ? - ๋ชจ๋“  ์˜ˆ์™ธ๋Š” Exception ํด๋ž˜์Šค์—์„œ ์ƒ์†๋œ ํด๋ž˜์Šค์ž…๋‹ˆ๋‹ค. catch ์— ํ•ด๋‹น ํด๋ž˜์Šค๋ฅผ ์ง€์ •ํ•˜์—ฌ ์ด๋“ค ์ค‘ ํ•˜๋‚˜๋ฅผ ์žก์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.๊ณตํ†ต ์ƒ์œ„ ํด๋ž˜์Šค Exception์„ ์ง€์ •ํ•˜์—ฌ ํ•œ ๋ฒˆ์— ์ฐจ๋‹จํ•˜๊ฑฐ๋‚˜ ๋ชจ๋‘ ์ฐจ๋‹จํ•ฉ๋‹ˆ๋‹ค. ๊ทธ๋Ÿฐ ๋‹ค์Œ ๋ณ€์ˆ˜ e(์ด ๋ณ€์ˆ˜๋Š” ์˜ˆ์™ธ ๊ฐœ์ฒด์˜ ์ฐธ์กฐ๋ฅผ ์ €์žฅํ•จ)์—์„œ ์˜ค๋ฅ˜์— ๋Œ€ํ•ด ํ•„์š”ํ•œ ๋ชจ๋“  ์ •๋ณด๋ฅผ ์–ป์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. - ์—„์ฒญ๋‚œ! ๋‚ด ๋ฐฉ๋ฒ•์—์„œ ๋‹ค๋ฅธ ์˜ˆ์™ธ๊ฐ€ ๋ฐœ์ƒํ•˜๋ฉด ์–ด๋–ป๊ฒŒ ํ•ด์•ผ ํ•ฉ๋‹ˆ๊นŒ? ๋‹ค๋ฅธ ๋ฐฉ๋ฒ•์œผ๋กœ ์ฒ˜๋ฆฌํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๊นŒ? - ๋‹น์‹ ์€ํ•ด์•ผํ•ฉ๋‹ˆ๋‹ค. ๋‹ค์Œ๊ณผ ๊ฐ™์ด ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ด์ „ ๋ ˆ๋ฒจ 09 - 7- try ๋ธ”๋ก์€ ์—ฌ๋Ÿฌ catch ๋ธ”๋ก์„ ํฌํ•จํ•  ์ˆ˜ ์žˆ์œผ๋ฉฐ ๊ฐ ๋ธ”๋ก์€ ํ•ด๋‹น ์œ ํ˜•์˜ ์˜ˆ์™ธ๋ฅผ catchํ•ฉ๋‹ˆ๋‹ค. - ์Œ. ๊ธ€์Ž„, ๋‚˜๋Š” ๊ทธ๊ฒƒ์„ ์–ป์—ˆ๋‹ค. ๋ฌผ๋ก , ๋‚˜๋Š” ์ด๋Ÿฐ ๊ธ€์„ ์ง์ ‘ ์“ฐ์ง€ ์•Š์„ ๊ฒƒ์ž…๋‹ˆ๋‹ค. ํ•˜์ง€๋งŒ ๊ทธ๋Ÿฐ ์ฝ”๋“œ๋ฅผ ๋งŒ๋‚˜๋ฉด ๋‘๋ ต์ง€ ์•Š๋‹ค.

4 Elly, RuntimeException, throws

์ด์ „ ๋ ˆ๋ฒจ 09 - 8- ์˜ค๋Š˜์€ ๋‹ค๋ฅธ ์ฃผ์ œ๋ฅผ ๊บผ๋‚ด๊ธฐ๋กœ ํ–ˆ์Šต๋‹ˆ๋‹ค. Java์—์„œ ๋ชจ๋“  ์˜ˆ์™ธ๋Š” controlled/checked ๋ฐ uncontrolled/unchecked ์˜ ๋‘ ๊ฐ€์ง€ ์œ ํ˜•์œผ๋กœ ๋‚˜๋‰ฉ๋‹ˆ๋‹ค . ์ฒดํฌ๋œ ์˜ˆ์™ธ๋Š” ํฌ์ฐฉ ๋˜์–ด์•ผ ํ•˜๊ณ  , ์ฒดํฌ๋˜์ง€ ์•Š์€ ์˜ˆ์™ธ๋Š” ํฌ์ฐฉ๋  ์ˆ˜ ์žˆ์ง€๋งŒ ํ•„์ˆ˜๋Š” ์•„๋‹™๋‹ˆ๋‹ค . - ์˜๋„์ ์œผ๋กœ ์ฝ”๋“œ์—์„œ ์˜ˆ์™ธ๋ฅผ ๋˜์งˆ ์ˆ˜ ์žˆ์Šต๋‹ˆ๊นŒ? - ์ฝ”๋“œ์—์„œ ์ง์ ‘ ์˜ˆ์™ธ๋ฅผ ๋˜์งˆ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ž์‹ ๋งŒ์˜ ์˜ˆ์™ธ๋ฅผ ์ž‘์„ฑํ•  ์ˆ˜๋„ ์žˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ ์šฐ๋ฆฌ๋Š” ๋‚˜์ค‘์— ์ด ๊ตฌ๋ฉ์— ๊นŠ์ด ๋“ค์–ด๊ฐˆ ๊ฒƒ์ž…๋‹ˆ๋‹ค. ์ด์ œ JVM(Java Virtual Machine)์—์„œ ๋ฐœ์ƒํ•˜๋Š” ์˜ˆ์™ธ๋ฅผ ์ฒ˜๋ฆฌํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ์•Œ์•„๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค. - ์ข‹์•„์š”. - ์˜ˆ์™ธ ClassNotFoundException ๋ฐ FileNotFoundException ์ธ ๊ฒฝ์šฐ๋ฉ”์„œ๋“œ์—์„œ ๋ฐœ์ƒ(๋‚˜ํƒ€๋‚จ)ํ•˜๋Š” ๊ฒฝ์šฐ ํ”„๋กœ๊ทธ๋ž˜๋จธ๋Š” ๋ฉ”์„œ๋“œ ์„œ๋ช…(๋ฉ”์„œ๋“œ ํ—ค๋”)์— ์ด๋ฅผ ์ง€์ •ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ์ด๋Ÿฌํ•œ ์˜ˆ์™ธ๊ฐ€ ํ™•์ธ๋ฉ๋‹ˆ๋‹ค. ์ผ๋ฐ˜์ ์œผ๋กœ ๋‹ค์Œ๊ณผ ๊ฐ™์ด ํ‘œ์‹œ๋ฉ๋‹ˆ๋‹ค. ์ด์ „ ๋ ˆ๋ฒจ 09 - 9- ๋”ฐ๋ผ์„œ ์‰ผํ‘œ๋กœ ๊ตฌ๋ถ„๋œ ์˜ˆ์™ธ๋ฅผ ๋˜์ง€๊ณ  ๋‚˜์—ดํ•ฉ๋‹ˆ๋‹ค. ์˜ค๋ฅธ์ชฝ? ๊ทธ๋ ‡์Šต๋‹ˆ๊นŒ? - ์˜ˆ. ๊ทธ๋Ÿฌ๋‚˜ ๋˜ ๋‹ค๋ฅธ ํฅ๋ฏธ๋กœ์šด ์ ์ด ์žˆ์Šต๋‹ˆ๋‹ค. ์•„๋ž˜ ์˜ˆ์ œ๊ฐ€ ์ปดํŒŒ์ผ๋˜๊ธฐ ์œ„ํ•ด์„œ๋Š” method1()์„ ํ˜ธ์ถœํ•˜๋Š” ๋ฉ”์„œ๋“œ๊ฐ€ ์ด๋Ÿฌํ•œ ์˜ˆ์™ธ๋ฅผ ํฌ์ฐฉ ํ•˜๊ฑฐ๋‚˜ ์•ž์œผ๋กœ ๋˜์ ธ์•ผ ํ•ฉ๋‹ˆ๋‹ค . ํ™•์ธ๋œ ์˜ˆ์™ธ๋ฅผ ์•ž์œผ๋กœ ๋˜์ง€๋ ค๋ฉด ๋ฉ”์„œ๋“œ์˜ ํ—ค๋”์— ์ง€์ •ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค . - ๋‹ค์‹œ ํ•œ ๋ฒˆ, ๊ธฐ๋ณธ ๋ฉ”์„œ๋“œ์—์„œ ํ—ค๋” ๊ตฌ๋ฌธ์— FileNotFoundException์„ throwํ•˜๋Š” ๋ฉ”์„œ๋“œ๋ฅผ ํ˜ธ์ถœํ•˜๋ ค๋Š” ๊ฒฝ์šฐ โ€ฆ๊ทธ๋Ÿฐ ๋‹ค์Œ ๋‹ค์Œ ๋‘ ๊ฐ€์ง€ ์ค‘ ํ•˜๋‚˜๋ฅผ ์ˆ˜ํ–‰ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.
  1. FileNotFoundException , โ€ฆ ์œ„ํ—˜ํ•œ ๋ฉ”์„œ๋“œ๋ฅผ ํ˜ธ์ถœํ•˜๋Š” ์ฝ”๋“œ๋ฅผ try-catch ๋ธ”๋ก
    ์œผ๋กœ ๋ž˜ํ•‘ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.
  2. FileNotFoundException , โ€ฆ
๋ฉ”์†Œ๋“œ main ์˜ throws ๋ชฉ๋ก ์— ์ด๋Ÿฌํ•œ ์˜ˆ์™ธ๋ฅผ ์ถ”๊ฐ€ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค . -์˜ˆ๋ฅผ ๋“ค์–ด ์ฃผ์‹œ๊ฒ ์Šต๋‹ˆ๊นŒ? - ์—ฌ๊ธฐ๋ฅผ ๋ณด์‹ญ์‹œ์˜ค: - ์ด ์˜ˆ์ œ๋Š” ์ปดํŒŒ์ผ๋˜์ง€ ์•Š์„ ๊ฒƒ์ž…๋‹ˆ๋‹ค. ์™œ๋ƒํ•˜๋ฉด main ๋ฉ”์„œ๋“œ ๋Š” catchํ•ด์•ผ ํ•˜๋Š” ์˜ˆ์™ธ๋ฅผ throwํ•˜๋Š” method1() ๋ฉ”์„œ๋“œ๋ฅผ ํ˜ธ์ถœํ•˜๊ธฐ ๋•Œ๋ฌธ์ž…๋‹ˆ๋‹ค. - ์˜ˆ์ œ๋ฅผ ์ปดํŒŒ์ผํ•˜๊ธฐ ์œ„ํ•ด์„œ๋Š” main ๋ฉ”์„œ๋“œ์— ์˜ˆ์™ธ ์ฒ˜๋ฆฌ๋ฅผ ์ถ”๊ฐ€ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค . ๋‘ ๊ฐ€์ง€ ๋ฐฉ๋ฒ•์œผ๋กœ ์ด๋ฅผ ์ˆ˜ํ–‰ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. - ์—ฌ๊ธฐ์„œ๋Š” try-catch๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์ด๋ฅผ ํฌ์ฐฉํ•ฉ๋‹ˆ๋‹ค . - ๋” ๋ช…ํ™•ํ•ด์ง€๊ณ  ์žˆ์ง€๋งŒ ๊ฑฐ์˜ ์—†์Šต๋‹ˆ๋‹ค. - ์•„๋ž˜ ์˜ˆ๋ฅผ ์‚ดํŽด๋ณด์‹ญ์‹œ์˜ค. - ์—ฌ์ „ํžˆ ์˜ˆ์™ธ๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค. RuntimeException ๊ณผ ์—ฌ๊ธฐ์—์„œ ์ƒ์†๋œ ํด๋ž˜์Šค์ž…๋‹ˆ๋‹ค.์ด์ „ ๋ ˆ๋ฒจ 09 - 10์ด์ „ ๋ ˆ๋ฒจ 09 - 11์ด์ „ ๋ ˆ๋ฒจ 09 - 12์ด์ „ ๋ ˆ๋ฒจ 09 - 13๊ทธ๋“ค์„ ์žก๊ฑฐ๋‚˜ ๋˜์งˆ ํ•„์š”๋Š” ์—†์Šต๋‹ˆ๋‹ค. ํ™•์ธ๋˜์ง€ ์•Š์€ ์˜ˆ์™ธ์ž…๋‹ˆ๋‹ค. ์ด๋Ÿฌํ•œ ์˜ˆ์™ธ๋Š” ์˜ˆ์ธกํ•˜๊ธฐ ์–ด๋ ค์šด ๊ฒƒ์œผ๋กœ ๊ฐ„์ฃผ๋˜๋ฏ€๋กœ ๋ฐœ์ƒ์„ ์˜ˆ์ธกํ•˜๋Š” ๊ฒƒ์ด ๊ฑฐ์˜ ๋ถˆ๊ฐ€๋Šฅํ•ฉ๋‹ˆ๋‹ค. ๋™์ผํ•œ ์ž‘์—…์„ ์ˆ˜ํ–‰ํ•  ์ˆ˜ ์žˆ์ง€๋งŒ throws ์— ์ง€์ •ํ•  ํ•„์š”๋Š” ์—†์Šต๋‹ˆ๋‹ค .

5 Risha, ํ˜ธ์ถœ ์Šคํƒ ๋กค๋ง, ์˜ˆ์™ธ์—์„œ ์ˆ˜ํ–‰ํ•˜๋Š” ๋ฐฉ๋ฒ•

- ์˜ˆ์™ธ๊ฐ€ ์–ด๋–ป๊ฒŒ ์ž‘๋™ํ•˜๋Š”์ง€์— ๋Œ€ํ•ด ์กฐ๊ธˆ ๋” ๋ง์”€๋“œ๋ฆฌ๊ณ  ์‹ถ์Šต๋‹ˆ๋‹ค. ์•„๋ž˜ ์˜ˆ๋Š” ๋‹ค์Œ์„ ์„ค๋ช…ํ•ฉ๋‹ˆ๋‹ค. ์ด์ „ ๋ ˆ๋ฒจ 09 - 14- ์ดํ•ด๊ฐ€ ์•ˆ ๋ฉ๋‹ˆ๋‹ค. - ์ข‹์•„์š”. ๋ฌด์Šจ ์ผ์ด ์ผ์–ด๋‚˜๊ณ  ์žˆ๋Š”์ง€ ์„ค๋ช…ํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค. - ์™ผ์ชฝ ์˜ˆ์ œ์—์„œ๋Š” ์—ฌ๋Ÿฌ ๋ฉ”์„œ๋“œ๋ฅผ ์—ฐ์‡„์ ์œผ๋กœ ํ˜ธ์ถœํ•ฉ๋‹ˆ๋‹ค. method2() ์—์„œ ์šฐ๋ฆฌ๋Š” ํŠน๋ณ„ํžˆ ์˜ˆ์™ธ๋ฅผ ์ƒ์„ฑํ•˜๊ณ  ๋ฐœ์ƒ์‹œํ‚ต๋‹ˆ๋‹ค(์˜ค๋ฅ˜๋ฅผ ์‹œ์ž‘ํ•˜๊ธฐ ์œ„ํ•ด). - ์˜ค๋ฅธ์ชฝ์˜ ์˜ˆ๋Š” ์–ด๋–ค ์ผ์ด ๋ฐœ์ƒํ•˜๋Š”์ง€ ๋ณด์—ฌ์ค๋‹ˆ๋‹ค. method2() ๋ฅผ ๋ณด์‹ญ์‹œ์˜ค . ์ด๊ฒƒ์ด ๋ฐ”๋กœ ์˜ˆ์™ธ์˜ ์ƒ์„ฑ์ด ๋ณ€ํ™˜๋˜๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค. RuntimeException ์œ ํ˜• ์˜ ๊ฐœ์ฒด๋ฅผ ์ƒ์„ฑํ•˜๊ณ  ํŠน์ˆ˜ ๋ณ€์ˆ˜ ์˜ˆ์™ธ ์— ์ €์žฅ ํ•˜๊ณ  ์ฆ‰์‹œ ๋ฉ”์„œ๋“œ๋ฅผ ์ข…๋ฃŒํ•ฉ๋‹ˆ๋‹ค โ€“ return . - method1 ์—์„œ method2 ๋ฅผ ํ˜ธ์ถœํ•œ ํ›„ ๊ฒ€์‚ฌ๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค.์˜ˆ์™ธ๊ฐ€ ์žˆ๋Š”์ง€ ์—†๋Š”์ง€; ์˜ˆ์™ธ๊ฐ€ ์žˆ์œผ๋ฉด method1์ด ์ฆ‰์‹œ ์ข…๋ฃŒ๋ฉ๋‹ˆ๋‹ค. ์ด ํ™•์ธ์€ ๊ฐ(!) Java ๋ฉ”์„œ๋“œ๋ฅผ ํ˜ธ์ถœํ•œ ํ›„ ์•”์‹œ์ ์œผ๋กœ ์ˆ˜ํ–‰๋ฉ๋‹ˆ๋‹ค. - ์šฐ์™€! - ์ •ํ™•ํžˆ. -๋ฉ”์„œ๋“œ ์˜ค๋ฅธ์ชฝ ์—ด์— try-catch ๋ธ”๋ก ์—์„œ ์˜ˆ์™ธ๊ฐ€ ์žกํžˆ๋ฉด ์–ด๋–ป๊ฒŒ ๋˜๋Š”์ง€ ์ผ์Šต๋‹ˆ๋‹ค . ์˜ˆ์™ธ๊ฐ€ ์—†์œผ๋ฉด ์ฝ”๋“œ๋Š” ๊ณ„ํš๋Œ€๋กœ ๊ณ„์† ์‹คํ–‰๋ฉ๋‹ˆ๋‹ค. catch ์— ์ง€์ •๋œ ์œ ํ˜•์˜ ์˜ˆ์™ธ๊ฐ€ ์žˆ์œผ๋ฉด ์ฒ˜๋ฆฌํ•ฉ๋‹ˆ๋‹ค. - throw ์™€ instanceof๋Š” ๋ฌด์—‡์„ ์˜๋ฏธํ•ฉ๋‹ˆ๊นŒ? - ์™ผ์ชฝ์˜ ๋งˆ์ง€๋ง‰ ์ค„์„ ๋ณด๋ฉด ์ƒˆ๋กœ์šด RuntimeException(s)์ด ๋ฐœ์ƒํ•ฉ๋‹ˆ๋‹ค.. ์ด๋Ÿฐ ์‹์œผ๋กœ ์šฐ๋ฆฌ๋Š” ์˜ˆ์™ธ๋ฅผ ๋งŒ๋“ค๊ณ  ๋˜์ง‘๋‹ˆ๋‹ค. ์ด๊ฒƒ์€ ๋‹จ์ง€ ์˜ˆ์ผ ๋ฟ์ž…๋‹ˆ๋‹ค. ์šฐ๋ฆฌ๋Š” ์ง€๊ธˆ๊นŒ์ง€ ๊ทธ๊ฒƒ์„ ํ•˜์ง€ ์•Š์„ ๊ฒƒ์ž…๋‹ˆ๋‹ค. - ์˜ค๋ฅธ์ชฝ ๋ธ”๋ก์—์„œ ยซ ะฐ instanceof B ยป ๋ช…๋ น์„ ์‚ฌ์šฉํ•˜์—ฌ ๊ฐ์ฒด a๊ฐ€ B ์œ ํ˜•์ธ์ง€ ํ™•์ธํ•ฉ๋‹ˆ๋‹ค . ์ฆ‰, ๋ณ€์ˆ˜ exception์— ์ €์žฅ๋œ ๊ฐ์ฒด๊ฐ€ RuntimeException ์œ ํ˜•์ธ์ง€ ์—ฌ๋ถ€์ž…๋‹ˆ๋‹ค . ๋…ผ๋ฆฌ์ ์ธ ํ‘œํ˜„์ž…๋‹ˆ๋‹ค. - ์Œ, ์กฐ๊ธˆ ๋” ๋ช…ํ™•ํ•ด์ง€๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค.

6 ๋””์—๊ณ , ์˜ˆ์™ธ ์บ์น˜ ํƒœ์Šคํฌ

- ์ด๋ด! ๋””์—๊ณ  ์‚ผ์ดŒ์€ ๋‹น์‹ ์„ ์œ„ํ•ด ๋‚š์‹œ์— ๋Œ€ํ•œ ๋ช‡ ๊ฐ€์ง€ ์ž‘์—…์„ ๊ฐ€์ ธ์™”์Šต๋‹ˆ๋‹ค. ํ–‰์šด์„ ๋นŒ์–ด ์š”. ํ•„์š”ํ•˜์‹ค ๊ฒƒ ๊ฐ™์•„์š”. ใ…Ž. ์ด์ „ ๋ ˆ๋ฒจ 09 - 15- ์ด๋ด, ์•„๋ฏธ๊ณ ! ๋‹ค์Œ์€ ๋ช‡ ๊ฐ€์ง€ ํฅ๋ฏธ๋กœ์šด ์˜ˆ์™ธ catch ์ž‘์—…์ž…๋‹ˆ๋‹ค.
์žก๊ธฐ ์ž‘์—…
1 1. ์ˆซ์ž๋กœ ์—ฐ์‚ฐํ•  ๋•Œ์˜
์˜ˆ์™ธ ์ฝ”๋“œ๋ฅผ ์‹คํ–‰ํ•  ๋•Œ ๋ฐœ์ƒํ•˜๋Š” ์˜ˆ์™ธ๋ฅผ ์žก์•„๋ผ:
int a = 42 / 0;
์œ ํ˜•์„ ์ง€์ •ํ•˜์—ฌ ์˜ˆ์™ธ๋ฅผ ํ™”๋ฉด์— ํ‘œ์‹œํ•ฉ๋‹ˆ๋‹ค.
2 2. ๋ฌธ์ž์—ด๋กœ ๋™์ž‘ํ•  ๋•Œ์˜
์˜ˆ์™ธ ์ฝ”๋“œ๋ฅผ ์‹คํ–‰ํ•  ๋•Œ ๋ฐœ์ƒํ•˜๋Š” ์˜ˆ์™ธ๋ฅผ ์žก์•„๋ผ:
String s = null;
String m = s.toLowerCase();
์œ ํ˜•์„ ์ง€์ •ํ•˜์—ฌ ํ™”๋ฉด์— ์˜ˆ์™ธ๋ฅผ ํ‘œ์‹œํ•ฉ๋‹ˆ๋‹ค.
์‚ผ 3. ๋ฐฐ์—ด๋กœ ์ž‘๋™ํ•  ๋•Œ์˜
์˜ˆ์™ธ ์ฝ”๋“œ๋ฅผ ์‹คํ–‰ํ•  ๋•Œ ๋ฐœ์ƒํ•˜๋Š” ์˜ˆ์™ธ๋ฅผ ํฌ์ฐฉํ•ฉ๋‹ˆ๋‹ค.
int[] m = new int[2];
m[8] = 5;
์œ ํ˜•์„ ์ง€์ •ํ•˜์—ฌ ํ™”๋ฉด์— ์˜ˆ์™ธ๋ฅผ ํ‘œ์‹œํ•ฉ๋‹ˆ๋‹ค.
4 4. ๋ชฉ๋ก ์ปฌ๋ ‰์…˜์œผ๋กœ ์ž‘์—… ์‹œ
์˜ˆ์™ธ ์ฝ”๋“œ ์‹คํ–‰ ์‹œ ๋ฐœ์ƒํ•˜๋Š” ์˜ˆ์™ธ๋ฅผ ํฌ์ฐฉํ•ฉ๋‹ˆ๋‹ค.
ArrayList<String> list = new ArrayList<String>();
๋ฌธ์ž์—ด s = list.get(18);
์œ ํ˜•์„ ์ง€์ •ํ•˜์—ฌ ํ™”๋ฉด์— ์˜ˆ์™ธ๋ฅผ ํ‘œ์‹œํ•ฉ๋‹ˆ๋‹ค.
5 5. Map ์ปฌ๋ ‰์…˜์œผ๋กœ ์ž‘์—… ์‹œ
์˜ˆ์™ธ ์ฝ”๋“œ ์‹คํ–‰ ์‹œ ๋ฐœ์ƒํ•˜๋Š” ์˜ˆ์™ธ๋ฅผ ํฌ์ฐฉํ•ฉ๋‹ˆ๋‹ค.
HashMap<String, String> map = new HashMap<String, String>(null);
map.put(null, null);
map.remove(null);
์œ ํ˜•์„ ์ง€์ •ํ•˜์—ฌ ํ™”๋ฉด์— ์˜ˆ์™ธ๋ฅผ ํ‘œ์‹œํ•ฉ๋‹ˆ๋‹ค.
- ํŒ: ๋จผ์ € ํ”„๋กœ๊ทธ๋žจ์„ ์ž‘์„ฑํ•œ ๋‹ค์Œ ์–ด๋–ค ์˜ˆ์™ธ๊ฐ€ ๋ฐœ์ƒํ•˜๋Š”์ง€ ํ™•์ธํ•œ ๋‹ค์Œ ์ฝ”๋“œ๋ฅผ ๋ณ€๊ฒฝํ•˜๊ณ  ํ•ด๋‹น ์˜ˆ์™ธ๋ฅผ ํฌ์ฐฉํ•˜์‹ญ์‹œ์˜ค.

7 Risha, ๋‹ค์ค‘ ์บ์น˜๊ฐ€ ์ž‘๋™ํ•˜๋Š” ๋ฐฉ์‹

์ด์ „ ๋ ˆ๋ฒจ 09 - 16- ์ด์ œ ์ข€ ๋” ํฅ๋ฏธ๋กœ์šด ๊ฐ•์˜๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค. ๋‚˜๋Š” ๊ฐ€๋ฅด์น˜๋Š” ๊ฒƒ์„ ๋„ˆ๋ฌด ์ข‹์•„ํ•ฉ๋‹ˆ๋‹ค. - ๋‹ค์ค‘ ์บ์น˜๊ฐ€ ์–ด๋–ป๊ฒŒ ์ž‘๋™ํ•˜๋Š”์ง€ ์•Œ๋ ค์ฃผ๊ณ  ์‹ถ์Šต๋‹ˆ๋‹ค . ์‹ค์ œ๋กœ๋Š” ๋งค์šฐ ๊ฐ„๋‹จํ•ฉ๋‹ˆ๋‹ค. try ๋ธ”๋ก์—์„œ ์˜ˆ์™ธ๊ฐ€ ๋ฐœ์ƒํ•˜๋ฉด ํ”„๋กœ๊ทธ๋žจ ์‹คํ–‰์ด ์ฒซ ๋ฒˆ์งธ catch ๋กœ ์ „์†ก๋ฉ๋‹ˆ๋‹ค . - ๋ธ”๋ก catch์˜ ๊ด„ํ˜ธ ์•ˆ์— ์ง€์ •๋œ ์œ ํ˜•์ด ์˜ˆ์™ธ ๊ฐ์ฒด์˜ ์œ ํ˜•๊ณผ ๋™์ผํ•œ ๊ฒฝ์šฐ {} ๋‚ด์—์„œ ์ฝ”๋“œ ์‹คํ–‰์ด ์‹œ์ž‘๋ฉ๋‹ˆ๋‹ค. ๊ทธ๋ ‡์ง€ ์•Š์œผ๋ฉด ๋‹ค์Œ catch ๋กœ ์ด๋™ํ•ฉ๋‹ˆ๋‹ค . ๊ทธ๊ณณ์—์„œ ํ™•์ธ์ด ๋ฐ˜๋ณต๋ฉ๋‹ˆ๋‹ค. - ๋” ์ด์ƒ catch ๋ธ”๋ก์ด ์—†์ง€๋งŒ ์˜ˆ์™ธ๊ฐ€ catch๋˜์ง€ ์•Š์€ ๊ฒฝ์šฐ ์•ž์œผ๋กœ ๋˜์ ธ์ง€๊ณ  ํ˜„์žฌ ๋ฉ”์„œ๋“œ๊ฐ€ ์ค‘๋‹จ๋ฉ๋‹ˆ๋‹ค. - ์•Œ๊ฒ ์–ด์š”. ํ•ด๋‹น ์œ ํ˜•์ด ์˜ˆ์™ธ ์œ ํ˜•๊ณผ ์ผ์น˜ํ•˜๋Š” catch๊ฐ€ ์‹คํ–‰๋ฉ๋‹ˆ๋‹ค. - ๋„ค, ๊ทธ๋Ÿฌ์ฃ . ์‹ค์ œ๋กœ๋Š” ์ข€ ๋” ๋ณต์žกํ•ฉ๋‹ˆ๋‹ค. ์š”์ ์€ ํด๋ž˜์Šค๊ฐ€ ์„œ๋กœ ์ƒ์†๋  ์ˆ˜ ์žˆ๋‹ค๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค. ยซCowยป ํด๋ž˜์Šค๊ฐ€ ยซAnimalยป ํด๋ž˜์Šค์—์„œ ์ƒ์†๋œ ๊ฒฝ์šฐ ยซCowยป ์œ ํ˜•์˜ ๊ฐœ์ฒด๋Š” ยซCowยป ์œ ํ˜•์˜ ๋ณ€์ˆ˜๋ฟ๋งŒ ์•„๋‹ˆ๋ผ ยซAnimalยป ์œ ํ˜•์˜ ๋ณ€์ˆ˜์—๋„ ์ €์žฅ๋  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. . - ๊ทธ๋ž˜์„œ? - ๋ชจ๋“  ์˜ˆ์™ธ๋Š” ํด๋ž˜์Šค Exception ๋˜๋Š” RuntimeException ( Exception ์—์„œ๋„ ์ƒ์†๋จ )์—์„œ ์ƒ์†๋˜๋ฏ€๋กœ ๋ชจ๋‘ catch(Exception e) ๋˜๋Š” catch(RuntimeException e) ๋ช…๋ น์„ ์‚ฌ์šฉํ•˜์—ฌ ์žก์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค . - ๊ทธ๋ž˜์„œ? - ์ฆ‰,์ฒซ์งธ, catch(Exception e) ๋ช…๋ น์„ ์‚ฌ์šฉํ•˜์—ฌ ๋ชจ๋“  ์˜ˆ์™ธ๋ฅผ ์žก์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค . ๋‘˜์งธ, catch ๋ธ”๋ก ์˜ ์ˆœ์„œ๊ฐ€ ์ค‘์š”ํ•ฉ๋‹ˆ๋‹ค. ์˜ˆ: - 0์œผ๋กœ ๋‚˜๋ˆˆ ๊ฒฐ๊ณผ์ธ ArithmeticException์ด ๋‘ ๋ฒˆ์งธ catch์—์„œ ํฌ์ฐฉ๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ์ด์ „ ๋ ˆ๋ฒจ 09 - 17- ์•„๋ž˜ ์˜ˆ์—์„œ ArithmeticException์€ ๋ชจ๋“  ์˜ˆ์™ธ์˜ ํด๋ž˜์Šค๊ฐ€ Exception์—์„œ ์ƒ์†๋˜๊ธฐ ๋•Œ๋ฌธ์— ์ฒซ ๋ฒˆ์งธ catch ์—์„œ catch๋ฉ๋‹ˆ๋‹ค. ๋”ฐ๋ผ์„œ Exception์€ ๋ชจ๋“  ์˜ˆ์™ธ๋ฅผ ํฌ์ฐฉํ•ฉ๋‹ˆ๋‹ค . ์ด์ „ ๋ ˆ๋ฒจ 09 - 18- ์•„๋ž˜ ์˜ˆ์ œ์—์„œ ArithmeticException ์˜ˆ์™ธ๋Š” catch๋˜์ง€ ์•Š๊ณ  ํ˜ธ์ถœ ๋ฉ”์„œ๋“œ๋กœ ์ „๋‹ฌ๋ฉ๋‹ˆ๋‹ค. ์ด์ „ ๋ ˆ๋ฒจ 09 - 19- ์ด์ œ ์ ์  ๋ช…ํ™•ํ•ด์ง€๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ์ด๋Ÿฌํ•œ ์˜ˆ์™ธ๋Š” ๊ทธ๋ ‡๊ฒŒ ์‰ฝ์ง€ ์•Š์Šต๋‹ˆ๋‹ค. - ๊ทธ๋ƒฅ ๊ทธ๋Ÿฐ ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค. ์‚ฌ์‹ค ์ž๋ฐ”์—์„œ ๊ฐ€์žฅ ๊ฐ„๋‹จํ•œ ๊ฒƒ ์ค‘ ํ•˜๋‚˜์ž…๋‹ˆ๋‹ค. - ๊ธฐ๋ปํ•ด์•ผ ํ• ์ง€, ํ™”๋ฅผ ๋‚ด์•ผ ํ• ์ง€ ์• ๋งค...

8 ๋””์—๊ณ , ๋‹ค์ค‘ ์˜ˆ์™ธ catch ์ž‘์—…

- ์ด๋ด, ์•„๋ฏธ๊ณ ! ์–ด์ œ ๋‚ด๊ฐ€ ์ˆ ์— ์ทจํ•ด ๋‹น์‹ ์˜ ์ผ์„ ๋„ˆ๋ฌด ๋ณต์žกํ•˜๊ฒŒ ๋งŒ๋“ค์—ˆ์ง€๋งŒ, ๋‹น์‹ ์ด ํž˜๋“  ๊ฐ์ • ์—†์ด ๋ชจ๋‘ ์ž˜ ํ•ด๊ฒฐํ–ˆ์œผ๋ฉด ์ข‹๊ฒ ์Šต๋‹ˆ๋‹ค. ๊ทธ๊ฒƒ์€ ๋‹น์‹  ์ž์‹ ์˜ ์ด์ต์„ ์œ„ํ•œ ๊ฒƒ์ž…๋‹ˆ๋‹ค. ์—ฌ๊ธฐ:
์ž‘์—…
1 1. ์˜ˆ์™ธ Exception ์—์„œ ์ƒ์†๋œ ๋‘ ๊ฐ€์ง€ ์˜ˆ์™ธ์™€ RuntimeException ์—์„œ ์ƒ์†๋œ ๋‹ค๋ฅธ ๋‘ ๊ฐ€์ง€
์˜ˆ์™ธ๋ฅผ ๋ฐœ์ƒ์‹œํ‚ค๋Š” ๋ฉ”์„œ๋“œ๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค : NullPointerException , ArithmeticException , FileNotFoundException ๋ฐ URISyntaxException . NullPointerException ๋ฐ FileNotFoundException ์„ ํฌ์ฐฉํ•ด์•ผ ํ•˜์ง€๋งŒ ArithmeticException ๋ฐ URISyntaxException ์€ ํฌ์ฐฉํ•˜์ง€ ์•Š์•„์•ผ ํ•ฉ๋‹ˆ๋‹ค . ๊ทธ๊ฒƒ์„ํ•˜๋Š” ๋ฐฉ๋ฒ•?

2 2. ์˜ˆ์™ธ ํฌ์ฐฉ Exception
์—์„œ ์ˆœ์ฐจ์ ์œผ๋กœ ์ƒ์†๋˜๋Š” ์„ธ ๊ฐ€์ง€ ์˜ˆ์™ธ๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค . class Exception1 extends Exception class Exception2 extends Exception1 class Exception3 extends Exception2 ๋‹ค์Œ๊ณผ ๊ฐ™์€ ๋ฐฉ๋ฒ•์ด ์žˆ์Šต๋‹ˆ๋‹ค. public static void method1() throws Exception1, Exception2, Exception3 Write a catch Exception1 , Exception2 ๋ฐ Exception3 ์„ธ ๊ฐ€์ง€๋ฅผ ๋ชจ๋‘ catchํ•˜๋Š” ๋ธ”๋ก






์‚ผ 3. ์„ ๋ณ„์  ์˜ˆ์™ธ ํฌ์ฐฉ 1. BEAN.methodThrowExceptions
๋ฉ”์†Œ๋“œ์— ์˜ํ•ด ๋ฐœ์ƒํ•œ ์˜ˆ์™ธ๋ฅผ ์ฐพ์œผ์‹ญ์‹œ์˜ค . 2. processExceptions() ๋ฉ”์„œ๋“œ๋Š” BEAN.methodThrowExceptions ๋ฉ”์„œ๋“œ๋ฅผ ํ˜ธ์ถœ ํ•˜๊ณ  ์˜ˆ์™ธ๋ฅผ ์ฒ˜๋ฆฌํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. 2.1. FileSystemException ์˜ˆ์™ธ๊ฐ€ ๋ฐœ์ƒํ•˜๋ฉด BEAN.log ๋ฉ”์„œ๋“œ๋ฅผ ํ˜ธ์ถœํ•˜์—ฌ ๊ธฐ๋ก ํ•˜๊ณ  2.2๋ฅผ ์ „๋‹ฌํ•ฉ๋‹ˆ๋‹ค . ์˜ˆ์™ธ CharConversionException ๋˜๋Š” ๊ธฐํƒ€ IOException์ด ๋ฐœ์ƒํ•˜๋ฉด BEAN.log ๋ฉ”์†Œ๋“œ๋ฅผ ํ˜ธ์ถœํ•˜์—ฌ ๊ธฐ๋กํ•˜์‹ญ์‹œ์˜ค. 3. 2.1์—์„œ ์ „๋‹ฌํ•˜๋ ค๋Š” ์˜ˆ์™ธ์˜ ํด๋ž˜์Šค/์œ ํ˜•์„ ์ถ”๊ฐ€ํ•˜์‹ญ์‹œ์˜ค. processExceptions() ์—



๋ฉ”์†Œ๋“œ ์„œ๋ช….
4. main() ๋ฉ”์„œ๋“œ์—์„œ ๋‚˜๋จธ์ง€ ์˜ˆ์™ธ๋ฅผ ์ฒ˜๋ฆฌํ•˜๊ณ  ๊ธฐ๋กํ•ฉ๋‹ˆ๋‹ค. try..catch ์‚ฌ์šฉ

ํŒ: ์žก๊ณ  ์‹ถ์ง€ ์•Š์€ MyException
์˜ˆ์™ธ๋ฅผ ์žก์€ ๊ฒฝ์šฐ ๋‹ค์Œ ์ฝ”๋“œ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์•ž์œผ๋กœ ๋˜์งˆ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. catch (MyException e) { throw e; }



4 4. ์ฒดํฌ ์˜ˆ์™ธ ์žก๊ธฐ processExceptions()
๋ฉ”์„œ๋“œ์—์„œ ๋ชจ๋“  ์ฒดํฌ ์˜ˆ์™ธ๋ฅผ ์ฒ˜๋ฆฌํ•ฉ๋‹ˆ๋‹ค . ๋ฐœ์ƒํ•œ ๊ฐ ํ™•์ธ๋œ ์˜ˆ์™ธ๋ฅผ ํ™”๋ฉด์— ํ‘œ์‹œํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ํ•˜๋‚˜์˜ ๋ธ”๋ก try ๋งŒ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค .

5 5. ํ™•์ธ๋˜์ง€ ์•Š์€ ์˜ˆ์™ธ ์žก๊ธฐ processExceptions()
๋ฉ”์„œ๋“œ์—์„œ ๋ชจ๋“  ํ™•์ธ๋˜์ง€ ์•Š์€ ์˜ˆ์™ธ๋ฅผ ์ฒ˜๋ฆฌํ•ฉ๋‹ˆ๋‹ค . printStack() ๋ฉ”์„œ๋“œ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๋ฐœ์ƒํ•œ ๊ฐ ์˜ˆ์™ธ์˜ ์Šคํƒ ์ถ”์ ์„ ํ™”๋ฉด์— ํ‘œ์‹œํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค . ํ•˜๋‚˜์˜ ๋ธ”๋ก try ๋งŒ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค .

9 ๊ต์ˆ˜, ์˜ˆ์™ธ์— ๋Œ€ํ•œ ๊ฐ•์˜

- ์˜ค๋Š˜ ์šฐ๋ฆฌ๋Š” ๋งค์šฐ ํฅ๋ฏธ๋กœ์šด ์ฃผ์ œ์ธ ์˜ˆ์™ธ๋ฅผ ๊ฐ€์ง€๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ๋‹น์‹œ ์ Š์€ ๊ณผํ•™์ž๋“ค๊ณผ ํ”„๋กœ๊ทธ๋ž˜๋จธ๋“ค์ด ์ด ์ฃผ์ œ์— ์—ด๊ด‘ํ•˜๋˜ ์‹œ์ ˆโ€ฆ ๋‹ค์Œ์€ ๊ฐ•์˜๋…ธํŠธ์ž…๋‹ˆ๋‹ค. ๋‚˜๋Š” ๋‹น์‹ ์ด ๊ทธ๊ฒƒ์„ ์Šค์Šค๋กœ ์•Œ์•„๋‚ผ ๊ฒƒ์ด๋ผ๊ณ  ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค. ์—ฌ๊ธฐ: Java ์˜ˆ์™ธ(Oracle ์„ค๋ช…์„œ) Java์˜ ์˜ˆ์™ธ ์ฒ˜๋ฆฌ(Java T ํฌ์ธํŠธ) Java - ์˜ˆ์™ธ ์ฒ˜๋ฆฌ(ํŠœํ† ๋ฆฌ์–ผ ํฌ์ธํŠธ) ๊ธฐ๋ณธ Java ์˜ˆ์™ธ ์ฒ˜๋ฆฌ

10 ํ›Œ๋ฆฌ์˜ค

- ์•„๋ฏธ๊ณ , ์˜ค๋Š˜ ์ˆ˜์—… ์–ด๋•Œ? ๋‹น์‹ ์˜ ์–‘์ „์ž ๋‘๋‡Œ๊ฐ€ ์•„์ง ์ž‘๋™ํ•˜์ง€ ์•Š์•˜์Šต๋‹ˆ๊นŒ? ๋””์—๊ณ ์˜ ์ž„๋ฌด๋Š” ๋ˆ„๊ตฌ๋ผ๋„ ์ง€์น˜๊ฒŒ ํ•˜๊ธฐ์— ์ถฉ๋ถ„ํ•˜๋‹ค. ์ž ์‹œ ๋งฅ์ฃผ๋ฅผ ๋งˆ์‹œ๋ฉฐ ํœด์‹์„ ์ทจํ•ฉ์‹œ๋‹ค. ์•„์ง๋„ ์„œ ์žˆ๋‹ˆ?

11 ๋‹ค๋žŒ์ฅ ์„ ์žฅ

-์•ˆ๋…•ํ•˜์„ธ์š”, ๊ตฐ์ธ! - ์ข‹์€ ์•„์นจ์ž…๋‹ˆ๋‹ค! - ๋ฉ‹์ง„ ์†Œ์‹์ด ์žˆ์Šต๋‹ˆ๋‹ค. ๋‹ค์Œ์€ ๊ธฐ์ˆ ์„ ๊ฐ•ํ™”ํ•˜๊ธฐ ์œ„ํ•œ ๋น ๋ฅธ ํ™•์ธ์ž…๋‹ˆ๋‹ค. ๋งค์ผ ํ•˜์„ธ์š”, ๊ทธ๋Ÿฌ๋ฉด ๋‹น์‹ ์˜ ๊ธฐ์ˆ ์ด ์ •๋ง ๋น ๋ฅด๊ฒŒ ํ–ฅ์ƒ๋  ๊ฒƒ์ž…๋‹ˆ๋‹ค. ์ž‘์—…์€ Intellij IDEA์—์„œ ์ˆ˜ํ–‰ํ•˜๋„๋ก ํŠน๋ณ„ํžˆ ์„ค๊ณ„๋˜์—ˆ์Šต๋‹ˆ๋‹ค.
Intellij Idea์—์„œ ์ˆ˜ํ–‰ํ•  ์ถ”๊ฐ€ ์ž‘์—…
1 1. 0์œผ๋กœ ๋‚˜๋ˆ„๊ธฐ ์ž„์˜์˜ ์ˆซ์ž๋ฅผ 0์œผ๋กœ ๋‚˜๋ˆ„๊ณ  ๋‚˜๋ˆ„๊ธฐ ๊ฒฐ๊ณผ๋ฅผ ํ™”๋ฉด์— ํ‘œ์‹œํ•ด์•ผ ํ•˜๋Š” public static void divisionByZero()
๋ฉ”์„œ๋“œ๋ฅผ ๋งŒ๋“ญ๋‹ˆ๋‹ค . divisionByZero() ๋ฉ”์„œ๋“œ ํ˜ธ์ถœ์„ try..catch ๋กœ ๋ž˜ํ•‘ํ•ฉ๋‹ˆ๋‹ค . exception.printStackTrace() ๋ฉ”์„œ๋“œ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์˜ˆ์™ธ ์Šคํƒ ์ถ”์ ์„ ํ™”๋ฉด์— ํ‘œ์‹œํ•ฉ๋‹ˆ๋‹ค .
2 2. 10์—์„œ 0์œผ๋กœ ์นด์šดํŠธ๋‹ค์šด
10์—์„œ 0์œผ๋กœ ์นด์šดํŠธ๋‹ค์šดํ•˜๋Š” ๋ฃจํ”„๋ฅผ ์ž‘์„ฑํ•ฉ๋‹ˆ๋‹ค. Thread.sleep(100)์„ ์‚ฌ์šฉํ•˜์—ฌ ์ง€์—ฐ์„ ๋งŒ๋“ญ๋‹ˆ๋‹ค. sleep ํ˜ธ์ถœ์„ try..catch ๋กœ
๋ž˜ํ•‘ํ•ฉ๋‹ˆ๋‹ค .
์‚ผ 3. ๋ฉ”์„œ๋“œ๋ฅผ try..catch๋กœ ๋ž˜ํ•‘ํ•ฉ๋‹ˆ๋‹ค.
ํ‚ค๋ณด๋“œ์—์„œ ์ˆซ์ž๋ฅผ ์ฝ์Šต๋‹ˆ๋‹ค. ํ‚ค๋ณด๋“œ์—์„œ ์ˆซ์ž๋ฅผ ์ฝ๋Š” ์ฝ”๋“œ๋ฅผ ๋ณ„๋„์˜ ๋ฉ”์„œ๋“œ readData() ์— ์ž‘์„ฑํ•ฉ๋‹ˆ๋‹ค .
์ด ๋ฉ”์„œ๋“œ์˜ ์ „์ฒด ๋ณธ๋ฌธ( ์ˆซ์ž๊ฐ€ ์ €์žฅ๋  ๋ชฉ๋ก ์„ ์–ธ์„ ์ œ์™ธํ•œ readData() ๋ฉ”์„œ๋“œ ๋‚ด์˜ ์ „์ฒด ์ฝ”๋“œ)์„ try..catch ๋กœ ๋ž˜ํ•‘ํ•ฉ๋‹ˆ๋‹ค .

์‚ฌ์šฉ์ž๊ฐ€ ์ˆซ์ž๋ฅผ ์ž…๋ ฅํ•˜๋Š” ๋Œ€์‹  ํ…์ŠคํŠธ๋ฅผ ์ž…๋ ฅํ•˜๋ฉด ๋ฉ”์„œ๋“œ๋Š” ์˜ˆ์™ธ๋ฅผ ํฌ์ฐฉํ•˜๊ณ  ์ด์ „์— ์ž…๋ ฅํ•œ ๋ชจ๋“  ์ˆซ์ž๋ฅผ ํ™”๋ฉด์— ํ‘œ์‹œํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.
ํ™”๋ฉด์— ์ˆซ์ž๋ฅผ ํ‘œ์‹œํ•ฉ๋‹ˆ๋‹ค. ๊ฐ ๋ฒˆํ˜ธ๋Š” ์ƒˆ ์ค„์— ์žˆ์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ์ˆซ์ž์˜ ์ˆœ์„œ๋Š” ์ž…๋ ฅํ•  ๋•Œ์™€ ๊ฐ™์•„์•ผ ํ•ฉ๋‹ˆ๋‹ค.
4 4. ๋‚ ์งœ ๋ณ€ํ™˜๊ธฐ
ํ‚ค๋ณด๋“œ์—์„œ ยซ08/18/2013ยป ํ˜•์‹์˜ ๋‚ ์งœ๋ฅผ ์ฝ์Šต๋‹ˆ๋‹ค.
ยซ2013๋…„ 8์›” 18์ผยป ํ˜•์‹์œผ๋กœ ํ•ด๋‹น ๋‚ ์งœ๋ฅผ ํ™”๋ฉด์— ํ‘œ์‹œํ•ฉ๋‹ˆ๋‹ค. Date ๋ฐ SimpleDateFormat
๊ฐœ์ฒด๋ฅผ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค .
5 5. ๋ชจ์Œ๊ณผ ์ž์Œ
ํ‚ค๋ณด๋“œ์—์„œ ์ค„์„ ์ฝ์–ด์ฃผ๋Š” ํ”„๋กœ๊ทธ๋žจ์„ ์ž‘์„ฑํ•˜์„ธ์š”.
ํ”„๋กœ๊ทธ๋žจ์€ ํ™”๋ฉด์— ๋‘ ๊ฐœ์˜ ๋ฌธ์ž์—ด์„ ํ‘œ์‹œํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.
1) ์ฒซ ๋ฒˆ์งธ ๋ฌธ์ž์—ด์—๋Š” ๋ชจ์Œ์ด ํฌํ•จ๋˜์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.
2) ๋‘ ๋ฒˆ์งธ ๋ฌธ์ž์—ด์—๋Š” ์ž…๋ ฅ๋œ ํ…์ŠคํŠธ์˜ ์ž์Œ ๋ฐ ๊ตฌ๋‘์  ๋ฌธ์ž๊ฐ€ ํฌํ•จ๋˜์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.
๊ณต๋ฐฑ์œผ๋กœ ๋ฌธ์ž๋ฅผ ๊ตฌ๋ถ„ํ•ฉ๋‹ˆ๋‹ค.

์ž…๋ ฅ ์˜ˆ:
Stop look listen
์ถœ๋ ฅ ์˜ˆ:
oooie
stplklstn
6 6. ๋นจ๊ฐ„๋ชจ์ž์˜ ์ด์•ผ๊ธฐ
1. ๋นจ๊ฐ„๋ชจ์ž, ํ• ๋จธ๋‹ˆ, ํŒจํ‹ฐ, ๋‚˜๋ฌด๊พผ, ๋Š‘๋Œ€์˜ 5๊ฐ€์ง€ ํด๋ž˜์Šค๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค.
2. ๊ฐ ํด๋ž˜์Šค์—๋Š” ๋‘ ๊ฐœ์˜ ArrayList ์œ ํ˜• ํ•„๋“œ์ธ kill ๋ฐ ate๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค.
3. ํ•„์š”ํ•œ ๊ฐœ์ฒด๊ฐ€ ์ด๋ฏธ ์ƒ์„ฑ๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค(ํ›„๋“œ, ํ• ๋จธ๋‹ˆ, ...).
4. "๋นจ๊ฐ„ ๋ชจ์ž"์˜ ๋…ผ๋ฆฌ๋ฅผ ์–ป๊ธฐ ์œ„ํ•ด ์˜ฌ๋ฐ”๋ฅธ ๊ด€๊ณ„(๋ˆ„๊ฐ€ ๋ˆ„๊ตฌ๋ฅผ ๋จน๊ณ  ์ฃฝ์˜€๋Š”๊ฐ€)๋ฅผ ๋งŒ๋“œ์‹ญ์‹œ์˜ค.
7 7. ์ •์  ์ˆ˜์ • ์ด๋™
์ •์  ์ˆ˜์ •์ž๋ฅผ ์ด๋™ํ•˜์—ฌ ์ฝ”๋“œ๊ฐ€ ์ปดํŒŒ์ผ๋˜๋„๋ก ํ•ฉ๋‹ˆ๋‹ค.
8 8. ์ˆซ์ž ๋ฐฐ์—ด ๋ชฉ๋ก
์š”์†Œ๊ฐ€ ์ˆซ์ž ๋ฐฐ์—ด์ธ ๋ชฉ๋ก์„ ๋งŒ๋“ญ๋‹ˆ๋‹ค. ๊ธธ์ด๊ฐ€ ๊ฐ๊ฐ 5, 2, 4, 7, 0์ธ 5๊ฐœ์˜ ๊ฐ์ฒด ๋ฐฐ์—ด์„ ๋ชฉ๋ก์— ์ถ”๊ฐ€ํ•ฉ๋‹ˆ๋‹ค. ๋ฐ์ดํ„ฐ๋กœ ๋ฐฐ์—ด์„ ์ฑ„์šฐ๊ณ  ํ™”๋ฉด์— ํ‘œ์‹œํ•ฉ๋‹ˆ๋‹ค.
9 9. ๊ณ ์–‘์ด 10๋งˆ๋ฆฌ String name ํ•„๋“œ๊ฐ€ ์žˆ๋Š” Cat ํด๋ž˜์Šค๋ฅผ
๋งŒ๋“ญ๋‹ˆ๋‹ค . Map<String, Cat> ์‚ฌ์ „์„ ๋งŒ๋“ค๊ณ  ยซNameยป - ยซCatยป ๋ชจ๋ธ์— ๊ณ ์–‘์ด 10๋งˆ๋ฆฌ๋ฅผ ์ถ”๊ฐ€ํ•ฉ๋‹ˆ๋‹ค. ๋งต ์—์„œ ์ด๋ฆ„ ์ง‘ํ•ฉ์„ ๊ฐ€์ ธ์˜ค๊ณ  ํ™”๋ฉด ์— ์ง‘ํ•ฉ์„ ํ‘œ์‹œํ•ฉ๋‹ˆ๋‹ค.

- ๊ทธ ์ž„๋ฌด๋Š” ๊ทธ๋ฆฐ์„ ์œ„ํ•œ ๊ฒƒ์ด์—ˆ๋‹ค. ๋” ๋ณต์žกํ•œ ๋ณด๋„ˆ์Šค ์ž‘์—…์„ ์ถ”๊ฐ€ํ–ˆ์Šต๋‹ˆ๋‹ค. ํƒ‘๊ฑด ์ „์šฉ.
๋ณด๋„ˆ์Šค ์ž‘์—…
1 1. ํ”„๋กœ๊ทธ๋žจ์ด ์ปดํŒŒ์ผ ๋ฐ ์‹คํ–‰๋˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ๊ณ ์ณ.
์ž‘์—…: ํ”„๋กœ๊ทธ๋žจ์€ ํ‚ค๋ณด๋“œ์—์„œ ๋‘ ๊ฐœ์˜ ํŒŒ์ผ ์ด๋ฆ„์„ ์ฝ๊ณ  ์ฒซ ๋ฒˆ์งธ ํŒŒ์ผ์„ ๋‘ ๋ฒˆ์งธ ์ด๋ฆ„์œผ๋กœ ์ง€์ •๋œ ์œ„์น˜์— ๋ณต์‚ฌํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.
2 2. ํ”„๋กœ๊ทธ๋žจ์— ์ƒˆ๋กœ์šด ๊ธฐ๋Šฅ์„ ์ถ”๊ฐ€ํ•ฉ๋‹ˆ๋‹ค.
์ด์ „ ์ž‘์—…: ํ”„๋กœ๊ทธ๋žจ์€ ํ‚ค๋ณด๋“œ์—์„œ ๋‘ ๊ฐœ์˜ ํŒŒ์ผ ์ด๋ฆ„์„ ์ฝ๊ณ  ์ฒซ ๋ฒˆ์งธ ํŒŒ์ผ์„ ๋‘ ๋ฒˆ์งธ ์ด๋ฆ„์œผ๋กœ ์ง€์ •๋œ ์œ„์น˜์— ๋ณต์‚ฌํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.
์ƒˆ ์ž‘์—…: ํ”„๋กœ๊ทธ๋žจ์€ ํ‚ค๋ณด๋“œ์—์„œ ๋‘ ๊ฐœ์˜ ํŒŒ์ผ ์ด๋ฆ„์„ ์ฝ๊ณ  ์ฒซ ๋ฒˆ์งธ ํŒŒ์ผ์„ ๋‘ ๋ฒˆ์งธ ์ด๋ฆ„์œผ๋กœ ์ง€์ •๋œ ์œ„์น˜์— ๋ณต์‚ฌํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

์ง€์ •๋œ ์ด๋ฆ„์„ ๊ฐ€์ง„ ํŒŒ์ผ(๋ณต์‚ฌํ•  ํŒŒ์ผ)์ด ์กด์žฌํ•˜์ง€ ์•Š๋Š” ๊ฒฝ์šฐ ํ”„๋กœ๊ทธ๋žจ์€ ยซํŒŒ์ผ์ด ์กด์žฌํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹คยป๋ผ๋Š” ๋ฉ”์‹œ์ง€๋ฅผ ํ™”๋ฉด์— ํ‘œ์‹œํ•˜๊ณ  ํŒŒ์ผ์„ ์ฝ๊ธฐ ์ „์— ์ฝ˜์†”์—์„œ ํŒŒ์ผ ์ด๋ฆ„ ์ฝ๊ธฐ๋ฅผ ๋‹ค์‹œ ์‹œ๋„ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ๋‘ ๋ฒˆ์งธ(๋Œ€์ƒ) ํŒŒ์ผ์˜ ์ด๋ฆ„์ž…๋‹ˆ๋‹ค.
์‚ผ 3. ์•Œ๊ณ ๋ฆฌ์ฆ˜ ํ•™์Šต ๋ฐ ์‹ค์Šต.
ํ‚ค๋ณด๋“œ์—์„œ ๋‹จ์–ด ๋ฐ ์ˆซ์ž ๋ชฉ๋ก์„ ์ฝ์Šต๋‹ˆ๋‹ค. ๋‹จ์–ด๋Š” ์˜ค๋ฆ„์ฐจ์ˆœ์œผ๋กœ, ์ˆซ์ž๋Š” ๋‚ด๋ฆผ์ฐจ์ˆœ์œผ๋กœ ํ™”๋ฉด์— ํ‘œ์‹œํ•ฉ๋‹ˆ๋‹ค.

์ž…๋ ฅ ์˜ˆ:
Cherry
1
Bean
3
Apple
2
0
Watermelon

์ถœ๋ ฅ ์˜ˆ:
Apple
3
Bean
2
Cherry
1
0
Watermelon
์ฝ”๋ฉ˜ํŠธ
  • ์ธ๊ธฐ
  • ์‹ ๊ทœ
  • ์ด์ „
์ฝ”๋ฉ˜ํŠธ๋ฅผ ๋‚จ๊ธฐ๋ ค๋ฉด ๋กœ๊ทธ์ธ ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค
์ด ํŽ˜์ด์ง€์—๋Š” ์•„์ง ์ฝ”๋ฉ˜ํŠธ๊ฐ€ ์—†์Šต๋‹ˆ๋‹ค