[Android ๊ธฐ์ดˆ] 20(๋). ์•ˆ๋“œ๋กœ์ด๋“œ ์•ฑ ๋””๋ฒ„๊น…
๋ฐ˜์‘ํ˜•

 

 

 

 

 

๋””๋ฒ„๊น…

https://developer.android.com/studio/debug?hl=ko

 

์•ฑ ๋””๋ฒ„๊ทธ  |  Android Studio  |  Android Developers

Android ์ŠคํŠœ๋””์˜ค์˜ ๊ธฐ๋ณธ์ ์ธ ๋””๋ฒ„๊ฑฐ ์ž‘์—…์„ ์•ˆ๋‚ดํ•ฉ๋‹ˆ๋‹ค.

developer.android.com

  • ๋ชจ๋“  ์†Œํ”„ํŠธ์›จ์–ด์—์„œ ์†Œ์Šค ์ฝ”๋“œ์˜ ์˜ค๋ฅ˜ ๋˜๋Š” ๋ฒ„๊ทธ๋ฅผ ์ฐพ์•„์„œ ์ˆ˜์ •ํ•˜๋Š” ๊ณผ์ •
  • ์†Œํ”„ํŠธ์›จ์–ด๊ฐ€ ์˜ˆ์ƒ๋Œ€๋กœ ์ž‘๋™ํ•˜์ง€ ์•Š์œผ๋ฉด ํ”„๋กœ๊ทธ๋ž˜๋จธ๋Š” ์˜ค๋ฅ˜๊ฐ€ ์ผ์–ด๋‚˜๋Š” ์›์ธ์„ ์•Œ์•„๋‚ด๊ธฐ ์œ„ํ•ด ์ฝ”๋“œ๋ฅผ ๋ถ„์„
  • ๋””๋ฒ„๊น… ๋„๊ตฌ๋ฅผ ์‚ฌ์šฉํ•ด ์†Œํ”„ํŠธ์›จ์–ด๋ฅผ ์ œ์–ด๋œ ํ™˜๊ฒฝ์—์„œ ์‹คํ–‰ํ•˜๊ณ  ์ฝ”๋“œ๋ฅผ ๋‹จ๊ณ„๋ณ„๋กœ ํ™•์ธํ•˜์—ฌ ๋ฌธ์ œ๋ฅผ ๋ถ„์„ํ•˜๊ณ  ์ˆ˜์ •

 

 

๋””๋ฒ„๊น… ํ”„๋กœ์„ธ์Šค

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

 

 

