profile
โœจ๐ŸŒํ™•์žฅํ•ด ๋‚˜๊ฐ€๋Š” ํ”„๋ก ํŠธ์—”๋“œ ๊ฐœ๋ฐœ์ž์ž…๋‹ˆ๋‹คโœ๏ธ

๋ฐฑ์—”๋“œ] ์ปจํŠธ๋กค๋Ÿฌ์™€ ์„œ๋น„์Šค, UNIQUE์™€ upsert

ํ”„๋ก ํŠธ โ†’ ์ปจํŠธ๋กค๋Ÿฌ โ†’ ์„œ๋น„์Šค โ†’ DB. ๊ฒฐ๊ณผ๋Š” ๋ฐ˜๋Œ€๋กœ ๋Œ์•„์˜ด์ปจํŠธ๋กค๋Ÿฌ๋Š” ์ž…๋ ฅ ํ˜•์‹(body๊ฐ’์— null๊ฐ’์ด ์ž˜๋“ค์–ด์™”๊ตฐ - ํƒ€์ž…๊ฐ™์€๊ฑฐ)๊ณผ HTTP ์‘๋‹ต, ์„œ๋น„์Šค๋Š” ์ œํ’ˆ ๊ทœ์น™(๊ฐœ๋ฐœ body๊ฐ’์ด ๋น„๋ฉด ์•ˆ๋˜์ง€)๊ณผ DB ์ž‘์—….input์€ ์ €์žฅํ•ด๋‹ฌ๋ผ๊ณ  ๋ฐ›์€ ๊ฐ’, rows๋Š” DB

4์ผ ์ „
ยท
0๊ฐœ์˜ ๋Œ“๊ธ€
ยท

[1์ธ ํ”Œ๋ž˜๋„ˆ] ๋ฐฑ์—”๋“œ์—ฐ๋™

JSON = ํ…์ŠคํŠธ ๊ฐ์ฒด๊ธ€์ž๋กœ ๋ฐ”๊ฟ” ๋ณด๋‚ด๊ณ  ๋ฐ›๋Š” ์ชฝ์—์„œ ๋‹ค์‹œ ๊ฐ์ฒด๋กœ ๋งŒ๋“œ๋Š” ๊ฑฐ์˜€๋‹ค.express.json()์€ ํ”„๋ก ํŠธ์˜ await res.json()์ด๋ž‘ ๊ฐ™์€ ์ผ์ด๋‹ค.์ด๊ฒŒ ์—†์œผ๋ฉด req.body๊ฐ€ undefined๋ผ์„œ PUT๋งŒ ํ„ฐ์ง„๋‹ค. GET, DELETE๋Š” ๋ฉ€์ฉกํ•˜๊ณ .

5์ผ ์ „
ยท
0๊ฐœ์˜ ๋Œ“๊ธ€
ยท

์ฒ˜์Œ์œผ๋กœ api, db ๋งŒ๋“ค์–ด์„œ ์—ฐ๋™ํ•˜๊ธฐ

DB๋Š” ๊ทธ๋ƒฅ ์—‘์…€์ด์—ˆ๋‹ค. ํ‘œ = ์‹œํŠธ, ์ปฌ๋Ÿผ = ๋จธ๋ฆฌ๊ธ€, ํ–‰ = ํ•œ ์ค„.ํ™”๋ฉด์—์„œ ์นธ ํ•˜๋‚˜ ํƒญํ•˜๋ฉด ๊ทธ ์‹œํŠธ์— ํ•œ ์ค„ ์ถ”๊ฐ€๋˜๋Š” ๊ฑฐ๋‹ค. SQL์€ ๊ฐ’์„ ์‰ฝ๊ฒŒ ๋„ฃ๋Š” ๋„๊ตฌ๊ฐ€ ์•„๋‹ˆ๋ผ DB๋ž‘ ๋Œ€ํ™”ํ•˜๋Š” ์œ ์ผํ•œ ๋ฐฉ๋ฒ•์ด๋‹ค.CREATE / INSERT / SELECT / UPDATE / D

6์ผ ์ „
ยท
0๊ฐœ์˜ ๋Œ“๊ธ€
ยท

ai์™€ ๋ฐฑ์—”๋“œ ์„ธํŒ… ๊ฒฐ์ •ํ•˜๋ฉฐ ๊ณต๋ถ€ํ•˜๊ธฐ

