Skip to content

Latest commit

ย 

History

History
136 lines (104 loc) ยท 8.45 KB

File metadata and controls

136 lines (104 loc) ยท 8.45 KB

์˜์กด์„ฑ

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

์˜์กด์„ฑ์ด๋ž€?

ํ”„๋กœ๊ทธ๋žจ์ด ์ž‘๋™๋˜๊ธฐ ์œ„ํ•ด ํ•„์š”ํ•œ ์กฐ๊ฑด์ž…๋‹ˆ๋‹ค.

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

์œ„ ์‚ฌํ•ญ์ด ์†Œํ”„ํŠธ์›จ์–ด์— ์–ผ๋งˆ๋‚˜ ๋ฐ˜์˜๋˜๊ณ  ์—ฐ๊ฒฐ๋˜์–ด ์žˆ๋Š”๊ฐ€? ์— ๋Œ€ํ•œ ํŠน์„ฑ์ž…๋‹ˆ๋‹ค. ํŠนํžˆ๋‚˜ ๋ฆฌ๋ˆ…์Šค, ์œ ๋‹‰์Šค๊ณ„์—ด์˜ OS์— ์‚ฌ์šฉ๋˜๋Š” ๋งŽ์€ ํŒจํ‚ค์ง€๋Š” ๊ฐ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ์— ๋Œ€ํ•ด ์˜์กด์„ฑ์„ ๋งŽ์ด ๊ฐ€์ง€๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค.

ํ˜„๋Œ€ ํ”„๋กœ๊ทธ๋ž˜๋ฐ์—์„œ ๊ฐ ๊ฐœ๋ฐœ ๋ถ„์•ผ๋ณ„๋กœ ์—…๋ฌด์˜ ํŠน์„ฑ์ƒ ์˜์กด์„ฑ ์™„๋ฒฝํ•˜๊ฒŒ ํ”ผํ•˜๊ธฐ๋Š” ํž˜๋“ญ๋‹ˆ๋‹ค. ํ”„๋กœ๊ทธ๋ž˜๋จธ ์Šค์Šค๋กœ๊ฐ€ ์ž์‹ ์˜ ์ฝ”๋“œ์— ์–ผ๋งˆ๋‚˜ ๋งŽ์€ ์˜์กด์„ฑ์„ ๊ฐ€์ง€๊ณ  ์žˆ๋Š”์ง€ ๋ถ„์„ํ•˜๊ณ  ์ด ์˜์กด์„ฑ์„ ์ค„์ด๋ ค๊ณ  ๋…ธ๋ ฅํ•œ๋‹ค๋ฉด ๋ณด๋‹ค ์ข‹์€ ์†Œํ”„ํŠธ์›จ์–ด๋ฅผ ๋งŒ๋“ค ์ˆ˜ ์žˆ์„๊ฒƒ์ž…๋‹ˆ๋‹ค.

์˜์กด์„ฑ์„ ์ค„์ด๋ฉด ์–ป๋Š” ์ด์ต

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

์˜์กด์„ฑ ์ž๊ฐ€์ง„๋‹จ

์—ฌ๋Ÿฌ๋ถ„์ด ํŒŒ์ด์ฌ์„ ์ด์šฉํ•ด์„œ ์ค‘ํ˜•๊ทœ๋ชจ์˜ ์†Œํ”„ํŠธ์›จ์–ด๋ฅผ ์ œ์ž‘ํ–ˆ๋‹ค๊ณ  ๊ฐ€์ •ํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค. ๋ช‡๊ฐ€์ง€ ์งˆ๋ฌธ์„ ๋˜์ง€๊ฒ ์Šต๋‹ˆ๋‹ค. ์•„๋ž˜ ์งˆ๋ฌธ์ค‘์— ์ผ๋ถ€๋Š” ์˜์กด์„ฑ๊ณผ๋„ ์—ฐ๊ด€์ด ์žˆ์Šต๋‹ˆ๋‹ค.

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

์˜์กด์„ฑ๊ณผ ํด๋ผ์šฐ๋“œ

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