๋””๋ฒ„๊น…์ด ํ•„์š”ํ•œ ์ฝ”๋”ฉ ์˜ค๋ฅ˜

  • ๊ตฌ๋ฌธ ์˜ค๋ฅ˜
    ์ปดํ“จํ„ฐ ํ”„๋กœ๊ทธ๋žจ์— ์ž˜๋ชป ์ž…๋ ฅ๋œ ๋ช…๋ น๋ฌธ์ด ์žˆ์„ ๋•Œ ๋ฐœ์ƒํ•˜๋Š” ๋ฒ„๊ทธ
    ์›Œ๋“œ ํ”„๋กœ์„ธ์‹ฑ์˜ ์˜คํƒ€ ๋˜๋Š” ์ฒ ์ž ์˜ค๋ฅ˜
    ๊ตฌ๋ฌธ ์˜ค๋ฅ˜๊ฐ€ ์žˆ์œผ๋ฉด ํ”„๋กœ๊ทธ๋žจ์ด ์•„์˜ˆ ์ปดํŒŒ์ผ๋˜๊ฑฐ๋‚˜ ์‹คํ–‰๋˜์ง€ ์•Š์Œ
  • ์˜๋ฏธ๋ก ์  ์˜ค๋ฅ˜
    ํ”„๋กœ๊ทธ๋ž˜๋ฐ ๋ช…๋ น๋ฌธ์„ ์ž˜๋ชป ์‚ฌ์šฉํ•  ๋•Œ ๋ฐœ์ƒ
    ์˜ˆ๋ฅผ ๋“ค์–ด x/(2 π)๋ผ๋Š” ํ‘œํ˜„์‹์„ Python์œผ๋กœ ๋ณ€ํ™˜ํ•˜๋Š” ๊ฒฝ์šฐ y = x / 2 * math.pi ๋กœ ์ž‘์„ฑํ•  ์ˆ˜ ์žˆ์ง€๋งŒ, ๊ณฑ์…ˆ๊ณผ ๋‚˜๋ˆ—์…ˆ์€ Python์—์„œ ๋™์ผํ•œ ์šฐ์„  ์ˆœ์œ„๋ฅผ ๊ฐ€์ง€๋ฉฐ, ์™ผ์ชฝ์—์„œ ์˜ค๋ฅธ์ชฝ์œผ๋กœ ๊ณ„์‚ฐ๋˜๊ธฐ ๋•Œ๋ฌธ์— ๋ฒ„๊ทธ๊ฐ€ ๋ฐœ์ƒ
  • ๋…ผ๋ฆฌ ์˜ค๋ฅ˜
    ํ”„๋กœ๊ทธ๋ž˜๋จธ๊ฐ€ ์ปดํ“จํ„ฐ ํ”„๋กœ๊ทธ๋žจ์˜ ๋‹จ๊ณ„์  ํ”„๋กœ์„ธ์Šค๋‚˜ ์•Œ๊ณ ๋ฆฌ์ฆ˜์„ ์ž˜๋ชป ์ž…๋ ฅํ•  ๋•Œ ๋ฐœ์ƒ
    ์˜ˆ๋ฅผ ๋“ค์–ด ์ฝ”๋“œ์—์„œ ๋„ˆ๋ฌด ์ผ์ฐ ๋ฃจํ”„๊ฐ€ ์ข…๋ฃŒ๋˜๊ฑฐ๋‚˜ ์ž˜๋ชป๋œ if-then ๊ฒฐ๊ณผ๊ฐ€ ์žˆ์„ ์ˆ˜ ์žˆ์Œ
    ์—ฌ๋Ÿฌ ๊ฐ€์ง€ ์ž…๋ ฅ/์ถœ๋ ฅ ์‹œ๋‚˜๋ฆฌ์˜ค์˜ ์ฝ”๋“œ๋ฅผ ๋‹จ๊ณ„๋ณ„๋กœ ์‚ดํŽด๋ณด๋ฉด ๋…ผ๋ฆฌ ์˜ค๋ฅ˜๋ฅผ ์ฐพ์•„๋‚ผ ์ˆ˜ ์žˆ์Œ
  • ๋Ÿฐํƒ€์ž„ ์˜ค๋ฅ˜
    ์†Œํ”„ํŠธ์›จ์–ด ์ฝ”๋“œ๊ฐ€ ์‹คํ–‰๋˜๋Š” ์ปดํ“จํŒ… ํ™˜๊ฒฝ์œผ๋กœ ์ธํ•ด ๋ฐœ์ƒ
    ์ด ์˜ค๋ฅ˜์˜ ์˜ˆ๋กœ๋Š” ๋ฉ”๋ชจ๋ฆฌ ๊ณต๊ฐ„ ๋ถ€์กฑ ๋˜๋Š” ์Šคํƒ ์˜ค๋ฒ„ํ”Œ๋กœ๊ฐ€ ์žˆ์Œ
    try-catch ๋ธ”๋ก์˜ ๋ช…๋ น๋ฌธ์„ ๋‘˜๋Ÿฌ์‹ธ๊ฑฐ๋‚˜ ์ ์ ˆํ•œ ๋ฉ”์‹œ์ง€๋กœ ์˜ˆ์™ธ๋ฅผ ๋กœ๊น…ํ•˜์—ฌ ๋Ÿฐํƒ€์ž„ ์˜ค๋ฅ˜๋ฅผ ํ•ด๊ฒฐํ•  ์ˆ˜ ์žˆ์Œ

 

 

