๋ฆฌ๋ˆ…์Šค ์‹œ์Šคํ…œ ๋””๋ฒ„๊น…

์–ด์…ˆ๋ธ”๋ฆฌ ์ฝ”๋“œ๋ฅผ ์ดํ•ดํ•˜๊ณ  ํ•จ์ˆ˜์˜ ์—ญ์ถ”์ ์„ ํ•  ์ˆ˜ ์žˆ์œผ๋ฉฐ ํ”„๋กœ์„ธ์Šค๋ฅผ ์ถ”์ ํ•˜๋Š” gdb์ด ๋‚ด๋ถ€ ๊ตฌ์กฐ๋ฅผ ์ดํ•ดํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๋˜ํ•œ ์ปค๋„์˜ ๋””๋ฒ„๊น… ๋„๊ตฌ๋ฅผ ๋‹ค๋ฃน๋‹ˆ๋‹ค.

(4.9) ์ˆ˜๊ฐ•ํ‰ 46๊ฐœ

์ˆ˜๊ฐ•์ƒ 288๋ช…

๋‚œ์ด๋„ ์ค‘๊ธ‰์ด์ƒ

์ˆ˜๊ฐ•๊ธฐํ•œ ๋ฌด์ œํ•œ

๋ฆฌ๋ˆ…์Šค
๋ฆฌ๋ˆ…์Šค
์ด๋ก  ์‹ค์Šต ๋ชจ๋‘
์ด๋ก  ์‹ค์Šต ๋ชจ๋‘
์–ด์…ˆ๋ธ”๋ฆฌ
์–ด์…ˆ๋ธ”๋ฆฌ
๋ฆฌ๋ˆ…์Šค
๋ฆฌ๋ˆ…์Šค
์ด๋ก  ์‹ค์Šต ๋ชจ๋‘
์ด๋ก  ์‹ค์Šต ๋ชจ๋‘
์–ด์…ˆ๋ธ”๋ฆฌ
์–ด์…ˆ๋ธ”๋ฆฌ
SK๊ทธ๋ฃน
LGCNS
LG์ „์ž
์—”์”จ์†Œํ”„ํŠธ
๋„ค์ด๋ฒ„

๋„ค์ด๋ฒ„

์ž„์ง์›๋“ค๋„ ์ด ๊ฐ•์˜๋ฅผ ๋“ฃ๊ณ  ์žˆ์–ด์š”!

SK๊ทธ๋ฃน
LGCNS
LG์ „์ž
์—”์”จ์†Œํ”„ํŠธ
๋„ค์ด๋ฒ„

๋„ค์ด๋ฒ„

์ž„์ง์›๋“ค๋„ ์ด ๊ฐ•์˜๋ฅผ ๋“ฃ๊ณ  ์žˆ์–ด์š”!

๋จผ์ € ๊ฒฝํ—˜ํ•œ ์ˆ˜๊ฐ•์ƒ๋“ค์˜ ํ›„๊ธฐ

4.9

5.0

๋‚˜์„ธ์ •

100% ์ˆ˜๊ฐ• ํ›„ ์ž‘์„ฑ

.

5.0

๊ฐ•๋ถ€์›

31% ์ˆ˜๊ฐ• ํ›„ ์ž‘์„ฑ

์ฐจ๊ทผ ์ฐจ๊ทผ ์ž˜ ์„ค๋ช…ํ•ด ์ฃผ์„ธ์š”.

5.0

kwangho.jung

31% ์ˆ˜๊ฐ• ํ›„ ์ž‘์„ฑ

๋„ˆ๋ฌด ํ›Œ๋ฅญํ•œ ๊ฐ•์˜๋„ค์š”

