CS & OS ๐Ÿ–ฅ๏ธ

[์ปดํŒŒ์ผ๋Ÿฌ] ๋ถ€ํŠธ์ŠคํŠธ๋ž˜ํ•‘ (Bootstraping) ์ด๋ž€?

hae02y 2023. 3. 9. 13:14
๋ฐ˜์‘ํ˜•

๋ถ€ํŠธ์ŠคํŠธ๋ž˜ํ•‘์˜ ์–ด์›

pull oneself up by one's bootstraps

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

 

 

 

๋ถ€ํŠธ์ŠคํŠธ๋ž˜ํ•‘๊ณผ ์ปดํ“จํ„ฐ ๊ณผํ•™

๋ณธ๋ฌธ์— ๋“ค์–ด๊ฐ€๊ธฐ ์•ž์„œ, ์ปดํŒŒ์ผ๋Ÿฌ์— ๋Œ€ํ•œ ์‚ฌ์ „์ง€์‹์ด ํ•„์š”ํ•˜๋‹ค. ๋‹ค์Œ ๋งํฌ๋Š” ์ปดํŒŒ์ผ๋Ÿฌ์˜ ์œ„ํ‚ค ์ฃผ์†Œ์ด๋ฏ€๋กœ ์ž˜๋ชจ๋ฅธ๋‹ค๋ฉด ํ•œ๋ฒˆ ์ฝ์–ด๋ณด์ž.

 

์ปดํŒŒ์ผ๋Ÿฌ - ๋‚˜๋ฌด์œ„ํ‚ค

์ด ์ €์ž‘๋ฌผ์€ CC BY-NC-SA 2.0 KR์— ๋”ฐ๋ผ ์ด์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. (๋‹จ, ๋ผ์ด์„ ์Šค๊ฐ€ ๋ช…์‹œ๋œ ์ผ๋ถ€ ๋ฌธ์„œ ๋ฐ ์‚ฝํ™” ์ œ์™ธ) ๊ธฐ์—ฌํ•˜์‹  ๋ฌธ์„œ์˜ ์ €์ž‘๊ถŒ์€ ๊ฐ ๊ธฐ์—ฌ์ž์—๊ฒŒ ์žˆ์œผ๋ฉฐ, ๊ฐ ๊ธฐ์—ฌ์ž๋Š” ๊ธฐ์—ฌํ•˜์‹  ๋ถ€๋ถ„์˜ ์ €์ž‘๊ถŒ

namu.wiki

 

์˜ˆ๋ฅผ๋“ค์–ด, Python์˜ ๊ฒฝ์šฐ C์–ธ์–ด๋กœ ์ž‘์„ฑ๋˜์—ˆ์ง€๋งŒ ์ปดํŒŒ์ผ๋Ÿฌ(์ธํ„ฐํ”„๋ฆฌํ„ฐ)์˜ ์ผ๋ถ€๋ถ„์€ Python์œผ๋กœ ์ž‘์„ฑ๋˜์—ˆ๋‹ค. ์—ฌ๊ธฐ์„œ ๋ญ”๊ฐ€ ์˜๋ฌธ์ ์ด ์ƒ๊ธด๋‹ค.

 

Python์–ธ์–ด์˜ ์ปดํŒŒ์ผ๋Ÿฌ๋ฅผ ์ž‘์„ฑํ•˜๋Š”๋ฐ  Python์„ ์‚ฌ์šฉํ•œ๋‹ค๊ณ ...?!

 

์ด์— ๋Œ€ํ•ด์„œ Chat GPT์˜ ์„ค๋ช…์„ ์ธ์šฉํ•œ๋‹ค.

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

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

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

