๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ
์Šคํ„ฐ๋””/์˜ค๋ธŒ์ ํŠธ

[์˜ค๋ธŒ์ ํŠธ] 4์žฅ '์„ค๊ณ„ ํ’ˆ์งˆ๊ณผ ํŠธ๋ ˆ์ด๋“œ์˜คํ”„'

by moon101 2022. 11. 4.

 

4์žฅ์—์„œ๋Š” ์˜ํ™” ์˜ˆ๋งค ์‹œ์Šคํ…œ์„ ์ ˆ์ฐจ์  ํ”„๋กœ๊ทธ๋ž˜๋ฐ(๋ฐ์ดํ„ฐ ์ค‘์‹ฌ)์œผ๋กœ ๊ตฌํ˜„ํ•˜๊ณ  ์บก์Šํ™”, ์‘์ง‘๋„, ๊ฒฐํ•ฉ๋„๋กœ ์ฝ”๋“œ๋ฅผ ํ‰๊ฐ€ํ•ด ๋ณธ๋‹ค. 

 

2์žฅ ์ฝ”๋“œ๊ฐ€ ์–ด๋ ค์›Œ์„œ 4์žฅ๋„ ๋ฏธ๋ฆฌ ๊ฒ๋จน์—ˆ๋Š”๋ฐ ์ƒ๊ฐ๋ณด๋‹ค ์ดํ•ดํ•˜๊ธฐ ์‰ฌ์› ๋‹ค. ํ™•์‹คํžˆ ๋น„๊ตํ•ด์„œ ๋ณด๋‹ˆ๊นŒ ์™œ ๊ฐ์ฒด์ง€ํ–ฅ์ ์œผ๋กœ ์ฝ”๋“œ๋ฅผ ์ž‘์„ฑํ•ด์•ผ ํ•˜๋Š”์ง€ ์•Œ ์ˆ˜ ์žˆ์—ˆ๋‹ค. 

 

 

 

์ง„์ •ํ•œ ์บก์Šํ™”๋ž€?

๋‹จ์ˆœํžˆ ์ธ์Šคํ„ด์Šค ๋ณ€์ˆ˜๋ฅผ private๋กœ ๋ณ€๊ฒฝํ•˜๊ณ  ํ•ด๋‹น ๋ฐ์ดํ„ฐ๋ฅผ ๋ณ€๊ฒฝํ•  ์ˆ˜ ์žˆ๋„๋ก public ๊ฒŒํ„ฐ/์„ธํ„ฐ๋ฅผ ๋งŒ๋“ค์–ด ๋†“๋Š”๊ฑด ์ง„์ •ํ•œ ์˜๋ฏธ์˜ ์บก์Šํ™”๋Š” ์•„๋‹ˆ๋‹ค.  ์บก์Šํ™”๋Š” ๋ณ€๊ฒฝ๋  ์ˆ˜ ์žˆ๋Š” ์–ด๋–ค ๊ฒƒ์ด๋ผ๋„ ๊ฐ์ถ”๋Š” ๊ฒƒ์ด๊ณ , ๋‚ด๋ถ€ ์†์„ฑ์„ ์™ธ๋ถ€๋กœ๋ถ€ํ„ฐ ๊ฐ์ถ”๋Š” ๊ฒƒ์€ '๋ฐ์ดํ„ฐ ์บก์Šํ™”'์ด๋‹ค. ํ•˜์ง€๋งŒ ์ฑ…์—์„œ ์„ค๋ช…ํ•˜๋“ฏ์ด ์™ธ๋ถ€์—์„œ ์ ‘๊ทผํ•  ์ˆ˜ ์žˆ๋Š” ๋ฉ”์†Œ๋“œ๋ฅผ ํ†ตํ•ด ๊ฐ์ฒด๊ฐ€ ๊ฐ€์ง€๊ณ  ์žˆ๋Š” ๋‚ด๋ถ€ ์†์„ฑ์„ ์•Œ ์ˆ˜ ์žˆ๋‹ค๋Š” ๊ฑด ๋‚ด๋ถ€ ๊ตฌํ˜„์„ ๋ณ€๊ฒฝํ•  ๊ฒฝ์šฐ, ์ด ๋ฉ”์†Œ๋“œ๋ฅผ ์˜์กดํ•˜๊ณ  ์žˆ๋Š” ๋ชจ๋“  ํด๋ผ์ด์–ธํŠธ๋„ ์˜ํ–ฅ์„ ๋ฐ›๋Š”๋‹ค๋Š” ๊ฒƒ์„ ์˜๋ฏธํ•œ๋‹ค. ๋”ฐ๋ผ์„œ ์šฐ๋ฆฌ๋Š” ์„ค๊ณ„์—์„œ ๋ณ€ํ•˜๋Š” ๊ฒƒ์ด ๋ฌด์—‡์ธ์ง€ ๊ณ ๋ คํ•˜๊ณ  ๋ณ€ํ•˜๋Š” ๊ฐœ๋…์„ ์บก์Šํ™”ํ•ด์•ผ ํ•œ๋‹ค(p.128)

 

