๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ
Today I Learned(TIL)/์ŠคํŒŒ๋ฅดํƒ€ ๋‚ด์ผ๋ฐฐ์›€์บ ํ”„

์›น ๊ฐœ๋ฐœ ์ข…ํ•ฉ_1์ฃผ์ฐจ

by carrot0911 2024. 10. 28.

์›น์€ ๊ฐœ๋ฐœ์˜ ๊ธฐ์ดˆ์ด๋‹ค๐Ÿคจ

  • ์›น์€ ๊ฐœ๋ฐœ์„ ์ž…๋ฌธํ•  ๋•Œ ๋ฐฐ์šฐ๋Š” ๊ฐœ๋ฐœ์˜ ๊ธฐ์ดˆ๋ผ๊ณ  ํ•  ์ˆ˜ ์žˆ๋‹ค!
  • ์•ฑ ๊ฐœ๋ฐœ์ž๋„, ๊ฒŒ์ž„ ๊ฐœ๋ฐœ์ž๋„ ์ฒ˜์Œ์—๋Š” ์›น์œผ๋กœ ์‹œ์ž‘ํ•œ๋‹ค๊ณ  ํ•  ์ˆ˜ ์žˆ๋‹ค!!

 

1์ฃผ์ฐจ : HTML, CSS, Bootstrap

  • HTML๊ณผ CSS๋ฅผ ๋ฐฐ์šฐ๋ฉด ๋ธŒ๋ผ์šฐ์ €์—์„œ ์šฐ๋ฆฌ ๋ˆˆ์— ๋ณด์ด๋Š” ์›น์˜ ๋ผˆ๋Œ€๋ฅผ ๋งŒ๋“ค๊ณ  ๊พธ๋ฐ€ ์ˆ˜ ์žˆ๋‹ค!
  • ์›น์„ ์‰ฝ๊ฒŒ ๊พธ๋ฐ€ ์ˆ˜ ์žˆ๋Š” ๋ถ€ํŠธ์ŠคํŠธ๋žฉ๋„ ํ™œ์šฉ ๊ฐ€๋Šฅํ•˜๋‹ค. ๐Ÿ˜Š
  • ์ฃผ๋กœ ๋ฐฐ์šด ๋‚ด์šฉ์€ HTML & CSS ์ด๋‹ค!

 

์›น ๋ธŒ๋ผ์šฐ์ € ์ž‘๋™ ์›๋ฆฌ

๋ธŒ๋ผ์šฐ์ €์˜ ์—ญํ•  : ์š”์ฒญ์„ ๋ณด๋‚ด๊ณ  ๋ฐ›์€ HTML ํŒŒ์ผ์„ ๊ทธ๋ ค์ฃผ๋Š” ๊ฒƒ์ด๋‹ค!

  • ์šฐ๋ฆฌ๊ฐ€ ๋ณด๋Š” ์›น ํŽ˜์ด์ง€๋Š” ์„œ๋ฒ„์—์„œ ์ค€๋น„ํ•ด ๋‘์—ˆ๋˜ ๊ฒƒ์„ ๋ฐ›์•„์„œ ๋ธŒ๋ผ์šฐ์ €์—์„œ ์šฐ๋ฆฌ๊ฐ€ ๋ณผ ์ˆ˜ ์žˆ๋„๋ก ๊ทธ๋ ค์ฃผ๋Š” ์—ญํ• ์„ ์ˆ˜ํ–‰ํ•œ๋‹ค.
  • ์š”์ฒญํ•˜๋Š” ์ชฝ : ํด๋ผ์ด์–ธํŠธ(๋ธŒ๋ผ์šฐ์ €), ์ฃผ๋Š” ์ชฝ : ์„œ๋ฒ„
  • ์ฆ‰, ๋ธŒ๋ผ์šฐ์ €๋Š” ์š”์ฒญ์„ ๋ณด๋‚ด๊ณ , ์š”์ฒญ์˜ ๋‹ต์œผ๋กœ ๋ฐ›์€ ๊ฒƒ์„ ๊ทธ๋ ค์ฃผ๋Š” ์—ญํ• ์ด๋‹ค.
  • ํŽ˜์ด์ง€๋ฅผ ๊ณ ์น  ์ˆ˜ ์žˆ๋Š” ์ด์œ  → ์ด๋ฏธ ๋‚ด ์ปดํ“จํ„ฐ์— ๊ฐ€์ ธ์™”๊ธฐ ๋•Œ๋ฌธ์ด๋‹ค! ๋‚ด ๋ฐ์ดํ„ฐ๊ฐ€ ๋˜์–ด๋ฒ„๋ ธ๋‹ค!