์ˆ˜๊ฐ• ํ›„ ์ด๋Ÿฐ๊ฑธ ์–ป์„ ์ˆ˜ ์žˆ์–ด์š”

  • Intel ์•„ํ‚คํ…์ฒ˜

  • Nasm ์–ด์…ˆ๋ธ”๋ฆฌ

  • ์–ด์…ˆ๋ธ”๋ฆฌ ๊ธฐ๋ณธ ๋ฌธ๋ฒ•

  • ์–ด์…ˆ๋ธ”๋ฆฌ ํ•จ์ˆ˜ ํ˜ธ์ถœ

  • Backtrace ๊ตฌํ˜„

  • Ptrace

  • Strace

  • Gdb

  • Uftrace

  • Ftrace

  • Kprobe

Linux ์šด์˜ ์ฒด์ œ ๋‚ด์˜ ๋ฌธ์ œ๋ฅผ ์‹๋ณ„ํ•˜๊ณ  ํ•ด๊ฒฐํ•˜๊ธฐ ์œ„ํ•œ ์ฒด๊ณ„์ ์ธ ์ ‘๊ทผ ๋ฐฉ์‹์ด ํฌํ•จ๋˜๋ฉฐ, ์‹œ์Šคํ…œ ๋™์ž‘์„ ๋ถ„์„ํ•˜๊ณ  ๋ฌธ์ œ๋ฅผ ๊ฒฉ๋ฆฌํ•˜๋ฉฐ ํšจ๊ณผ์ ์ธ ์†”๋ฃจ์…˜์„ ๊ตฌํ˜„ํ•˜๊ธฐ ์œ„ํ•œ ๋‹ค์–‘ํ•œ ๋„๊ตฌ์™€ ๊ธฐ์ˆ ์„ ํ™œ์šฉํ•ฉ๋‹ˆ๋‹ค.

ํ•™์Šต ๋‚ด์šฉ

์„น์…˜ (1) Intel ์•„ํ‚คํ…์ฒ˜

PC์˜ ๊ธฐ๋ณธ CPU๋กœ ๊ฐ€์žฅ ๋งŽ์ด ์‚ฌ์šฉ๋˜๋Š” Intel CPU์˜ ๋ ˆ์ง€์Šคํ„ฐ ๊ตฌ์กฐ์™€ ALU์˜ ์—ฐ์‚ฐ ๊ณผ์ •์„ ๋‹ค๋ฃน๋‹ˆ๋‹ค.

์„น์…˜ (2) Nasm ์–ด์…ˆ๋ธ”๋ฆฌ

NASM(Netwide Assembler) ์–ด์…ˆ๋ธ”๋ฆฌ ์–ธ์–ด์˜ ํ•™์Šต์— ์ค‘์ ์„ ๋‘๊ณ  ์ €์ˆ˜์ค€ ์–ด์…ˆ๋ธ”๋ฆฌ ์–ธ์–ด๋ฅผ ์„ค๋ช…ํ•ฉ๋‹ˆ๋‹ค.

์„น์…˜ (3) ์–ด์…ˆ๋ธ”๋ฆฌ ๊ธฐ๋ณธ ๋ฌธ๋ฒ• I

์–ด์…ˆ๋ธ”๋ฆฌ ์–ธ์–ด์˜ ๊ธฐ๋ณธ ๊ตฌ๋ฌธ, ๊ตฌ์กฐ ๋ฐ ๊ทœ์น™์„ ์ตํžˆ๊ณ  ๊ธฐ๋ณธ ์–ด์…ˆ๋ธ”๋ฆฌ ์ฝ”๋“œ๋ฅผ ํšจ๊ณผ์ ์œผ๋กœ ์ž‘์„ฑํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ์„ค๋ช… ํ•ฉ๋‹ˆ๋‹ค.

์„น์…˜ (4) ์–ด์…ˆ๋ธ”๋ฆฌ ๊ธฐ๋ณธ ๋ฌธ๋ฒ• II

