๋ถ„๋ฅ˜ ์ „์ฒด๋ณด๊ธฐ 65

SSL ์ธ์ฆ์„œ ํ™•์ธํ•˜๋Š” ๋ฐฉ๋ฒ• (curl, ๋ธŒ๋ผ์šฐ์ €, ๊ฐœ๋ฐœ์ž๋„๊ตฌ๋กœ ์‰ฝ๊ฒŒ ์ฒดํฌ)

๊ผญ ์งš๊ณ  ๋„˜์–ด๊ฐ€์•ผ ํ•  ํ•ต์‹ฌ ์ฃผ์ œ 5๊ฐ€์ง€SSL์ธ์ฆ์„œ๋ž€ ๋ฌด์—‡์ธ๊ฐ€?IIS์—์„œ SSL ์ธ์ฆ์„œ๊ฐ€ ์™œ ์ค‘์š”ํ•œ๊ฐ€?IIS Express Development Certificate vs ์šด์˜์šฉ ์ธ์ฆ์„œSSL ์ธ์ฆ์„œ ๋งŒ๋ฃŒ ์‹œ ๋Œ€์ฒ˜๋ฒ• ๋ฐ ๊ฐฑ์‹  ์ฒดํฌ๋ฆฌ์ŠคํŠธ  ๐Ÿ“‚ ๋ชฉ์ฐจ ๐Ÿ”’ 1. SSL ์ธ์ฆ์„œ๋ž€ ๋ฌด์—‡์ธ๊ฐ€?SSL ์ธ์ฆ์„œ๋Š” ์›น ์„œ๋ฒ„์™€ ํด๋ผ์ด์–ธํŠธ(๋ธŒ๋ผ์šฐ์ €) ๊ฐ„์˜ ํ†ต์‹ ์„ ์•”ํ˜ธํ™”ํ•ด์ฃผ๋Š” ๋””์ง€ํ„ธ ๋ณด์•ˆ์„œ์ž…๋‹ˆ๋‹ค.SSL์˜ ๋ฐœ์ „ํ˜•์ธ TLS๊ฐ€ ์‹ค์ œ๋กœ ์‚ฌ์šฉ๋˜๋ฉฐ, HTTPS ์ฃผ์†Œ๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๋ชจ๋“  ์›น์‚ฌ์ดํŠธ๋Š” ๋ฐ˜๋“œ์‹œ SSL ์ธ์ฆ์„œ๋ฅผ ๊ฐ€์ง€๊ณ  ์žˆ์–ด์•ผํ•ฉ๋‹ˆ๋‹ค. โœ” ํ•ต์‹ฌ๊ธฐ๋Šฅ์œผ๋กœ๋Š”:ํ†ต์‹  ๋ฐ์ดํ„ฐ ์•”ํ˜ธํ™”์„œ๋ฒ„ ์‹ ๋ขฐ ๋ณด์ฆ(์ธ์ฆ๊ธฐ๊ด€์˜ ์„œ๋ช…)๋ฐ์ดํ„ฐ ์œ„/๋ณ€์กฐ ๋ฐฉ์ง€ SSL ์•”ํ˜ธํ™” ํ†ต์‹  ํ™•์ธSSL ์ธ์ฆ์„œ๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด ํด๋ผ์ด์–ธํŠธ(๋ธŒ๋ผ์šฐ์ €)์™€ ์„œ๋ฒ„ ๊ฐ„์˜ ํ†ต์‹  ๋ฐ์ดํ„ฐ๊ฐ€ ์•”ํ˜ธํ™” ๋˜๋Š”๋ฐ, ์ง„์งœ..

