GiantStepDEV
article thumbnail

๋ถ€ํŠธ์ŠคํŠธ๋žฉ?

  • Twitter์—์„œ ๊ฐœ๋ฐœํ•œ HTML, CSS, JavaScript๋กœ ์ด๋ฃจ์–ด์ง„ ์˜คํ”ˆ ์†Œ์Šค ํ”„๋ ˆ์ž„์›Œํฌ ์ž…๋‹ˆ๋‹ค.
  • ์›น ํŽ˜์ด์ง€ ๋ ˆ์ด์•„์›ƒ, ๋ฒ„ํŠผ, ํผ, ํƒ€์ดํฌ๊ทธ๋ž˜ํ”ผ ๋“ฑ์˜ ๋‹ค์–‘ํ•œ UI ์ปดํฌ๋„ŒํŠธ๋ฅผ ์‰ฝ๊ฒŒ ๊ตฌํ˜„ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
  • ๋ฐ˜์‘ํ˜• ์›น ๋””์ž์ธ์„ ์ง€์›ํ•˜๋ฏ€๋กœ ๋ชจ๋ฐ”์ผ ๊ธฐ๊ธฐ์—์„œ๋„ ์›น ํŽ˜์ด์ง€๊ฐ€ ์ ์ ˆํ•˜๊ฒŒ ํ‘œ์‹œ๋ฉ๋‹ˆ๋‹ค.
  • ์˜คํ”ˆ ์†Œ์Šค๋กœ ๋ฐฐํฌ๋˜์–ด ์žˆ์œผ๋ฉฐ, ๋ฌด๋ฃŒ๋กœ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
  • ๋ถ€ํŠธ์ŠคํŠธ๋žฉ์„ ์ด์šฉํ•˜๋ฉด ๋น ๋ฅด๊ณ  ์‰ฝ๊ฒŒ ๊น”๋”ํ•˜๊ณ  ๋ชจ๋˜ํ•œ UI๋ฅผ ๋งŒ๋“ค ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

ํŠน์ง•

  1. ๋ฐ˜์‘ํ˜• ์›น ๋””์ž์ธ ์ง€์› : ๋ชจ๋ฐ”์ผ ๊ธฐ๊ธฐ์—์„œ๋„ ์ ์ ˆํ•˜๊ฒŒ ์›น ํŽ˜์ด์ง€๊ฐ€ ํ‘œ์‹œ๋˜๋„๋ก ๋ฐ˜์‘ํ˜• ์›น ๋””์ž์ธ์„ ์ง€์›ํ•ฉ๋‹ˆ๋‹ค.
  2. ๋‹ค์–‘ํ•œ UI ์ปดํฌ๋„ŒํŠธ : ๋ ˆ์ด์•„์›ƒ, ๋ฒ„ํŠผ, ํผ, ํƒ€์ดํฌ๊ทธ๋ž˜ํ”ผ ๋“ฑ ๋‹ค์–‘ํ•œ UI ์ปดํฌ๋„ŒํŠธ๋ฅผ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค.
  3. ์‰ฌ์šด ์‚ฌ์šฉ์„ฑ : ๋ฌธ์„œ์™€ ์˜ˆ์ œ ์ฝ”๋“œ๊ฐ€ ํ’๋ถ€ํ•˜๊ฒŒ ์ œ๊ณต๋˜์–ด, ์‰ฝ๊ฒŒ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
  4. ํฌ๋กœ์Šค ๋ธŒ๋ผ์šฐ์ง• : ๋‹ค์–‘ํ•œ ๋ธŒ๋ผ์šฐ์ €์—์„œ ์ผ๊ด€๋œ ๋””์ž์ธ์„ ์ œ๊ณตํ•˜์—ฌ ํฌ๋กœ์Šค ๋ธŒ๋ผ์šฐ์ง•์„ ์ง€์›ํ•ฉ๋‹ˆ๋‹ค.
  5. ๋‹ค์–‘ํ•œ ํ…Œ๋งˆ : ๋‹ค์–‘ํ•œ ํ…Œ๋งˆ๋ฅผ ์ œ๊ณตํ•˜์—ฌ, ์‚ฌ์šฉ์ž๊ฐ€ ์ ์ ˆํ•œ ๋””์ž์ธ์„ ์„ ํƒํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
  6. ์˜คํ”ˆ ์†Œ์Šค : ์˜คํ”ˆ ์†Œ์Šค๋กœ ๋ฐฐํฌ๋˜์–ด ์žˆ์œผ๋ฉฐ, ๋ฌด๋ฃŒ๋กœ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
  7. ์ปค์Šคํ„ฐ๋งˆ์ด์ง• ๊ฐ€๋Šฅ : ์‚ฌ์šฉ์ž์˜ ์ทจํ–ฅ์— ๋งž๊ฒŒ ์ปดํฌ๋„ŒํŠธ๋ฅผ ์ˆ˜์ •ํ•˜๊ฑฐ๋‚˜, ํ•„์š”ํ•œ ์ปดํฌ๋„ŒํŠธ๋ฅผ ์ถ”๊ฐ€ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
  8. ๊ฒ€์ƒ‰ ์—”์ง„ ์ตœ์ ํ™”(SEO) ์ง€์› : ๊ฒ€์ƒ‰ ์—”์ง„ ์ตœ์ ํ™”๋ฅผ ๊ณ ๋ คํ•˜์—ฌ ์ฝ”๋“œ๋ฅผ ์ž‘์„ฑํ•˜์˜€์Šต๋‹ˆ๋‹ค.