์–ด์…ˆ๋ธ”๋ฆฌ๊ฐ€ CPU์˜ flag์— ์˜ํ•ด์„œ ์กฐ๊ฑด๋ถ€ ์ œ์–ด๋ฅผ ํ•˜๋Š” ์ „๊ณผ์ •์„ ์„ค๋ช… ํ•ฉ๋‹ˆ๋‹ค.

์„น์…˜ (5) ์–ด์…ˆ๋ธ”๋ฆฌ ํ•จ์ˆ˜ ํ˜ธ์ถœ

ํ•จ์ˆ˜์˜ ํ˜ธ์ถœ๊ณผ์ •์—์„œ ์ธ์ž, ๋ฆฌํ„ด ๊ฐ’, ์ง€์—ญ๋ณ€์ˆ˜๋ฅผ ์–ด์…ˆ๋ธ”๋ฆฌ๊ฐ€ ์ฒ˜๋ฆฌํ•˜๋Š” ๋ฐฉ์‹์„ ์„ค๋ช… ํ•ฉ๋‹ˆ๋‹ค.

์„น์…˜ (6) Backtrace ๊ตฌํ˜„

์—ญ์ถ”์  ์•Œ๊ณ ๋ฆฌ์ฆ˜์„ ํšจ๊ณผ์ ์œผ๋กœ ๋‹ค๋ฃจ๊ณ  ๋””๋ฒ„๊น… ๊ธฐ์ˆ , ํ˜ธ์ถœ ์Šคํƒ ๋ถ„์„ ๊ณผ์ •์„ ์„ค๋ช… ํ•ฉ๋‹ˆ๋‹ค.

์„น์…˜ (7) Ptrace

ํ•œ ํ”„๋กœ์„ธ์Šค(์ถ”์ ์ž)๊ฐ€ ๋‹ค๋ฅธ ํ”„๋กœ์„ธ์Šค(ํ”ผ์ถ”์ ์ž)์˜ ์‹คํ–‰์„ ์ œ์–ดํ•˜๊ณ  ๋ชจ๋‹ˆํ„ฐ๋งํ•˜๋Š” ๊ธฐ๋ฒ•์„ ์„ค๋ช… ํ•ฉ๋‹ˆ๋‹ค.

์„น์…˜ (8) Strace

Strace๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ๋‹ค๋ฃจ๊ณ  ์šด์˜ ์ฒด์ œ์™€์˜ ํ”„๋กœ๊ทธ๋žจ ์ƒํ˜ธ ์ž‘์šฉ์„ ์„ค๋ช… ํ•ฉ๋‹ˆ๋‹ค.

์„น์…˜ (9) Gdb

Gdb์˜ ์ค‘๋‹จ์  ์„ค์ •, ์ฝ”๋“œ ๋‹จ๊ณ„๋ณ„ ์‹คํ–‰, ํ”„๋กœ๊ทธ๋žจ ์ƒํƒœ ๋ถ„์„, ์†Œํ”„ํŠธ์›จ์–ด ๋ฒ„๊ทธ ์‹๋ณ„ ๋ฐ ํ•ด๊ฒฐ ๋ฐฉ๋ฒ•์„ ์„ค๋ช… ํ•ฉ๋‹ˆ๋‹ค.

์„น์…˜ (10) Uftrace

uftrace๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ํ”„๋กœ๊ทธ๋žจ์˜ ํ•จ์ˆ˜ ํ˜ธ์ถœ ํ๋ฆ„๊ณผ ์„ฑ๋Šฅ์„ ์ถ”์  ๋ฐ ๋ถ„์„ํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ์„ค๋ช… ํ•ฉ๋‹ˆ๋‹ค.

์„น์…˜ (11) Ftrace

Linux์—์„œ ์ปค๋„ ๊ธฐ๋Šฅ ์ถ”์ ์„ ์œ„ํ•ด Ftrace๋ฅผ ํ™œ์šฉํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ๋‹ค๋ฃจ๊ณ , ์ด๋ฅผ ํ†ตํ•ด ์ปค๋„ ๋™์ž‘, ์„ฑ๋Šฅ ๋ฌธ์ œ ๋ฐ ์‹œ์Šคํ…œ ์ˆ˜์ค€ ์ƒํ˜ธ ์ž‘์šฉ์„ ์„ค๋ช… ํ•ฉ๋‹ˆ๋‹ค.