PUT, DELETE, PATCH๋“ฑ๋“ฑ

2026๋…„ 9์›” 9์ผ
ยท
0๊ฐœ์˜ ๋Œ“๊ธ€
ยท

ํ”„๋ก ํŠธ์—”๋“œ ๋ฌผ๊ฒฝ๋ ฅ 2๋…„์ฐจ...๋งค์ผ ํ‡ด๊ทผํ•˜๊ณ  2์‹œ๊ฐ„์”ฉ ๊ณต๋ถ€ํ•˜๋ฉด?

ํ”„๋ก ํŠธ์—”๋“œ ๊ฐœ๋ฐœ์ž๊ฐ€ ๋œ์ง€ 2๋…„ 5๊ฐœ์›”์ฐจ..ai๋Š” ๋ฐœ์ „ํ•˜๊ณ  ํšŒ์‚ฌ๋Š” ax๋„์ž…ํ•˜๋ฉด์„œ ์•ž์œผ๋กœ ๊ฐœ๋ฐœ์ž์˜ ์ „๋ง์ด ๋ฌด์„œ์›Œ์กŒ๋‹ค.

2026๋…„ 9์›” 8์ผ
ยท
0๊ฐœ์˜ ๋Œ“๊ธ€
ยท

์ด๋ฒคํŠธ ๋ฃจํ”„ ํ•ต์‹ฌ ์ •๋ฆฌ-`setTimeout(fn, 0)`์€ "0์ดˆ ๋’ค"์‹คํ–‰์ด ์•„๋‹ˆ๋‹ค.

๐Ÿ“Œ ๋ฐœํ–‰ ์ „ ์‚ญ์ œ โ€” ์ œ๋ชฉ: ์ด๋ฒคํŠธ ๋ฃจํ”„ ํ•ต์‹ฌ ์ •๋ฆฌ / ํƒœ๊ทธ: JavaScript ์ด๋ฒคํŠธ๋ฃจํ”„ ๋น„๋™๊ธฐ TILsetTimeout(fn, 0)์€ "0์ดˆ ๋’ค"๊ฐ€ ์•„๋‹ˆ๋ผ "๋™๊ธฐ ์ฝ”๋“œ๊ฐ€ ์ „๋ถ€ ๋๋‚˜๋ฉด ๊ทธ๋‹ค์Œ" ์ด๋‹ค.์ง€์ • ์‹œ๊ฐ„์€ ์ตœ์†Œ ๋Œ€๊ธฐ ์‹œ๊ฐ„์ผ ๋ฟ ์‹คํ–‰ ์‹œ์ ์˜ ๋ณด์žฅ์ด ์•„๋‹ˆ๋‹ค.se

2026๋…„ 8์›” 12์ผ
ยท
0๊ฐœ์˜ ๋Œ“๊ธ€
ยท

[Day 24] HTTP ํ—ค๋”๋ž€? + HTTPS๊ฐ€ ํ•„์š”ํ•œ ์ด์œ 

ํ”„๋ก ํŠธ์—”๋“œ ๊ธฐ์ดˆ ๋‹ค์‹œ ์Œ“๊ธฐ ์ฑŒ๋ฆฐ์ง€ 24์ผ์ฐจ.Part 3 "๋„คํŠธ์›Œํฌ ๊ธฐ์ดˆ"์˜ ๋„ค ๋ฒˆ์งธ ์ˆ˜์—….Day 21~23์—์„œ HTTP์˜ ํฐ ํ‹€(์š”์ฒญ/์‘๋‹ต ๊ตฌ์กฐ, ๋ฉ”์„œ๋“œ, ์ƒํƒœ ์ฝ”๋“œ)์„ ๋ฐฐ์› ๋‹ค๋ฉด,์˜ค๋Š˜์€ ๊ทธ๋™์•ˆ "๋ถ€๊ฐ€ ์ •๋ณด"๋ผ๊ณ ๋งŒ ๋„˜๊ฒผ๋˜ ํ—ค๋”๋ฅผ ์ž์„ธํžˆ ๋ณด๊ณ ,HTTP์— S๊ฐ€ ๋ถ™์œผ๋ฉด ๋ญ๊ฐ€