์ฆ‰ ์ปดํ“จํ„ฐ๊ณผํ•™๋ถ„์•ผ์—์„œ ๋ถ€ํŠธ์ŠคํŠธ๋ž˜ํ•‘์ด๋ž€ ์ปดํŒŒ์ผ๋Ÿฌ( ๋˜๋Š” ์–ด์…ˆ๋ธ”๋Ÿฌ)๋ฅผ ์ปดํŒŒ์ผํ•˜๊ณ ์ž ํ•˜๋Š” ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์–ธ์–ด๋กœ ์ž‘์„ฑํ•˜๋Š” ๊ณผ์ •์ด๋‹ค.

 

์ด๊ฒƒ์€ "๋‹ญ์ด ๋จผ์ €๋ƒ, ๋‹ฌ๊ฑ€์ด ๋จผ์ €๋ƒ" ์™€ ๊ฐ™์€ ๊ฒƒ์ด๋‹ค. ์ฆ‰ X์–ธ์–ด๋ฅผ ์œ„ํ•œ ์ปดํŒŒ์ผ๋Ÿฌ๋ฅผ ์–ป์–ด์•ผํ• ๋•Œ ์–ด๋–ป๊ฒŒ ์ฒซ๋ฒˆ์งธ ์ปดํŒŒ์ผ๋Ÿฌ๋ฅผ X์–ธ์–ด๋กœ ์ž‘์„ฑํ• ๊ฒƒ์ด๋ƒ ๋ผ๋Š” ๋ฌธ์ œ๊ฐ€ ์ƒ๊ธฐ๋Š”๋ฐ, ์ด๋ฅผ ์œ„ํ•œ ํ•ด๊ฒฐ๋ฒ•์€ ์—ฌ๋Ÿฌ๊ฐ€์ง€๊ฐ€ ์žˆ๋‹ค.

 

  1. ์ธํ„ฐํ”„๋ฆฌํ„ฐ ๋˜๋Š” Y์–ธ์–ด๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ X์–ธ์–ด๋ฅผ ์œ„ํ•œ ์ปดํŒŒ์ผ๋Ÿฌ๋ฅผ ์ž‘์„ฑํ•œ๋‹ค. (์ตœ์ดˆ์˜ ํŒŒ์Šค์นผ ์ปดํŒŒ์ผ๋Ÿฌ๋ฅผ ํฌํŠธ๋ž€์œผ๋กœ ์ž‘์„ฑ)
  2. X์–ธ์–ด๋ฅผ ์œ„ํ•œ ๋˜ ๋‹ค๋ฅธ ์ธํ„ฐํ”„๋ฆฌํ„ฐ ๋˜๋Š” ์ปดํŒŒ์ผ๋Ÿฌ๊ฐ€ Y์–ธ์–ด๋กœ ์ž‘์„ฑ๋œ๋‹ค.
  3. X์–ธ์–ด๋ฅผ ์œ„ํ•œ ์ปดํŒŒ์ผ๋Ÿฌ์˜ ์ดˆ์ฐฝ๊ธฐ ๋ฒ„์ „๋“ค์€ ์ปดํŒŒ์ผ๋Ÿฌ๊ฐ€ ์กด์žฌํ•˜๋Š” X์–ธ์–ด์˜ ์ผ๋ถ€๋งŒ์„ ์‚ฌ์šฉํ•ด์„œ ์ž‘์„ฑํ•œ๋‹ค. (JAVA, ํ•˜์Šค์ผˆ ๋“ฑ์˜ ์–ธ์–ด)
  4. X์–ธ์–ด๋กœ ์ปดํŒŒ์ผ๋Ÿฌ๋ฅผ ๋งŒ๋“  ๋’ค, ์ง์ ‘ ์ปดํŒŒ์ผํ•œ๋‹ค. ๊ทธ๋‹ค์Œ ๊ทธ์ปดํŒŒ์ผ๋Ÿฌ๋ฅผ ๋‹ค์‹œ ๊ทธ ์ปดํŒŒ์ผ๋Ÿฌ์˜ ์ฝ”๋“œ์— ์ ์šฉํ•˜์—ฌ ์ตœ์ ํ™”๋œ ์ปดํŒŒ์ผ๋Ÿฌ๋ฅผ ์–ป๋Š”๋‹ค.

 

 

 