ํด๋ผ์šฐ๋“œ์—์„œ๋Š” ๋งค๋ฒˆ ์•„๋ž˜ ์ ˆ์ฐจ์— ์˜ํ•ด์„œ ์†Œํ”„ํŠธ์›จ์–ด๊ฐ€ ์‹คํ–‰๋˜๊ธฐ ๋•Œ๋ฌธ์ž…๋‹ˆ๋‹ค. (๋ฐฐํฌ๋ฅผ ์œ„ํ•œ CIํˆด์—์„œ ๋น„์Šทํ•œ ์ ˆ์ฐจ๋ฅผ ๊ฐ€์ง‘๋‹ˆ๋‹ค.)

  • ๊ฐ€์ƒ ์ธ์Šคํ„ด์Šค ์ƒ์„ฑ
  • ์†Œํ”„ํŠธ์›จ์–ด ์ž‘๋™์„ ์œ„ํ•œ ํ”„๋กœ๊ทธ๋žจ์„ค์น˜
  • ํ™˜๊ฒฝ๋ณ€์ˆ˜ ์…‹ํŒ…
  • ํ”„๋กœ๊ทธ๋žจ ์‹คํ–‰
  • ์ธ์Šคํ„ด์Šค ์ œ๊ฑฐ

์˜์กด์„ฑ์„ ์ƒ๊ฐํ•˜๋ฉฐ ์†Œํ”„ํŠธ์›จ์–ด๋ฅผ ์ œ์ž‘ํ–ˆ๋‹ค๋ฉด ํด๋ผ์šฐ๋“œํ™˜๊ฒฝ์—์„œ๋„ ํ”„๋กœ๊ทธ๋žจ์€ ์ž˜ ์ž‘๋™ํ•  ์ˆ˜ ๋ฐ–์— ์—†์Šต๋‹ˆ๋‹ค.

๋ง์ปค, ๊ณต์œ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ

์ปดํŒŒ์ผ๋Ÿฌ๋Š” ์ฝ”๋“œ๋ฅผ ๊ธฐ๊ณ„์–ด๋กœ ๋ณ€ํ™˜ํ•˜๋Š” ์—ญํ• ์„ ํ•ฉ๋‹ˆ๋‹ค. ๋ง์ปค๋Š” ์ปดํŒŒ์ผ๋Ÿฌ๊ฐ€ ๋งŒ๋“  ๊ฒฐ๊ณผ๋ฌผ์„ ์„œ๋กœ ์—ฐ๊ฒฐ์‹œํ‚ค๋Š” ์—ญํ• ์„ ํ•ฉ๋‹ˆ๋‹ค. ๊ตฌ์ฒด์ ์œผ๋กœ ์ด์•ผ๊ธฐํ•˜๋ฉด ๋ง์ปค๋Š” ์šฐ๋ฆฌ๊ฐ€ ๋งŒ๋“  ์ฝ”๋“œ์™€ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋ฅผ ์—ฐ๊ฒฐํ•ฉ๋‹ˆ๋‹ค.

์˜›๋‚ ์—๋Š” ์ปดํŒŒ์ผ๋Ÿฌ์™€ ๋ง์ปค๊ฐ€ ์„œ๋กœ ์—ญํ• ์„ ๋‚˜๋ˆ„์–ด์„œ ์ปดํŒŒ์ผ ์ž‘์—…์ง„ํ–‰์„ ํ–ˆ์ง€๋งŒ, ํ˜„๋Œ€ ์ปดํŒŒ์ผ๋Ÿฌ๋Š” ์ปดํŒŒ์ผ๋Ÿฌ์™€ ๋ง์ปค์˜ ์—ญํ• ์„ ๊ฐ™์ด ํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค.

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

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

