burrow-checker์— ๋Œ€ํ•œ ์ถ”๊ฐ€ ์ •๋ฆฌ์ž๋ฃŒ

burrow-checker์— ๋Œ€ํ•ด ๋„์›€์ด ๋  ๋งŒ ํ•œ ๋‚ด์šฉ์„ ์ •๋ฆฌํ•œ ๋ฌธ์„œ, rust-in-action ๋‚ด์šฉ์„ ์ฐธ๊ณ ํ•˜์—ฌ ์ž‘์„ฑํ•˜์˜€์Šต๋‹ˆ๋‹ค. ๋Œ€์—ฌ ๊ฒ€์‚ฌ๋Š” ์„œ๋กœ ์—ฐ๊ฒฐ๋œ ์„ธ ๊ฐ€์ง€ ๊ฐœ๋…์ธ ์ˆ˜๋ช…, ์†Œ์œ ๊ถŒ, ๋Œ€์—ฌ์— ์˜์กดํ•œ๋‹ค. ์†Œ์œ ๊ถŒ : ๋Ÿฌ์ŠคํŠธ์—์„œ ์†Œ์œ ๊ถŒ์€ ํ•ด๋‹น ๊ฐ’์ด ๋” ์ด์ƒ ํ•„์š” ์—†์„ ๋•Œ ๊นจ๋—์ด ์ง€์šฐ๋Š” ๊ฒƒ ๊ณผ ๊ด€๋ จ์ด ์žˆ๋‹ค. ์ˆ˜๋ช… : ๊ฐ’์— ์ ‘๊ทผํ•ด๋„ ๋ฌธ์ œ์—†๋Š” ๊ธฐ๊ฐ„์„ ์˜๋ฏธํ•œ๋‹ค. ๋Œ€์—ฌ : ๊ฐ’์— ์ ‘๊ทผํ•จ์„ ์˜๋ฏธํ•œ๋‹ค. ์›๋ž˜ ์†Œ์œ ์ž์—๊ฒŒ ๊ฐ’์„ ๋˜๋Œ๋ ค ์ฃผ์ง€ ์•Š์•„๋„ ๋œ๋‹ค๋Š” ์ ์—์„œ ํ˜„์‹ค์˜ ๋Œ€์—ฌ์™€ ํ—ท๊ฐˆ๋ฆฐ๋‹ค. โ€œ๊ฐ’์˜ ์†Œ์œ ์ž๋Š” ํ•˜๋‚˜์ด๋ฉฐ, ํ”„๋กœ๊ทธ๋žจ์˜ ๋งŽ์€ ๋‹ค๋ฅธ ๋ถ€๋ถ„์—์„œ ์ด ๊ฐ’์„ ์ ‘๊ทผํ•˜๊ธฐ ์œ„ํ•œ ์žฅ์น˜"๋ฅผ ์ƒ๊ฐํ•˜๋ฉด ์กฐ๊ธˆ ๋” ํŽธํ•˜๋‹ค....

September 29, 2024

Daily-Log 2024 (Daily ์•„๋‹˜์ฃผ์˜) ๐Ÿ™ˆ