์„น์…˜ (12) Kprobe

Linux ์ปค๋„์˜ ํŠน์ • ์ง€์ ์„ ๋™์ ์œผ๋กœ ์ถ”์ ํ•˜๊ณ  ๋””๋ฒ„๊น…, ์„ฑ๋Šฅ ๋ถ„์„ ๋ฐ ์ปค๋„ ๋‚ด๋ถ€ ๊ตฌ์กฐ๋ฅผ ์„ค๋ช… ํ•ฉ๋‹ˆ๋‹ค.

์ˆ˜๊ฐ• ์ „ ์ฐธ๊ณ  ์‚ฌํ•ญ

  • ๊ฐ•์˜ ํ•™์Šต์— ํ•„์š”ํ•œ ์ฐธ๊ณ  ์‚ฌํ•ญ์ด ์žˆ๋‹ค๋ฉด ๊ผผ๊ผผํ•˜๊ฒŒ ์ž‘์„ฑํ•ด์ฃผ์„ธ์š”.

  • ์ˆ˜๊ฐ•์ƒ๋“ค์ด ๊ฐ•์˜์—์„œ ๋‹ค๋ฃจ๋Š” ๋‚ด์šฉ์„ ์ถฉ๋ถ„ํžˆ ์ดํ•ดํ•˜๊ฒŒ ๋•๊ณ , ํ•™์Šต ๋งŒ์กฑ๋„๋ฅผ ๋†’์ผ ์ˆ˜ ์žˆ์–ด์š”.

์‹ค์Šต ํ™˜๊ฒฝ

  • ์šด์˜ ์ฒด์ œ ๋ฐ ๋ฒ„์ „(OS): Ubuntu 16.04, 18.04

  • ํŽธ์ง‘ ๋„๊ตฌ : Ubuntu VIM, Gcc, Gdb, Make, Ctags

  • ์ปดํŒŒ์ผ๋Ÿฌ : Gcc

ํ•™์Šต ์ž๋ฃŒ

  • ์ œ๊ณตํ•˜๋Š” ํ•™์Šต ์ž๋ฃŒ ํ˜•์‹ (PDF, ์†Œ์Šค ์ฝ”๋“œ)

  • ์ˆ˜์—… ์‹œ ppt๋ฅผ ์ด์šฉํ•œ ํŒ์„œ๋ฅผ ์ง„ํ–‰ํ•˜๊ณ  ์ด๋ฅผ ์ˆ˜์—… ์ž๋ฃŒ๋กœ ๊ณต์œ ํ•ฉ๋‹ˆ๋‹ค.

์„ ์ˆ˜ ์ง€์‹ ๋ฐ ์œ ์˜ ์‚ฌํ•ญ

  • ๋ณธ ๊ณผ์ •์„ ๋“ฃ๊ธฐ ์œ„ํ•œ ์„ ์ˆ˜ ์ง€์‹ : C์–ธ์–ด ๊ธฐ๋ณธ, ๋ฆฌ๋ˆ…์Šค ๊ธฐ๋ณธ

  • ๋ณธ ๊ฐ•์˜ ๋™์˜์ƒ ์‚ฌ์–‘ : FPS-60, ํ•ด์ƒ๋„-1280*720, ์˜ค๋””์˜ค ์ƒ˜ํ”Œ ๋ ˆ์ดํŠธ-44,100

  • ์–ธ์ œ๋“  ์งˆ๋ฌธํ•ด ์ฃผ์‹œ๊ณ , ๊ฐ•์˜๋Š” open source ๋ฒ„์ „ ์—…๊ทธ๋ ˆ์ด๋“œ ์‹œ ์ˆ˜์ •๋  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

  • ๊ฐ•์˜ ์‹œ ๋ฐฐํฌ๋˜๋Š” ํ•™์Šต ์ž๋ฃŒ๋Š” ์ˆ˜์—…์—๋งŒ ์ฐธ๊ณ  ํ•˜์‹œ๊ณ  ๋ฌด๋‹จ ๋ฐฐํฌ๋Š” ๊ธˆํ•ฉ๋‹ˆ๋‹ค.