๊ทธ๋ ‡๋‹ค๋ฉด ์š”์ฒญ์€ ์–ด๋””๋กœ ๋ณด๋‚ด๋Š” ๊ฑธ๊นŒ?

  • ์„œ๋ฒ„๊ฐ€ ๋งŒ๋“ค์–ด ๋†“์€ API ๋ผ๋Š” ์ฐฝ๊ตฌ์— ๋ฏธ๋ฆฌ ์ •ํ•ด์ง„ ์•ฝ์†๋Œ€๋กœ ์š”์ฒญ์„ ๋ณด๋‚ด๋Š” ๊ฒƒ์ด๋‹ค. ์šฐ๋ฆฌ๋Š” ํ‰์†Œ์—๋„ ์›น์„ ์“ฐ๋Š” ๋™์•ˆ ๋ช‡ ๋ฒˆ์ด๊ณ  ์š”์ฒญ์„ ๋ณด๋‚ธ๋‹ค.
  • ์˜ˆ) https://naver.com/
    • "naver.com"์ด๋ผ๋Š” ์ด๋ฆ„์˜ ์„œ๋ฒ„์— ์žˆ๋Š” "/"๋ผ๋Š” ์ฃผ์†Œ ์ฐฝ๊ตฌ์— ์š”์ฒญ์„ ๋ณด๋‚ธ ๊ฒƒ์ด๋‹ค.
    • ๋„ค์ด๋ฒ„์—์„œ๋Š” ๊ทธ ๋Œ€๋‹ต์œผ๋กœ ๋„ค์ด๋ฒ„ ํ™ˆ์— ํ•ด๋‹นํ•˜๋Š” HTML ํŒŒ์ผ์„ ์ค€๋‹ค๊ณ  ๋ณด๋ฉด ๋œ๋‹ค.
  • ์šฐ๋ฆฌ๊ฐ€ ๋ณด๋Š” ๋ธŒ๋ผ์šฐ์ €๋Š” ์ฃผ์†Œ๋ฅผ ํ†ตํ•ด API๋กœ ์š”์ฒญ์„ ๋ณด๋‚ด๊ณ , API๋Š” ์š”์ฒญ์— ๋งž๋Š” HTML ํŒŒ์ผ์„ ๋Œ๋ ค์ฃผ๊ณ  ๋ธŒ๋ผ์šฐ์ €๋Š” ๋ฐ›์€ ๊ฒƒ์„ ํ™”๋ฉด์— ๊ทธ๋ ค์ค€๋‹ค.
    • HTML(๋ผˆ๋Œ€), CSS(๊พธ๋ฏธ๊ธฐ), JavaScript(์›€์ง์ด๊ธฐ) → ์ผ์ข…์˜ ์„ค๋ช…์„œ 
    • ํ•ญ์ƒ HTML ํŒŒ์ผ๋กœ ๋Œ๋ ค์ฃผ๋Š” ๊ฒƒ์ด ์•„๋‹ˆ๋ผ ๋ฐ์ดํ„ฐ๋งŒ ๋Œ๋ ค์ค„ ๋•Œ๊ฐ€ ๋” ๋งŽ๋‹ค!!