๋””๋ฒ„๊น… ์ „๋žต (์˜ค๋ฅ˜ ์ตœ์†Œํ™”, ๋””๋ฒ„๊น… ์‹œ๊ฐ„ ์ค„์ž„)

 

๋””๋ฒ„๊น…์ด๋ž€ ๋ฌด์—‡์ธ๊ฐ€์š”? - ๋””๋ฒ„๊น… ์„ค๋ช… - AWS

๋””๋ฒ„๊น…์ด๋ผ๋Š” ์šฉ์–ด์˜ ์œ ๋ž˜๋Š” 1940๋…„๋Œ€์— ํ•˜๋ฒ„๋“œ ๋Œ€ํ•™์—์„œ ๊ทผ๋ฌดํ–ˆ๋˜ Grace Hopper ์ œ๋… ์‹œ์ ˆ๋กœ ๊ฑฐ์Šฌ๋Ÿฌ ์˜ฌ๋ผ๊ฐ‘๋‹ˆ๋‹ค. ๊ทธ๋…€์˜ ๋™๋ฃŒ ์ค‘ ํ•œ ๋ช…์ด ๋Œ€ํ•™์˜ ์ปดํ“จํ„ฐ ์ž‘๋™์„ ๋ฐฉํ•ดํ•˜๋Š” ๋‚˜๋ฐฉ์„ ๋ฐœ๊ฒฌํ•˜์ž, ๊ทธ๋…€๋Š”

aws.amazon.com

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

 

 


 

 

์ฝ”๋“œ์— Log ๋„ฃ๋Š” ๋ฒ•

  • ์•ˆ๋“œ๋กœ์ด๋“œ ๊ฐœ๋ฐœ ์‹œ Log ํด๋ž˜์Šค๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๋””๋ฒ„๊น… ์ •๋ณด๋ฅผ ์ฝ˜์†”์— ์ถœ๋ ฅ
  • Log ํด๋ž˜์Šค๋Š” ์•ˆ๋“œ๋กœ์ด๋“œ SDK์˜ ์ผ๋ถ€๋กœ,
    ๋‹ค์–‘ํ•œ ๋กœ๊น… ๋ฉ”์†Œ๋“œ๋ฅผ ์ œ๊ณตํ•˜์—ฌ ๊ฐœ๋ฐœ์ž๊ฐ€ ์•ฑ์˜ ๋™์ž‘์„ ๋ชจ๋‹ˆํ„ฐ๋งํ•˜๊ณ  ๋ฌธ์ œ๋ฅผ ์ง„๋‹จํ•˜๋Š” ๋ฐ ๋„์›€์„ ์คŒ
  • ๋กœ๊ทธ ๋ฉ”์†Œ๋“œ
    Log.v(String tag, String msg): Verbose - ๋งค์šฐ ๋‚ฎ์€ ์šฐ์„ ์ˆœ์œ„์˜ ๋กœ๊ทธ ๋ฉ”์‹œ์ง€์— ์‚ฌ์šฉ
    Log.d(String tag, String msg): Debug - ๋””๋ฒ„๊น… ๋ชฉ์ ์œผ๋กœ ์‚ฌ์šฉ
    Log.i(String tag, String msg): Info - ์ผ๋ฐ˜์ ์ธ ์ •๋ณด๋ฅผ ๋‚˜ํƒ€๋‚ด๊ธฐ ์œ„ํ•ด ์‚ฌ์šฉ
    Log.w(String tag, String msg): Warn - ๊ฒฝ๊ณ ๋‚˜ ์˜ˆ์ƒ์น˜ ๋ชปํ•œ ์ƒํ™ฉ์„ ๋‚˜ํƒ€๋‚ผ ๋•Œ ์‚ฌ์šฉ
    Log.e(String tag, String msg): Error - ์‹ฌ๊ฐํ•œ ์˜ค๋ฅ˜๋ฅผ ๋ณด๊ณ ํ•  ๋•Œ ์‚ฌ์šฉ
    Log.wtf(String tag, String msg): What a Terrible Failure - ์‹ฌ๊ฐํ•œ ์˜ค๋ฅ˜๊ฐ€ ์•„๋‹Œ ๊ฒฝ์šฐ์—๋„ ์‹œ์Šคํ…œ์ด ์ฃฝ์–ด๋ฒ„๋ฆด ์ •๋„๋กœ ์‹ฌ๊ฐํ•œ ์ƒํ™ฉ์„ ๋‚˜ํƒ€๋‚ผ ๋•Œ ์‚ฌ์šฉ
  • ๊ฐ ๋กœ๊ทธ ๋ฉ”์†Œ๋“œ๋Š” ๋‘ ๊ฐœ์˜ ํŒŒ๋ผ๋ฏธํ„ฐ๋ฅผ ๋ฐ›์Œ (tag, msg)
    tag: ๋กœ๊ทธ ๋ฉ”์‹œ์ง€๋ฅผ ํ•„ํ„ฐ๋งํ•  ๋•Œ ์‚ฌ์šฉ๋˜๋Š” ๋ฌธ์ž์—ด
    msg: ์‹ค์ œ ๋กœ๊ทธ ๋ฉ”์‹œ์ง€์ž…๋‹ˆ๋‹ค.

 

 