Daily-Log ๐Ÿ“ 2024-09-24 ๊ฐ€์žฅ ํฐ ํ”„๋กœ์ ํŠธ๊ฐ€ ์˜คํ”ˆํ–ˆ๊ณ , ์˜คํ”ˆ ์งํ›„์˜ ์ด์Šˆ๋“ค๋„ ์ •๋ฆฌ๋˜์–ด ๊ฐ€๊ณ  ์žˆ๋‹ค. ๋ฐ€๋ ธ๋˜ ํฌ์ŠคํŒ…๋“ค์„ ํ•˜๋‚˜์”ฉ ์˜ฌ๋ฆฌ๋ ค๊ณ  ํ•œ๋‹ค. ํ”„๋กœ์ ํŠธ ๋•Œ๋ฌธ์— ๋ช‡๋‚  ๋ฐค์„ ์ƒˆ์› ๋Š”๋ฐ, ๋ช‡์ผ ์‰ฌ์—ˆ๋‹ค๊ณ  ์ •์‹  ๋ชป์ฐจ๋ฆฌ๊ณ  ์Šคํ„ฐ๋””์™€ ์‚ฌ์ด๋“œ ํ”„๋กœ์ ํŠธ๋ฅผ ์ง„ํ–‰ํ•˜๋ ค๊ณ  ํ•œ๋‹ค. ๊ทธ ๋•Œ๋ฌธ์— ๋Ÿฌ์ŠคํŠธ ๊ณต๋ถ€๋ฅผ ์‹œ๊ธ‰ํ•˜๊ฒŒ ํ•ด์•ผํ•œ๋‹ค. ๋‹น์žฅ ์˜ค๋Š˜ Rust In Action ๋ณต์Šต์„ ์‹œ์ž‘ํ–ˆ๋‹ค. 2024-09-25 ๋Ÿฌ์ŠคํŠธ ์‚ฌ์ด๋“œ ํ”„๋กœ์ ํŠธ์˜ ๊ต๋ชจ์™€ ์‹œ๊ธฐ๊ฐ€ ์ƒ๋‹นํžˆ ํƒ€์ดํŠธ ํ•  ๊ฒƒ ๊ฐ™๋‹ค. 10์›” ์ดˆ ๊ธด ์—ฐํœด ๋‚ด์— ๊ฐ์ž ํ•„์š”ํ•œ ๊ฒƒ๋“ค์„ ์ค€๋น„ํ•˜๊ธฐ๋กœ ํ–ˆ๋‹ค. ์ตœ์†Œ ์„œ๋ฒ„๋Š” ๋Ÿฌ์ŠคํŠธ๋กœ ๊ตฌํ˜„ ํ•  ๊ฒƒ ๊ฐ™๋‹ค (actix-web) ๋Ÿฌ์ŠคํŠธ ๋ฌธ๋ฒ•์— ๋Œ€ํ•œ ๋ณต์Šต์„ ์งง๊ฒŒ ๋งˆ์น˜๊ณ , ํ”„๋ ˆ์ž„์›Œํฌ์— ๋Œ€ํ•œ ๊ณต๋ถ€์™€ ๋Ÿฌ์ŠคํŠธ ์›น์†Œ์ผ“ ๊ด€๋ จ ์ฝ”๋“œ๋“ค์„ ์ฐพ์•„๋ณด๋ ค๊ณ  ํ•œ๋‹ค....

September 24, 2024

Week-06