๋ฐ์ดํ„ฐ ์ค‘์‹ฌ ์„ค๊ณ„์˜ ๋ฌธ์ œ์ ์€ ๋ฌด์—‡์ผ๊นŒ?

- ํ–‰๋™๋ณด๋‹ค ์ƒํƒœ์— ์ดˆ์ ์„ ๋งž์ถ˜๋‹ค

- ๊ฐ์ฒด๋ฅผ ๊ณ ๋ฆฝ์‹œํ‚จ ์ฑ„ ์˜คํผ๋ ˆ์ด์…˜์„ ์ •์˜ํ•˜๋„๋ก ํ•œ๋‹ค -> ๊ฐ์ฒด๊ฐ€ ๋‹ค๋ฅธ ๊ฐ์ฒด์™€ ์–ด๋–ป๊ฒŒ ํ˜‘๋ ฅํ•˜๋Š”์ง€์— ๋Œ€ํ•œ ๊ณ ๋ฏผ ์—†์ด ๊ฐ์ฒด๊ฐ€ ๊ด€๋ฆฌํ•  ๋ฐ์ดํ„ฐ์˜ ์„ธ๋ถ€ ์ •๋ณด๋ฅผ ๋ฏธ๋ฆฌ ๊ฒฐ์ •ํ•ด ๋†“๊ธฐ ๋•Œ๋ฌธ์— ๋‚˜์ค‘์— ๊ฐ์ฒด๋“ค์ด ํ˜‘๋ ฅํ•  ๋•Œ ์ด๋ฏธ ๊ตฌํ˜„๋œ ๊ฐ์ฒด์˜ ์ธํ„ฐํŽ˜์ด์Šค๋ฅผ ์จ์•ผ ํ•œ๋‹ค. 

 


์Šคํ„ฐ๋””์—์„œ 2์žฅ ์ฝ”๋“œ๋ฅผ ๊ณต๋ถ€ํ•  ์˜ˆ์ •์ด๋ผ ์ฝ”๋“œ์— ์ฃผ์„์„ ๋‹ฌ์•„๋†“์•˜๋Š”๋ฐ, ์ด๋ ‡๊ฒŒ ํ•˜๋Š” ๊ฒƒ์ด ๋งž๋Š”์ง€ ๋ชจ๋ฅด๊ฒ ์–ด์„œ ์†Œ์Šค์ฝ”๋“œ ๋ถ„์„ ๋ฐฉ๋ฒ•์„ ์ฐพ์•„๋ณด์•˜๋‹ค. 

 

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

์งˆ๋ฌธ์„ ๋งŽ์ด ํ•˜๋Š” ๊ฒƒ. ์˜ˆ๋ฅผ ๋“ค์–ด '๋‚˜๋ผ๋ฉด ์–ด๋–ป๊ฒŒ ๊ฐœ๋ฐœํ–ˆ์„์ง€' ๊ณ ๋ฏผํ•ด ๋ณด๊ธฐ. UML, PPT ๋“ฑ์œผ๋กœ ๋ฌธ์„œํ™”ํ•˜๊ธฐ. 

Log level์„ ๋””๋ฒ„๊ทธ๋กœ ์„ค์ •ํ•˜๊ณ  ๋””๋ฒ„๊ฑฐ์˜ breakpoint ํ™œ์šฉ. (์Šคํ… ๋‹จ์œ„๋กœ ์‹คํ–‰ํ•˜๋ฉด์„œ ๊ฐ ๋ณ€์ˆ˜์˜ ๋ณ€ํ™” ์ƒํƒœ ํ™•์ธ)

Thread.dumpStack()๋ฅผ ์ถ”๊ฐ€ํ•˜์—ฌ ์ „์ฒด ํ˜ธ์ถœ ํ๋ฆ„ ๋ฐ ์‹ค์ œ ๋ฐ”์ธ๋”ฉ ๋˜๋Š” ํด๋ž˜์Šค ํ™•์ธ. ๋””์ž์ธ ํŒจํ„ด ๊ณต๋ถ€. 

 

 

Thread.dumpStack()

- ํ˜„์žฌ ์ฝœ์Šคํƒ์„ ์ถœ๋ ฅ(output)ํ•จ. exception stack trace์ฒ˜๋Ÿผ. ์ฝ”๋“œ๋ฅผ ๋Š๋ฆฌ๊ฒŒ ํ•˜๊ธฐ ๋•Œ๋ฌธ์— ๋””๋ฒ„๊น…ํ•  ๋•Œ๋งŒ ์‚ฌ์šฉํ•ด์•ผ ํ•จ

 

 

์ฐธ๊ณ ์‚ฌ์ดํŠธ

https://www.facebook.com/218158748272233/posts/758498224238280/

https://www.popit.kr/%EC%98%A4%ED%94%88%EC%86%8C%EC%8A%A4-%EC%BD%94%EB%93%9C-%EB%B6%84%EC%84%9D-%EC%96%B4%EB%96%BB%EA%B2%8C-%ED%95%98%EB%82%98/

 

๋Œ“๊ธ€