์•ˆ๋“œ๋กœ์ด๋“œ ์˜ค๋ฅ˜ ์ข…๋ฅ˜

 

1) Syntax Error

  • ์ฝ”ํ‹€๋ฆฐ ๋ฌธ๋ฒ• ์˜ค๋ฅ˜,  Android API์˜ Method ์ด๋ฆ„, ๋ฆฌ์†Œ์Šค ๋ช…, ์˜คํƒ€๋“ฑ๋“ฑ ๋ฏธ๋ฆฌ ์ •์˜๋˜์ง€ ์•Š์€ ๊ตฌ๋ฌธ์„ ์‚ฌ์šฉํ• ๋•Œ ๋ฐœ์ƒ
  • Android Studio ์ฝ”๋“œ ํŽธ์ง‘ ํ™”๋ฉด์—์„œ ๋นจ๊ฐ„์ค„๋กœ ํ‘œ์‹œ
  • ๋Œ€๋ถ€๋ถ„ ์ปดํŒŒ์ผ ๊ณผ์ •์—์„œ ๋นŒ๋“œ ์—๋Ÿฌ๊ฐ€ ๋ฐœ์ƒ
  • Build Output ์ฐฝ์—์„œ ์—๋Ÿฌ ๋ฐœ์ƒ ์œ„์น˜ ํ™•์ธ ํ›„ ์ˆ˜์ •

 