2026๋…„ 5์›” 27์ผ
ยท
0๊ฐœ์˜ ๋Œ“๊ธ€
ยท

[Day 23] HTTP ์ƒํƒœ ์ฝ”๋“œ ์‹ฌํ™” (200, 301, 400, 401, 403, 404, 500)

ํ”„๋ก ํŠธ์—”๋“œ ๊ธฐ์ดˆ ๋‹ค์‹œ ์Œ“๊ธฐ ์ฑŒ๋ฆฐ์ง€ 23์ผ์ฐจ.Part 3 "๋„คํŠธ์›Œํฌ ๊ธฐ์ดˆ"์˜ ์„ธ ๋ฒˆ์งธ ์ˆ˜์—….์–ด์ œ HTTP ๋ฉ”์„œ๋“œ(GET, POST, PUT, DELETE)์™€ REST API๋ฅผ ๋ฐฐ์› ๋‹ค๋ฉด,์˜ค๋Š˜์€ ์„œ๋ฒ„๊ฐ€ "๊ฒฐ๊ณผ๊ฐ€ ์–ด๋–ป๊ฒŒ ๋๋Š”์ง€"๋ฅผ ์ˆซ์ž๋กœ ์•Œ๋ ค์ฃผ๋Š” ๋ฐฉ๋ฒ• โ€” ์ƒํƒœ ์ฝ”๋“œ๋ฅผ ๋ฐฐ์› ๋‹ค.

2026๋…„ 5์›” 12์ผ
ยท
0๊ฐœ์˜ ๋Œ“๊ธ€
ยท

[Day 22] HTTP ๋ฉ”์„œ๋“œ (GET, POST, PUT, DELETE) + REST API

ํ”„๋ก ํŠธ์—”๋“œ ๊ธฐ์ดˆ ๋‹ค์‹œ ์Œ“๊ธฐ ์ฑŒ๋ฆฐ์ง€ 22์ผ์ฐจ.Part 3 "๋„คํŠธ์›Œํฌ ๊ธฐ์ดˆ"์˜ ๋‘ ๋ฒˆ์งธ ์ˆ˜์—….์–ด์ œ HTTP ์š”์ฒญ/์‘๋‹ต ๊ตฌ์กฐ๋ฅผ ๋ฐฐ์› ๋‹ค๋ฉด,์˜ค๋Š˜์€ ์š”์ฒญ ๋ผ์ธ์— ๋“ค์–ด๊ฐ€๋Š” ๋ฉ”์„œ๋“œ๊ฐ€ ๊ฐ๊ฐ ๋ญ˜ ํ•˜๋Š”์ง€,๊ทธ๋ฆฌ๊ณ  ์ด๊ฑธ ์ฒด๊ณ„์ ์œผ๋กœ ์“ฐ๋Š” REST API ๊ทœ์น™์„ ๋ฐฐ์› ๋‹ค.HTTP ๋ฉ”์„œ๋“œ๊ฐ€ ๋ฐ”๋กœ ์ด

2026๋…„ 5์›” 11์ผ
ยท
0๊ฐœ์˜ ๋Œ“๊ธ€
ยท

[Day 21] HTTP๋ž€? ์š”์ฒญ๊ณผ ์‘๋‹ต ๊ตฌ์กฐ

ํ”„๋ก ํŠธ์—”๋“œ ๊ธฐ์ดˆ ๋‹ค์‹œ ์Œ“๊ธฐ ์ฑŒ๋ฆฐ์ง€ 21์ผ์ฐจ.Part 3: ๋„คํŠธ์›Œํฌ ๊ธฐ์ดˆ ์‹œ์ž‘!Part 1์—์„œ "์ฝ”๋“œ๊ฐ€ ์‚ฌ์šฉ์ž ํ™”๋ฉด๊นŒ์ง€ ๊ฐ€๋Š” ๊ณผ์ •"์„,Part 2์—์„œ "๋น„๋ฐ€ ์ •๋ณด ๊ด€๋ฆฌ"๋ฅผ ๋ฐฐ์› ๋‹ค๋ฉด,Part 3์—์„œ๋Š” ๊ทธ ์‚ฌ์ด์—์„œ ์ผ์–ด๋‚˜๋Š” ๋Œ€ํ™” โ€” ๋„คํŠธ์›Œํฌ๋ฅผ ๋ฐฐ์šด๋‹ค.์˜ค๋Š˜์˜ ํ•ต์‹ฌ ์งˆ๋ฌธ:"๋ธŒ๋ผ