16. ์„ธ๊ทธ๋ฉ˜ํ…Œ์ด์…˜ 16.1 ๋ฒ ์ด์Šค ๋ฐ”์šด๋“œ์˜ ์ผ๋ฐ˜ํ™” ์ง€๊ธˆ ๊ฐ€์ •์˜ ๋‹จ๊ณ„์—์„œ ๋‚ด๋ถ€๋‹จํŽธํ™”๊ฐ€ ๋ฐœ์ƒํ•˜๋Š” ์š”์ธ์€ ์Šคํƒ๊ณผ ํž™ ์‚ฌ์ด์— ์‚ฌ์šฉํ•˜์ง€ ์•Š๋Š” ๋ฉ”๋ชจ๋ฆฌ๊ฐ€ ์กด์žฌํ•˜๋Š” ๊ฒƒ์ด๋‹ค. ์„ธ๊ทธ๋ฉ˜ํ…Œ์ด์…˜์€ 60๋…„๋Œ€์— ์ด๋ฏธ ์‚ฌ์šฉ๋˜๋˜ ๋ฉ”๋ชจ๋ฆฌ ๊ด€๋ฆฌ ๊ธฐ๋ฒ•์ด๋‹ค. ๊ธฐ๋ณธ์ ์œผ๋กœ ์„ธ๊ทธ๋ฉ˜ํ…Œ์ด์…˜์€ ์„ธ๊ทธ๋จผํŠธ๋งˆ๋‹ค ๋ฒ ์ด์Šค์™€ ๋ฐ”์šด๋“œ๋ฅผ ๊ฐ€์ง€๊ณ  ์žˆ๋‹ค. ์„ธ๊ทธ๋จผํŠธ๋ž€ ๋…ผ๋ฆฌ์ ์ธ ๋‹จ์œ„๋กœ, ํ”„๋กœ๊ทธ๋žจ์ด๋‚˜ ๋ฐ์ดํ„ฐ๋ฅผ ๋‹ด๊ณ  ์žˆ๋Š” ๋…ผ๋ฆฌ์ ์ธ ๋‹จ์œ„์ด๋‹ค. (์Šคํƒ, ํž™, ๋ฐ์ดํ„ฐ์˜์—ญ, ์ฝ”๋“œ์˜์—ญ ๋“ฑ) ์ฆ‰ ๋…ผ๋ฆฌ์ ์ธ ๋‹จ์œ„๋กœ ๋‚˜๋ˆ„์–ด์ง„ ์„ธ๊ทธ๋จผํŠธ(๋…ผ๋ฆฌ์  ๋‹จ์œ„)์— ๊ฐ๊ฐ ๋ฒ ์ด์Šค์™€ ๋ฐ”์šด๋“œ๋ฅผ ์ฃผ๋Š” ๊ฒƒ์ด๋‹ค. ๊ทธ์™ธ์—๋Š” ๋ฒ ์ด์Šค ๋ฐ”์šด๋“œ ๊ธฐ๋ฒ•์„ ์‚ฌ์šฉํ•œ๋‹ค. ์˜ˆ๋ฅผ๋“ค์–ด ๊ฐ€์ƒ์ฃผ์†Œ๊ฐ€ 100, ๋ฒ ์ด์Šค๊ฐ€ 50, ๋ฐ”์šด๋“œ๊ฐ€ 110์ด๋ผ๋ฉด, ๋ฒ ์ด์Šค ์ฃผ์†Œ์ธ 50์œผ๋กœ ๊ฐ€์„œ 100์„ ๋”ํ•˜๋ฉด 150์ด ๋˜๋Š”๋ฐ, ์ด๋Š” ๋ฐ”์šด๋“œ๋ณด๋‹ค ํฌ๊ธฐ ๋•Œ๋ฌธ์— ์˜ค๋ฅ˜๊ฐ€ ๋ฐœ์ƒํ•œ๋‹ค....

June 25, 2024

cpp-casting ๐Ÿ‹

static_cast static_cast๋Š” ๊ฐ€์žฅ ๊ธฐ๋ณธ์ ์ธ ํ˜•ํƒœ์˜ ์บ์ŠคํŒ…์ด๋‹ค. ์ปดํŒŒ์ผ ์‹œ๊ฐ„์— ํƒ€์ž… ๋ณ€ํ™˜์„ ์ˆ˜ํ–‰ํ•˜๋ฉฐ, ์ปดํŒŒ์ผ๋Ÿฌ๊ฐ€ ํƒ€์ž… ์•ˆ์ „์„ฑ์„ ์–ด๋А ์ •๋„ ๋ณด์žฅํ•ด ์ค€๋‹ค. ์ฃผ๋กœ ๊ธฐ๋ณธ ํƒ€์ž… ๊ฐ„์˜ ๋ณ€ํ™˜, ๋ช…์‹œ์  ์ƒ์„ฑ์ž๋ฅผ ์‚ฌ์šฉํ•œ ๊ฐ์ฒด ์ƒ์„ฑ, ์ƒ์† ๊ด€๊ณ„์— ์žˆ๋Š” ํด๋ž˜์Šค ๊ฐ„์˜ ๋ณ€ํ™˜ ๋“ฑ์— ์‚ฌ์šฉ๋œ๋‹ค. Copy code int a = 10; double b = static_cast<double>(a); // int๋ฅผ double๋กœ ๋ณ€ํ™˜ dynamic_cast dynamic_cast๋Š” ์ฃผ๋กœ ๋‹คํ˜•์„ฑ(polymorphism)์„ ์‚ฌ์šฉํ•˜๋Š” ํด๋ž˜์Šค ๊ณ„์ธต์—์„œ์˜ ํฌ์ธํ„ฐ ๋˜๋Š” ์ฐธ์กฐ ํƒ€์ž… ๋ณ€ํ™˜์— ์‚ฌ์šฉ๋œ๋‹ค. ์‹คํ–‰ ์‹œ๊ฐ„์— ํƒ€์ž… ๊ฒ€์‚ฌ๋ฅผ ์ˆ˜ํ–‰ํ•˜์—ฌ ์•ˆ์ „ํ•œ ํƒ€์ž… ๋ณ€ํ™˜์„ ๋ณด์žฅํ•ด ์ค€๋‹ค....