2) Runtime Error

  • ์ปดํŒŒ์ผ์€ ์ •์ƒ์ด๊ณ  ์•ฑ๋„ ์‹คํ–‰๋˜์ง€๋งŒ ์•ฑ ๊ตฌ๋™์ค‘์— ๋ฐœ์ƒํ•˜๋Š” ์—๋Ÿฌ
  • ์•ฑ ๊ตฌ๋™์ค‘ ๋ฉ”๋ชจ๋ฆฌ ๋ถ€์กฑ์ด๋‚˜ ๋ฐฐ์—ด์˜ ์ž˜๋ชป ๋œ ์ฃผ์†Œ๊ฐ’ ํ• ๋‹น, ๊ฐ์ฒด์˜ ์ƒ์„ฑ์ž๊ฐ€ ์‹คํ–‰๋˜์ง€๋„ ์•Š์•˜๋Š”๋ฐ ๊ฐ์ฒด๋ฅผ ์‚ฌ์šฉํ•˜๋ ค๊ณ  ํ•  ๋•Œ, ํŠน์ • ๋ทฐ(View)๋ฅผ ์‚ฌ์šฉํ•  ๋•Œ์—๋Š” ๊ทธ์— ๋งž๋Š” id๋ฅผ ์ง€์ •ํ•ด์ฃผ์–ด์•ผ ํ•˜๋Š”๋ฐ ๊ทธ๋ ‡์ง€ ๋ชป ํ•  ๊ฒฝ์šฐ ๋“ฑ๋“ฑ ๋งค์šฐ ๋‹ค์–‘
  • ์˜ˆ: java.lang.IndexOutOfBoundsException: Index: 100, Size: 1
    = array size๊ฐ€ 1 ์ธ๋ฐ,  100๋ฒˆ index๋ฅผ ์š”์ฒญํ•ด์„œ ์ƒ๊ธด ์˜ค๋ฅ˜
  • Exception์˜ ์ข…๋ฅ˜๋Š” ์ˆ˜๋ฐฑ๊ฐ€์ง€์ด๋ฏ€๋กœ, ๊ตฌ๊ธ€์— “android+ Exception์ด๋ฆ„”์œผ๋กœ ๊ฒ€์ƒ‰ํ•˜๊ธฐ

 

3) Logical Error

  • ์†Œ์Šค ์ฝ”๋“œ ์ปดํŒŒ์ผ๋„ ์ •์ƒ์ ์œผ๋กœ ๋˜๊ณ  ๋Ÿฐํƒ€์ž„์ƒ ์—๋Ÿฌ๋„ ์—†์ง€๋งŒ ๊ฐœ๋ฐœ์ž์˜ ์˜๋„์™€๋Š” ๋‹ค๋ฅด๊ฒŒ ๋™์ž‘ํ•˜๋Š” ์—๋Ÿฌ
  • ๋ฒ„ํŠผ์„ ํด๋ฆญํ•˜๋ฉด ํŒ์—…์ด ๋œจ๊ฒŒ ๋งŒ๋“ค์—ˆ์œผ๋‚˜ ํŒ์—…์ด ์•„๋‹Œ ์ƒˆ๋กœ์šด ํŽ˜์ด์ง€๊ฐ€ ๋œจ๊ฑฐ๋‚˜ ์•„๋ฌด ๋™์ž‘์„ ์•ˆํ•˜๊ฑฐ๋‚˜ ํ•˜๋Š” ๊ฒƒ์ฒ˜๋Ÿผ ์‹œ์Šคํ…œ์ƒ ํ”„๋กœ๊ทธ๋žจ์ด ๋ฉˆ์ถ”๊ฑฐ๋‚˜ ํ•˜์ง€๋Š” ์•Š์ง€๋งŒ, ์˜๋„์™€๋Š” ๋‹ค๋ฅด๊ฒŒ ๋™์ž‘ํ•˜๋Š” ๊ฒƒ

 

 

๋””๋ฒ„๊น… ๋ชจ๋“œ

 

1. break point(์ค‘๋‹จ์ ) ๊ฑธ๊ธฐ

  • ์ฝ”๋“œ์˜ ํŠน์ • ํฌ์ธํŠธ์—์„œ ์–ด๋–ค ๊ฐ’์ด ๋“ค์–ด๊ฐ€ ์žˆ๋Š”์ง€, ๋ฉ”์†Œ๋“œ๋Š” ์ž˜ ์‹คํ–‰๋˜๊ณ  ์žˆ๋Š”์ง€ ๋“ฑ์„ ์•Œ๊ธฐ ์œ„ํ•ด ๋‚ด๊ฐ€ ํ™•์ธํ•˜๊ณ  ์‹ถ์€ ์ฝ”๋“œ์— break point(์ค‘๋‹จ์ )์„ ๊ฑธ์–ด์•ผ ํ•จ
  • ๋‚ด๊ฐ€ ํ™•์ธํ•˜๊ณ  ์‹ถ์€ ์ฝ”๋“œ ์ค„์—, ์ขŒ์ธก ์ค„๋ฒˆํ˜ธ ์˜†์„ ํด๋ฆญํ•ด ๋นจ๊ฐ„์ƒ‰ ํฌ์ธํŠธ(break point) โ—๋ฅผ ์ฐ์Œ
  • ๋ฉ”์„œ๋“œ์— break point๋ฅผ ์ฐ์œผ๋ฉด, ์›์ด ์•„๋‹Œ ๋‹ค์ด์•„๋ชฌ๋“œ โ—†๋กœ ์ฐํž˜
    ์ด๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด ์†๋„๊ฐ€ ๋งŽ์ด ๋Š๋ ค์ง€๊ธฐ ๋•Œ๋ฌธ์—, ๋ฉ”์„œ๋“œ ์ž์ฒด๊ฐ€ ์•„๋‹Œ ๋ฉ”์„œ๋“œ ๋‚ด๋ถ€์— ํฌ์ธํŠธ๋ฅผ ์ฐ๋Š” ๊ฒƒ์„ ์ถ”์ฒœ

 