์šฐ๋ฆฌ๊ฐ€ ๋ฆฌ๋ˆ…์Šค์—์„œ ์ž์ฃผ ์‚ฌ์šฉํ•˜๋Š” ํŒŒ์ผ์ค‘ ํ•˜๋‚˜์ธ echo ๋ช…๋ น์–ด๋Š” ํ„ฐ๋ฏธ๋„์—์„œ ์ž…๋ ฅ๋ฐ›์€ ์ธ์ˆ˜๋ฅผ ์ถœ๋ ฅํ•˜๋Š” ๋ช…๋ น์–ด ์ž…๋‹ˆ๋‹ค. ์ด ๋ช…๋ น์–ด๊ฐ€ ์‚ฌ์šฉํ•˜๋Š” ๊ณต์œ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋ฅผ ์ฒดํฌํ•ด๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค.

๋ฆฌ๋ˆ…์Šค์—๋Š” ๊ณต์œ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋ฅผ ์ฒดํฌํ•˜๊ธฐ ์œ„ํ•ด์„œ ldd ๋ผ๋Š” ๋ช…๋ น์–ด๊ฐ€ ์กด์žฌํ•ฉ๋‹ˆ๋‹ค. /bin/echo ๋ช…๋ น์–ด๋ฅผ ํ•œ๋ฒˆ ldd๋กœ ์ฒดํฌํ•ด๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค.

$ ldd /usr/bin/echo

์ถœ๋ ฅ์€ ์•„๋ž˜๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค.

	linux-vdso.so.1 =>  (0x00007ffd7b3c8000)
	libc.so.6 => /lib64/libc.so.6 (0x00007fadbdb9a000)
	/lib64/ld-linux-x86-64.so.2 (0x00007fadbdf67000)

๋‘๋ฒˆ์งธ์— ๋ณด์ด๋Š” libc.so.6 ํŒŒ์ผ์„ ๋‹ค์‹œ ldd ์ฒดํฌํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค.

$ ldd /lib64/libc.so.6

๋‹ค์‹œ ์ถœ๋ ฅ์€ ์•„๋ž˜์™€ ๊ฐ™์Šต๋‹ˆ๋‹ค.

	/lib64/ld-linux-x86-64.so.2 (0x00007f0b0573e000)
	linux-vdso.so.1 =>  (0x00007ffe356a9000)

๋‹ค์‹œ ld-linux-x86-64.so.2๋ฅผ ldd ์ฒดํฌํ•ฉ๋‹ˆ๋‹ค.

	statically linked

echo๋ช…๋ น์–ด๋ฅผ ์‹คํ–‰ํ•˜๊ธฐ ์œ„ํ•ด์„œ ldd๋ฅผ ์ฒดํฌํ•ด๋ณด๋ฉด ์ˆ˜๋งŽ์€ .soํŒŒ์ผ์ด ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค. ์ด ํŒŒ์ผ์ด ์—†๋‹ค๋ฉด echo๋Š” ์‹คํ–‰๋  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค.

๋Œ€๋ถ€๋ถ„ ์ฃผ์š”ํ•œ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋Š” OS๊ฐ€ ์„ค์น˜๋  ๋•Œ ๋Œ€๋ถ€๋ถ„ ์ž๋™์„ค์น˜๋ฉ๋‹ˆ๋‹ค๋งŒ, ๋งํฌ๋œ ํŠน์ง•์„ ์•Œ ํ•„์š”๋Š” ์žˆ์Šต๋‹ˆ๋‹ค. ์•„๋งˆ ๊ณ„์† ํƒ€์ดํ•‘ํ•˜๋ฉด ์–ธ์  ๊ฐ€๋Š” ์‚ฌ์šฉ๋˜๋Š” ๋ชจ๋“  ๋™์ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋ฅผ ์•Œ์•„๋‚ผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์šฐ๋ฆฌ๊ฐ€ ๊ธฐ๋Šฅ์ƒ ๋‹จ์ˆœํ•˜๊ฒŒ ์ƒ๊ฐํ–ˆ๋˜ echo ๋ช…๋ น์–ด๊ฐ€ ์ด์ œ๋Š” ๋‹จ์ˆœํ•ด๋ณด์ด์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