2026๋…„ 5์›” 6์ผ
ยท
0๊ฐœ์˜ ๋Œ“๊ธ€
ยท

[Day 20] Part 2 ํšŒ๊ณ  + ์ด์ •๋ฆฌ โ€” ๋น„๋ฐ€ ์ •๋ณด๋Š” ์–ด๋””์— ์–ด๋–ป๊ฒŒ ์ˆจ๊ธฐ๋Š”๊ฐ€?

ํ”„๋ก ํŠธ์—”๋“œ ๊ธฐ์ดˆ ๋‹ค์‹œ ์Œ“๊ธฐ ์ฑŒ๋ฆฐ์ง€ 20์ผ์ฐจ.Part 2: ํ™˜๊ฒฝ๋ณ€์ˆ˜ยท์‹œํฌ๋ฆฟยท๋ณด์•ˆ (Day 16~20) ์™„๋ฃŒ!์˜ค๋Š˜์€ 5์ผ๊ฐ„ ๋ฐฐ์šด ํ™˜๊ฒฝ๋ณ€์ˆ˜ยท์‹œํฌ๋ฆฟยท๋ณด์•ˆ์„ ํ•˜๋‚˜์˜ ํ๋ฆ„์œผ๋กœ ์—ฐ๊ฒฐํ•˜๋Š” ์‹œ๊ฐ„์ด์—ˆ๋‹ค.Part 1์˜ ๋ฐฐํฌ ํŒŒ์ดํ”„๋ผ์ธ์— Part 2์˜ ๋ณด์•ˆ ์ง€์‹์„ ํ•ฉ์น˜๋ฉด:Q1. ์ƒˆ ํ”„๋กœ์ ํŠธ

2026๋…„ 5์›” 6์ผ
ยท
0๊ฐœ์˜ ๋Œ“๊ธ€
ยท

[Day 19] ํ”„๋ก ํŠธ์—”๋“œ ๋ณด์•ˆ ๊ธฐ๋ณธ๊ธฐ โ€” XSS, CSRF ๊ฐœ๋…

ํ”„๋ก ํŠธ์—”๋“œ ๊ธฐ์ดˆ ๋‹ค์‹œ ์Œ“๊ธฐ ์ฑŒ๋ฆฐ์ง€ 19์ผ์ฐจ.Part 2 "ํ™˜๊ฒฝ๋ณ€์ˆ˜ยท์‹œํฌ๋ฆฟยท๋ณด์•ˆ"์˜ ๋„ค ๋ฒˆ์งธ ์ˆ˜์—….Day 16~18์—์„œ ํ™˜๊ฒฝ๋ณ€์ˆ˜์™€ API ํ‚ค ๊ด€๋ฆฌ๋ฅผ ๋ฐฐ์› ๋‹ค๋ฉด,์˜ค๋Š˜์€ "ํ•ด์ปค๊ฐ€ ์šฐ๋ฆฌ ์‚ฌ์ดํŠธ๋ฅผ ์–ด๋–ป๊ฒŒ ๊ณต๊ฒฉํ•˜๋Š”๊ฐ€? ๊ทธ๋ฆฌ๊ณ  ์–ด๋–ป๊ฒŒ ๋ง‰๋Š”๊ฐ€?"๋ฅผ ๋ฐฐ์› ๋‹ค.ํ•ด์ปค๊ฐ€ ์šฐ๋ฆฌ ์‚ฌ์ดํŠธ์— ์•…์„ฑ ์Šค

2026๋…„ 5์›” 6์ผ
ยท
0๊ฐœ์˜ ๋Œ“๊ธ€
ยท

[Day 18] API ํ‚ค ๊ด€๋ฆฌ best practice + .env.example์˜ ์—ญํ• 