2. ๋””๋ฒ„๊น… ๋ชจ๋“œ๋กœ ์‹คํ–‰ํ•˜๊ธฐ

  • ์ค‘๋‹จ์ ์„ ๊ฑธ์—ˆ๋‹ค๋ฉด, ์ƒ๋‹จ์˜ ๋ฒŒ๋ ˆ ๋ชจ์–‘ ์•„์ด์ฝ˜์„ ํด๋ฆญ (Shift + F9)
  • ์•ฑ์ด ์‹คํ–‰๋˜๊ณ  break point๊ฐ€ ๊ฑธ๋ ค์žˆ๋Š” ์ฝ”๋“œ๊ฐ€ ์‹คํ–‰ ๋  ๋•Œ debug ํƒญ์ด ์ž๋™์œผ๋กœ ์—ด๋ฆผ

 

3. ๋””๋ฒ„๊น…ํƒญ ํˆด ์•„์ด์ฝ˜ ์‚ฌ์šฉ๋ฒ•

 

  • ์™ผ์ชฝ๋ถ€ํ„ฐ ์ฐจ๋ก€๋กœ ์„ค๋ช…
  • Resume Program : ๋‹ค์Œ ์ค‘๋‹จ์ ์ด ์žˆ์„ ๋•Œ๊นŒ์ง€ ์•ฑ์„ ์‹คํ–‰
  • Show Execution Point : ํด๋ฆญํ•˜๋ฉด ํ˜„์žฌ ์ง„ํ–‰ ์ค‘์ธ ์ฝ”๋“œ๋กœ ์ด๋™
  • Step Over : break point์—์„œ ์ฝ”๋“œ์˜ ๋‹ค์Œ ์ค„๋กœ ์ด๋™ (์ค„ ๋‹จ์œ„ ์ฝ”๋“œ๋“ค์— ๋Œ€ํ•ด ๋””๋ฒ„๊น…)
  • Step Into : ๋ฉ”์„œ๋“œ ํ˜ธ์ถœ ๋‚ด์—์„œ ์ฒซ ๋ฒˆ์งธ ์ค„๋กœ ์ด๋™ (๋ฉ”์„œ๋“œ ๋‹จ์œ„๋กœ ์ด๋™)
  • Force Step Into : Settings์˜ "Debugger"์˜ต์…˜์˜ "Stepping"์— ๋“ค์–ด๊ฐ€๋ฉด "Do not step into the classes" ํ•ญ๋ชฉ ์กด์žฌ
    Step Into์˜ ๊ฒฝ์šฐ ์ด ํ•ญ๋ชฉ์„ ์Šคํ‚ตํ•˜๋ฉด์„œ ๋””๋ฒ„๊น…์„ ์‹คํ–‰ํ•˜๋Š”๋ฐ, ์ด์™€ ๋‹ค๋ฅด๊ฒŒ Force Step Into๋Š” ๋ชจ๋“  ์ฝ”๋“œ๋ฅผ ๊ฑฐ์น˜๋ฉด์„œ ๋””๋ฒ„๊น…
  • Step Out : Step into ์™€ ๋ฐ˜๋Œ€๋กœ, ํ˜„์žฌ ๋ฉ”์„œ๋“œ ์™ธ๋ถ€์—์„œ ๋‹ค์Œ ์ค„๋กœ ์ด๋™
  • Run to Cursor : ๋””๋ฒ„๊น…์„ ํ•˜๋Š” ์ค‘์— ์ปค์„œ๊ฐ€ ์žˆ๋Š” ๊ณณ์œผ๋กœ ๋ฐ”๋กœ ์ด๋™ํ•ด์„œ ๋””๋ฒ„๊น…์„ ์ง„ํ–‰
  • Evaluate Expression : break point๋กœ captured ๋œ ๋ณ€์ˆ˜๋ฅผ ์ด์šฉํ•ด expression ๋˜๋Š” ํ•จ์ˆ˜ ๋“ฑ์„ ์‹คํ–‰

 

