ํ๋ฉด: ๋ธ๋ผ์ฐ์ ์ด๊ธฐ
๋์: https://github.com/JinJun-han/elimgweb ์
๋ ฅ
ํด๋ฆญ: ์ ์ฅ์ ์ด๊ธฐ
๋ด๋ ์ด์ :
โ์๋ ํ์ธ์! ๊ฐ์ฅ ์ฌ์ด ๋ฐฉ๋ฒ๋ถํฐ ์์ํ๊ฒ ์ต๋๋ค. GitHub์์ ์ง์ ํ์ผ์ ์์ ํ ์ ์์ต๋๋ค.โ
ํ๋ฉด: ์ ์ฅ์ ๋ฉ์ธ ํ์ด์ง
ํด๋ฆญ: "public" ํด๋
ํด๋ฆญ: "index.html" ํ์ผ
๋ด๋ ์ด์ :
โpublic ํด๋๋ก ๋ค์ด๊ฐ์ index.html ํ์ผ์ ์ฐพ์ต๋๋ค. ์ด ํ์ผ์ด ์น์ฌ์ดํธ์ ๋ฉ์ธ ํ์ด์ง์ ๋๋ค.โ
ํ๋ฉด: index.html ํ์ผ ๋ด์ฉ
ํด๋ฆญ: ์ฐ์ธก ์๋จ ์ฐํ ์์ด์ฝ (โ๏ธ Edit this file)
๋ด๋ ์ด์ :
โ์ฐ์ธก ์๋จ์ ์ฐํ ์์ด์ฝ์ ํด๋ฆญํ๋ฉด ํธ์ง ๋ชจ๋๋ก ์ ํ๋ฉ๋๋ค.โ
ํ๋ฉด: ํธ์ง ํ๋ฉด
ํค๋ณด๋: Ctrl+F (Mac: Cmd+F)
์
๋ ฅ: "010-2083-3106"
์ํฐ: ๊ฒ์ ๊ฒฐ๊ณผ๋ก ์ด๋
๋ด๋ ์ด์ :
โCtrl+F๋ฅผ ๋๋ฌ ๊ฒ์์ฐฝ์ ์ด๊ณ , ๋ณ๊ฒฝํ ์ ํ๋ฒํธ๋ฅผ ์ ๋ ฅํฉ๋๋ค. ์ฌ๋ฌ ๊ณณ์ ์์ ์ ์์ผ๋ ๋ชจ๋ ํ์ธํ์ธ์.โ
ํ๋ฉด: ๊ฒ์๋ ์ ํ๋ฒํธ ์์น
๋์: ๋ง์ฐ์ค๋ก ์ ํ
์
๋ ฅ: "010-1234-5678" (์ ๋ฒํธ)
๋ด๋ ์ด์ :
โ๊ธฐ์กด ๋ฒํธ๋ฅผ ์ ํํ๊ณ ์ ์ ํ๋ฒํธ๋ฅผ ์ ๋ ฅํฉ๋๋ค. ์ฌ๋ฌ ๊ณณ์ ์๋ค๋ฉด ๋ชจ๋ ๊ฐ์ ๋ฒํธ๋ก ๋ณ๊ฒฝํด์ฃผ์ธ์.โ
ํ๋ฉด: ํ์ด์ง ํ๋จ ์คํฌ๋กค
์
๋ ฅ: Commit message: "์ ํ๋ฒํธ ๋ณ๊ฒฝ"
ํด๋ฆญ: "Commit changes" ๋ฒํผ (์ด๋ก์)
๋ด๋ ์ด์ :
โํ์ด์ง ์๋๋ก ๋ด๋ ค๊ฐ์ ๋ณ๊ฒฝ ๋ด์ฉ์ ์ค๋ช ํ๊ณ Commit changes ๋ฒํผ์ ๋๋ฅด๋ฉด ์ ์ฅ๋ฉ๋๋ค.โ
ํ๋ฉด: ์ ์ฅ์ ๋ฉ์ธ์ผ๋ก ๋์์ด
๋์: ์๋ก๊ณ ์นจ
ํ์ธ: "2 minutes ago" ๊ฐ์ ์ต๊ทผ ์๊ฐ ํ์
๋ด๋ ์ด์ :
โ์ ์ฅ์ด ์๋ฃ๋์์ต๋๋ค! Railway๋ Vercel์ ์ฐ๊ฒฐํ๋ค๋ฉด 1-2๋ถ ํ ์๋์ผ๋ก ์น์ฌ์ดํธ์ ๋ฐ์๋ฉ๋๋ค.โ
ํ๋ฉด: ๋ธ๋ผ์ฐ์
์ด๋: https://code.visualstudio.com/
ํด๋ฆญ: "Download" ๋ฒํผ
์ค์น: ๋ค์ด๋ก๋๋ ํ์ผ ์คํ
๋ด๋ ์ด์ :
โVS Code๋ ๋ฌด๋ฃ ์ฝ๋ ์๋ํฐ์ ๋๋ค. ๋ค์ด๋ก๋ํ๊ณ ์ค์น๋ง ํ๋ฉด ๋ฐ๋ก ์ฌ์ฉํ ์ ์์ต๋๋ค.โ
ํ๋ฉด: VS Code ์คํ
ํด๋ฆญ: "Open Folder"
์ ํ: elimgweb ํด๋ (๋ฏธ๋ฆฌ git clone ๋์ด ์์)
๋ด๋ ์ด์ :
โelimgweb ํด๋๋ฅผ ์ ํํ์ฌ ์ฝ๋๋ค. ์ผ์ชฝ์ ๋ชจ๋ ํ์ผ์ด ํธ๋ฆฌ ํํ๋ก ๋ณด์ ๋๋ค.โ
ํ๋ฉด: ์ผ์ชฝ ํ์ผ ํธ๋ฆฌ
ํด๋ฆญ: public ํด๋ ํ์ฅ
ํด๋ฆญ: index.html
๋ด๋ ์ด์ :
โpublic ํด๋๋ฅผ ํผ์น๊ณ index.html์ ๋๋ธํด๋ฆญํฉ๋๋ค.โ
ํ๋ฉด: index.html ์ด๋ฆผ
ํค๋ณด๋: Ctrl+F
์
๋ ฅ: "์ธ์์ ํฅํ ํ๋๋์ ์ฌ๋"
์ํฐ: ์ฐพ๊ธฐ
์ ํ: ํด๋น ํ
์คํธ
์
๋ ฅ: "๊ธ๋ก์ปฌ ์ ๊ต๋ก ์ธ๊ณ๋ฅผ ํ๋ค"
๋ด๋ ์ด์ :
โCtrl+F๋ก ๊ฒ์ํ์ฌ ๋ฉ์ธ ์ ๋ชฉ์ ์ฐพ๊ณ ์ํ๋ ํ ์คํธ๋ก ๋ณ๊ฒฝํฉ๋๋ค. ๋งค์ฐ ๊ฐ๋จํ์ฃ ?โ
ํค๋ณด๋: Ctrl+F
์
๋ ฅ: "--primary-color"
์ํฐ: ์ฐพ๊ธฐ
ํ์ธ: --primary-color: #4A90E2;
์์ : --primary-color: #27AE60; (์ด๋ก์)
๋ด๋ ์ด์ :
โ์ด๋ฒ์ ๋ฉ์ธ ์์์ ๋ณ๊ฒฝํด๋ด ์๋ค. primary-color๋ฅผ ๊ฒ์ํ๊ณ ์์ ์ฝ๋๋ฅผ ๋ฐ๊ฟ๋๋ค.โ
ํค๋ณด๋: Ctrl+S
ํ๋ฉด: ํ์ผ ํญ์ ์ (โ) ํ์๊ฐ ์ฌ๋ผ์ง
๋ด๋ ์ด์ :
โCtrl+S๋ฅผ ๋๋ฅด๋ฉด ์ ์ฅ๋ฉ๋๋ค. ํ์ผ ์ด๋ฆ ์์ ์ ์ด ์ฌ๋ผ์ง๋ฉด ์ ์ฅ๋ ๊ฒ์ ๋๋ค.โ
ํ๋ฉด: VS Code ํ๋จ ํฐ๋ฏธ๋ ํด๋ฆญ
์
๋ ฅ: npm run dev
์ํฐ: ์๋ฒ ์์
๋ธ๋ผ์ฐ์ : http://localhost:3000 ์ ์
๋ด๋ ์ด์ :
โํฐ๋ฏธ๋์์ npm run dev๋ฅผ ์คํํ์ฌ ๋ก์ปฌ์์ ๋ฐ๋ก ํ์ธํ ์ ์์ต๋๋ค.โ
ํ๋ฉด: VS Code ์ผ์ชฝ Source Control ์์ด์ฝ (๋ธ๋์น ๋ชจ์)
ํด๋ฆญ: Source Control
์
๋ ฅ: ์ปค๋ฐ ๋ฉ์์ง "๋ฉ์ธ ์ ๋ชฉ๊ณผ ์์ ๋ณ๊ฒฝ"
ํด๋ฆญ: โ Commit ๋ฒํผ
ํด๋ฆญ: โฏ ๋ฉ๋ด โ Push
๋ด๋ ์ด์ :
โ์ผ์ชฝ์ Source Control์ ํด๋ฆญํ๊ณ ์ปค๋ฐ ๋ฉ์์ง๋ฅผ ์ ๋ ฅํ ํ Pushํฉ๋๋ค.โ
ํ๋ฉด: ๋ธ๋ผ์ฐ์
์ด๋: https://unsplash.com/
๊ฒ์: "community" ๋๋ "church"
ํด๋ฆญ: ๋ง์์ ๋๋ ์ด๋ฏธ์ง
ํด๋ฆญ: "Copy Image Address"
๋ด๋ ์ด์ :
โ๋จผ์ Unsplash์์ ๋ฌด๋ฃ ์ด๋ฏธ์ง๋ฅผ ์ฐพ์ต๋๋ค. ๋ง์์ ๋๋ ์ด๋ฏธ์ง๋ฅผ ์ ํํ๊ณ ์ฃผ์๋ฅผ ๋ณต์ฌํฉ๋๋ค.โ
ํ๋ฉด: VS Code, index.html
๊ฒ์: "news-card"
์ ํ: ์ ์ฒด news-card div ๋ธ๋ก ๋ณต์ฌ
(์ฝ 15์ค ์ ๋)
๋ด๋ ์ด์ :
โ๊ธฐ์กด ๋ด์ค ์นด๋ ํ๋๋ฅผ ํต์งธ๋ก ๋ณต์ฌํฉ๋๋ค. ์ด๋ ๊ฒ ํ๋ฉด ์คํ์ผ์ด ๋๊ฐ์ด ์ ์ฉ๋ฉ๋๋ค.โ
๋์: ๋ง์ง๋ง news-card ๋ค์์ ๋ถ์ฌ๋ฃ๊ธฐ
์์ :
1. ์ด๋ฏธ์ง URL โ Unsplash ์ฃผ์
2. ์ ๋ชฉ โ "3์ ํน๋ณ ์งํ ์๋ด"
3. ๋ด์ฉ โ "๋ฒ ํธ๋จ ์ด์ฃผ๋ฏผ์ ์ํ..."
4. ๋ ์ง โ "2026-03-15"
5. ์์ฑ์ โ "ํ์ง์ค ๋ชฉ์ฌ"
6. ์นดํ
๊ณ ๋ฆฌ โ "ํ์ฌ"
๋ด๋ ์ด์ :
โ๋ถ์ฌ๋ฃ์ ์ฝ๋์์ ํ์ํ ๋ถ๋ถ์ ์์ ํฉ๋๋ค. ์ด๋ฏธ์ง, ์ ๋ชฉ, ๋ด์ฉ, ๋ ์ง, ์นดํ ๊ณ ๋ฆฌ ๋ฑ์ ๋ฐ๊ฟ๋๋ค.โ
ํค๋ณด๋: Ctrl+S
๋ธ๋ผ์ฐ์ : localhost:3000 ์๋ก๊ณ ์นจ
ํ์ธ: ์ ๋ด์ค ์นด๋ ํ์๋จ
๋ด๋ ์ด์ :
โ์ ์ฅํ๊ณ ๋ธ๋ผ์ฐ์ ๋ฅผ ์๋ก๊ณ ์นจํ๋ฉด ์๋ก์ด ๋ด์ค ์นด๋๊ฐ ๋ํ๋ฉ๋๋ค!โ
๋ธ๋ผ์ฐ์ : Chrome
ํค๋ณด๋: F12 (๋๋ Ctrl+Shift+I)
ํ๋ฉด: ๊ฐ๋ฐ์ ๋๊ตฌ ํจ๋ ์ด๋ฆผ
๋ด๋ ์ด์ :
โํฌ๋กฌ ๋ธ๋ผ์ฐ์ ์์ F12๋ฅผ ๋๋ฅด๋ฉด ๊ฐ๋ฐ์ ๋๊ตฌ๊ฐ ์ด๋ฆฝ๋๋ค.โ
ํด๋ฆญ: ํด๋ฐ์ ๐ฑ ์์ด์ฝ (Toggle device toolbar)
์ ํ: "iPhone 12 Pro" ๋๋ "Galaxy S20"
๋ด๋ ์ด์ :
โ์ค๋งํธํฐ ์์ด์ฝ์ ํด๋ฆญํ๋ฉด ๋ชจ๋ฐ์ผ ํ๋ฉด์ผ๋ก ์ ํ๋ฉ๋๋ค.โ
๋๋กญ๋ค์ด: "Responsive" ์ ํ
๋๋๊ทธ: ํ๋ฉด ๋๋น ์กฐ์
ํ์ธ: ๋ ์ด์์ ๋ณํ ๊ด์ฐฐ
๋ด๋ ์ด์ :
โResponsive ๋ชจ๋์์ ํ๋ฉด์ ์ง์ ์กฐ์ ํ๋ฉฐ ๋ค์ํ ํฌ๊ธฐ์์ ์ ๋ณด์ด๋์ง ํ์ธํฉ๋๋ค.โ
์์: ํ
์คํธ๊ฐ ๋๋ฌด ํผ
ํ๋ฉด: VS Code๋ก ์ ํ
์ฐพ๊ธฐ: @media (max-width: 768px)
์์ : font-size ๊ฐ ์กฐ์
๋ด๋ ์ด์ :
โ๋ชจ๋ฐ์ผ์์ ๋ฌธ์ ๊ฐ ๋ฐ๊ฒฌ๋๋ฉด ๋ฏธ๋์ด ์ฟผ๋ฆฌ ๋ถ๋ถ์ ์์ ํฉ๋๋ค.โ
๋ธ๋ผ์ฐ์ : https://railway.app
ํด๋ฆญ: "Start a New Project"
ํด๋ฆญ: "Login with GitHub"
์ธ์ฆ: GitHub ๊ณ์ ์ผ๋ก ๋ก๊ทธ์ธ
๋ด๋ ์ด์ :
โRailway ์ฌ์ดํธ์์ GitHub์ผ๋ก ๊ฐํธํ๊ฒ ๊ฐ์ ํฉ๋๋ค.โ
ํด๋ฆญ: "Deploy from GitHub repo"
์ ํ: "elimgweb" ์ ์ฅ์
ํด๋ฆญ: "Deploy Now"
ํ๋ฉด: ์๋ ๋ฐฐํฌ ์์ (๋ก๊ทธ ํ์)
๋ด๋ ์ด์ :
โGitHub ์ ์ฅ์๋ฅผ ์ ํํ๋ฉด ์๋์ผ๋ก ๋ฐฐํฌ๊ฐ ์์๋ฉ๋๋ค.โ
ํด๋ฆญ: ํ๋ก์ ํธ ์ด๋ฆ
ํญ: "Variables"
์ถ๊ฐ:
NODE_ENV = production
PORT = 3000
JWT_SECRET = [๋๋ค ๋ฌธ์์ด]
ADMIN_PASSWORD = [๊ฐ๋ ฅํ ๋น๋ฐ๋ฒํธ]
๋ด๋ ์ด์ :
โVariables ํญ์์ ํ์ํ ํ๊ฒฝ ๋ณ์๋ฅผ ์ถ๊ฐํฉ๋๋ค. ๋น๋ฐ๋ฒํธ๋ ๊ผญ ๋ณ๊ฒฝํด์ฃผ์ธ์!โ
ํญ: "Settings"
์น์
: "Domains"
ํด๋ฆญ: "Generate Domain"
ํ์ธ: xxx.up.railway.app ์์ฑ๋จ
๋ด๋ ์ด์ :
โSettings์ Domains์์ ์๋ ๋๋ฉ์ธ์ ์์ฑํ๊ฑฐ๋ ์ปค์คํ ๋๋ฉ์ธ์ ์ฐ๊ฒฐํ ์ ์์ต๋๋ค.โ
ํ์ธ: ๋ฐฐํฌ ์ํ "Success" ํ์
ํด๋ฆญ: ์์ฑ๋ ๋๋ฉ์ธ ๋งํฌ
๋ธ๋ผ์ฐ์ : ์ ํญ์์ ์น์ฌ์ดํธ ์ด๋ฆผ
๋ด๋ ์ด์ :
โ๋ฐฐํฌ๊ฐ ์๋ฃ๋๋ฉด Success ํ์๊ฐ ๋ํ๋ฉ๋๋ค. ๋๋ฉ์ธ์ ํด๋ฆญํ๋ฉด ๋ผ์ด๋ธ ์ฌ์ดํธ๋ก ์ด๋ํฉ๋๋ค!โ
ํ๋ฉด: Railway ๋์๋ณด๋
ํญ: Settings โ Domains
ํด๋ฆญ: "Add Custom Domain"
์
๋ ฅ: "elimg.com"
ํ์ธ: CNAME ๊ฐ ๋ณต์ฌ (์: abc123.up.railway.app)
๋ด๋ ์ด์ :
โRailway์์ ์ปค์คํ ๋๋ฉ์ธ์ ์ถ๊ฐํ๊ณ CNAME ๊ฐ์ ๋ณต์ฌํด๋ก๋๋ค.โ
๋ธ๋ผ์ฐ์ : https://www.gabia.com
ํด๋ฆญ: "๋ก๊ทธ์ธ"
์
๋ ฅ: ID/๋น๋ฐ๋ฒํธ
์ด๋: "My๊ฐ๋น์"
๋ด๋ ์ด์ :
โ๊ฐ๋น์์ ๋ก๊ทธ์ธํ์ฌ My๊ฐ๋น์๋ก ์ด๋ํฉ๋๋ค.โ
ํด๋ฆญ: "์๋น์ค ๊ด๋ฆฌ" โ "๋๋ฉ์ธ"
์ฐพ๊ธฐ: "elimg.com"
ํด๋ฆญ: "DNS ์ ๋ณด" โ "DNS ๊ด๋ฆฌ"
ํด๋ฆญ: "๋ ์ฝ๋ ์์ "
๋ด๋ ์ด์ :
โelimg.com ๋๋ฉ์ธ์ ์ฐพ์ DNS ๊ด๋ฆฌ๋ก ๋ค์ด๊ฐ๋๋ค.โ
ํด๋ฆญ: "+ ๋ ์ฝ๋ ์ถ๊ฐ"
์
๋ ฅ:
ํ์
: CNAME
ํธ์คํธ: www
๊ฐ: abc123.up.railway.app (Railway์์ ๋ณต์ฌํ ๊ฐ)
TTL: 3600
ํด๋ฆญ: "ํ์ธ"
๋ด๋ ์ด์ :
โCNAME ๋ ์ฝ๋๋ฅผ ์ถ๊ฐํฉ๋๋ค. ๊ฐ์ Railway์์ ๋ณต์ฌํ ์ฃผ์๋ฅผ ๋ถ์ฌ๋ฃ์ต๋๋ค.โ
ํด๋ฆญ: "์ ์ฉ"
ํ์ธ: "DNS ์ค์ ์ด ๋ณ๊ฒฝ๋์์ต๋๋ค" ๋ฉ์์ง
๋ด๋ ์ด์ :
โ์ค์ ์ ์ ์ฉํ๋ฉด 1-24์๊ฐ ๋ด์ elimg.com์ผ๋ก ์ ์ํ ์ ์๊ฒ ๋ฉ๋๋ค.โ
์ด ์คํฌ๋ฆฝํธ๋ฅผ ๋ฐ๋ผ ํ์๋ฉด ๋๊ตฌ๋ ์น์ฌ์ดํธ๋ฅผ ์์ ํ ์ ์์ต๋๋ค! ๐
๊ถ๊ธํ ์ ์ด ์์ผ๋ฉด ์ธ์ ๋ ๋ฌธ์ํ์ธ์!