[C#] ASP.NET 4.0 WebForms Global.asax ํŒŒ์ผ

Visual Studio 2019 ์—์„œ ์ƒ์„ฑํ•œ ASP.NET Web Form ์‚ฌ์ดํŠธ ํ…œํ”Œ๋ฆฟ์œผ๋กœ ASP.NET 4.0 WebForms ํ”„๋กœ์ ํŠธ Global.asax ํŒŒ์ผ์„ ๋ถ„์„ํ•œ ๋‚ด์šฉ์„ ์ •๋ฆฌํ•˜์˜€์Šต๋‹ˆ๋‹ค.  ๐Ÿ“‚ ๋ชฉ์ฐจ Global.asax ์ฝ”๋“œ ๋ถ„์„ASP.NET WebForms์—์„œ Global.asax๋Š” ์‘์šฉ ํ”„๋กœ๊ทธ๋žจ์˜ ๋ผ์ดํ”„์‚ฌ์ดํด์„ ๊ด€๋ฆฌํ•˜๋Š” ํ•ต์‹ฌํŒŒ์ผ์ž…๋‹ˆ๋‹ค.์ด ํŒŒ์ผ์„ ํ†ตํ•ด ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ์‹œ์ž‘, ์ข…๋ฃŒ, ์—๋Ÿฌ ์ฒ˜๋ฆฌ, ์„ธ์…˜ ์‹œ์ž‘/์ข…๋ฃŒ ๋“ฑ์˜ ์ด๋ฒคํŠธ ์ฒ˜๋ฆฌ๋ฅผ ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. 1.  Application_Start() → ์›น ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์ด ์‹œ์ž‘๋  ๋•Œ ์‹คํ–‰๋˜๋Š” ์ฝ”๋“œ void Application_Start(object sender, EventArgs e) { // ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ์‹œ์ž‘ ์‹œ ์‹คํ–‰๋˜๋Š” ์ฝ”๋“œ ..

C# 2025.02.28

[React] Vite + Yarn Berry ํ”„๋กœ์ ํŠธ ์„ค์ •

๐Ÿ“‚ ๋ชฉ์ฐจ yarn berry ํ™œ์„ฑํ™”1. ํ”„๋กœ์ ํŠธ ์ƒ์„ฑyarn create vite my-app --template react-ts 2. yarn berry ์ดˆ๊ธฐํ™”yarn set version berry 3. pnp ๋ฐฉ์‹ ์‚ฌ์šฉํ•˜์—ฌ ์˜์กด์„ฑ ๊ด€๋ฆฌ.yarnrc.yml ํŒŒ์ผ์—์„œ nodeLinker: pnp ๋‚ด์šฉ์„ ์ถ”๊ฐ€์ด ์„ค์ •์„ ํ†ตํ•ด node_modules ํด๋” ์—†์ด๋„ ํŒจํ‚ค์ง€๋ฅผ ๊ด€๋ฆฌํ• ์ˆ˜ ์žˆ๋‹ค. 4. yarn install ํŒจํ‚ค์ง€ ์„ค์น˜yarn install # .yarn/cache ์„ค์ • 5. ZipFS ํ”Œ๋Ÿฌ๊ทธ์ธ ์„ค์น˜ ์ฃผ์˜ํ•ด์•ผ ํ•  ์ด์Šˆ & ํ•ด๊ฒฐ์ฑ…1. ํƒ€์ž…์Šคํฌ๋ฆฝํŠธ ๊ฒฝ๋กœ ์ธ์‹ ๋ฌธ์ œyarn dlx @yarnpkg/sdks vscode #Vs Code SDK ์„ค์น˜์ด ๋ช…๋ น์–ด๋ฅผ ์‹คํ–‰ํ•˜๋ฉด .vscode/settings.json ..

React 2025.02.23

[C์–ธ์–ด] ๋™์  ๋ฉ”๋ชจ๋ฆฌ ํ• ๋‹น malloc๊ณผ ์žฌํ• ๋‹น realloc

๋ฉ”๋ชจ๋ฆฌ๋ฅผ ํšจ์œจ์ ์œผ๋กœ ๊ด€๋ฆฌํ•˜๋Š” ๊ฒƒ์€ ์ค‘์š”ํ•ฉ๋‹ˆ๋‹ค. ํŠนํžˆ ํ”„๋กœ๊ทธ๋žจ ์‹คํ–‰ ์ค‘ ํ•„์š”ํ•œ ๋งŒํผ์˜ ๋ฉ”๋ชจ๋ฆฌ๋ฅผ ๋™์ ์œผ๋กœ ํ• ๋‹นํ•˜๊ณ , ํ•„์š”์— ๋”ฐ๋ผ ํฌ๊ธฐ๋ฅผ ์กฐ์ •ํ•˜๋Š” ๊ธฐ๋Šฅ์€ ํšจ์œจ์ ์ธ ๋ฉ”๋ชจ๋ฆฌ ์‚ฌ์šฉ์„ ๊ฐ€๋Šฅํ•˜๊ฒŒ ํ•ฉ๋‹ˆ๋‹ค. malloc์„ ์‚ฌ์šฉํ•œ ๋™์  ๋ฉ”๋ชจ๋ฆฌ ํ• ๋‹น๊ณผ realloc์„ ํ™œ์šฉํ•œ ๋ฉ”๋ชจ๋ฆฌ ์žฌํ• ๋‹น์— ๋Œ€ํ•ด ์ •๋ฆฌํ•˜์˜€์Šต๋‹ˆ๋‹ค.  ๐Ÿ“‚ ๋ชฉ์ฐจ 1. ๋™์ ์œผ๋กœ ๋ฉ”๋ชจ๋ฆฌ๋ฅผ ํ• ๋‹นํ•˜๋Š” ์ด์œ ๋ณ€์ˆ˜๋ฅผ ์„ ์–ธํ•  ๋•Œ ์ผ๋ฐ˜์ ์œผ๋กœ ๋‹ค์Œ๊ณผ ๊ฐ™์ด ์„ ์–ธํ•ฉ๋‹ˆ๋‹ค.int a;double b;์ด๋Ÿฌํ•œ ๋ฉ”๋ชจ๋ฆฌ ํ• ๋‹น์€ ์ปดํŒŒ์ผ ํƒ€์ž„์— ์ด๋ฃจ์–ด์ง‘๋‹ˆ๋‹ค. ์ฆ‰, ํ”„๋กœ๊ทธ๋žจ์ด ์‹คํ–‰๋˜๊ธฐ ์ „์— ๋ฉ”๋ชจ๋ฆฌ ํฌ๊ธฐ๊ฐ€ ๊ฒฐ์ •๋ฉ๋‹ˆ๋‹ค.์˜ˆ๋ฅผ ๋“ค์–ด, ํ•™์ƒ ์ˆ˜๊ฐ€ 10๋ช…์ธ ํ•™๊ต์—์„œ ํ•™์ƒ ์ˆ˜๋ฅผ ์ €์žฅํ•  ๋ฐฐ์—ด์„ ์„ ์–ธํ•œ๋‹ค๊ณ  ๊ฐ€์ •ํ•ด๋ด…์‹œ๋‹ค.int student[10];ํ•˜์ง€๋งŒ, ํ•™์ƒ ์ˆ˜๊ฐ€ ์ฆ๊ฐ€ํ•˜์—ฌ 100๋ช…์ด ๋œ๋‹ค๋ฉด?int student[1..

C์–ธ์–ด 2025.02.23

[C#] ASP.NET์˜ TCP ์—ฐ๊ฒฐ ์„ค์ •

ASP.NET์—์„œ TCP ์—ฐ๊ฒฐ์€ ์ฃผ๋กœ TcpClient ํด๋ž˜์Šค๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์„ค์ •๋ฉ๋‹ˆ๋‹ค. ์ด๋ฅผ ํ†ตํ•ด ํด๋ผ์ด์–ธํŠธ์™€ ์„œ๋ฒ„ ๊ฐ„์˜ ์—ฐ๊ฒฐ์„ ์ƒ์„ฑํ•˜๊ณ , ๋ฐ์ดํ„ฐ๋ฅผ ์†ก์ˆ˜์‹ ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๐Ÿ“‚ ๋ชฉ์ฐจ  TCP ์—ฐ๊ฒฐ ์„ค์ • ๊ณผ์ •TCP ์—ฐ๊ฒฐ ์„ค์ •์€ 3-way handshake๋กœ ์•Œ๋ ค์ง„ ๊ณผ์ •์„ ํ†ตํ•ด ์ด๋ฃจ์–ด์ง‘๋‹ˆ๋‹ค. ์ด ๊ณผ์ •์€ ํด๋ผ์ด์–ธํŠธ์™€ ์„œ๋ฒ„ ๊ฐ„์— ๋…ผ๋ฆฌ์ ์ธ ์—ฐ๊ฒฐ์„ ์ƒ์„ฑํ•˜๊ณ  ๋ฐ์ดํ„ฐ ์†ก์ˆ˜์‹ ์„ ์‹œ์ž‘ํ•˜๋Š” ์ค€๋น„ ๋‹จ๊ณ„์ž…๋‹ˆ๋‹ค. TCP ์—ฐ๊ฒฐ์„ ์„ค์ •ํ•˜๋Š” ๊ธฐ๋ณธ ํ”„๋กœ์„ธ์Šค๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค: ํด๋ผ์ด์–ธํŠธ๊ฐ€ ์„œ๋ฒ„์— ์—ฐ๊ฒฐ ์š”์ฒญ(SYN)ํด๋ผ์ด์–ธํŠธ๋Š” ์„œ๋ฒ„์— TCP ์—ฐ๊ฒฐ์„ ์š”์ฒญํ•˜๋Š” ๋ฉ”์‹œ์ง€๋ฅผ ๋ณด๋ƒ…๋‹ˆ๋‹ค.์ด ๋ฉ”์‹œ์ง€๋Š” SYN ํ”Œ๋ž˜๊ทธ๊ฐ€ ํฌํ•จ๋œ ํŒจํ‚ท์ž…๋‹ˆ๋‹ค.์„œ๋ฒ„๊ฐ€ ์š”์ฒญ ์Šน์ธ(SYN-ACK)์„œ๋ฒ„๋Š” ํด๋ผ์ด์–ธํŠธ์˜ ์š”์ฒญ์„ ์ˆ˜๋ฝํ•˜๋ฉฐ SYN-ACK ํŒจํ‚ท์œผ๋กœ ์‘๋‹ตํ•ฉ๋‹ˆ๋‹ค.์ด๋Š” ์„œ๋ฒ„๊ฐ€ ํด๋ผ์ด..

C# 2025.02.17

[C#] var ํ‚ค์›Œ๋“œ์˜ ์•”๋ฌต์  ํƒ€์ž… ์ถ”๋ก 

C#์—์„œ๋„ var ํŒจํ„ด์„ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๊ฐ์ฒด(object)ํ˜•ํƒœ๋กœ ๋ฐ›์€ ๊ฐ’์„ var ํ‚ค์›Œ๋“œ๋ฅผ ํ†ตํ•ด ๊ฐ„๋‹จํžˆ ์ถœ๋ ฅํ•˜๊ฑฐ๋‚˜ ์ฒ˜๋ฆฌํ•˜๋Š” ๋ฐฉ์‹์ž…๋‹ˆ๋‹ค. ์ด ํŒจํ„ด์€ ์ผ๋ฐ˜์ ์œผ๋กœ ๋งŽ์ด ์‚ฌ์šฉํ•˜์ง€ ์•Š์ง€๋งŒ ์ด๋Ÿฌํ•œ ๊ฒƒ๋“ค์ด ์žˆ๊ตฌ๋‚˜.. ์ดํ•ด๋งŒ ํ•˜๋„๋ก ํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค. ๐Ÿ“‚ ๋ชฉ์ฐจ 1. ์•”๋ฌต์  ํƒ€์ž…์ด๋ž€ ๋ฌด์—‡์ผ๊นŒ?์•”๋ฌต์  ํƒ€์ž…์ด๋ž€ ํƒ€์ž…์„ ๋ช…์‹œ์ ์œผ๋กœ ์„ ์–ธํ•˜์ง€์•Š๊ณ , ์ปดํŒŒ์ผ๋Ÿฌ๊ฐ€ ๊ฐ’์„ ๋ณด๊ณ  ์ถ”๋ก ํ•˜๋Š” ๋ฐฉ์‹์„ ์˜๋ฏธํ•ฉ๋‹ˆ๋‹ค. ์ด๋ฅผ C#์—์„œ๋Š” var ํ‚ค์›Œ๋“œ๋กœ ๊ตฌํ˜„ํ• ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๊ฐ„๋‹จํ•œ ์˜ˆ์ œ๋กœ:object obj = "Hello, World!";if(obj is var result){ Console.WriteLine(result); // "Hello, World!" ์ถœ๋ ฅ}์—ฌ๊ธฐ์„œ obj is var result๋Š” obj์˜ ๊ฐ’์„ result ๋ณ€์ˆ˜์— ๊ทธ๋Œ€๋กœ ํ• ..

C# 2025.02.16

[Hyper-v] ์šฐ๋ถ„ํˆฌ ํ•ด์ƒ๋„ ์กฐ์ ˆํ•˜๊ธฐ

๐Ÿ“‚ ๋ชฉ์ฐจ 1. ํ˜„์žฌ ํ•ด์ƒ๋„ ํ™•์ธํ•˜๊ธฐ๊ธฐ๋ณธ์ ์œผ๋กœ Hyper-V์˜ ์šฐ๋ถ„ํˆฌ๋Š” ํ•ด์ƒ๋„๊ฐ€ 1024x768๋กœ ๊ณ ์ •๋˜์–ด ์žˆ์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ด๋ฅผ ์กฐ์ •ํ•˜๊ธฐ ์œ„ํ•ด ์„ค์ • ํŒŒ์ผ์„ ์ˆ˜์ •ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.  2. GRUB ์„ค์ • ํŒŒ์ผ ์ˆ˜์ •ํ„ฐ๋ฏธ๋„์„ ์—ด๊ณ  ์•„๋ž˜ ๋ช…๋ น์–ด๋ฅผ ์ž…๋ ฅํ•˜์—ฌ GRUB ์„ค์ • ํŒŒ์ผ์„ ์—ฝ๋‹ˆ๋‹ค:sudo gedit /etc/default/grub  GRUB ํŒŒ์ผ ์ˆ˜์ •grub ํŒŒ์ผ์—์„œ ์•„๋ž˜์™€ ๊ฐ™์€ ๋‚ด์šฉ์„ ์ฐพ์Šต๋‹ˆ๋‹ค: GRUB_CMDLINE_LINUX_DEFAULT="quiet splash" ์ด ๋ถ€๋ถ„์„GRUB_CMDLINE_LINUX_DEFAULT="quiet splash=hyperv_fb:1920x1080" ์œผ๋กœ ์ˆ˜์ •ํ•ฉ๋‹ˆ๋‹ค. ์ˆ˜์ •์ด ๋๋‚˜๋ฉด ์ €์žฅํ•˜๊ณ  ํŒŒ์ผ์„ ๋‹ซ์Šต๋‹ˆ๋‹ค.3. GRUB ์—…๋ฐ์ดํŠธ*grub ์„ค์ •ํŒŒ์ผ์„ ์ˆ˜์ •ํ•˜๊ณ  ์ €์žฅํ•  ๋•Œ GV..

[Git & SSH] SSH ํ‚ค ์ƒ์„ฑ ๋ฐ ์›๊ฒฉ ์ €์žฅ์†Œ ์—ฐ๋™ํ•˜๊ธฐ

์ด๋ฒˆ ๊ธ€์—์„œ๋Š” SSH ํ‚ค๋ฅผ ํ™œ์šฉํ•˜์—ฌ GitHub ์›๊ฒฉ ์ €์žฅ์†Œ์— ์•ˆ์ „ํ•˜๊ฒŒ ์ ‘์†ํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ์ •๋ฆฌํ•˜์˜€์Šต๋‹ˆ๋‹ค. ๊ธฐ๋ณธ์ ์œผ๋กœ GitHub์— ์ฝ”๋“œ๋ฅผ pushํ•˜๊ฑฐ๋‚˜ pullํ•  ๋•Œ HTTPS ๋ฐฉ์‹์„ ์‚ฌ์šฉํ•  ์ˆ˜๋„ ์žˆ์ง€๋งŒ, SSH ํ‚ค๋ฅผ ์„ค์ •ํ•˜๋ฉด ๋งค๋ฒˆ ID/PW ๋ฅผ ์ž…๋ ฅํ•  ํ•„์š” ์—†์ด ๋น ๋ฅด๊ณ  ์•ˆ์ „ํ•˜๊ฒŒ GitHub๊ณผ ์—ฐ๋™ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. SSH ํ‚ค๋ฅผ ์ƒ์„ฑํ•˜๋Š” ๋ฐฉ๋ฒ•๋ถ€ํ„ฐ GitHub ์— ๋“ฑ๋กํ•˜๊ณ  ์‚ฌ์šฉํ•˜๋Š” ๊ณผ์ •๊นŒ์ง€ ๋‹จ๊ณ„๋ณ„๋กœ ์ •๋ฆฌํ•˜์˜€์Šต๋‹ˆ๋‹ค. ๐Ÿš€๐Ÿ“‚ ๋ชฉ์ฐจ 1. SSH ํ‚ค๊ฐ€ ๋ญ์ง€?SSH(Secure Shell) ํ‚ค๋Š” ์„œ๋ฒ„(๋˜๋Š” Git ์›๊ฒฉ ์ €์žฅ์†Œ)์™€ ํด๋ผ์ด์–ธํŠธ(์‚ฌ์šฉ์ž PC)๊ฐ€ ์•”ํ˜ธํ•™์ ์œผ๋กœ ์•ˆ์ „ํ•˜๊ฒŒ ํ†ต์‹ ํ•˜๊ธฐ ์œ„ํ•œ ์ธ์ฆ ๋ฐฉ์‹ ์ค‘ ํ•˜๋‚˜์ž…๋‹ˆ๋‹ค.Public Key(๊ณต๊ฐœํ‚ค): ๋ˆ„๊ตฌ๋‚˜ ๊ฐ€์งˆ์ˆ˜ ์žˆ๋Š” ํ‚ค (์›๊ฒฉ ์„œ๋ฒ„๋‚˜ GitHub์— ๋“ฑ๋ก๋จ) - โญ๊ณต๊ฐœํ‚ค..

[C์–ธ์–ด] ๊ตฌ์กฐ์ฒด ์–ด๋–ป๊ฒŒ ์ ‘๊ทผํ• ๊นŒ? ์ (.) ๊ณผ ํ™”์‚ดํ‘œ ->

์ง€๋‚œ๋ฒˆ์—๋Š” ๊ตฌ์กฐ์ฒด๋ž€ ๋ฌด์—‡์ด๋ฉฐ, ์™œ์‚ฌ์šฉํ•˜๋Š”์ง€์— ๋Œ€ํ•ด ์•Œ์•„๋ดค์Šต๋‹ˆ๋‹ค. ์ด๋ฒˆ์—๋Š” ๊ทธ ๋‚ด์šฉ์„ ๋ฐ”ํƒ•์œผ๋กœ ์˜ˆ์ œ ์ฝ”๋“œ ํ†ตํ•ด ๊ตฌ์กฐ์ฒด์˜ ์ง์ ‘์ ‘๊ทผ๊ณผ ๊ฐ„์ ‘์ ‘๊ทผ(ํฌ์ธํ„ฐ ์‚ฌ์šฉ) ๋ฐฉ๋ฒ•์„ ์ž์„ธํžˆ ์‚ดํŽด๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค.๐Ÿš€ 2025.01.18 - [C์–ธ์–ด] - [C์–ธ์–ด] ๊ตฌ์กฐ์ฒด๋ž€ ๋ฌด์—‡์ด๊ณ  ์™œ ์‚ฌ์šฉํ•˜๋Š” ๊ฑธ๊นŒ?๐Ÿ“‚ ๋ชฉ์ฐจ  1. ๊ตฌ์กฐ์ฒด ์„ ์–ธํ•˜๊ธฐ - ๋ฐ์ดํ„ฐ๋ฅผ ํ•˜๋‚˜๋กœ ๋ฌถ์–ด๋ณด์ž!C์–ธ์–ด์—์„œ ๊ตฌ์กฐ์ฒด(struct)๋Š” ์—ฌ๋Ÿฌ ๊ฐœ์˜ ๋ณ€์ˆ˜๋ฅผ ํ•˜๋‚˜์˜ ๋‹จ์œ„๋กœ ๋ฌถ์„ ์ˆ˜ ์žˆ๋Š” ๊ฐ•๋ ฅํ•œ ๊ธฐ๋Šฅ์ž…๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด, ํ•™์ƒ ์ •๋ณด๋ฅผ ์ €์žฅํ•ด์•ผ ํ•œ๋‹ค๋ฉด ์ด๋ฆ„, ๋‚˜์ด, ํ‚ค ๊ฐ™์€ ๋ฐ์ดํ„ฐ๋ฅผ ๋”ฐ๋กœ ๊ด€๋ฆฌํ•˜๋Š” ๋Œ€์‹  ๊ตฌ์กฐ์ฒด๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด ํ•œ ๋ฒˆ์— ๊ด€๋ฆฌํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๐Ÿ“Œ ๊ตฌ์กฐ์ฒด ์„ ์–ธ ๋ฐฉ๋ฒ•struct student{ char name[10]; int age; int height;}์ด๋ ‡๊ฒŒ ..

C์–ธ์–ด 2025.01.30

[JS] ํด๋กœ์ €(Closures)์™€ ๋ฆฌ์•กํŠธ์˜ ํ›…(useState)์˜ ๊ด€๊ณ„

ํด๋กœ์ €๋Š” ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ์—์„œ ์ค‘์š”ํ•œ ๊ฐœ๋…์œผ๋กœ ์™ธ๋ถ€์—์„œ ์ ‘๊ทผํ•  ์ˆ˜ ์—†๋Š” ๋น„๊ณต๊ฐœ ๋ณ€์ˆ˜๋ฅผ ์ƒ์„ฑํ•ด ๋ฐ์ดํ„ฐ ์€๋‹‰์„ ๊ฐ€๋Šฅํ•˜๊ฒŒ ํ•ฉ๋‹ˆ๋‹ค. ๋˜ํ•œ, ๋น„๋™๊ธฐ ์ž‘์—…์ด๋‚˜ ์ด๋ฒคํŠธ ํ•ธ๋“ค๋Ÿฌ์—์„œ ์ƒํƒœ๋ฅผ ํšจ๊ณผ์ ์œผ๋กœ ์œ ์ง€ํ•˜๋ฉฐ ํ™œ์šฉํ•  ์ˆ˜ ์žˆ์–ด ์œ ์šฉํ•ฉ๋‹ˆ๋‹ค. ์ด ๊ธ€์—์„œ๋Š” ํด๋กœ์ €์˜ ์žฅ์  ๊ทธ๋ฆฌ๊ณ  ์ด๋ฅผ ํ™œ์šฉํ•ด ์ฝ”๋“œ์˜ ์žฌ์‚ฌ์šฉ์„ฑ์„ ๋†’์ด๋Š” ๋ฐฉ๋ฒ•๊ณผ ์ถ”๊ฐ€๋กœ, React์˜ ์ƒํƒœ๊ด€๋ฆฌ useState์™€ ํด๋กœ์ €์˜ ๊ด€๊ณ„์— ๋Œ€ํ•ด์„œ๋„ ์ •๋ฆฌํ•˜์˜€์Šต๋‹ˆ๋‹ค. ๐Ÿ“‚ ๋ชฉ์ฐจ 1. ํด๋กœ์ €๋ž€ ๋ฌด์—‡์ผ๊นŒโ“ํด๋กœ์ €๋Š” ๋‚ด๋ถ€ ํ•จ์ˆ˜๊ฐ€ ์™ธ๋ถ€ ํ•จ์ˆ˜์˜ ๋ณ€์ˆ˜(๋ ‰์‹œ์ปฌ ํ™˜๊ฒฝ)์— ์ ‘๊ทผํ•  ์ˆ˜ ์žˆ๋Š” ๊ธฐ๋Šฅ์„ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค. ์ด๋กœ ์ธํ•ด ํ•จ์ˆ˜๊ฐ€ ํ˜ธ์ถœ๋œ ์ดํ›„์—๋„ ์™ธ๋ถ€ ํ•จ์ˆ˜์˜ ์ƒํƒœ(๋ณ€์ˆ˜)๋ฅผ ์œ ์ง€ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.ํด๋กœ์ €๋Š” ์™ธ๋ถ€ ๋ณ€์ˆ˜ ๊ฐ’ ์ƒํƒœ๋ฅผ ํ•จ์ˆ˜ ํ˜ธ์ถœ ์ดํ›„์—๋„ ์œ ์ง€ํ•ฉ๋‹ˆ๋‹ค.์ด ์ƒํƒœ๋Š” ์™ธ๋ถ€์—์„œ ์ง์ ‘ ์ ‘๊ทผํ•  ์ˆ˜ ์—†๊ณ , ๋‚ด๋ถ€ ํ•จ์ˆ˜๋กœ๋งŒ ์ ‘๊ทผ..

JS 2025.01.19