๋ถ€ํŠธ์ŠคํŠธ๋ž˜ํ•‘์˜ ์žฅ์ 

์ปดํŒŒ์ผ๋Ÿฌ๋ฅผ ๋ถ€ํŠธ์ŠคํŠธ๋ž˜ํ•‘ ํ•˜๋Š”๊ฒƒ์€ ์—ฌ๋Ÿฌ๊ฐ€์ง€ ์žฅ์ ์„ ๊ฐ€์ง„๋‹ค.

 

- ์ปดํŒŒ์ผ๋  ์–ธ์–ด์— ๋Œ€ํ•ด์„œ ์ค‘๋Œ€ํ•œ ํ…Œ์ŠคํŠธ๋ฅผ ์ง„ํ–‰ํ•˜๋Š”๊ฒƒ์ด๋‹ค.

- ์ปดํŒŒ์ผ๋Ÿฌ ๊ฐœ๋ฐœ์ž๋“ค์€ ์ปดํŒŒ์ผ ํ•  ์–ธ์–ด๋งŒ ์•Œ๊ณ ์žˆ์œผ๋ฉด ๋œ๋‹ค.

- ์ปดํŒŒ์ผ๋Ÿฌ์˜ ๊ฐœ๋ฐœ์ด ์ปดํŒŒ์ผ๋  ํ•ด๋‹น ๊ณ ๊ธ‰์–ธ์–ด๋กœ ์ด๋ฃจ์–ด์งˆ์ˆ˜์žˆ๋‹ค.

- ๋ฐฑ์—”๋“œ ๊ฐœ์„ ์ด ๋ฒ”์šฉ ๋ชฉ์  ํ”„๋กœ๊ทธ๋žจ๋ฟ๋งŒ ์•„๋‹ˆ๋ผ ์ปดํŒŒ์ผ๋Ÿฌ ์ž์‹  ๋˜ํ•œ ๊ฐœ์„ ๋œ๋‹ค.

- ์–ธ์–ด ์ž์‹ ์˜ ๋ชฉ์ ์ฝ”๋“œ๋ฅผ ์žฌ์ƒ์‚ฐํ•ด์•ผ ํ•˜๋ฏ€๋กœ, ์ด๋Š” ํฌ๊ด„์ ์ธ ์ผ๊ด€์„ฑ๊ฒ€์‚ฌ์ด๋‹ค.

 

์ด๋Ÿฌํ•œ ๊ธฐ์ˆ ์€ ์…€ํ”„ ํ˜ธ์ŠคํŒ… ์ปดํŒŒ์ผ๋Ÿฌ๋กœ ์ ์šฉ๋˜์—ˆ๊ณ , ์…€ํ”„ํ˜ธ์ŠคํŒ… ์ปดํŒŒ์ผ๋Ÿฌ๋ฅผ ๊ฐ€์ง€๊ณ ์žˆ๋Š” ์–ธ์–ด๋Š”

 

Ada, BASIC, Burroughs ALGOL, C, C++, C#, Visual Basic .NET, CoffeeScript, Common Lisp, Crystal, Delphi, Eiffel, F#, FASM, ํŒฉํ„ฐ, ํŒฌ์‹œ, ํ”„๋ฆฌ ํŒŒ์Šค์นผ, ๊ณ , ํ•˜์Šค์ผˆ, ์ž๋ฐ”, ๋จธํ๋ฆฌ, Modula-2, ๋‹˜๋กœ๋“œ, ์˜ค๋ฒ ๋ก , OCaml, ํŒŒ์Šค์นผ, Perl, PL/I, ํŒŒ์ด์ฌ, ๋Ÿฌ์ŠคํŠธ, ์Šคํ‚ด, ์Šค์นผ๋ผ, ์Šค๋ชฐํ† ํฌ, SML, TypeScript, ๋ฐœ๋ผ, XPL

 

๋“ฑ์ด ์žˆ๋‹ค.

๋ฐ˜์‘ํ˜•