June 9, 2024

cpp ํƒ€์ž… ๋ณ€ํ™˜

๋ฉ€๋”ํ•œ ์ •๋ฆฌ๋Š” ํ•ญ์ƒ ์ข‹๋‹ค.

June 8, 2024

c/cpp free๋Š” ์–ด๋–ป๊ฒŒ ํ• ๋‹น์„ ํ•ด์ œํ•˜๋Š”๊ฐ€

malloc()์ด ๋ฐ˜ํ™˜ํ•˜๋Š” ๊ฐ’์€ void* ํƒ€์ž…์ด๋‹ค. ์‚ฌ์‹ค ํ• ๋‹นํ•˜๊ณ  ๋ฐ์ดํ„ฐ์˜ ์‹œ์ž‘ ์ฃผ์†Œ๋ฅผ ๋ฐ˜ํ™˜ํ•˜๊ธด ํ•˜์ง€๋งŒ, ์‚ฌ์‹ค์€ ๋‚ด๋ถ€์ ์œผ๋กœ ํ—ค๋”๊ฐ’์ด ์žˆ์–ด, ๋ฐฉ๊ธˆ ํ• ๋‹นํ•œ ๋ฉ”๋ชจ๋ฆฌ ๊ณต๊ฐ„์— ๋Œ€ํ•œ ๋ฉ”ํƒ€ ์ •๋ณด๋ฅผ ๊ฐ€์ง€๊ณ  ์žˆ๋‹ค.

June 8, 2024

Vibe Coding์œผ๋กœ ํ”„๋กฌํ”„ํŠธ ๊ด€๋ฆฌ ์•ฑ ๋งŒ๋“ค์–ด๋ณด๊ธฐ ๐ŸงŠ๏ธ

Intro ๐Ÿ‘‹ ๋‹ค๋ฃจ์ง€ ์•Š๋Š” ๊ฒƒ๋“ค โ›” LangChain, RAG์™€ ๊ฐ™์€ LLM์„ ์„œ๋น„์Šค ๊ด€์ ์—์„œ ๋ฐ”๋ผ๋ดค์„ ๋•Œ ์œ ์šฉํ•œ ๋‚ด์šฉ๋“ค ๊ฐ๊ด€์ ์ธ ์ง€์‹ ํ˜น์€ ํ•™์ˆ ์ ์ธ ๋‚ด์šฉ๋“ค ์ง€๊ธˆ ์‹œ์  ์•ž์˜ ์ด์•ผ๊ธฐ, ์•ฝ๊ฐ„์ด๋ผ๋„ ๋’ค์˜ ์ด์•ผ๊ธฐ๋“ค ๋‹ค๋ฃจ๊ณ  ์‹ถ์€ ๋‚ด์šฉ๋“ค โœ… LLM์„ ์‚ฌ์šฉ์ž ๊ด€์ ์—์„œ ๋ฐ”๋ผ๋ดค์„๋•Œ ๊ฒฝํ—˜ํ•œ ๋‚ด์šฉ๋“ค ์ฃผ๊ด€์ ์ธ ์˜๊ฒฌ ๊ทธ๋ฆฌ๊ณ  ์ง์ ‘ ํ•ด๋ณด๋ฉฐ ๊ฒฝํ—˜ํ–ˆ๋˜ ๋‚ด์šฉ๋“ค ์ง€๊ธˆ ์‹œ์ ์— ์œ ์šฉํ•˜๋‹ค๊ณ  ๋А๊ผˆ๋˜ ๊ฒƒ๋“ค ์˜๊ฐ์„ ๋ฐ›์€ ๊ฒƒ๋“ค ๐Ÿ’ญ ๋ฐ”์ด๋ธŒ์ฝ”๋”ฉ์„ ๋„˜์–ด ์ฆ๊ฐ•ํ˜• ์ฝ”๋”ฉ ํด๋กœ๋“œ ๊ณต์‹ ํ”„๋กฌํ”„ํŠธ ๊ด€๋ฆฌ ํŠœํ† ๋ฆฌ์–ผ ์ปจํ…์ŠคํŠธ ์—”์ง€๋‹ˆ์–ด๋ง Vibe Coding์„ ์‹œ์ž‘ํ•ด๋ณธ ๊ณ„๊ธฐ ๐Ÿ†• ์ฒ˜์Œ์—๋Š” ๋ฐ˜๊ฐ์œผ๋กœ ์‹œ์ž‘ํ–ˆ์Šต๋‹ˆ๋‹ค ๐Ÿคฌ โ€˜XDDโ€™ ๋‡Œ์ ˆ๊ณผ ๋น„์Šทํ•œ ์ข…๋ฅ˜์˜ ํ”ผ๋กœ๊ฐ ์šฉ์–ด์— ๋Œ€ํ•œ ๋ฐ˜๊ฐ์€ ๋‡Œ์ ˆ์—์„œ ์‹œ์ž‘๋ฉ๋‹ˆ๋‹ค....