ํ”„๋ก ํŠธ์—”๋“œ ๊ธฐ์ดˆ ๋‹ค์‹œ ์Œ“๊ธฐ ์ฑŒ๋ฆฐ์ง€ 18์ผ์ฐจ.Part 2 "ํ™˜๊ฒฝ๋ณ€์ˆ˜ยท์‹œํฌ๋ฆฟยท๋ณด์•ˆ"์˜ ์„ธ ๋ฒˆ์งธ ์ˆ˜์—….Day 16์—์„œ NEXTPUBLIC ๊ทœ์น™์„, Day 17์—์„œ .env ๊ด€๋ฆฌ๋ฒ•์„ ๋ฐฐ์› ๋‹ค๋ฉด,์˜ค๋Š˜์€ API ํ‚ค๋ฅผ ์ฒด๊ณ„์ ์œผ๋กœ ๊ด€๋ฆฌํ•˜๋Š” ์‹ค์ „ ํŒจํ„ด์„ ๋ฐฐ์› ๋‹ค.๋‚ฉํ’ˆ์—…์ฒด์—์„œ ์นด๋“œ๋ฅผ ๋‘ ์žฅ

2026๋…„ 5์›” 6์ผ
ยท
0๊ฐœ์˜ ๋Œ“๊ธ€
ยท

[Day 17] process.env ์‚ฌ์šฉ๋ฒ• + ํ™˜๊ฒฝ๋ณ€์ˆ˜ ์‹ค์ˆ˜๋กœ ์ปค๋ฐ‹ํ–ˆ์„ ๋•Œ ๋Œ€์ฒ˜๋ฒ•