https://getbootstrap.kr/

 

Bootstrap

๊ฐ•๋ ฅํ•˜๊ณ  ํ™•์žฅ ๊ฐ€๋Šฅํ•˜๋ฉฐ ๊ธฐ๋Šฅ์ด ํ’๋ถ€ํ•œ ํ”„๋ก ํŠธ์—”๋“œ ํˆดํ‚ท. Sass๋กœ ๋นŒ๋“œ ๋ฐ ์ปค์Šคํ„ฐ๋งˆ์ด์ง•ํ•˜๊ณ , ์‚ฌ์ „ ๋นŒ๋“œ๋œ ๊ทธ๋ฆฌ๋“œ ์‹œ์Šคํ…œ ๋ฐ ๊ตฌ์„ฑ ์š”์†Œ๋ฅผ ํ™œ์šฉํ•˜๊ณ , ๊ฐ•๋ ฅํ•œ JavaScript ํ”Œ๋Ÿฌ๊ทธ์ธ์œผ๋กœ ํ”„๋กœ์ ํŠธ์— ์ƒ๊ธฐ

getbootstrap.kr

์ œ๊ณต ์š”์†Œ

  1. Grid System: ์œ ์—ฐํ•œ ๋ ˆ์ด์•„์›ƒ์„ ๋งŒ๋“ค๊ธฐ ์œ„ํ•œ ๊ทธ๋ฆฌ๋“œ ์‹œ์Šคํ…œ์„ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค. ์ด๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์‰ฝ๊ฒŒ ๋‹ค์–‘ํ•œ ๋””๋ฐ”์ด์Šค์— ๋Œ€์‘ํ•˜๋Š” ๋ฐ˜์‘ํ˜• ์›น์‚ฌ์ดํŠธ๋ฅผ ๊ตฌ์ถ•ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
  2. Typography: ๋‹ค์–‘ํ•œ ๊ธ€๊ผด, ํ…์ŠคํŠธ ์Šคํƒ€์ผ ๋ฐ ํ…์ŠคํŠธ ํšจ๊ณผ๋ฅผ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค.
  3. Forms: ํผ ์š”์†Œ๋ฅผ ๋””์ž์ธํ•˜๋Š”๋ฐ ๋„์›€์ด ๋˜๋Š” ํด๋ž˜์Šค์™€ ์Šคํƒ€์ผ์„ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค.
  4. Buttons: ๋ฒ„ํŠผ์„ ๋งŒ๋“œ๋Š” ๋ฐ ์‚ฌ์šฉ๋˜๋Š” ํด๋ž˜์Šค์™€ ์Šคํƒ€์ผ์„ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค.
  5. Navigation: ๋‹ค์–‘ํ•œ ํƒ์ƒ‰ ๋ฉ”๋‰ด๋ฅผ ๋””์ž์ธํ•˜๋Š”๋ฐ ๋„์›€์ด ๋˜๋Š” ํด๋ž˜์Šค์™€ ์Šคํƒ€์ผ์„ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค.
  6. Modal: ๋ชจ๋‹ฌ ์ฐฝ์„ ๋””์ž์ธํ•˜๋Š”๋ฐ ์‚ฌ์šฉ๋˜๋Š” ํด๋ž˜์Šค์™€ ์Šคํƒ€์ผ์„ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค.
  7. Alerts: ๋‹ค์–‘ํ•œ ๊ฒฝ๊ณ  ๋ฉ”์‹œ์ง€๋ฅผ ๋””์ž์ธํ•˜๋Š”๋ฐ ์‚ฌ์šฉ๋˜๋Š” ํด๋ž˜์Šค์™€ ์Šคํƒ€์ผ์„ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค.
  8. Icons: ๋‹ค์–‘ํ•œ ์•„์ด์ฝ˜ ํฐํŠธ์™€ ์•„์ด์ฝ˜ ํด๋ž˜์Šค๋ฅผ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค.
  9. Images: ์ด๋ฏธ์ง€ ํฌ๊ธฐ ์กฐ์ •, ์›ํ˜• ์ด๋ฏธ์ง€, ์ธ๋„ค์ผ ๋“ฑ์˜ ํด๋ž˜์Šค์™€ ์Šคํƒ€์ผ์„ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค.
  10. JavaScript plugins: ์Šฌ๋ผ์ด๋“œ์‡ผ, ๋ชจ๋‹ฌ ์ฐฝ, ๋“œ๋กญ๋‹ค์šด ๋ฉ”๋‰ด ๋“ฑ๊ณผ ๊ฐ™์€ ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ ํ”Œ๋Ÿฌ๊ทธ์ธ์„ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค.

์‚ฌ์šฉ ๋ฐฉ๋ฒ•