์ด๋Ÿฐ ๋ถ„๋“ค๊ป˜
์ถ”์ฒœ๋“œ๋ ค์š”

ํ•™์Šต ๋Œ€์ƒ์€
๋ˆ„๊ตฌ์ผ๊นŒ์š”?

  • ์‹œ์Šคํ…œ ๋””๋ฒ„๊น…์˜ ์›๋ฆฌ๋ฅผ ์ดํ•ด ํ•˜๊ณ  ์‹ถ์œผ์‹  ๋ถ„

  • ๋ฆฌ๋ˆ…์Šค ์‹œ์Šคํ…œ ๊ฐœ๋ฐœ์ž

  • ๋ฆฌ๋ˆ…์Šค ์ปค๋„ ๊ฐœ๋ฐœ์ž

์„ ์ˆ˜ ์ง€์‹,
ํ•„์š”ํ• ๊นŒ์š”?

  • C ์–ธ์–ด

  • ๋ฆฌ๋ˆ…์Šค ๊ธฐ๋ณธ

์•ˆ๋…•ํ•˜์„ธ์š”
๊น€์ •์ธ์ž…๋‹ˆ๋‹ค.

973

๋ช…

์ˆ˜๊ฐ•์ƒ

121

๊ฐœ

์ˆ˜๊ฐ•ํ‰

12

๊ฐœ

๋‹ต๋ณ€

4.9

์ 

๊ฐ•์˜ ํ‰์ 

9

๊ฐœ

๊ฐ•์˜

๊น€์ •์ธ ๊ฐ•์‚ฌ๋‹˜์€ ์˜คํ”ˆ์†Œ์Šค๊ฐ€ ์ค‘์š”ํ•˜๋‹ค๋ฉฐ

๋ฆฌ๋ˆ…์Šค ์ปค๋„ ๋ฐ ๋”ฅ๋Ÿฌ๋‹์˜ ๊ตฌํ˜„ ์†Œ์Šค๋ฅผ ์ทจ๋ฏธ ์‚ผ์•„ ๋งค์ผ ๋ถ„์„ ํ•˜๋Š” ์˜คํ”ˆ ์†Œ์Šค ๋งค๋‹ˆ์•„ ์ž…๋‹ˆ๋‹ค.

์†Œ์Šค๋ฅผ ํ†ตํ•ด ์ดํ•ด ํ•œ๋‹ค๋ฉฐ ๋ฌด์ž‘์ • ์†Œ์Šค ๋ถ„์„์œผ๋กœ ๋ชจ๋“  ์›๋ฆฌ๋ฅผ ์ดํ•ดํ•˜๋ ค ํ•˜๋ฏ€๋กœ

์ˆ˜๊ฐ• ์‹œ ์†Œ์Šค ํญํƒ„์— ์ฃผ์˜ ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

 

๊ฐ•์˜๋ฌธ์˜ : jikim@imguru.co.kr

๋”๋ณด๊ธฐ

์ปค๋ฆฌํ˜๋Ÿผ

์ „์ฒด

35๊ฐœ โˆ™ (9์‹œ๊ฐ„ 28๋ถ„)

ํ•ด๋‹น ๊ฐ•์˜์—์„œ ์ œ๊ณต:

์ˆ˜์—…์ž๋ฃŒ
๊ฐ•์˜ ๊ฒŒ์‹œ์ผ: 
๋งˆ์ง€๋ง‰ ์—…๋ฐ์ดํŠธ์ผ: 