ํ”„๋ก ํŠธ์—”๋“œ ๊ธฐ์ดˆ ๋‹ค์‹œ ์Œ“๊ธฐ ์ฑŒ๋ฆฐ์ง€ 17์ผ์ฐจ.Part 2 "ํ™˜๊ฒฝ๋ณ€์ˆ˜ยท์‹œํฌ๋ฆฟยท๋ณด์•ˆ"์˜ ๋‘ ๋ฒˆ์งธ ์ˆ˜์—….์–ด์ œ NEXTPUBLIC์˜ ๋น„๋ฐ€์„ ๋ฐฐ์› ๋‹ค๋ฉด,์˜ค๋Š˜์€ ํ™˜๊ฒฝ๋ณ€์ˆ˜๋ฅผ ํ™˜๊ฒฝ๋ณ„๋กœ ๊ด€๋ฆฌํ•˜๋Š” ๋ฒ•๊ณผ ์œ ์ถœ ์‚ฌ๊ณ  ๋Œ€์ฒ˜๋ฒ•์„ ๋ฐฐ์› ๋‹ค.๋ ˆ์Šคํ† ๋ž‘์ด ํ™•์žฅ๋๋‹ค.๊ฐ™์€ ๋ ˆ์‹œํ”ผ(์ฝ”๋“œ)์ธ๋ฐ ์ง€์ ๋งˆ๋‹ค ๋‚ฉํ’ˆ์ฒ˜(ํ™˜

2026๋…„ 5์›” 6์ผ
ยท
0๊ฐœ์˜ ๋Œ“๊ธ€
ยท

[Day 16] NEXT_PUBLIC_ ์ ‘๋‘์‚ฌ์˜ ๋น„๋ฐ€ โ€” ๋ธŒ๋ผ์šฐ์ € ๋…ธ์ถœ vs ์„œ๋ฒ„ ์ „์šฉ

ํ”„๋ก ํŠธ์—”๋“œ ๊ธฐ์ดˆ ๋‹ค์‹œ ์Œ“๊ธฐ ์ฑŒ๋ฆฐ์ง€ 16์ผ์ฐจ.Part 2: ํ™˜๊ฒฝ๋ณ€์ˆ˜ยท์‹œํฌ๋ฆฟยท๋ณด์•ˆ ์‹œ์ž‘!Part 1์—์„œ ์ฝ”๋“œ๊ฐ€ ์‚ฌ์šฉ์ž ํ™”๋ฉด๊นŒ์ง€ ๊ฐ€๋Š” ์ „์ฒด ํ๋ฆ„์„ ๋ฐฐ์› ๋‹ค๋ฉด,Part 2์—์„œ๋Š” ๊ทธ ํ๋ฆ„ ์†์— ์ˆจ๊ฒจ์ง„ ๋น„๋ฐ€ ์ •๋ณด ๊ด€๋ฆฌ๋ฅผ ๋‹ค๋ฃฌ๋‹ค.์˜ค๋Š˜์˜ ํ•ต์‹ฌ ์งˆ๋ฌธ:"๋‚ด๊ฐ€ .env์— ์ ์€ ๊ฐ’์ด ํ˜น์‹œ ์‚ฌ

2026๋…„ 5์›” 4์ผ
ยท
0๊ฐœ์˜ ๋Œ“๊ธ€
ยท

[Day 15] Part 1 ํšŒ๊ณ  + ์ด์ •๋ฆฌ โ€” ์ฝ”๋“œ ํ•œ ์ค„์ด ์‚ฌ์šฉ์ž ํ™”๋ฉด๊นŒ์ง€ ๊ฐ€๋Š” ์—ฌ์ •

ํ”„๋ก ํŠธ์—”๋“œ ๊ธฐ์ดˆ ๋‹ค์‹œ ์Œ“๊ธฐ ์ฑŒ๋ฆฐ์ง€ 15์ผ์ฐจ.Part 1: ๋นŒ๋“œยท๋ฐฐํฌ ํ”„๋กœ์„ธ์Šค (Day 1~15) ์™„๋ฃŒ!์˜ค๋Š˜์€ 15์ผ๊ฐ„ ๋ฐฐ์šด ๋ชจ๋“  ๊ฑธ ํ•˜๋‚˜์˜ ํฐ ๊ทธ๋ฆผ์œผ๋กœ ์—ฐ๊ฒฐํ•˜๋Š” ์‹œ๊ฐ„์ด์—ˆ๋‹ค.Day 1์—์„œ ๋˜์กŒ๋˜ ์งˆ๋ฌธ: "๋‚ด ์ฝ”๋“œ๊ฐ€ ์–ด๋–ป๊ฒŒ ์‚ฌ์šฉ์ž ํ™”๋ฉด๊นŒ์ง€ ๊ฐ€๋Š”๊ฐ€?"15์ผ ์ „์—๋Š” ๋ง‰๋ง‰ํ–ˆ์ง€๋งŒ

2026๋…„ 5์›” 4์ผ
ยท
0๊ฐœ์˜ ๋Œ“๊ธ€
ยท

[Day 15] Part 1 ํšŒ๊ณ  + ์ด์ •๋ฆฌ โ€” ์ฝ”๋“œ ํ•œ ์ค„์ด ์‚ฌ์šฉ์ž ํ™”๋ฉด๊นŒ์ง€ ๊ฐ€๋Š” ์—ฌ์ •

ํ”„๋ก ํŠธ์—”๋“œ ๊ธฐ์ดˆ ๋‹ค์‹œ ์Œ“๊ธฐ ์ฑŒ๋ฆฐ์ง€ 15์ผ์ฐจ.Part 1: ๋นŒ๋“œยท๋ฐฐํฌ ํ”„๋กœ์„ธ์Šค (Day 1~15) ์™„๋ฃŒ!์˜ค๋Š˜์€ 15์ผ๊ฐ„ ๋ฐฐ์šด ๋ชจ๋“  ๊ฑธ ํ•˜๋‚˜์˜ ํฐ ๊ทธ๋ฆผ์œผ๋กœ ์—ฐ๊ฒฐํ•˜๋Š” ์‹œ๊ฐ„์ด์—ˆ๋‹ค.Day 1์—์„œ ๋˜์กŒ๋˜ ์งˆ๋ฌธ: "๋‚ด ์ฝ”๋“œ๊ฐ€ ์–ด๋–ป๊ฒŒ ์‚ฌ์šฉ์ž ํ™”๋ฉด๊นŒ์ง€ ๊ฐ€๋Š”๊ฐ€?"15์ผ ์ „์—๋Š” ๋ง‰๋ง‰ํ–ˆ์ง€๋งŒ

2026๋…„ 5์›” 4์ผ
ยท
0๊ฐœ์˜ ๋Œ“๊ธ€
ยท

[Day 14] ๋นŒ๋“œ ์—๋Ÿฌ ํ•ด๊ฒฐ ํŒจํ„ด + ๋กค๋ฐฑ ๊ฐœ๋…

ํ”„๋ก ํŠธ์—”๋“œ ๊ธฐ์ดˆ ๋‹ค์‹œ ์Œ“๊ธฐ ์ฑŒ๋ฆฐ์ง€ 14์ผ์ฐจ.Week 3 "์‹ค์ „ ๋ฐฐํฌ ํ๋ฆ„"์˜ ๋„ค ๋ฒˆ์งธ ์ˆ˜์—….Day 11~13์—์„œ CI/CD + Docker๋กœ ์™„์„ฑ๋œ ๋ฐฐํฌ ํŒŒ์ดํ”„๋ผ์ธ์„ ๋งŒ๋“ค์—ˆ๋‹ค๋ฉด,์˜ค๋Š˜์€ "๋ฌธ์ œ๊ฐ€ ์ƒ๊ฒผ์„ ๋•Œ ์–ด๋–ป๊ฒŒ ๋Œ€์‘ํ•˜๋Š”๊ฐ€"๋ฅผ ๋ฐฐ์› ๋‹ค.์ด๋•Œ ํ•ด์•ผ ํ•  ์ผ:ํ•ต์‹ฌ ์›์น™: "๊ณ ์น˜

2026๋…„ 5์›” 4์ผ
ยท
0๊ฐœ์˜ ๋Œ“๊ธ€
ยท

[Day 13] Docker + ๋ฐฐํฌ ํ๋ฆ„ ์—ฐ๊ฒฐ โ€” ํผ์ฆ์ด ์™„์„ฑ๋˜๋‹ค

ํ”„๋ก ํŠธ์—”๋“œ ๊ธฐ์ดˆ ๋‹ค์‹œ ์Œ“๊ธฐ ์ฑŒ๋ฆฐ์ง€ 13์ผ์ฐจ.Week 3 "์‹ค์ „ ๋ฐฐํฌ ํ๋ฆ„"์˜ ์„ธ ๋ฒˆ์งธ ์ˆ˜์—….Day 11์—์„œ CI/CD๋ฅผ, Day 12์—์„œ Docker๋ฅผ ๊ฐ๊ฐ ๋ฐฐ์› ๋‹ค๋ฉด,์˜ค๋Š˜์€ ์ด ๋‘˜์„ ํ•ฉ์ณ์„œ ์™„์„ฑ๋œ ๋ฐฐํฌ ํŒŒ์ดํ”„๋ผ์ธ์„ ๋งŒ๋“œ๋Š” ์‹œ๊ฐ„์ด์—ˆ๋‹ค.์ง€๊ธˆ๊นŒ์ง€ ๋ฐฐ์šด ๊ฑธ ๋ ˆ์Šคํ† ๋ž‘์œผ๋กœ ์ญ‰ ์ด

2026๋…„ 5์›” 4์ผ
ยท
0๊ฐœ์˜ ๋Œ“๊ธ€
ยท

[Day 11] CI/CD๋ž€ ๋ฌด์—‡์ธ๊ฐ€? (GitHub Actions ๊ธฐ๋ณธ)

ํ”„๋ก ํŠธ์—”๋“œ ๊ธฐ์ดˆ ๋‹ค์‹œ ์Œ“๊ธฐ ์ฑŒ๋ฆฐ์ง€ 11์ผ์ฐจ.Week 3 "์‹ค์ „ ๋ฐฐํฌ ํ๋ฆ„"์˜ ์ฒซ ๋ฒˆ์งธ ์ˆ˜์—….์ง€๊ธˆ๊นŒ์ง€ ๋นŒ๋“œยท๋ฐฐํฌยท์„œ๋ฒ„ยทpm2ยทNginxยท๋กœ๊ทธ๊นŒ์ง€ ๋ฐฐ์› ๋‹ค๋ฉด,์˜ค๋Š˜์€ "์ด๊ฑธ ์™œ ๋งค๋ฒˆ ์ˆ˜๋™์œผ๋กœ ํ•˜๊ณ  ์žˆ์—ˆ์ง€?" ๋ผ๋Š” ์งˆ๋ฌธ์—์„œ ์‹œ์ž‘ํ•œ๋‹ค.์ง€๊ธˆ๊นŒ์ง€์˜ ๋ฐฐํฌ ๊ณผ์ •์„ ๋– ์˜ฌ๋ ค๋ณด๋ฉด ์ด๋ ‡๋‹ค.ํ•˜๋ฃจ

2026๋…„ 4์›” 28์ผ
ยท
0๊ฐœ์˜ ๋Œ“๊ธ€
ยท