โœ”๏ธ์ฐธ๊ณ 
์‹ค์ œ๋กœ ๋งŽ์€ ์›น ์„œ๋น„์Šค์—์„œ๋Š” API๋กœ ์š”์ฒญ์„ ๋ณด๋‚ด๋ฉด ์„œ๋ฒ„์˜ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์—์„œ ๋ฐ์ดํ„ฐ๋ฅผ ๋Œ๋ ค์ฃผ๊ณ , ๋ธŒ๋ผ์šฐ์ €์—์„œ Javascript๋ผ๋Š” ์–ธ์–ด์—์„œ ๊ฐˆ์•„ ๋ผ์›Œ์ค€๋‹ค!

 

์ฝ”๋”ฉ ํ™˜๊ฒฝ ์„ธํŒ…ํ•˜๊ธฐ

VS Code(Visual Studio Code)

  • ๋งˆ์ดํฌ๋กœ์†Œํ”„ํŠธ ์‚ฌ์—์„œ ๊ฐœ๋ฐœํ•œ ์ฝ”๋“œ ์—๋””ํ„ฐ์ด๋‹ค! ์ฝ”๋”ฉํ•˜๋Š”๋ฐ ํšจ์œจ์ ์ธ ํ”„๋กœ๊ทธ๋žจ์ด๋‹ค.

HTML ๊ธฐ์ดˆ

HTML์€ ์›น ํŽ˜์ด์ง€์˜ ๋ผˆ๋Œ€๋ฅผ ๋‹ด๋‹นํ•œ๋‹ค!

  • ์›น์˜ ๋ผˆ๋Œ€๋ฅผ ์žก์•„์ฃผ๋Š” ๊ตฌ์—ญ์„ ๋‚˜ํƒ€๋‚ด๋Š” ์ฝ”๋“œ์ด๋‹ค. ์›น์˜ ์ „๋ฐ˜์„ HTML์„ ํ†ตํ•ด์„œ ์ž‘์„ฑํ•  ์ˆ˜ ์žˆ๋‹ค!
  • CSS๋Š” HTML์„ ํ†ตํ•ด ์ž‘์„ฑ๋œ ๋ผˆ๋Œ€๋ฅผ ์˜ˆ์˜๊ฒŒ ๊พธ๋ฉฐ์ฃผ๋Š” ์ฝ”๋“œ์ด๋‹ค.
  • CSS๋ฅผ ์ž˜ ์‚ฌ์šฉํ•  ์ค„ ์•„๋Š” ๊ฒƒ๊ณผ ์˜ˆ์˜๊ฒŒ ๋งŒ๋“œ๋Š” ๊ฒƒ์€ ๋‹ค๋ฅธ ์˜์—ญ์ด๊ธฐ ๋•Œ๋ฌธ์—, ๋งŽ์€ ๊ฒฝ์šฐ ์›น๋””์ž์ด๋„ˆ๋‚˜ ํผ๋ธ”๋ฆฌ์…”์—๊ฒŒ ์˜์กดํ•˜๊ฒŒ ๋œ๋‹ค...

HTML ๊ธฐ์ดˆ - ๊ฐ€์žฅ ๊ธฐ๋ณธ์ ์ธ HTML ํ˜•ํƒœ

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>
<body>
    
</body>
</html>

html:5 ์ž…๋ ฅ ์‹œ ์ž๋™์œผ๋กœ ์ž…๋ ฅ๋˜๋Š” ๋‚ด์šฉ

  • HTML์€ ํฌ๊ฒŒ <head> ์˜์—ญ๊ณผ <body> ์˜์—ญ์œผ๋กœ ์ด๋ฃจ์–ด์ ธ ์žˆ๋‹ค.
    • head ์•ˆ์—๋Š” ํŽ˜์ด์ง€์˜ ์†์„ฑ ์ •๋ณด, body ์•ˆ์—๋Š” ํŽ˜์ด์ง€์˜ ๋‚ด์šฉ์„ ๋‹ด๋Š”๋‹ค.