์ˆ˜๊ฐ•ํ‰

์ „์ฒด

46๊ฐœ

4.9

46๊ฐœ์˜ ์ˆ˜๊ฐ•ํ‰

  • kwangho.jung๋‹˜์˜ ํ”„๋กœํ•„ ์ด๋ฏธ์ง€
    kwangho.jung

    ์ˆ˜๊ฐ•ํ‰ 6

    โˆ™

    ํ‰๊ท  ํ‰์  5.0

    5

    31% ์ˆ˜๊ฐ• ํ›„ ์ž‘์„ฑ

    ๋„ˆ๋ฌด ํ›Œ๋ฅญํ•œ ๊ฐ•์˜๋„ค์š”

    • ๊ฐ•๋ถ€์›๋‹˜์˜ ํ”„๋กœํ•„ ์ด๋ฏธ์ง€
      ๊ฐ•๋ถ€์›

      ์ˆ˜๊ฐ•ํ‰ 1

      โˆ™

      ํ‰๊ท  ํ‰์  5.0

      5

      31% ์ˆ˜๊ฐ• ํ›„ ์ž‘์„ฑ

      ์ฐจ๊ทผ ์ฐจ๊ทผ ์ž˜ ์„ค๋ช…ํ•ด ์ฃผ์„ธ์š”.

      • White๋‹˜์˜ ํ”„๋กœํ•„ ์ด๋ฏธ์ง€
        White

        ์ˆ˜๊ฐ•ํ‰ 26

        โˆ™

        ํ‰๊ท  ํ‰์  5.0

        5

        31% ์ˆ˜๊ฐ• ํ›„ ์ž‘์„ฑ

        ์กฐ์•„์š”์กฐ์•„์š”์กฐ์•„์š”์กฐ์•„์š”์กฐ์•„์š”์กฐ์•„์š”

        • ADK123๋‹˜์˜ ํ”„๋กœํ•„ ์ด๋ฏธ์ง€
          ADK123

          ์ˆ˜๊ฐ•ํ‰ 330

          โˆ™

          ํ‰๊ท  ํ‰์  5.0

          5

          11% ์ˆ˜๊ฐ• ํ›„ ์ž‘์„ฑ

          ์•„์ง 6๊ฐ•๊นŒ์ง€ ์•ˆ๋ดค์ง€๋งŒ ๊ณ ์ˆ˜์˜ ํ–ฅ๊ธฐ๊ฐ€ ๋‚ฉ๋‹ˆ๋‹ค! ๋ฏฟ๊ณ  ๋‹ฌ๋ฆฌ๊ฒ ์Šต๋‹ˆ๋‹ค!!

          • ๋‚˜์„ธ์ •๋‹˜์˜ ํ”„๋กœํ•„ ์ด๋ฏธ์ง€
            ๋‚˜์„ธ์ •

            ์ˆ˜๊ฐ•ํ‰ 1

            โˆ™

            ํ‰๊ท  ํ‰์  5.0

            5

            100% ์ˆ˜๊ฐ• ํ›„ ์ž‘์„ฑ

            .

            ๊น€์ •์ธ๋‹˜์˜ ๋‹ค๋ฅธ ๊ฐ•์˜

            ์ง€์‹๊ณต์œ ์ž๋‹˜์˜ ๋‹ค๋ฅธ ๊ฐ•์˜๋ฅผ ๋งŒ๋‚˜๋ณด์„ธ์š”!

            ๋น„์Šทํ•œ ๊ฐ•์˜

            ๊ฐ™์€ ๋ถ„์•ผ์˜ ๋‹ค๋ฅธ ๊ฐ•์˜๋ฅผ ๋งŒ๋‚˜๋ณด์„ธ์š”!

            ์›” โ‚ฉ17,600

            5๊ฐœ์›” ํ• ๋ถ€ ์‹œ

            โ‚ฉ88,000