๋‹ค๋ฅธ OS์—์„œ ์˜์กด์„ฑ ์ฒดํฌํ•˜๊ธฐ

macOS

otool์ด ๋ฆฌ๋ˆ…์Šค์˜ ldd์™€ ๊ฐ™์€ ์—ญํ• ์„ ํ•ฉ๋‹ˆ๋‹ค.

$ otool -L /bin/echo

Windows

  • ๋งŒ์•ฝ ์œˆ๋„์šฐ์ฆˆ์—์„œ๋„ ๊ณต์œ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋ฅผ ์ฒดํฌํ•˜๊ณ  ์‹ถ๋‹ค๋ฉด, Cygwin์„ ์„ค์น˜ํ•˜๋ฉด ldd๋ฅผ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

  • DependencyWalker๋ผ๋Š” ์†Œํ”„ํŠธ์›จ์–ด๋ฅผ ์ด์šฉํ•˜์—ฌ ์˜์กด์„ฑ์„ ์ฒดํฌํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์ƒ์šฉ ํ”„๋กœ๊ทธ๋žจ vs ์„ฑ์ˆ™๋œ ์˜คํ”ˆ์†Œ์Šค์˜ ์‚ฌ์šฉ

ํ”„๋กœ๊ทธ๋žจ์„ ์ž‘์„ฑํ•  ๋•Œ ์ž์‹ ์ด ์›ํ•œ๋Š” ๊ธฐ์ˆ ์ด ์ƒ์šฉํ”„๋กœ๊ทธ๋žจ๊ณผ ์˜คํ”ˆ์†Œ์Šค ์†”๋ฃจ์…˜์ค‘ ๋‘˜๋‹ค ์กด์žฌํ•œ๋‹ค๋ฉด ๋‘๊ฐœ์˜ ํ”„๋กœ๊ทธ๋žจ์„ ์ „๋ถ€ ํ…Œ์ŠคํŠธํ•ด๋ณด์„ธ์š”. ๊ฒฐ๊ณผ์˜ ์ฐจ์ด๊ฐ€ ํฌ๊ฒŒ ๋‚˜์ง€ ์•Š๊ณ , ์ƒ์šฉํˆด์™€ ์˜คํ”ˆ์†Œ์Šค ๋‘๊ฐœ์ค‘ ์„ ํƒํ•ด์„œ ์˜์กด์„ฑ์„ ๊ฐ€์ ธ๊ฐ€์•ผ ํ•œ๋‹ค๋ฉด ๊ฐœ์ธ์ ์œผ๋กœ ์„ฑ์ˆ™ํ•œ ์˜คํ”ˆ์†Œ์Šค์— ์˜์กด์„ฑ์„ ๊ฐ€์ง€๋Š” ๊ฒƒ์„ ์ถ”์ฒœํ•ฉ๋‹ˆ๋‹ค.

๊ฐ€์น˜๊ฐ€ ๋ฐœํœ˜ํ•˜๋Š” ์ˆœ๊ฐ„

์˜์กด์„ฑ์„ ์ƒ๊ฐํ•˜๋ฉฐ ํ”„๋กœ๊ทธ๋ž˜๋ฐํ•˜๋Š”๊ฒƒ์€ ๊ฒฐ์ฝ” ์‰ฝ์ง€ ์•Š์€์ผ ์ž…๋‹ˆ๋‹ค. ํ•˜์ง€๋งŒ ์ด๋Ÿฐ ํŠน์„ฑ๋“ค์„ ๊ณ ๋ฏผํ•˜๊ณ  ํ”„๋กœ๊ทธ๋ž˜๋ฐ์— ์ ์šฉํ•œ๋‹ค๋ฉด ๋ถ„๋ช… ๋ฏธ๋ž˜์— ํฐ ๊ฐ€์น˜๋กœ ์—ฌ๋Ÿฌ๋ถ„์—๊ฒŒ ๋Œ์•„์˜ฌ ๊ฒƒ ์ž…๋‹ˆ๋‹ค.