โœ”๏ธ์ฐธ๊ณ 
head์—์„œ๋Š” ํŽ˜์ด์ง€์˜ ์†์„ฑ์„ ์ •์˜ํ•˜๊ฑฐ๋‚˜, ํ•„์š”ํ•œ ์Šคํฌ๋ฆฝํŠธ๋“ค์„ ๋ถ€๋ฅธ๋‹ค.
๋ˆˆ์— ์•ˆ ๋ณด์ด๋Š” ํ•„์š”ํ•œ ๊ฒƒ๋“ค์„ ๋‹ด๋Š” ๊ฒƒ.
  • head ์•ˆ์— ๋“ค์–ด๊ฐ€๋Š” ๋Œ€ํ‘œ์ ์ธ ์š”์†Œ๋“ค : meta, script, style, link, title ๋“ฑ
  • body ์•ˆ์— ๋“ค์–ด๊ฐ€๋Š” ๋Œ€ํ‘œ์ ์ธ ์š”์†Œ๋“ค : span, img, input, textarea 

HTML tag ๊ธฐ์ดˆ

<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>HTML ๊ธฐ์ดˆ</title>
</head>

<body>
    <!-- ๊ตฌ์—ญ์„ ๋‚˜๋ˆ„๋Š” ํƒœ๊ทธ๋“ค -->
    <div>๋‚˜๋Š” ๊ตฌ์—ญ์„ ๋‚˜๋ˆ„์ฃ </div>
    <p>๋‚˜๋Š” ๋ฌธ๋‹จ์ด์—์š”</p>
    <ul>
        <li> bullet point!1 </li>
        <li> bullet point!2 </li>
    </ul>

    <!-- ๊ตฌ์—ญ ๋‚ด ์ฝ˜ํ…์ธ  ํƒœ๊ทธ๋“ค -->
    <h1>h1์€ ์ œ๋ชฉ์„ ๋‚˜ํƒ€๋‚ด๋Š” ํƒœ๊ทธ์ž…๋‹ˆ๋‹ค. ํŽ˜์ด์ง€๋งˆ๋‹ค ํ•˜๋‚˜์”ฉ ๊ผญ ์จ์ฃผ๋Š” ๊ฒŒ ์ข‹์•„์š”. ๊ทธ๋ž˜์•ผ ๊ตฌ๊ธ€ ๊ฒ€์ƒ‰์ด ์ž˜ ๋˜๊ฑฐ๋“ ์š”.</h1>
    <h2>h2๋Š” ์†Œ์ œ๋ชฉ์ž…๋‹ˆ๋‹ค.</h2>
    <h3>h3~h6๋„ ๊ฐ์ž์˜ ์—ญํ• ์ด ์žˆ์ฃ . ๋น„์ค‘์€ ์ž‘์ง€๋งŒ..</h3>
    <hr>
    span ํƒœ๊ทธ์ž…๋‹ˆ๋‹ค: ํŠน์ • <span style="color:red">๊ธ€์ž</span>๋ฅผ ๊พธ๋ฐ€ ๋•Œ ์จ์š”
    <hr>
    a ํƒœ๊ทธ์ž…๋‹ˆ๋‹ค: <a href="http://naver.com/"> ํ•˜์ดํผ๋งํฌ </a>
    <hr>
    img ํƒœ๊ทธ์ž…๋‹ˆ๋‹ค: <img src="" />
    <hr>
    input ํƒœ๊ทธ์ž…๋‹ˆ๋‹ค: <input type="text" />
    <hr>
    button ํƒœ๊ทธ์ž…๋‹ˆ๋‹ค: <button> ๋ฒ„ํŠผ์ž…๋‹ˆ๋‹ค</button>
    <hr>
    textarea ํƒœ๊ทธ์ž…๋‹ˆ๋‹ค: <textarea>๋‚˜๋Š” ๋ฌด์—‡์ผ๊นŒ์š”?</textarea>
</body>

</html>

 

์ฝ”๋”ฉ์€ ์ ˆ๋Œ€ ์™ธ์›Œ์„œ ํ•˜๋Š” ๊ฒƒ์ด ์•„๋‹ˆ๋‹ค!

tag๋Š” ์™ธ์šฐ๋Š” ๊ฒƒ์ด ์•„๋‹Œ ๊ฐ€์ง€๊ณ  ์™€์„œ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ์ด๋‹ค!!!