May 31, 2024

TCP/IP Illustrated ๐Ÿ“š

Intro ๐Ÿ˜ƒ ํ”„๋กœํ† ์ฝœ์˜ ์ง‘ํ•ฉ์„ ํ”„๋กœํ† ์ฝœ ์Šค์œ„ํŠธ๋ผ๊ณ  ํ•ฉ๋‹ˆ๋‹ค. ํ”„๋กœํ† ์ฝœ ์Šค์œ„ํŠธ์˜ ๋‹ค์–‘ํ•œ ํ”„๋กœํ† ์ฝœ์ด ์„œ๋กœ ์–ด๋–ป๊ฒŒ ์—ฐ๊ด€๋˜์–ด ์žˆ์œผ๋ฉฐ ์ˆ˜ํ–‰ํ•  ์ž‘์—…์„ ์–ด๋–ป๊ฒŒ ๋‚˜๋ˆ„๋Š”์ง€ ๋ช…์‹œํ•˜๋Š” ์„ค๊ณ„๋ฅผ ์•„ํ‚คํ…์ฒ˜ ๋˜๋Š” ์ฐธ์กฐ ๋ชจ๋ธ์ด๋ผ๊ณ  ํ•ฉ๋‹ˆ๋‹ค. TCP/IP๋Š” ์ธํ„ฐ๋„ท ์•„ํ‚คํ…์ฒ˜๋ฅผ ๊ตฌํ˜„ํ•˜๋Š” ํ”„๋กœํ† ์ฝœ ์Šค์œ„ํŠธ์ด๋ฉฐ, ARPANET ์ฐธ์กฐ ๋ชจ๋ธ(ARM)์—์„œ ์œ ๋ž˜ํ–ˆ์Šต๋‹ˆ๋‹ค. Clark๋Š” ์ธํ„ฐ์—ฃ ์•„ํ‚คํ…์ฒ˜์˜ ์ฃผ๋œ ๋ชฉํ‘œ๊ฐ€ โ€œ๊ธฐ์กด ์ƒํ˜ธ ์—ฐ๊ฒฐ๋œ ๋„คํŠธ์›Œํฌ์˜ ๋‹ค์ค‘ํ™”๋œ ํ™œ์šฉ์„ ์œ„ํ•œ ํšจ๊ณผ์ ์ธ ๊ธฐ์ˆ ์„ ๊ฐœ๋ฐœํ•˜๋Š” ๊ฒƒ"์ด๋ผ๊ณ  ์„ค๋ช…ํ•œ๋‹ค. ์ฆ‰ ์ด ์ง„์ˆ ์˜ ํ•ต์‹ฌ์€ ์ธํ„ฐ๋„ท ์•„ํ‚คํ…์ฒ˜๊ฐ€ ์—ฌ๋Ÿฌ ๊ฐœ๋ณ„ ๋„คํŠธ์›Œํฌ๋ฅผ ์ƒํ˜ธ ์—ฐ๊ฒฐํ•  ์ˆ˜ ์žˆ์–ด์•ผ ํ•˜๊ณ , ๊ทธ ๊ฒฐ๊ณผ ์ƒ์„ฑ๋œ ์ƒํ˜ธ ์—ฐ๊ฒฐ๋œ ๋„คํŠธ์›Œํฌ์—์„œ ์—ฌ๋Ÿฌ ํ™œ๋™์ด ๋™์‹œ์— ์‹คํ–‰๋  ์ˆ˜ ์žˆ์–ด์•ผ ํ•œ๋‹ค๋Š” ๊ฒƒ์ด๋‹ค....