CSS ์ ์šฉ

<!-- CSS only -->
<link href="https://cdn.jsdelivr.net/npm/bootstrap@5.2.3/dist/css/bootstrap.min.css" rel="stylesheet" integrity="sha384-rbsA2VBKQhggwzxH7pPCaAqO46MgnOM80zW1RWuH61DGLwZJEdK2Kadq2F9CUG65" crossorigin="anonymous">

JavaScript ์ ์šฉ

<!-- JavaScript Bundle with Popper -->
<script src="https://cdn.jsdelivr.net/npm/bootstrap@5.2.3/dist/js/bootstrap.bundle.min.js" integrity="sha384-kenU1KFdBIe4zVF0s0G1M5b4hcpxyD9F7jL+jjXkk+Q2h455rYXK/7HAuoJl+0I4" crossorigin="anonymous"></script>

๋น ๋ฅธ ์‹œ์ž‘

<!doctype html>
<html lang="en">
  <head>
    <meta charset="utf-8">
    <meta name="viewport" content="width=device-width, initial-scale=1">
    <title>Bootstrap demo</title>
    <link href="https://cdn.jsdelivr.net/npm/bootstrap@5.2.3/dist/css/bootstrap.min.css" rel="stylesheet" integrity="sha384-rbsA2VBKQhggwzxH7pPCaAqO46MgnOM80zW1RWuH61DGLwZJEdK2Kadq2F9CUG65" crossorigin="anonymous">
  </head>
  <body>
    <h1>Hello, world!</h1>
    <script src="https://cdn.jsdelivr.net/npm/bootstrap@5.2.3/dist/js/bootstrap.bundle.min.js" integrity="sha384-kenU1KFdBIe4zVF0s0G1M5b4hcpxyD9F7jL+jjXkk+Q2h455rYXK/7HAuoJl+0I4" crossorigin="anonymous"></script>
  </body>
</html>

ํšŒ์›๊ฐ€์ž… ํŽ˜์ด์ง€ ๊ฐ„๋‹จ ์˜ˆ์ œ

<!DOCTYPE html>
<html>
<head>
	<title>ํšŒ์›๊ฐ€์ž… ํŽ˜์ด์ง€</title>
	<!-- ๋ถ€ํŠธ์ŠคํŠธ๋žฉ CDN ์ถ”๊ฐ€ํ•˜๊ธฐ -->
    <!-- CSS only -->
<link href="https://cdn.jsdelivr.net/npm/bootstrap@5.2.3/dist/css/bootstrap.min.css" rel="stylesheet" integrity="sha384-rbsA2VBKQhggwzxH7pPCaAqO46MgnOM80zW1RWuH61DGLwZJEdK2Kadq2F9CUG65" crossorigin="anonymous">
</head>
<body>
	<div class="container">
		<h1>ํšŒ์›๊ฐ€์ž…</h1>
		<form>
			<div class="form-group">
				<label for="inputName">์ด๋ฆ„</label>
				<input type="text" class="form-control" id="inputName" placeholder="์ด๋ฆ„์„ ์ž…๋ ฅํ•˜์„ธ์š”">
			</div>
			<div class="form-group">
				<label for="inputEmail">์ด๋ฉ”์ผ</label>
				<input type="email" class="form-control" id="inputEmail" placeholder="์ด๋ฉ”์ผ์„ ์ž…๋ ฅํ•˜์„ธ์š”">
			</div>
			<div class="form-group">
				<label for="inputPassword">๋น„๋ฐ€๋ฒˆํ˜ธ</label>
				<input type="password" class="form-control" id="inputPassword" placeholder="๋น„๋ฐ€๋ฒˆํ˜ธ๋ฅผ ์ž…๋ ฅํ•˜์„ธ์š”">
			</div>
			<div class="form-group">
				<label for="inputPassword2">๋น„๋ฐ€๋ฒˆํ˜ธ ํ™•์ธ</label>
				<input type="password" class="form-control" id="inputPassword2" placeholder="๋น„๋ฐ€๋ฒˆํ˜ธ๋ฅผ ๋‹ค์‹œ ์ž…๋ ฅํ•˜์„ธ์š”">
			</div>
            <br>
			<button type="submit" class="btn btn-primary">ํšŒ์›๊ฐ€์ž…</button>
		</form>
	</div>
    <!-- JavaScript Bundle with Popper -->
<script src="https://cdn.jsdelivr.net/npm/bootstrap@5.2.3/dist/js/bootstrap.bundle.min.js" 
integrity="sha384-kenU1KFdBIe4zVF0s0G1M5b4hcpxyD9F7jL+jjXkk+Q2h455rYXK/7HAuoJl+0I4" 
crossorigin="anonymous"></script>
</body>
</html>
profile

GiantStepDEV

@kongmi

ํฌ์ŠคํŒ…์ด ์ข‹์•˜๋‹ค๋ฉด "์ข‹์•„์š”โค๏ธ" ๋˜๋Š” "๊ตฌ๋…๐Ÿ‘๐Ÿป" ํ•ด์ฃผ์„ธ์š”!