โ ํ๋ก๊ทธ๋๋ฐ ์ธ์ด ๊ฐ์ด๋ ๋ชฉ๋ก์ผ๋ก ๋์๊ฐ๊ธฐ
๐จ HTML / CSS ์์ธ ๊ฐ์ด๋ โ
"์น ๋ธ๋ผ์ฐ์ ๋ผ๋ ๊ฐ์ ๋ํ์ง ์์ ๋ผ๋๋ฅผ ์ธ์ฐ๊ณ ์ค์ ๋น๊น ์๋ฆ๋ค์ด ์ท์ ์ ํ ๋๊ฐ๋ ๋์์ธ์ ๊ทผ๊ฐ"
๐ก 1. 30๋ ์ฐจ ์ ๋ฐฐ์ ์ฌ์ด ์ค๋ช โ
์๋ฐํ ๋งํด HTML๊ณผ CSS๋ ์ผ๋ฐ์ ์ธ ํ๋ก๊ทธ๋๋ฐ ์ธ์ด(๋ก์ง์ ์ฐ์ฐํ๋ ์๋ฐ์คํฌ๋ฆฝํธ๋ ํ์ด์ฌ)์๋ ๋ค๋ฆ ๋๋ค. ํ์ง๋ง ์ฌ์ฉ์๊ฐ ๋์ผ๋ก ๋ณด๊ณ ์ํธ์์ฉํ๋ ๋ชจ๋ ์น/์ฑ์ ํ๋ก ํธ์๋ ํ๊ฒฝ์์ ๋ผ๋์ ๋น์ฃผ์ผ์ ๋ด๋นํ๋ "๋ฐ๋์ ๊ฑฐ์ณ ๊ฐ์ผ ํ ์ ๋ ํ์ ๊ธฐ๋ณธ ์ง์" ์ ๋๋ค.
HTML (HyperText Markup Language): ์น์ฌ์ดํธ์ "๋ผ๋์ ๋ด์ฉ" ์ ๊ท์ ํฉ๋๋ค. "์ฌ๊ธฐ๋ ์ ๋ชฉ์ด๊ณ , ์ฌ๊ธฐ๋ ์ด๋ฏธ์ง ์๋ฆฌ์ด๋ฉฐ, ์ ๊ธฐ๋ ๋ฌธ์ฅ์ด์ผ!" ํ๊ณ ๋ธ๋ผ์ฐ์ ์๊ฒ ์ ๋ณด์ ๋ผ๋๋ฅผ ์ ๊ณตํฉ๋๋ค.
CSS (Cascading Style Sheets): ๊ทธ ๋ผ๋์ "๋์์ธ๊ณผ ์คํ์ผ" ์ ์ ํ๋๋ค. ํฌ๊ธฐ, ์์, ๋ฐฐ์น, ๊ธ๊ผด, ๋ง์ฐ์ค ์ค๋ฒ ์ ์ผ์ด๋๋ ๋ฏธ๋ คํ ๋ฐ์ ์ ๋๋ฉ์ด์ ๋ฑ์ ํต์ ํฉ๋๋ค.
๋น์ ํ์๋ฉด: ํผํผํ ๊ณจ๊ฒฉ์ ์ธ์ฐ๊ณ ๋๋ฉด์ ๊ทธ๋ฆฌ๋ ๋ผ๋ ์์ (HTML)๊ณผ, ๊ทธ ์์ ์๋ฆ๋ค์ด ๋ฒฝ์ง์ ํ์ธํธ์น ์ ํ๊ณ ๋ฉ์ง ์กฐ๋ช ์ ๋ค๋ ์ธํ ๋ฆฌ์ด ์ฝ๋๋ค์ด์ (CSS)์ ์กฐํ์ ๊ฐ์ต๋๋ค.
๐ ๏ธ 2. ์ด๋์ ์ฃผ๋ก ์ฐ์ด๋์? โ
- ์น ํ๋ก ํธ์๋ ํผ๋ธ๋ฆฌ์ฑ: ์ฌ์ฉ์๊ฐ ๋ง์ฃผํ๋ ํ๋ฉด(Layout) ์ค๊ณ ๋ฐ ๋ฐ์ํ ๋ชจ๋ฐ์ผ ์ต์ ํ ์น ํ๋ฉด ์์ฑ.
- ๋ชจ๋ ๋์์ธ ์์คํ ๊ตฌํ: Figma ๋ฑ ๋์์ธ ๋๊ตฌ์์ ๋์ถ๋ ์ปดํฌ๋ํธ ๊ท๊ฒฉ์ ์ค์ ํ๋ฉด ์ฝ๋๋ก ๊ตฌํํ ๋ ์ฌ์ฉํฉ๋๋ค.
โ๏ธ 3. ์ฅ์ ๊ณผ ๋จ์ (์ ๋ฐฐ์ ์์ง ํ๋ง๋) โ
- ์ฅ์ (์ฆ๊ฐ์ ์ด๊ณ ๋์ ์ฑ์ทจ๊ฐ):
- ํ๋ฉด์ผ๋ก ์ง์ ํ์ธ: ํ ์ค๋ง ๊ณ ์ณ๋ ๋ธ๋ผ์ฐ์ ํ๋ฉด์ด ์ค์๊ฐ์ผ๋ก ๊ฐฑ์ ๋๋ฏ๋ก ์ฝ๋ฉ์ ์ฑ์ทจ๊ฐ์ ๊ฐ์ฅ ๋น ๋ฅด๊ฒ ๋ง๋ณผ ์ ์์ต๋๋ค.
- ๋ฎ์ ๋ฌธ๋ฒ ์ฅ๋ฒฝ: ๋ณต์กํ ์ํ ์ฐ์ฐ์ด๋ ์ปดํ์ผ๋ฌ ์ค๋ฅ๊ฐ ์์ด ์ฝ๋ฉ์ ๊ธฐ์ด ์ฌ๋ฏธ๋ฅผ ๋ฐฐ์ฐ๊ธฐ์ ์ต์ ์ ๋๋ค.
- ๋จ์ (๋ฐฐ์น ์ง์ฅ):
- ํ๋ฉด ์ค์ ์ ๋ ฌ์ ๊ณ ํต: ์น๋ธ๋ผ์ฐ์ ์ ํ๋ฉด ํฌ๊ธฐ(๋ฐ์ํ)์ ๊ธฐ๊ธฐ ์ข ๋ฅ๊ฐ ๋ค์ํ์ฌ, ํ๋ฉด ์ค์์ ์์๋ฅผ ์์๊ฒ ์ ๋ ฌํ๊ฑฐ๋ ๊นจ์ง์ง ์๋ ๊ท ํ ์กํ ๋ฐฐ์น๋ฅผ ์งค ๋ ๋จธ๋ฆฌ๊ฐ ์ํ ์ ์์ต๋๋ค. (Flexbox, Grid ๊ฐ๋ ์ ๋ณต ํ์)
๐ 4. ์ด๋ณด์๋ฅผ ์ํ ์ฒซ๊ฑธ์ ์ฝ๋ โ
ํ ์คํธ์ ๋ฒํผ์ ๋ง๋ค๊ณ , ์ ๋ ฌ ๋ฐ ๋ฅ๊ทผ ํ ๋๋ฆฌ ๋์์ธ์ ์ฃผ๋ HTML๊ณผ CSS์ ๋ง๋จ ์์์ ๋๋ค.
<!-- HTML: ํ๋ฉด์ ๋ผ๋๋ฅผ ๊ทธ๋ฆฝ๋๋ค -->
<div class="card-box">
<h1>์น ์ง์DB</h1>
<p>์ด๋ณด์๋ถ๋ค์ ์ฒซ๊ฑธ์์ ํ์ํฉ๋๋ค.</p>
<button class="styled-btn">์
์ฅํ๊ธฐ</button>
</div>
<style>
/* CSS: ๋ผ๋๋ฅผ ์์๊ฒ ์ฅ์ํฉ๋๋ค */
.card-box {
background-color: #f8fafc;
border: 1px solid #e2e8f0;
border-radius: 12px;
padding: 24px;
text-align: center;
max-width: 300px;
box-shadow: 0 4px 6px rgba(0, 0, 0, 0.05);
}
.styled-btn {
background: linear-gradient(135deg, #6366f1, #8b5cf6);
color: white;
border: none;
padding: 10px 20px;
border-radius: 8px;
font-weight: bold;
cursor: pointer;
transition: transform 0.2s;
}
.styled-btn:hover {
transform: translateY(-2px); /* ํธ๋ฒ ์ ์๋ก ์ด์ง ๋จ๋ ํจ๊ณผ */
}
</style>๐ฏ 5. ์ด๋ณด์ ์ถ์ฒ ๊ณต๋ถ ๋ฐฉํฅ โ
- HTML์ ๋จ์ ์๊ธฐ๋ณด๋ค ์๋งจํฑ ํ๊ทธ(
<header>,<main>,<article>๋ฑ)๋ฅผ ์ฌ์ฉํด ์์ญ์ "์๋ฏธ๋ก ์ ์ผ๋ก ์ ์ง๋ ์ต๊ด"์ ๋ค์ด์ญ์์ค. SEO(๊ฒ์์์ง ์ต์ ํ)์ ๋งค์ฐ ์ค์ํฉ๋๋ค. - CSS๋ ๊ณผ๊ฑฐ์ ๋ ๊ฑฐ์ ๋ ์ด์์(float, position ๋์ฉ ๋ฑ)์ ๋จธ๋ฌผ์ง ๋ง๊ณ , ํ๋์ ์ธ ๋ฐฐ์น ๊ธฐ์ ์ธ Flexbox์ CSS Grid๋ฅผ ์๋ฒฝํ๊ฒ ๊ณต๋ถํ์ธ์. ๋ ์ด์์ ๋ฐฐ์น์ ๊ณ ํต์ด 95% ์ฌ๋ผ์ง๋๋ค.
- ์ง์ ์์ ์ด ์์ฃผ ๋ฐฉ๋ฌธํ๋ ํฌํธ์ด๋ ์ปค๋ฎค๋ํฐ์ ์ฒซ ํ๋ฉด์ ๋๊ฐ์ด ๊ทธ๋ ค๋ณด๋ ๋ชจ์(์นดํผ ์ฝ๋ฉ) ์ฐ์ต์ด ํ๋ก ํธ์๋ ํ๋ฉด์ ์ ๋ณตํ๋ ์ต๊ณ ์ง๋ฆ๊ธธ์ ๋๋ค.