May 29, 2024

Week-05

14. ๋ง‰๊ฐ„ : ๋ฉ”๋ชจ๋ฆฌ ๊ด€๋ฆฌ API stack : ํ”„๋กœ๊ทธ๋ž˜๋จธ๋ฅผ ์œ„ํ•ด, ์ปดํŒŒ์ผ๋Ÿฌ์— ์˜ํ•ด ์ž๋™์œผ๋กœ ํ• ๋‹น๊ณผ ํ•ด์ œ๊ฐ€ ์ด๋ฃจ์–ด์ง„๋‹ค(automatic). void func() { int x; } func()๊ฐ€ ํ˜ธ์ถœ๋˜๋ฉด ์Šคํƒ์— ๊ณต๊ฐ„์„ ํ™•๋ณดํ•˜๊ณ , func()๊ฐ€ ์ข…๋ฃŒ๋˜๋ฉด ์Šคํƒ์—์„œ ๊ณต๊ฐ„์„ ํ•ด์ œํ•œ๋‹ค. heap : ํ”„๋กœ๊ทธ๋ž˜๋จธ๊ฐ€ ์ง์ ‘ ํ• ๋‹น๊ณผ ํ•ด์ œ๋ฅผ ํ•ด์•ผํ•œ๋‹ค. void func() { int *x = (int *) malloc(sizeof(int)); free(x); } malloc()์„ ํ†ตํ•ด ๋ฉ”๋ชจ๋ฆฌ๋ฅผ ํ• ๋‹นํ•˜๊ณ , free()๋ฅผ ํ†ตํ•ด ๋ฉ”๋ชจ๋ฆฌ๋ฅผ ํ•ด์ œํ•œ๋‹ค. heap์— ๋ฐ์ดํ„ฐ๋ฅผ ์ €์žฅํ•˜๊ณ , func()์˜ ์Šคํƒ์—๋Š” heap์— ์ €์žฅ๋œ ๋ฐ์ดํ„ฐ์˜ ์ฃผ์†Œ๋ฅผ ์ €์žฅํ•œ๋‹ค. stack๋งŒํผ ๋ช…์‹œ์ ์ด๊ณ  ๋‹จ์ˆœํ•˜๊ธฐ๋Š” ํ•˜์ง€๋งŒ, ์“ฐ์ž„์ƒˆ๊ฐ€ ๋‹ค์–‘ํ•˜๊ณ  ์‹ค์ˆ˜๋ฅผ ํ•  ์—ฌ์ง€๊ฐ€ ๋งŽ๋‹ค....

May 27, 2024

ํฌ์ธํ„ฐ ์ง€์˜ฅ๐Ÿ˜ข

int arr[10] = {1,2,3,4,5,6,7,8,9,10}; int *p = arr; cout << p[0] << endl; cout << arr[0] << endl; cout << p[5] << endl; cout << arr[5] << endl; cout << *p << endl; cout << *arr << endl; cout << *(p+5) << endl; cout << *(arr+5) << endl; int arr2[2][2] = {{1,2},{3,4}}; int** pp = (int**)arr2; // error : 2์ฐจ์› ๋ฐฐ์—ด์€ ๋‹ค์ค‘ ํฌ์ธํ„ฐ์™€ ๋‹ค๋ฆ„ int** pp = (int**)arr2; // error : 2์ฐจ์› ๋ฐฐ์—ด์€ ๋‹ค์ค‘ ํฌ์ธํ„ฐ์™€ ๋‹ค๋ฆ„ : ์ด ๋ถ€๋ถ„์—์„œ ์—๋Ÿฌ๊ฐ€ ๋‚˜๋Š” ์ด์œ ....

May 15, 2024