4. ๋””๋ฒ„๊ทธ ๋ชจ๋“œ๋กœ ๋ณ€์ˆ˜๊ฐ’ ๋ณ€๊ฒฝ

  • set value ๋ฅผ ํ†ตํ•ด ์ง์ ‘ ๋ณ€์ˆ˜ ๊ฐ’์„ ๋ณ€๊ฒฝ ๊ฐ€๋Šฅ
  • Variables ํƒญ ๋‚ด์—์„œ ์›ํ•˜๋Š” ๋ณ€์ˆ˜๋ฅผ ์„ ํƒ ํ›„, ์šฐ ํด๋ฆญํ•˜๋ฉด Set Value ๋ฅผ ํด๋ฆญํ•ด ์ง์ ‘ ๋ณ€๊ฒฝ ๊ฐ€๋Šฅ

 

 

5. ๋””๋ฒ„๊ทธ ๋ชจ๋“œ๋กœ ๋กœ๊ทธ ์ถœ๋ ฅ

  • Shift + ์›ํ•˜๋Š” ์ค„ ์„ ํƒ(break point ์ฐ๋“ฏ์ด)ํ•˜๋ฉด ์„ค์ • ํŒ์—…์ด ๋œธ
  • Log ๋ถ€๋ถ„์— Evaluate and log ์ฒดํฌ๋ฐ•์Šค์— ์ฒดํฌํ•˜๊ณ , ํ•ด๋‹น ์ค„์ด ์‹คํ–‰๋  ๋•Œ ์ถœ๋ ฅํ•  ๋กœ๊ทธ๋ฅผ ์ž‘์„ฑ
        

 


 

์ด์ œ ์บ ํ”„๋ฅผ ์ˆ˜๊ฐ•ํ•˜๋ฉฐ ์ •๋ฆฌํ•œ ์•ˆ๋“œ๋กœ์ด๋“œ ๊ธฐ์ดˆ ํ•™์Šต ์‹œ๋ฆฌ์ฆˆ๋Š” ์—ฌ๊ธฐ์„œ ๋์ด๋‹ค.
์•ž์œผ๋กœ ์›ํ•˜๋Š” ํ”„๋กœ์ ํŠธ๋ฅผ ์ง„ํ–‰ํ•˜๋ฉฐ ์ƒˆ๋กœ ๋ฐฐ์šฐ๋Š” ๊ธฐ์ˆ ์ด๋‚˜ ์ •๋ณด๋“ค์€, ์ •๋ฆฌํ•˜๊ณ  ์‹ถ์„ ๋•Œ๋งˆ๋‹ค ๋‹จํŽธ์ ์œผ๋กœ ์ž‘์„ฑํ•  ์˜ˆ์ •์ด๋‹ค.

 

 

 

 

 

 

๋ฐ˜์‘ํ˜•
 ๐Ÿ’ฌ C O M M E N T