[๋ฐ๋ธŒ์ฝ”์Šค] ๊ฐ์ฒด์ง€ํ–ฅ ์–ธ์–ด
ยท
๐Ÿ•Š๏ธํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค ๋ฐ๋ธŒ์ฝ”์Šค/TIL
ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์–ธ์–ด๋ฅผ ๊ณต๋ถ€ํ•˜๋‹ค ๋ณด๋ฉด ํ•œ ๋ฒˆ์ฏค ๋“ฃ๊ฒŒ ๋˜๋Š” ๋ง์ด ์žˆ๋‹ค."C๋Š” ์ ˆ์ฐจ์ง€ํ–ฅ, Java๋Š” ๊ฐ์ฒด์ง€ํ–ฅ์ด๋‹ค."ํ•˜์ง€๋งŒ **๊ฐ์ฒด์ง€ํ–ฅ(Object-Oriented)**์ด๋ž€ ๋‹จ์–ด๋Š” ๋„ˆ๋ฌด ์ž์ฃผ ์“ฐ์ด๋ฉด์„œ๋„ ๊นŠ์ด ์žˆ๊ฒŒ ์„ค๋ช…๋˜์ง€๋Š” ์•Š๋Š”๋‹ค.์ด ๊ธ€์—์„œ๋Š” ๊ฐ์ฒด์ง€ํ–ฅ ์–ธ์–ด์˜ ์ฒ ํ•™์  ๊ธฐ์ดˆ๋ถ€ํ„ฐ ๊ตฌ์กฐ์ฒด์™€์˜ ์ฐจ์ด, ์‹ค์ œ ๊ฐ์ฒด ๋ฉ”๋ชจ๋ฆฌ ๊ตฌ์กฐ, ๊ทธ๋ฆฌ๊ณ  ๋‹ค๋ฅธ ํŒจ๋Ÿฌ๋‹ค์ž„๊ณผ์˜ ๋น„๊ต๊นŒ์ง€, ๊ฒ‰ํ•ฅ๊ธฐ๊ฐ€ ์•„๋‹Œ ๋‚ด๋ถ€ ๋™์ž‘ ๊ด€์ ์—์„œ ์™„์ „ํ•œ ๋”ฅ๋‹ค์ด๋ธŒ๋ฅผ ํ•ด๋ณด์ž.๐Ÿงฌ ๊ฐ์ฒด์ง€ํ–ฅ์˜ ํƒ„์ƒ ๋ฐฐ๊ฒฝ: ๊ตฌ์กฐ์—์„œ ํ–‰๋™์œผ๋กœ๐ŸŽฏ ๋ฌธ์ œ์˜์‹: ์ฝ”๋“œ์™€ ๋ฐ์ดํ„ฐ์˜ ๋ถ„๋ฆฌ์ดˆ๊ธฐ์˜ ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์–ธ์–ด(C, Fortran ๋“ฑ)๋Š” ๋ฐ์ดํ„ฐ(๊ตฌ์กฐ์ฒด)์™€ ๊ทธ ๋ฐ์ดํ„ฐ๋ฅผ ์ฒ˜๋ฆฌํ•˜๋Š” ํ•จ์ˆ˜๊ฐ€ ๋ถ„๋ฆฌ๋˜์–ด ์žˆ์—ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด:struct Point { int x; int y;};void move(Point* p, in..
ํฌ์ธํ„ฐ์˜ ๊ฐœ๋…๊ณผ ๋‚ด๋ถ€ ๋™์ž‘
ยท
๐Ÿ•Š๏ธํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค ๋ฐ๋ธŒ์ฝ”์Šค/TIL
ํฌ์ธํ„ฐ๋Š” ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์–ธ์–ด์—์„œ ๋ฉ”๋ชจ๋ฆฌ ์ฃผ์†Œ๋ฅผ ์ €์žฅํ•˜๋Š” ๋ณ€์ˆ˜๋‹ค. ์ผ๋ฐ˜ ๋ณ€์ˆ˜๋Š” ๋ฐ์ดํ„ฐ๋ฅผ ์ง์ ‘ ์ €์žฅํ•˜์ง€๋งŒ, ํฌ์ธํ„ฐ๋Š” ๋ฐ์ดํ„ฐ๊ฐ€ ์ €์žฅ๋œ ๋ฉ”๋ชจ๋ฆฌ์˜ ์œ„์น˜๋ฅผ ๊ฐ€๋ฆฌํ‚จ๋‹ค. ์ฆ‰, ํฌ์ธํ„ฐ๋Š” ๋ฉ”๋ชจ๋ฆฌ ์ฃผ์†Œ๊ฐ’์„ ๋‹ด๊ณ  ์žˆ๋Š” ๋ณ€์ˆ˜๋ผ๊ณ  ์ดํ•ดํ•˜๋ฉด ๋œ๋‹ค.ํฌ์ธํ„ฐ๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ์ด์œ ๋Š” ํฌ๊ฒŒ ๋‘ ๊ฐ€์ง€๋‹ค. ์ฒซ์งธ, ๋ฉ”๋ชจ๋ฆฌ๋ฅผ ํšจ์œจ์ ์œผ๋กœ ๋‹ค๋ฃจ๊ธฐ ์œ„ํ•ด์„œ๋‹ค. ๋ฐ์ดํ„ฐ๋ฅผ ๋ณต์‚ฌํ•˜์ง€ ์•Š๊ณ  ์ฃผ์†Œ๋งŒ ์ „๋‹ฌํ•ด ์„ฑ๋Šฅ์„ ํ–ฅ์ƒํ•  ์ˆ˜ ์žˆ๋‹ค. ๋‘˜์งธ, ๋™์  ๋ฉ”๋ชจ๋ฆฌ ๊ด€๋ฆฌ์™€ ์ž๋ฃŒ๊ตฌ์กฐ ๊ตฌํ˜„์—์„œ ํ•„์ˆ˜์ ์ด๋‹ค. ์—ฐ๊ฒฐ ๋ฆฌ์ŠคํŠธ, ํŠธ๋ฆฌ ๊ฐ™์€ ์ž๋ฃŒ๊ตฌ์กฐ๋Š” ํฌ์ธํ„ฐ๋ฅผ ํ†ตํ•ด ๋…ธ๋“œ๋“ค์„ ์—ฐ๊ฒฐํ•œ๋‹ค.ํฌ์ธํ„ฐ์˜ ๊ธฐ๋ณธ ๊ตฌ์กฐ์™€ ํฌ๊ธฐ ๐Ÿงฎํฌ์ธํ„ฐ ๋ณ€์ˆ˜๋Š” ํŠน์ • ํƒ€์ž…์„ ๊ฐ€๋ฆฌํ‚ค๋ฉฐ, ๊ทธ ํƒ€์ž…์— ๋”ฐ๋ผ ๋ฉ”๋ชจ๋ฆฌ ํ•ด์„์ด ๋‹ฌ๋ผ์ง„๋‹ค. ํ•˜์ง€๋งŒ ํฌ์ธํ„ฐ ์ž์ฒด๊ฐ€ ์ €์žฅํ•˜๋Š” ๊ฐ’์€ ๋ฉ”๋ชจ๋ฆฌ ์ฃผ์†Œ๋กœ, ๋Œ€๋ถ€๋ถ„์˜ ์‹œ์Šคํ…œ์—์„œ 4๋ฐ”์ดํŠธ(32๋น„ํŠธ) ํ˜น์€ 8๋ฐ”์ดํŠธ(64๋น„..
[๋ฐ๋ธŒ์ฝ”์Šค] ๋ณ€์ˆ˜์™€ ์ƒ์ˆ˜์˜ ๊ฐœ๋…๊ณผ ์ปดํŒŒ์ผ ์–ธ์–ด์—์„œ์˜ ๋™์ž‘ ์›๋ฆฌ
ยท
๐Ÿ•Š๏ธํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค ๋ฐ๋ธŒ์ฝ”์Šค/TIL
์ปดํ“จํ„ฐ ํ”„๋กœ๊ทธ๋ž˜๋ฐ์—์„œ ๋ณ€์ˆ˜(variable) ์™€ ์ƒ์ˆ˜(constant) ๋Š” ๊ฐ€์žฅ ๊ธฐ๋ณธ์ ์ด๋ฉด์„œ๋„ ์ค‘์š”ํ•œ ๊ฐœ๋…์ด๋‹ค. ์ด ๋‘ ๊ฐœ๋…์€ ๋‹จ์ˆœํžˆ ๋ฐ์ดํ„ฐ๋ฅผ ์ €์žฅํ•˜๋Š” ์ด๋ฆ„์— ๊ทธ์น˜์ง€ ์•Š๊ณ , ์ปดํŒŒ์ผ ์–ธ์–ด์˜ ๋™์ž‘ ์›๋ฆฌ์™€ ๋ฐ€์ ‘ํ•˜๊ฒŒ ์—ฐ๊ฒฐ๋˜์–ด ์žˆ๋‹ค. ํŠนํžˆ C ์–ธ์–ด ๊ฐ™์€ ์ปดํŒŒ์ผ ์–ธ์–ด๋ฅผ ํ†ตํ•ด ์ด ๊ฐœ๋…์„ ๊นŠ๊ฒŒ ์ดํ•ดํ•˜๋ฉด, ์ปดํ“จํ„ฐ ๋‚ด๋ถ€์—์„œ ์ฝ”๋“œ๊ฐ€ ์–ด๋–ป๊ฒŒ ์‹คํ–‰๋˜๋Š”์ง€, ๊ทธ๋ฆฌ๊ณ  ์™œ ๋ณ€์ˆ˜์™€ ์ƒ์ˆ˜๋ฅผ ๊ตฌ๋ถ„ํ•˜๋Š”์ง€๊ฐ€ ๋ช…ํ™•ํ•ด์ง„๋‹ค.1. ๋ณ€์ˆ˜์™€ ์ƒ์ˆ˜: ์ •์˜์™€ ์—ญํ• ๋ณ€์ˆ˜๋Š” ๋ฐ์ดํ„ฐ๋ฅผ ์ €์žฅํ•˜๋Š” ๋ฉ”๋ชจ๋ฆฌ ๊ณต๊ฐ„์— ๋ถ€์—ฌ๋œ ์ด๋ฆ„์ด๋‹ค. ๋ณ€์ˆ˜๋Š” ํ”„๋กœ๊ทธ๋žจ ์‹คํ–‰ ์ค‘ ์–ธ์ œ๋“ ์ง€ ์ €์žฅ๋œ ๊ฐ’์„ ๋ณ€๊ฒฝํ•  ์ˆ˜ ์žˆ๋‹ค.๋ฐ˜๋ฉด, ์ƒ์ˆ˜๋Š” ์ดˆ๊ธฐํ™” ์ดํ›„ ๊ฐ’์„ ๋ณ€๊ฒฝํ•  ์ˆ˜ ์—†๋Š” ์ €์žฅ ๊ณต๊ฐ„์ด๋‹ค. ์ƒ์ˆ˜๋Š” ํ”„๋กœ๊ทธ๋žจ ๋‚ด์—์„œ ๋ณ€ํ•˜์ง€ ์•Š๋Š” ๊ฐ’, ์˜ˆ๋ฅผ ๋“ค์–ด ์„ค์ • ๊ฐ’์ด๋‚˜ ๊ณ ์ •๋œ ์ˆ˜์น˜ ๋“ฑ์„ ํ‘œํ˜„ํ•  ๋•Œ ์‚ฌ์šฉํ•œ๋‹ค.์ด ๋‘ ๊ฐœ๋…์€..
[๋ฐ๋ธŒ์ฝ”์Šค] ํ”„๋ก ํŠธ, ์–ด์ฉŒ๋ฉด ๋…ธ๋“œ ๋ฐฑ์—”๋“œ๊ฐ€ ๋  ๋‚ด๊ฐ€ ์ปดํŒŒ์ผ ์–ธ์–ด๋ฅผ ๋ฐฐ์›Œ์•ผ ํ•˜๋Š” ์ด์œ 
ยท
๐Ÿ•Š๏ธํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค ๋ฐ๋ธŒ์ฝ”์Šค/TIL
๐Ÿš€ 1. ์ปดํŒŒ์ผ ์–ธ์–ด๋ž€?์ปดํŒŒ์ผ ์–ธ์–ด๋Š” ์ „์ฒด ์ฝ”๋“œ๋ฅผ ๋ฏธ๋ฆฌ ๊ธฐ๊ณ„์–ด๋กœ ๋ณ€ํ™˜(์ปดํŒŒ์ผ)ํ•ด์„œ ์‹คํ–‰ ํŒŒ์ผ์„ ๋งŒ๋“œ๋Š” ์–ธ์–ด๋‹ค.๋Œ€ํ‘œ์ ์ธ ์ปดํŒŒ์ผ ์–ธ์–ด๋กœ๋Š” C, C++, Go, Rust ๋“ฑ์ด ์žˆ๋‹ค.์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ ๊ฐ™์€ ์–ธ์–ด๋Š” ์ธํ„ฐํ”„๋ฆฌํ„ฐ ๋ฐฉ์‹์œผ๋กœ, ์‹คํ–‰ํ•  ๋•Œ ์ฝ”๋“œ๋ฅผ ํ•œ ์ค„์”ฉ ํ•ด์„ํ•ด์„œ ์‹คํ–‰ํ•œ๋‹ค. ๐Ÿ’ก 2. ์™œ ์ปดํŒŒ์ผ ์–ธ์–ด๋ฅผ ๋ฐฐ์›Œ์•ผ ํ• ๊นŒ?1) ์ปดํ“จํ„ฐ ๋™์ž‘ ์›๋ฆฌ๋ฅผ ๋” ๊นŠ๊ฒŒ ์ดํ•ดํ•  ์ˆ˜ ์žˆ๋‹ค์ปดํŒŒ์ผ ์–ธ์–ด๋Š” ํ•˜๋“œ์›จ์–ด์™€ ์šด์˜์ฒด์ œ์— ๊ฐ€๊นŒ์šด ๋ ˆ๋ฒจ์—์„œ ๋™์ž‘ํ•˜๊ธฐ ๋•Œ๋ฌธ์—, ๋ฉ”๋ชจ๋ฆฌ, CPU, ๋ ˆ์ง€์Šคํ„ฐ, ์Šคํƒ, ํž™ ๊ฐ™์€ ์ปดํ“จํ„ฐ ๋‚ด๋ถ€ ๊ตฌ์กฐ๋ฅผ ๋ฐฐ์šธ ์ˆ˜ ์žˆ๋‹ค.์ด๊ฑธ ์•Œ๋ฉด ๋” ํšจ์œจ์ ์ธ ์ฝ”๋“œ ์ž‘์„ฑ๊ณผ ๋ฌธ์ œ ํ•ด๊ฒฐ ๋Šฅ๋ ฅ์ด ์ƒ๊ธด๋‹ค.2) ์„ฑ๋Šฅ ์ตœ์ ํ™”์— ๊ฐ•ํ•ด์ง„๋‹ค์ปดํŒŒ์ผ ์–ธ์–ด๋Š” ์‹คํ–‰ ํŒŒ์ผ ํฌ๊ธฐ, ๋ฉ”๋ชจ๋ฆฌ ์‚ฌ์šฉ, CPU ์‚ฌ์šฉ๋Ÿ‰์„ ์ง์ ‘ ์ œ์–ดํ•  ์ˆ˜ ์žˆ์–ด ์„ฑ๋Šฅ์ด ๋›ฐ์–ด๋‚˜๋‹ค.์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ์ฒ˜๋Ÿผ ..
ECMAScript์™€ JavaScript ํ‘œ์ค€ํ™”
ยท
๐Ÿ•Š๏ธํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค ๋ฐ๋ธŒ์ฝ”์Šค/TIL
์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ๋Š” ์–ด๋–ป๊ฒŒ ํ‘œ์ค€ํ™”๋˜๊ณ  ์žˆ์„๊นŒ? ๐Ÿง  ECMAScript๋Š” ๋ฌด์—‡์ธ๊ฐ€?ECMAScript๋Š” ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ์˜ ํ‘œ์ค€ ๋ช…์„ธ๋‹ค.์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ๋Š” ๋ธŒ๋ผ์šฐ์ €์—์„œ ์ฒ˜์Œ ๋งŒ๋“ค์–ด์กŒ์ง€๋งŒ, ๊ฐ ๋ธŒ๋ผ์šฐ์ €๋งˆ๋‹ค ๊ตฌํ˜„ ๋ฐฉ์‹์ด ์กฐ๊ธˆ์”ฉ ๋‹ฌ๋ž๊ธฐ ๋•Œ๋ฌธ์— ์ด๋ฅผ ํ†ต์ผํ•  ํ•„์š”๊ฐ€ ์žˆ์—ˆ๋‹ค.๊ทธ๋ž˜์„œ ์–ธ์–ด์˜ ๊ธฐ๋ฐ˜์ด ๋˜๋Š” ๋ช…์„ธ๋ฅผ ๋งŒ๋“ค์—ˆ๊ณ , ์ด๊ฒŒ ๋ฐ”๋กœ ECMAScript๋‹ค.์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ = ECMAScript๋ฅผ ๊ธฐ๋ฐ˜์œผ๋กœ ํ•œ ์–ธ์–ด ๊ตฌํ˜„์ฒด๋‹ค.ECMAScript๋Š” ๋ฌธ๋ฒ•, ํƒ€์ž…, ํ‚ค์›Œ๋“œ, ์—ฐ์‚ฐ์ž, ๋‚ด์žฅ ๊ฐ์ฒด ๋“ฑ ํ•ต์‹ฌ ๊ทœ์น™์„ ์ •์˜ํ•œ๋‹ค.์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ ์™ธ์—๋„ ActionScript(ํ”Œ๋ž˜์‹œ์—์„œ ์“ฐ๋˜ ์–ธ์–ด)๋„ ECMAScript๋ฅผ ๊ธฐ๋ฐ˜์œผ๋กœ ๋งŒ๋“ค์–ด์กŒ๋‹ค.๐Ÿ› ๋ˆ„๊ฐ€ ํ‘œ์ค€์„ ์ •ํ•˜๋Š”๊ฐ€?ํ‘œ์ค€์€ **TC39(Technical Committee 39)**๋ผ๋Š” ์œ„์›ํšŒ๊ฐ€ ๋งŒ๋“ ๋‹ค.์ด ์œ„์›ํšŒ๋Š”..
nodejs ๋น„๋™๊ธฐ ํ”„๋กœ๊ทธ๋ž˜๋ฐ
ยท
๐Ÿ•Š๏ธํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค ๋ฐ๋ธŒ์ฝ”์Šค/TIL
Node.js๋Š” ๋‹จ์ผ ์Šค๋ ˆ๋“œ ์ด๋ฒคํŠธ ๋ฃจํ”„ ๊ธฐ๋ฐ˜ ๋ชจ๋ธ์„ ์‚ฌ์šฉํ•˜์—ฌ ๋™์‹œ์„ฑ์„ ์ฒ˜๋ฆฌํ•œ๋‹ค. ์ด ๋ชจ๋ธ์—์„œ I/O ์ž‘์—…๊ณผ ๊ฐ™์€ ์‹œ๊ฐ„์ด ์˜ค๋ž˜ ๊ฑธ๋ฆฌ๋Š” ์ž‘์—…์€ ๋ฐฑ๊ทธ๋ผ์šด๋“œ๋กœ ๋„˜๊ฒจ์ง€๊ณ , ์ž‘์—…์ด ์™„๋ฃŒ๋˜๋ฉด ์ด๋ฒคํŠธ ๋ฃจํ”„์— ์˜ํ•ด ์ฝœ๋ฐฑ์ด ์‹คํ–‰๋œ๋‹ค. ์ด๋Ÿฌํ•œ ๋ฐฉ์‹์œผ๋กœ Node.js๋Š” ๋น„๋™๊ธฐ ํ”„๋กœ๊ทธ๋ž˜๋ฐ์„ ํ†ตํ•ด ๋†’์€ ์ฒ˜๋ฆฌ๋Ÿ‰๊ณผ ํšจ์œจ์„ฑ์„ ๋‹ฌ์„ฑํ•œ๋‹ค.๋น„๋™๊ธฐ ์ฒ˜๋ฆฌ ๋ฐฉ๋ฒ•์˜ ์ง„ํ™”์ฝœ๋ฐฑ ํ•จ์ˆ˜Node.js ์ดˆ๊ธฐ์—๋Š” ๋น„๋™๊ธฐ ์ž‘์—…์„ ์ฒ˜๋ฆฌํ•˜๊ธฐ ์œ„ํ•ด ์ฝœ๋ฐฑ ํŒจํ„ด์ด ์ฃผ๋กœ ์‚ฌ์šฉ๋˜์—ˆ๋‹ค.fs.readFile('file.txt', (err, data) => { if (err) { console.error('์—๋Ÿฌ ๋ฐœ์ƒ:', err); return; } console.log('ํŒŒ์ผ ๋‚ด์šฉ:', data);});์ฝœ๋ฐฑ ํŒจํ„ด์€ ๊ฐ„๋‹จํ•˜์ง€๋งŒ ์ค‘์ฒฉ๋œ ๋น„๋™๊ธฐ ์ž‘์—…์„ ๋‹ค๋ฃฐ ๋•Œ "..