โœ”๏ธ์ฐธ๊ณ  - ์ฝ”๋“œ ์ •๋ ฌ
์ฝ”๋“œ์˜ ์ •๋ ฌ์ด ์ œ๋Œ€๋กœ ๋˜์–ด์žˆ์ง€ ์•Š์œผ๋ฉด, ์ฝ”๋“œ์˜ ์ƒ๊น€์ƒˆ๋ฅผ ํŒŒ์•…ํ•  ์ˆ˜ ์—†์–ด ์˜ค๋ฅ˜๋ฅผ ํ•ด๊ฒฐํ•˜๊ธฐ๊ฐ€ ์–ด๋ ค์›Œ์ง„๋‹ค.
html์€ ์ค„ ๋งž์ถ”๊ธฐ๊ฐ€ ์ƒ๋ช…์ด๋‹ค. ๋Š˜ ๋ณด๊ธฐ ์‰ฌ์šด ํ˜•ํƒœ๋กœ ์“ฐ์—ฌ์žˆ์–ด์•ผ ํ•œ๋‹ค.

Format Document(๋ฌธ์„œ ์„œ์‹)
VS Code์—์„œ Shift + Alt + F ๋กœ ์ž๋™์ •๋ ฌ ๊ธฐ๋Šฅ์„ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋‹ค!!

 

CSS ๊ธฐ์ดˆ

HTML ๋ถ€๋ชจ์™€ ์ž์‹ ๊ตฌ์กฐ

HTML ํƒœ๊ทธ๋Š” ๋ˆ„๊ฐ€ ๋ˆ„๊ตฌ ์•ˆ์— ์žˆ๋Š๋ƒ๋ฅผ ์ดํ•ดํ•˜๋Š” ๊ฒƒ์ด ๊ฐ€์žฅ ์ค‘์š”ํ•˜๋‹ค. ๋‚˜๋ฅผ ๊ฐ์‹ธ๊ณ  ์žˆ๋Š” ํƒœ๊ทธ๊ฐ€ ๋ฐ”๋€Œ๋ฉด, ๊ทธ ์•ˆ์˜ ๋‚ด์šฉ๋ฌผ๋„ ๋ชจ๋‘ ์˜ํ–ฅ์„ ๋ฐ›๋Š”๋‹ค!

  • ๋นจ๊ฐ„์ƒ‰ div ์•ˆ์— ์ดˆ๋ก์ƒ‰/ํŒŒ๋ž€์ƒ‰ div๊ฐ€ ๋“ค์–ด์žˆ๋‹ค.
  • ๋นจ๊ฐ„์ƒ‰ div๋ฅผ ๊ฐ€์šด๋ฐ๋กœ ์˜ฎ๊ธฐ๋ฉด, ๋‚ด์šฉ๋ฌผ์ธ ์ดˆ๋ก/ํŒŒ๋ž‘ div๋„ ๋ชจ๋‘ ํ•จ๊ป˜ ์ด๋™ํ•œ๋‹ค!
    • ๋ฐ•์Šค๋ฅผ ์˜ฎ๊ธฐ๋ฉด ์•ˆ์˜ ๋‚ด์šฉ๋ฌผ๋„ ํ•จ๊ป˜ ์˜ฎ๊ฒจ์ง€๋Š” ๊ฒƒ๊ณผ ๊ฐ™์€ ์›๋ฆฌ์ด๋‹ค.
  • ๊ฐ™์€ ์›๋ฆฌ๋กœ ์ดˆ๋ก div์˜ ๊ธ€์”จ ์ƒ‰์„ ๋ฐ”๊พธ๋ฉด [๋‚˜๋Š” ๋ฒ„ํŠผ 1]์˜ ๊ธ€์”จ ์ƒ‰๋„ ๋ฐ”๋€๋‹ค!

CSS ๊ธฐ์ดˆ

<head>......</head> ์•ˆ์— <style>......</style>๋กœ ๊ณต๊ฐ„์„ ๋งŒ๋“ค์–ด ์ž‘์„ฑํ•œ๋‹ค.

  • ํด๋ž˜์Šค๋ฅผ ๊ฐ€๋ฆฌํ‚ฌ ๋•Œ๋Š” .ํด๋ž˜์Šค์ด๋ฆ„ { }๋ผ๊ณ  ์จ์ค˜์•ผ ํ•œ๋‹ค!
  • ๋ฐฐ๊ฒฝ ๊ด€๋ จ
    • background-color
    • background-image
    • background-size
  • ์‚ฌ์ด์ฆˆ
    • width
    • height
  • ํฐํŠธ
    • font-size
    • font-weight
    • font-family
    • color
  • ๊ฐ„๊ฒฉ
    • margin
    • padding

๊ผญ ๊ธฐ์–ตํ•  ๊ฒƒ!

๋ฐ•์Šค๋Š” div(๊ตฌ์—ญ)์ด๋‹ค!

  • margin๊ณผ padding
    • margin์€ ๋ฐ”๊นฅ ์—ฌ๋ฐฑ, padding์€ ์•ˆ์ชฝ ์—ฌ๋ฐฑ
    • div์— ์ƒ‰๊น”์„ ๋„ฃ๊ณ , ์ง์ ‘ ์‚ฌ์šฉํ•ด์„œ ์ฐจ์ด๋ฅผ ๋น„๊ตํ•œ๋‹ค!
  • ๋ฐ•์Šค๋ฅผ ๊ฐ€์šด๋ฐ๋กœ ๊ฐ€์ง€๊ณ  ์˜ค๊ธฐ
    • ๋ฐ•์Šค๋ฅผ ์”Œ์šฐ๊ณ  ์–‘์ชฝ ์—ฌ๋ฐฑ ์กฐ์ •ํ•˜๊ธฐ
    • ์ „์ฒด div๋ฅผ ๋งŒ๋“ค๊ณ  width๋ฅผ ์„ค์ •ํ•œ ํ›„ margin : auto๋ฅผ ์‚ฌ์šฉํ•œ๋‹ค!

 

๊ตฌ๊ธ€ ํฐํŠธ

ํฌ๋กฌ ๋ธŒ๋ผ์šฐ์ €์—์„œ google fonts๋ฅผ ๊ฒ€์ƒ‰ํ•œ๋‹ค.

https://fonts.google.com/?subset=korean

 

Filters๋ฅผ ํด๋ฆญํ•˜๊ณ  language๋ฅผ korean์œผ๋กœ ์„ค์ •ํ•œ๋‹ค.

์›ํ•˜๋Š” ํฐํŠธ์˜ @import ๋ถ€๋ถ„์„ <style></style> ํƒœ๊ทธ ์•ˆ์— ๋ณต์‚ฌ ๋ถ™์—ฌ ๋„ฃ๊ธฐ ํ•œ๋‹ค.

CSS class ํƒญ์˜ ์ฝ”๋“œ๋ฅผ ๋ณต์‚ฌํ•œ ํ›„, ์ „์ฒด ์ ์šฉ(* { })์„ css์— ๋„ฃ์œผ๋ฉด ์™„์„ฑ!

 

Bootstrap

์˜ˆ์œ CSS๋ฅผ ๋ฏธ๋ฆฌ ๋ชจ์•„๋‘” ๊ฒƒ!

  • CSS๋ฅผ ๋‹ค๋ฃฐ ์ค„ ์•„๋Š” ๊ฒƒ๊ณผ ๋ฏธ์  ๊ฐ๊ฐ์„ ๋ฐœํœ˜ํ•˜์—ฌ ์˜ˆ์˜๊ฒŒ ๋งŒ๋“œ๋Š” ๊ฒƒ์€ ๋‹ค๋ฅธ ์ด์•ผ๊ธฐ์ด๋‹ค.
    ํ˜„์—…์—์„œ๋Š” ๋ฏธ๋ฆฌ ์™„์„ฑ๋œ ๋ถ€ํŠธ์ŠคํŠธ๋žฉ์„ ๊ฐ€์ ธ๋‹ค ์“ฐ๋Š” ๊ฒฝ์šฐ๊ฐ€ ๋งŽ๋‹ค!