๐Ÿ  Public/web

์›น ์‚ฌ์ดํŠธ ๊ฐœ๋ฐœ_๊ธฐ์ดˆ ๋ฌธ๋ฒ• ์ •๋ฆฌ

SONOTREE 2024. 9. 1. 12:31

1.HTML

1.1. HTML์ด๋ž€

HTML๋กœ ์›น ์‚ฌ์ดํŠธ์˜ ๊ตฌ์กฐ๋ฅผ ์ •์˜ -> CSS๋กœ ์˜ˆ์˜๊ฒŒ ๋””์ž์ธ ํ•œ ๋’ค -> JS๋กœ ๋™์ž‘์‹œํ‚จ๋‹ค -> ์›น ์‚ฌ์ดํŠธ/์›น ๋ฌธ์„œ ์™„์„ฑ 

 

Hyper(์ตœ๊ณ ์˜) Text Markup Language์˜ ์•ฝ์–ด๋กœ, ๋งˆํฌ์—… ์–ธ์–ด์ด๋‹ค. ๋งˆํฌ์—… ์–ธ์–ด๋ž€, ํƒœ๊ทธ ๋“ฑ์„ ์ด์šฉํ•˜์—ฌ ๋ฌธ์„œ๋‚˜ ๋ฐ์ดํ„ฐ์˜ ๊ตฌ์กฐ๋ฅผ ๋ช…๊ธฐํ•˜๋Š” ์–ธ์–ด์˜ ํ•œ ๊ฐ€์ง€์ด๋‹ค. HTML์€ ์ฝ˜ํ…์ธ ์˜ ์„œ๋กœ ๋‹ค๋ฅธ ๋ถ€๋ถ„๋“ค์„ ์”Œ์šฐ๊ฑฐ๋‚˜ ๊ฐ์‹ธ์„œ ๋‹ค๋ฅธ ํ˜•์‹์œผ๋กœ ๋ณด์ด๊ฒŒ ํ•˜๊ฑฐ๋‚˜ ํŠน์ •ํ•œ ๋ฐฉ์‹์œผ๋กœ ๋™์ž‘ํ•˜๋„๋ก ํ•˜๋Š” ์ผ๋ จ์˜ ์š”์†Œ๋กœ ์ด๋ฃจ์–ด์ ธ์žˆ๋‹ค.

 

 

 

1.2. HTML์˜ ๊ตฌ์„ฑ ์š”์†Œ

-์—ฌ๋Š” ํƒœ๊ทธ(Opening tag): <[์š”์†Œ ์ด๋ฆ„]>์œผ๋กœ ๊ตฌ์„ฑ๋œ๋‹ค. ์ด๊ฒƒ์€ ์š”์†Œ๊ฐ€ ์‹œ์ž‘๋˜๋Š” ๊ณณ, ๋˜๋Š” ํšจ๊ณผ๋ฅผ ์‹œ์ž‘ํ•˜๋Š” ๊ณณ์ž„์„ ๋‚˜ํƒ€๋‚ธ๋‹ค.

-๋‹ซ๋Š” ํƒœ๊ทธ(Closing tag): </[์š”์†Œ ์ด๋ฆ„]>์œผ๋กœ ๊ตฌ์„ฑ๋œ๋‹ค. ์ด๊ฒƒ์€ ์š”์†Œ์˜ ๋์„ ๋‚˜ํƒ€๋‚ธ๋‹ค.

-์ฝ˜ํ…์ธ (Content): ์š”์†Œ์˜ ๋‚ด์šฉ(content)์ด๋‹ค.

-์š”์†Œ(Element): ์š”์†Œ๋Š” ์—ฌ๋Š” ํƒœ๊ทธ & ๋‹ซ๋Š” ํƒœ๊ทธ $ ์ฝ˜ํ…์ธ ๋กœ ์ด๋ฃจ์–ด์ง„๋‹ค.

-์†์„ฑ(Attribute):  ์†์„ฑ์€ ์‹ค์ œ ์ฝ˜ํ…์ธ ๋กœ ํ‘œ์‹œ๋˜๊ธธ ์›ํ•˜์ง€ ์•Š๋Š” ์ถ”๊ฐ€์ ์ธ ์ •๋ณด๋ฅผ ๋‹ด๋Š”๋‹ค. ์†์„ฑ์€ "์š”์†Œ ์ด๋ฆ„(๋˜๋Š” ์š”์†Œ๊ฐ€ ํ•˜๋‚˜ ์ด์ƒ ์†์„ฑ์„ ์ด๋ฏธ ๊ฐ€์ง€๊ณ  ์žˆ๋‹ค๋ฉด ์ด์ „ ์†์„ฑ)๊ณผ ์†์„ฑ ์‚ฌ์ด์— ๊ณต๋ฐฑ์ด ์žˆ์–ด์•ผ ํ•œ๋‹ค", ''์†์„ฑ ์ด๋ฆ„ ๋’ค์—๋Š” ๋“ฑํ˜ธ(=)๊ฐ€ ์™€์•ผ ํ•œ๋‹ค", "์†์„ฑ ๊ฐ’์˜ ์•ž ๋’ค์— ์—ด๊ณ  ๋‹ซ๋Š” ์ธ์šฉ ๋ถ€ํ˜ธ(""/'')๊ฐ€ ์žˆ์–ด์•ผ ํ•œ๋‹ค"์˜ ์กฐ๊ฑด์„ ํ•ญ์ƒ ์ถฉ์กฑํ•ด์•ผํ•œ๋‹ค.

 

์ฝ˜ํ…์ธ ๊ฐ€ ์—†๋Š” ํƒœ๊ทธ๋Š” ์ข…๋ฃŒ ํƒœ๊ทธ๋ฅผ ์ƒ๋žตํ•  ์ˆ˜ ์žˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด ๊ฐ€๋กœ์ค„์„ ๊ธ‹๋Š” <hr>ํƒœ๊ทธ๋Š” ์ฝ˜ํ…์ธ ๋ฅผ ์ ์„ ํ•„์š”๊ฐ€ ์—†๊ธฐ ๋•Œ๋ฌธ์— <hr> ๋‹จ๋…์œผ๋กœ ์‚ฌ์šฉํ•œ๋‹ค.

 

 

 

1.3. HTML ๋ฌธ์„œ ๊ธฐ๋ณธ ๊ตฌ์กฐ

<!DOCTYPE html> <!--ํ˜„์žฌ ๋ฌธ์„œ๊ฐ€ ์–ด๋–ค ๋ฒ„์ „์œผ๋กœ ์ž‘์„ฑ๋˜๋Š”์ง€ ํ‘œ์‹œ๋˜๋Š” ๊ณณ. ์—ฌ๊ธฐ๋Š” html5-->
<html lang="en"> <!--html ํƒœ๊ทธ, ํ˜„์žฌ ์›น ๋ฌธ์„œ๊ฐ€ ์–ด๋–ค ์–ธ์–ด๋กœ ์ž‘์„ฑ๋˜๋Š”์ง€ ์“ฐ๋Š” ๊ณณ-->
<head> <!--head ํƒœ๊ทธ. html ํƒœ๊ทธ์˜ ์ž์‹ ํƒœ๊ทธ. ๋ฌธ์„œ ๊ณต๊ฐ„์— ํ‘œ์‹œ๋˜๋Š” ๊ณณ์€ ์•„๋‹ˆ๋‹ค.-->
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>
<body> <!--#body ํƒœ๊ทธ ๋ฌธ์„œ ๊ณต๊ฐ„์— ํ‘œ์‹œ๋˜๋Š” ๊ณณ์ด๋‹ค-->     
</body>

 

 

 

1.4. HTML ํƒœ๊ทธ

1)Element

:<p>์ด ์ „์ฒด๊ฐ€ ์—˜๋ฆฌ๋จผํŠธ</p>์™€ ๊ฐ™์ด, ์‹œ์ž‘ํƒœ๊ทธ์™€ ์ข…๋ฃŒํƒœ๊ทธ๊นŒ์ง€ ์ „๋ถ€๋ฅผ ์—˜๋ฆฌ๋จผํŠธ๋ผ๊ณ  ํ•œ๋‹ค. </br>์€ ๋นˆ์š”์†Œ(empty element)๋ผ๊ณ  ํ•˜๋ฉฐ <hr/>์™€ <img/>๋“ฑ์ด ์žˆ๋‹ค.

 

2)ํƒœ๊ทธ

: "<"์™€ ">"๋กœ ๋ฌถ์ธ ์ผ๋ จ์˜ ๋ช…๋ น์–ด๋ฅผ ํƒœ๊ทธ๋ผ๊ณ  ํ•œ๋‹ค. ํƒœ๊ทธ๋Š” ์‹œ์ž‘ํƒœ๊ทธ, ์ข…๋ฃŒํƒœ๊ทธ. ๋นˆํƒœ๊ทธ 3๊ฐ€์ง€ ์ข…๋ฅ˜๊ฐ€ ์žˆ๋‹ค.

 

3)form ํƒœ๊ทธ

: ์ •๋ณด๋ฅผ ์ œ์ถœํ•˜๊ธฐ ์œ„ํ•œ ๋Œ€ํ™”ํ˜• ์ปจํŠธ๋กค์„ ํฌํ•จํ•˜๋Š” ๋ฌธ์„œ ๊ตฌํš์„ ๋‚˜ํƒ€๋‚ธ๋‹ค. ๋ฐ์ดํ„ฐ๋ฅผ ์ „๋‹ฌํ•  url์„ ์ ๋Š” action์†์„ฑ, ์–‘์‹์„ ์ œ์ถœํ•  ๋•Œ ์‚ฌ์šฉํ•˜๋Š” method์†์„ฑ๊ณผ ํ•จ๊ป˜ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋‹ค.

<form name="sform" action="https://search.naver.com/search.naver" method="get"">
<input name="query" type="text">
        <input type="submit" value="๊ฒ€์ƒ‰">
</form>

-> ์ž…๋ ฅ์ฐฝ์— "[๊ฒ€์ƒ‰์–ด]"์ž…๋ ฅ, "๊ฒ€์ƒ‰" ๋ฒ„ํŠผ์„ ๋ˆ„๋ฅด๋ฉด, ๋ธŒ๋ผ์šฐ์ €๋Š” <form>ํƒœ๊ทธ์˜"action="https://search.naver.com/search.naver"์„ ์ฐธ๊ณ ํ•˜๊ณ  , search.naver.com ์„œ๋ฒ„์— ์ ‘์†ํ•˜์—ฌ search.naver ์‘์šฉํ”„๋กœ๊ทธ๋žจ์˜ ์‹คํ–‰์„ ์š”๊ตฌํ•ด์•ผ ํ•œ๋‹ค๋Š” ๊ฒƒ์„ ํ™•์ธํ•œ๋‹ค.

->type ๋ถ€๋ถ„์„ ํ†ตํ•ด, ์—ฐ๊ฒฐ๋œ ํŒŒ์ผ์ด CSSํŒŒ์ผ์ž„์„ ์•Œ ์ˆ˜ ์žˆ๋‹ค

->rel์„ ๋ถ€๋ถ„์„ ํ†ตํ•ด, ์—ฐ๊ฒฐ๋œ ํŒŒ์ผ์ด ์Šคํƒ€์ผ์‹œํŠธ์ž„์„ ๋ช…์‹œํ•œ๋‹ค.

->href๋ฅผ ํ†ตํ•ด ์—ฐ๊ฒฐํ•  CSS ํŒŒ์ผ ๊ฒฝ๋กœ๋ฅผ ์ง€์ •ํ•œ๋‹ค. mystyle.css ํŒŒ์ผ๊ณผ ์—ฐ๊ฒฐํ•œ๋‹ค.

 

4)link ํƒœ๊ทธ

: ์™ธ๋ถ€์˜ ๋ฌธ์„œ๋ฅผ ์—ฐ๊ฒฐ์‹œํ‚ค๋Š” ํƒœ๊ทธ์ด๋‹ค. <link> ํƒœ๊ทธ๋Š” <head></head>์‚ฌ์ด์— ๋„ฃ๋Š”๋‹ค. HTML ํŽ˜์ด์ง€์— ๋Œ€ํ•œ ๋ฉ”ํƒ€ ๋ฐ์ดํ„ฐ๋ฅผ ๋‹ด๊ธฐ ์œ„ํ•œ ํƒœ๊ทธ์ด๋‹ค. ๋ฉ”๋‹ค ๋ฐ์ดํ„ฐ๋ž€, ๋ฐ์ดํ„ฐ๋ฅผ ์„ค๋ช…ํ•˜๋Š” ๋ฐ์ดํ„ฐ๋กœ ์˜ˆ๋ฅผ ๋“ค์–ด, ์‚ฌ์ง„์„ ์ฐ์€ ์žฅ์†Œ์™€ ์‹œ๊ฐ„์€ ์‚ฌ์ง„ ๋ฐ์ดํ„ฐ์˜ ๋ฉ”ํƒ€๋ฐ์ดํ„ฐ์ด๋‹ค.

 

5)script ํƒœ๊ทธ

: <script> ํƒœ๊ทธ๋Š” ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ ์ฝ”๋“œ๋ฅผ ์ž‘์„ฑํ•˜๊ธฐ ์œ„ํ•ด ์‚ฌ์šฉ๋˜๋Š” ํƒœ๊ทธ๋กœ, html ๋ฌธ์„œ ๋‚ด ๋Œ€๋ถ€๋ถ„์˜ ์œ„์น˜์— ์‚ฝ์ž… ๊ฐ€๋Šฅํ•˜๋‹ค.

 

6)input ํƒœ๊ทธ

: <input>ํƒœ๊ทธ๋Š” ํผ๋Œ€๊ทธ์˜ ์š”์†Œ๋กœ, ์‹ค์ œ ์‚ฌ์šฉ์ž๋กœ๋ถ€ํ„ฐ ์ž…๋ ฅ์„ ๋ฐ›๊ธฐ ์œ„ํ•œ ํƒœ๊ทธ์ด๋‹ค.

<form action =  "test.do" method = "get">
        ๊ฒ€์ƒ‰๋‚ด์šฉ <input type="text" name = "query">
        <input type="submit" value = "๊ฒ€์ƒ‰">

->์ด๋Ÿฐ ๋ฐฉ์‹์œผ๋กœ, ์‚ฌ์šฉ์ž๊ฐ€ ์ž…๋ ฅํ•˜๋Š” ํ…์ŠคํŠธ ๊ฐ’์„ ๋ฐ›์„ ์ˆ˜ ์žˆ๋‹ค.


2. css

2.1. css๋ž€?

Cascading Style Sheets์˜ ์•ฝ์–ด๋กœ, html ๋ฌธ์„œ๋ฅผ ๊พธ๋ฐ€๋•Œ ์‚ฌ์šฉํ•˜๋Š” ์Šคํƒ€์ผ์‹œํŠธ ์–ธ์–ด์ด๋‹ค. CSS๋Š” HTML๋กœ ๋ถ€ํ„ฐ ๋””์ž์ธ์ ์ธ ์š”์†Œ๋ฅผ ๋ถ„๋ฆฌํ•ด ์ •์˜ํ•  ์ˆ˜ ์žˆ๋‹ค. ์ž˜ ์ •์˜๋œ CSS๋Š” ์„œ๋กœ ๋‹ค๋ฅธ ์—ฌ๋Ÿฌ ์›นํŽ˜์ด์ง€์— ์ ์šฉํ•  ์ˆ˜ ์žˆ๋‹ค.

 

 

2.2. css ๊ธฐ๋ณธ ๋ฌธ๋ฒ•

CSS๋Š” '์„ ํƒ์ž(selector)'์™€ '์„ ์–ธ๋ถ€(declaration)'๋กœ ๊ตฌ์„ฑ๋œ๋‹ค. 

-์„ ํƒ์ž: ์Šคํƒ€์ผ์„ ์ง€์ •ํ•  HTML์š”์†Œ(ํƒœ๊ทธ, ์•„์ด๋”” ๋“ฑ)๋ฅผ ๊ฐ€๋ฆฌํ‚จ๋‹ค

-์„ ์–ธ๋ถ€: ์„ ์–ธ๋ถ€์—๋Š” CSS์†์„ฑ ์ด๋ฆ„๊ณผ ๊ฐ’์ด ํฌํ•จ๋œ๋‹ค. 

 

<CSS ๋ฌธ๋ฒ•>

์„ ํƒ์ž {์†์„ฑ๋ช…:์†์„ฑ๊ฐ’; ์†์„ฑ๋ช…:์†์„ฑ๊ฐ’....}

 

<์˜ˆ์‹œ>

/* h1ํƒœ๊ทธ์˜ ์ƒ‰์ƒ์„ ๋นจ๊ฐ„์ƒ‰์œผ๋กœ ํฌ๊ธฐ๋Š” 15px๋กœ ์ง€์ •ํ•ฉ๋‹ˆ๋‹ค.*/

h1 {color:red;

font-size:15px;

}

-> ์„ ํƒ์ž๋Š” ๋””์ž์ธ์„ ์ ์šฉํ•˜๊ณ ์žํ•˜๋Š” HTML ์š”์†Œ์ด๋‹ค. ๋”ฐ๋ผ์„œ ์„ ํƒ์ž ์ •์˜๊ฐ€ ์ค‘์š”ํ•˜๋‹ค.

-> ์„ ์–ธ๋ถ€๋Š” ์ฝœ๋ก (:)์œผ๋กœ ๊ตฌ๋ถ„๋˜์–ด์ง„ ๋‹ค์ˆ˜์˜ ํ•ญ๋ณต์„ ํฌํ•จํ•œ๋‹ค. ๊ฐ ์„ ์–ธ์€ ํ•ญ์ƒ ์„ธ๋ฏธ์ฝœ๋ก (;)์œผ๋กœ ๋๋‚˜๋ฉฐ, ์„ ์–ธ ๋ธ”๋ก์€ ์ค‘๊ด„ํ˜ธ({})๋กœ ๋ฌถ๋Š”๋‹ค.

 

 

2.3. CSS ์ ์šฉ ๋ฐฉ๋ฒ•

HTML ๋ฌธ์„œ์— CSS๋ฅผ ์ ์šฉํ•˜๋Š” ๋ฐฉ๋ฒ•์€ ๋‚ด๋ถ€ ์Šคํƒ€์ผ์‹œํŠธ, ์™ธ๋ถ€ ์Šคํƒ€์ผ์‹œํŠธ, ์ธ๋ผ์ธ ์Šคํƒ€์ผ์‹œํŠธ ๋“ฑ ์ด 3๊ฐ€์ง€์˜ ๋ฐฉ๋ฒ•์ด ์žˆ๋‹ค. ์Šคํƒ€์ผ ์‹œํŠธ(stylesheet)๋Š” ์›น ํŽ˜์ด์ง€๋‚˜ ๋ฌธ์„œ์˜ ๋ ˆ์ด์•„์›ƒ๊ณผ ๋””์ž์ธ์„ ์ œ์–ดํ•œ๋А ๋ฐ ์‚ฌ์šฉ๋˜๋Š” CSS ๊ทœ์น™ ์ง‘ํ•ฉ์„ ์˜๋ฏธํ•œ๋‹ค.

 

1) ๋‚ด๋ถ€ ์Šคํƒ€์ผ์‹œํŠธ

htmlํŒŒ์ผ์— ์Šคํƒ€์ผ์„ ๊ธฐ์ˆ ํ•˜๋Š” ๋ฐฉ๋ฒ•์œผ๋กœ, <head></head> ํƒœ๊ทธ ์•ˆ์— <style></style>ํƒœ๊ทธ ๋ถ€๋ถ„์— ์ž‘์„ฑํ•œ๋‹ค. html๊ณผ css๊ฐ€ ํ•œ ํŒŒ์ผ์— ์žˆ์œผ๋ฏ€๋กœ ์ž‘์—…์ด ์‰ฝ๊ณ  ๊ฐ„ํŽธํ•˜์ง€๋งŒ css์˜ ์žฌํ™œ์šฉ์ด ์•ˆ ๋˜๋Š” ๋ฌธ์ œ๊ฐ€ ์žˆ์–ด ํŠน๋ณ„ํ•œ ๊ฒฝ์šฐ๊ฐ€ ์•„๋‹ˆ๋ฉด ์™ธ๋ถ€ ์Šคํƒ€์ผ์‹œํŠธ๊ฐ€ ๊ถŒ์žฅ๋œ๋‹ค.

<head>
<style>
body {
    background-color: red;
}

h1 {
    color: maroon;
    margin-left: 40px;

</style>
</head>
<body>
    ...
</body>

 

 

2) ์™ธ๋ถ€ ์Šคํƒ€์ผ ์‹œํŠธ

css๋ฅผ ์ž‘์„ฑํ•˜๋Š” ๊ฐ€์žฅ ๊ธฐ๋ณธ์ ์ธ ๋ฐฉ๋ฒ•์ด๋‹ค. ๋ณ„๋„์˜ ํŒŒ์ผ์— css๋ฌธ์„œ๋ฅผ ์ž‘์„ฑํ•˜๊ณ  ํ•ด๋‹น css๋ฅผ ํ•„์š”๋กœ ํ•˜๋Š” html๋ฌธ์„œ์—์„œ ๋ถˆ๋Ÿฌ์™€ ์‚ฌ์šฉํ•˜๋Š” ํ˜•์‹์ด๋‹ค. ์ด๋•Œ css๋Š” ๋™์ผํ•œ ์„œ๋ฒ„์— ์žˆ์–ด๋„ ๋˜๊ณ , url์„ ํ†ตํ•ด ๋‹ค๋ฅธ ์„œ๋ฒ„์˜ css๋ฅผ ๋ถˆ๋Ÿฌ์˜ค๋Š” ๊ฒƒ๋„ ๊ฐ€๋Šฅํ•˜๋‹ค.

<!DOCTYPE html>
<html lang="en">
  <head>
    <meta charset="UTF-8" />
    <meta name="viewport" content="width=device-width, initial-scale=1.0" />
    <title>์™ธ๋ถ€ ์Šคํƒ€์ผ์‹œํŠธ</title>
    <link rel="stylesheet" href="external.css" />
  </head>
  <body>
    <h1>์ฝ”๋”ฉ</h1>
    <p class="article">์šฐ๋ฆฌ๋Š” ์ฝ”๋”ฉ์„ ๋ฐฐ์šฐ๊ณ  ์žˆ์–ด์š”!</p>
  </body>
</html>

 

[์™ธ๋ถ€์— ์ €์žฅ๋œexternal.css ์ฝ”๋“œ]

h1 {
  color: pink;
}
.article {
  border: 1px solid black;
  padding: 30px;
}

 

 

3) ์ธ๋ผ์ธ ์Šคํƒ€์ผ ์‹œํŠธ

html ํƒœ๊ทธ์— ํ•„์š”ํ•œ ๋””์ž์ธ ์†์„ฑ์„ ์ง์ ‘ ์ž‘์„ฑํ•˜๋Š” ํ˜•์‹์ด๋‹ค. ๊ทธ๋•Œ ๊ทธ๋•Œ ํ•„์š”ํ•œ ๋””์ž์ธ์„ ๋ฐ”๋กœ ์ ์šฉํ•  ์ˆ˜ ์žˆ๋‹ค๋Š” ํŽธ๋ฆฌํ•จ์ด ์žˆ์ง€๋งŒ ์ผ๊ด€๋œ ๋””์ž์ธ ์ฒด๊ณ„๋ฅผ ์œ ์ง€ํ•˜๋Š” ๋ฐ์—๋Š” ๋ฐฉํ•ด๊ฐ€ ๋˜๊ธฐ ๋•Œ๋ฌธ์— ๊ผญ ํ•„์š”ํ•œ ๊ฒฝ์šฐ๊ฐ€ ์•„๋‹ˆ๋ฉด ์‚ฌ์šฉํ•˜์ง€ ์•Š๋Š”๋‹ค.

<!DOCTYPE html>
<html lang="en">
  <head>
    <meta charset="UTF-8" />
    <meta name="viewport" content="width=device-width, initial-scale=1.0" />
    <title>Document</title>
  </head>
  <body>
    <h1 style="color: blue">์ œ๋ชฉ</h1>
    <div style="width: 100px; height: 1--px; border: 1px solid red">์•ˆ๋…•</div>
  </body>
</html>

 

 

2.4. CSS ์ถœ์ฒ˜ ์ ์šฉ ์šฐ์„ ์ˆœ์œ„

์‚ฌ์šฉ์ž !important > ์ œ์ž‘์ž !important > ์ œ์ž‘์ž > ์‚ฌ์šฉ์ž > ๋ธŒ๋ผ์šฐ์ €. ์ด๋•Œ ์ฃผ์˜ํ•ด์•ผ ํ•˜๋Š” ๊ฒƒ์€ important๋ฅผ ์‚ฌ์šฉํ•  ๋•Œ์ด๋‹ค. important๋Š” ํญํฌ(Cascading)์˜ ํ๋ฆ„์„ ๊นฐ ์ˆ˜ ์žˆ์œผ๋ฏ€๋กœ ์ฃผ์˜ํ•ด์„œ ์‚ฌ์šฉํ•ด์•ผํ•œ๋‹ค.

 

์˜ˆ๋ฅผ ๋“ค์–ด, aํƒœ๊ทธ๋กœ '๋„ค์ด๋ฒ„'๋ผ๋Š” ๋ฌธ์ž์—ด์„ ์ž‘์„ฑํ•˜๋ฉด, ์›นํŽ˜์ด์ง€์—์„œ๋Š” ํŒŒ๋ž€์ƒ‰ ๋ฐ‘์ค„์ด ์ณ์ง„ ํ˜•ํƒœ๋กœ ๋‚˜ํƒ€๋‚œ๋‹ค. ์ด๋Š” ๋ธŒ๋ผ์šฐ์ €๊ฐ€ ๊ธฐ๋ณธ์œผ๋กœ ์ œ๊ณตํ•˜๋Š” ๋ธŒ๋ผ์šฐ์ € ์Šคํƒ€์ผ์ด๋‹ค. ์ด๋•Œ css๋ฅผ ์‚ฌ์šฉํ•ด aํƒœ๊ทธ๋ฅผ 'a{color: red; text-decoration:none;}'๋กœ ๋ณ€๊ฒฝํ•˜๋ฉด ์›นํŽ˜์ด์ง€์— ๋นจ๊ฐ„ ๋ฐ‘์ค„์ด ์—†๋Š” ํ˜•ํƒœ๋กœ ๋ฐ”๋€Œ์–ด ๋‚˜ํƒ€๋‚œ๋‹ค. ์ด ๊ฒฝ์šฐ ๋ธŒ๋ผ์šฐ์ €๋ณด๋‹ค ์‚ฌ์šฉ์ž ์ง€์ •์ด ์šฐ์„ ์ˆœ์œ„์— ์žˆ๊ธฐ ๋•Œ๋ฌธ์— ์ด๋Ÿฐ ๊ฒฐ๊ณผ๊ฐ€ ๋‚˜ํƒ€๋‚œ๋‹ค.

 

HTML๋ฌธ์„œ๋Š” ์ œ์ž‘์ž ์Šคํƒ€์ผ์„ ์šฐ์„  ์ ์šฉํ•˜๊ณ  -> ๊ทธ ๋‹ค์Œ ๋ธŒ๋ผ์šฐ์ € ์‚ฌ์šฉ์ž ์Šคํƒ€์ผ -> ๋งˆ์ง€๋ง‰์œผ๋กœ ๋ธŒ๋ผ์šฐ์ € ๊ธฐ๋ณธ ์Šคํƒ€์ผ์„ ์ ์šฉํ•œ๋‹ค. ๊ฐ„๋‹จํžˆ ๋งํ•˜์ž๋ฉด, Cascadingdml ๋œป์ธ ํญํฌ์™€ ๊ฐ™์ด ์Šคํƒ€์ผ์ด ์šฐ์„ ์ˆœ์œ„์— ๋งž๊ฒŒ ์—ฐ์†์ ์œผ๋กœ ์ ์šฉ๋œ๋‹ค๋Š” ์˜๋ฏธ์ด๋‹ค.


3. JS(JavaScript)

3.1. JS๋ž€?

HTML๊ณผ CSS๋กœ ๊ตฌ์„ฑ๋œ ์›น ํŽ˜์ด์ง€๋ฅผ ๋™์ ์œผ๋กœ ๋งŒ๋“ค์–ด์ฃผ๋Š” ์–ธ์–ด. JS๋ฅผ ์ด์šฉํ•˜๋ฉด ์›น ํŽ˜์ด์ง€๊ฐ€ ํŠน์ • ์ƒํ™ฉ(event)์— ๋”ฐ๋ผ ๋™์ ์œผ๋กœ ์ž‘๋™ํ•  ์ˆ˜ ์žˆ๋„๋ก ๋งŒ๋“ค ์ˆ˜ ์žˆ๋‹ค.

 

JS์˜ ์‹œ์ž‘์€ ์ •์ ์ธ ์›น์„ ๋™์ ์œผ๋กœ ํ‘œํ˜„ํ•˜๊ธฐ ์œ„ํ•œ๊ฒƒ ์ด์—ˆ๋‹ค. ํ˜„์žฌ๋Š” ์›น ๋ธŒ๋ผ์šฐ์ €์—์„œ๋งŒ ๋™์ž‘ํ•˜๋Š” ๋ฐ˜์ชฝ์งœ๋ฆฌ ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์–ธ์–ด๊ฐ€ ์•„๋‹Œ, ํ”„๋ก ํŠธ์—”๋“œ ์˜์—ญ ๊ทธ๋ฆฌ๊ณ  ๋ฐฑ์—”๋“œ ์˜์—ญ๊นŒ์ง€ ์•„๋ฃจ๋ฅด๋Š” ์›น ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์–ธ์–ด์˜ ํ‘œ์ค€์œผ๋กœ ์ž๋ฆฌ์žก๊ณ  ์žˆ๋‹ค.

 

๋ธŒ๋ผ์šฐ์ €์˜ ์˜์—ญ์ด ์•„๋‹Œ ๋ฐฑ์—”๋“œ ์˜์—ญ์€ Java, Python ๊ทธ๋ฆฌ๊ณ  JS(Node.JS)๋“ฑ ์—ฌ๋Ÿฌ ์–ธ์–ด๋กœ ๊ตฌ์„ฑ๋  ์ˆ˜ ์žˆ์ง€๋งŒ, ํ”„๋ก ํŠธ์—”๋“œ ์˜์—ญ์€ ์•ž์—์„œ ์–ธ๊ธ‰ํ•œ ์„ธ ๊ฐ€์ง€ ์–ธ์–ด๋กœ ๊ตฌ์„ฑ๋œ๋‹ค.

 

 

3.2. JS ํŠน์ง•

์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ๋Š” ๊ฐ์ฑ„(Object) ๊ธฐ๋ฐ˜์˜ ์Šคํฌ๋ฆฝํŠธ ์–ธ์–ด์ด๋‹ค. ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ๋Š” ๋™์ ์ด๋ฉฐ, ํƒ€์ž…์„ ๋ช…์‹œํ•  ํ•„์š”๊ฐ€ ์—†๋Š” ์ธํ„ฐํ”„๋ฆฌํ„ฐ ์–ธ์–ด์ด๋‹ค. ๋˜ํ•œ ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ๋Š” ๊ฐ์ฒด ์ง€ํ–ฅํ˜• ํ”„๋กœ๊ทธ๋ž˜๋ฐ๊ณผ ํ•จ์ˆ˜ํ˜• ํ”„๋กœ๊ทธ๋ž˜๋ฐ์„ ๋ชจ๋‘ ํ‘œํ˜„ํ•  ์ˆ˜ ์žˆ๋‹ค.

 

 

3.3. JS ๊ธฐ๋ณธ ๋ฌธ๋ฒ•

3.3.1. ๋ณ€์ˆ˜

๊ฐ„๋‹จํ•œ ๋น„์œ ์™€ ํ•จ๊ป˜ ๋ณ€์ˆ˜๋ฅผ ์ดํ•ดํ•ด๋ณด์ž. ํ•œ ๋†๋ถ€๊ฐ€ ๋ฐญ์— ์‹ฌ์„ ์”จ์•—์„ ์—ฌ๋Ÿฌ ์ข…๋ฅ˜ ๊ตฌํ•ด์™”๊ณ , ์”จ์•—์„ ๊ตฌ๋ถ„ํ•  ๋•Œ ํŽธ์˜๋ฅผ ์œ„ํ•ด ๋ฐ”๊ตฌ๋‹ˆ ์—ฌ๋Ÿฌ๊ฐœ์— ์”จ์•—์„ ์ข…๋ฅ˜๋ณ„๋กœ ์ด๋ฆ„ํ‘œ๋ฅผ ๋ถ™์—ฌ ๋‚˜๋ˆ  ๋‹ด์œผ๋ฉด ์ข‹๊ฒ ๋‹ค๋Š” ์ƒ๊ฐ์„ ํ–ˆ๋‹ค.

 

์ด๋•Œ, ๋ณ€์ˆ˜๋Š” ๋ฐ์ดํ„ฐ๋ฅผ ๋‹ด๋Š” ๋ฐ”๊ตฌ๋‹ˆ, ๋ฐ”๊ตฌ๋‹ˆ์— ์ด๋ฆ„ํ‘œ๋ฅผ ๋‹ฌ์•„ ์ฃผ๋Š” ๊ฒƒ์€ ๋ณ€์ˆ˜์˜ ์„ ์–ธ, ๋ฐ”๊ตฌ๋‹ˆ์— ๋ฌผ๊ฑด์„ ๋‹ด๋Š” ๊ฒƒ์€ ํ• ๋‹น์ด๋ผ๊ณ  ์ƒ๊ฐํ•˜๋ฉด ๋œ๋‹ค. ์˜ˆ๋ฅผ๋“ค์–ด, ๋ฐ”๊ตฌ๋‹ˆ์— ๋‹น๊ทผ์ด๋ผ๋Š” ์ด๋ฆ„ํ‘œ๋ฅผ ๋ถ™์ด๊ณ  ๋‹น๊ทผ ์”จ์•—์„ ๋‹ด๋Š” ๊ฒƒ์€, ๋‹น๊ทผ์ด๋ผ๋Š” ๋ณ€์ˆ˜๋ฅผ ์„ ์–ธํ•˜๊ณ  ์ด ๋ณ€์ˆ˜์— ๋‹น๊ทผ ์”จ์•—์„ ํ• ๋‹นํ•œ ๊ฒƒ๊ณผ ๊ฐ™๋‹ค.

 

JS๋กœ ๋ณ€์ˆ˜๋ฅผ ์„ ์–ธํ•˜๊ณ  ํ• ๋‹นํ•  ๋•Œ๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์€ ๊ตฌ์กฐ๋ฅผ ๊ฐ€์ง„๋‹ค.

let [๋ณ€์ˆ˜์ด๋ฆ„] = [ํ• ๋‹นํ•  ๊ฐ’];

-> let์ด๋ผ๋Š” ํ‚ค์›Œ๋“œ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๋ณ€์ˆ˜ ๋ช…์„ ์ •ํ•œ๋‹ค.

-> ํ• ๋‹น ์—ฐ์‚ฐ์ž(=)์„ ์“ฐ๊ณ  ํ•ด๋‹น ๋ณ€์ˆ˜์— ํ• ๋‹นํ•  ๊ฐ’์„ ์ ๋Š”๋‹ค

 

3.3.2. ๋ณ€์ˆ˜๋ช… ์„ ์–ธ ๋ฐฉ๋ฒ•

-์Šค๋„ค์ดํฌ ์ผ€์ด์Šค(snake_case): ์–ธ๋”๋ฐ”๋ฅผ ๋„ฃ์–ด ๊ตฌ๋ถ„ํ•œ๋‹ค

-ํŒŒ์Šค์นผ ์ผ€์ด์Šค(PascalCase): ๋ชจ๋“  ๋‹จ์–ด๋ฅผ ๋Œ€๋ฌธ์ž๋กœ ์‹œ์ž‘ํ•ด ๊ตฌ๋ถ„ํ•œ๋‹ค

-์นด๋ฉœ ์ผ€์ด์Šค(camelCase): ๋‘ ๋ฒˆ์งธ ๋‹จ์–ด๋ถ€ํ„ฐ ๋Œ€๋ฌธ์ž๋กœ ์‹œ์ž‘ํ•ด ๊ตฌ๋ถ„ํ•œ๋‹ค

์ผ๋ฐ˜์ ์œผ๋กœ, Jacascript์—์„œ ์˜์–ด๋กœ ๋ณ€์ˆ˜๋ช…/ํ•จ์ˆ˜๋ช…์„ ์ž‘์„ฑํ•  ๋•Œ๋Š” camelCase๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ์ด ๊ด€๋ก€์ด๋‹ค.

 

 

3.3.3. ํ•จ์ˆ˜

ํ•จ์ˆ˜๋Š” ์ž…๋ ฅ์— ๋”ฐ๋ผ ๊ทธ์— ๊ฑธ๋งž๋Š” ์ž‘์—…์„ ํ•˜๋Š” ํ•˜๋‚˜์˜ ๋‹จ์œ„์ด๋‹ค. ํ•จ์ˆ˜๋ฅผ ํ‘œํ˜„ํ•  ๋•Œ๋Š” ํฌ๊ฒŒ ํ‘œํ˜„์‹๊ณผ ์„ ์–ธ์‹์œผ๋กœ ๋‚˜๋ˆŒ ์ˆ˜ ์žˆ๋‹ค.

-์„ ์–ธ์‹: function keyword๋ฅผ ์„ ๋‘๋กœ ํ•จ์ˆ˜๋ฅผ ์ž‘์„ฑํ•œ๋‹ค

-ํ‘œํ˜„์‹: ๋ณ€์ˆ˜์— ํ• ๋‹นํ•˜๋Š” ๊ฒƒ์ฒ˜๋Ÿผ, ํ•จ์ˆ˜ ์ด๋ฆ„์„ ๋ณ€์ˆ˜์— ํ• ๋‹นํ•˜๊ณ  ํ•จ์ˆ˜๋ฅผ ์ž‘์„ฑํ•œ๋‹ค. ์˜ˆ, let name = function(parameter){...}

 

 

3.3.4. ํ•จ์ˆ˜์˜ ๊ตฌ์กฐ

function name(parameter) {}

->function ํ‚ค์›Œ๋“œ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ํ•จ์ˆ˜๋ฅผ ๋งŒ๋“ ๋‹ค

->name: ํ•จ์ˆ˜๋ฅผ ํ˜ธ์ถœํ•  ๋•Œ ์‚ฌ์šฉํ•  ์ด๋ฆ„

->parameter(๋งค๊ฐœ๋ณ€์ˆ˜): ํ•จ์ˆ˜์— ํ•„์š”ํ•œ ๋ณ€์ˆ˜๊ฐ€ ์žˆ๋‹ค๋ฉด ์—ฌ๊ธฐ์— ๋„ฃ๋Š”๋‹ค

->body: ํ•จ์ˆ˜๊ฐ€ ํ˜ธ์ถœ๋˜๋ฉด ์‹คํ–‰ํ•  ์ฝ”๋“œ๊ฐ€ ๋“ค์–ด์žˆ๋Š” ๊ณณ

 

๊ทธ๋ฆฌ๊ณ  ํ•จ์ˆ˜๋ฅผ ๋งŒ๋“ค ๋•Œ, ํ•จ์ˆ˜ ์•ˆ์— return ํ‚ค์›Œ๋“œ๊ฐ€ ์žˆ์–ด์•ผ ๊ฐ’์ด ๋ฐ˜ํ™˜๋œ๋‹ค. ํ•จ์ˆ˜๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์›ํ•˜๋Š” ๊ฐ’์„ ์–ป๊ณ  ์‹ถ๋‹ค๋ฉด ๊ผญ ํ•จ์ˆ˜ ์•ˆ์— return ํ‚ค์›Œ๋“œ๋ฅผ ์ž‘์„ฑํ•˜์ž.

 

 

3.4. var, let, const ์ฐจ์ด์ 

JavaScript์—์„œ ์‚ฌ์šฉ๋˜๋Š” ๋ณ€์ˆ˜ ์„ ์–ธ ๋ฐฉ์‹์—๋Š” ์„ธ๊ฐ€์ง€๊ฐ€ ์žˆ๋‹ค. varletconst์ด๋‹ค. var์€ ๋น„๊ต์  ์˜ค๋ž˜์ „๋ถ€ํ„ฐ ์‚ฌ์šฉ๋˜์–ด ์™”์ง€๋งŒ, ํ˜„์žฌ๋Š” ์ž˜ ์‚ฌ์šฉ๋˜์ง€ ์•Š๋Š” ๋ณ€์ˆ˜ ์„ ์–ธ์‹์ด๊ณ , ์ฃผ๋กœ let๊ณผ cont๊ฐ€ ์‚ฌ์šฉ๋œ๋‹ค.

 

 

3.4.1. ์ค‘๋ณต ์„ ์–ธ๊ณผ ์žฌํ• ๋‹น

var์€ ์ค‘๋ณต ์„ ์–ธ๊ณผ ์žฌํ• ๋‹น ๋ชจ๋‘ ๊ฐ€๋Šฅํ•˜๋‹ค.

var a =5;
console.log(a) //5

var a =10;
console.log(a) //10

 

 

let์€ ์ค‘๋ณต ์„ ์–ธ์€ ํ—ˆ์šฉํ•˜์ง€์•Š๊ณ , ์žฌํ• ๋‹น์€ ๊ฐ€๋Šฅํ•˜๋‹ค.

//์ค‘๋ณต ์„ ์–ธ์€ ๋ถˆ๊ฐ€๋Šฅํ•˜๋‹ค
let a =5;
let a=10;
cnosole.log(a); // SyntaxError: Identifier 'a' has already been declared

//์žฌํ• ๋‹น์€ ๊ฐ€๋Šฅํ•˜๋‹ค
let a =5;
console.log(a); //5

a= 10;
console.log(a); //10

 

 

cont๋Š” ์ค‘๋ณต ์„ ์–ธ์„ ํ—ˆ์šฉํ•˜์ง€ ์•Š๊ณ , ์žฌํ• ๋‹น๋„ ๋ถˆ๊ฐ€๋Šฅํ•˜๋‹ค. ์™œ๋ƒ๋ฉด const๋Š” ์ƒ์ˆ˜๋ฅผ ์„ ์–ธํ•˜๋Š” ํ‚ค์›Œ๋“œ์ด๊ธฐ ๋•Œ๋ฌธ์ด๋‹ค. ์ƒ์ˆ˜๋ž€, ํ•œ๋ฒˆ ๊ฐ’์ด ์ •ํ•ด์ง€๋ฉด ํ”„๋กœ๊ทธ๋žจ์˜ ๋‹ค๋ฅธ ๋ถ€๋ถ„์—์„œ ๋ณ€๊ฒฝ๋˜์ง€ ์•Š๋Š” ๊ฐ’์ด๋‹ค.

//์ค‘๋ณต ์„ ์–ธ์€ ํ—ˆ์šฉ๋˜์ง€ ์•Š๋Š”๋‹ค
const a = 5;
const a = 10;
cnosole.log(a); // SyntaxError: Identifier 'a' has already been declared

//์žฌํ• ๋‹น๋„ ๋ถˆ๊ฐ€๋Šฅํ•˜๋‹ค
const a = 5;
console.log(a); // 5

a = 10;
console.log(a); // TypeError: Assignment to constant variable.

 

 

3.4.2. ์Šค์ฝ”ํ”„ ๋ฒ”์œ„

var์€ ํ•จ์ˆ˜ ๋‹จ์œ„ ์Šค์ฝ”ํ”„(function-level scope)์ด๋‹ค. var ๋ณ€์ˆ˜๊ฐ€ ์„ ์–ธ๋œ ํ•จ์ˆ˜ ๋‚ด๋ถ€์˜ ์–ด๋””์„œ๋“  ์ฐธ์กฐ๊ฐ€ ๊ฐ€๋Šฅํ•˜์ง€๋งŒ, ์™ธ๋ถ€๋กœ๋Š” ์ฐธ์กฐ๊ฐ€ ๋ถˆ๊ฐ€๋Šฅํ•˜๋‹ค. ๋˜ํ•œ ํ•จ์ˆ˜ ๋‚ด๋ถ€์—์„œ ์„ ์–ธ๋œ var์€ ์ง€์—ญ๋ณ€์ˆ˜๋กœ ๊ฐ„์ฃผํ•˜์ง€๋งŒ, ํ•จ์ˆ˜ ์™ธ๋ถ€์—์„œ var๊ฐ€ ์„ ์–ธ๋˜์—ˆ๋‹ค๋ฉด ์ „์—ญ๋ณ€์ˆ˜๋กœ ๊ฐ„์ฃผํ•œ๋‹ค.

function hello(){
    var a = 10;
    console.log(a);
}

hello(); // 10


console.log(a);  //ReferenceError: a is not defined

 

 

let๊ณผ const๋Š” ๋ธ”๋ก ๋‹จ์œ„ ์Šค์ฝ”ํ”„(block-level scope)์ด๋‹ค. { } ๋ธ”๋ก ๋‚ด๋ถ€์—์„œ ์„ ์–ธ๋œ let, const ๋ณ€์ˆ˜๋Š” ์™ธ๋ถ€์—์„œ ์ฐธ์กฐ๋˜์ง€ ์•Š๋Š”๋‹ค.

function hello() {
let a = 5;
    console.log(a); // 5
}


console.log(a); // ReferenceError: a is not defined

 

 

3.4.3. ํ˜ธ์ด์ŠคํŒ…

JS์—์„œ ํ˜ธ์ด์ŠคํŒ…(hoisting)์ด๋ž€, ์ธํ„ฐํ”„๋ฆฌํ„ฐ๊ฐ€ ๋ณ€์ˆ˜์™€ ํ•จ์ˆ˜์˜ ๋ฉ”๋ชจ๋ฆฌ ๊ณต๊ฐ„์„ ์„ ์–ธ ์ „์— ๋ฏธ๋ฆฌ ํ• ๋‹นํ•˜๋Š” ๊ฒƒ์„ ์˜๋ฏธํ•œ๋‹ค. ๋‹จ์ˆœํ•˜๊ฒŒ ์„ค๋ช…ํ•˜์ž๋ฉด, ๋‹จ์–ด ๋œป ์ฒ˜๋Ÿผ ์Šคํฌ๋ฆฝํŠธ ๋‚ด ๋ณ€์ˆ˜์™€ ํ•จ์ˆ˜์˜ ์„ ์–ธ ์ˆœ์„œ์— ์ƒ๊ด€ ์—†์ด ์ˆœ์„œ๊ฐ€ ๋Œ์–ด์˜ฌ๋ ค์ง„ ๋“ฏํ•œ ํ˜„์ƒ์ด๋‹ค. ๋ฌผ๋ฆฌ์ ์œผ๋กœ ๋Œ์–ด์˜ฌ๋ ค์ง€๋Š” ๊ฒƒ์ด ์•„๋‹ˆ๋ผ JS ์—”์ง„์ด ๋จผ์ € ์ „์ฒด ์ฝ”๋“œ๋ฅผ ํ•œ ๋ฒˆ ์Šค์บ”ํ•˜๊ณ  ์‹คํ–‰์ปจํ…์ŠคํŠธ์— ๋ฏธ๋ฆฌ ๊ธฐ๋กํ•ด ๋†“๊ธฐ ๋•Œ๋ฌธ์— ์ด๋Ÿฐ ํ˜„์ƒ์ด ๋ฐœ์ƒํ•˜๋Š” ๊ฒƒ์ด๋‹ค.

 

var์€ ํ˜ธ์ด์ŠคํŒ…์ด ๋ฐœ์ƒํ•œ๋‹ค. ๋’ค์— ์„ ์–ธ๋œ ๋ณ€์ˆ˜ a๊ฐ€ ์•ž์— ์ฐธ์กฐ๋˜์—ˆ์Œ์—๋„ error๊ฐ€ ์•„๋‹Œ undefined๊ฐ€ ํ˜ธ์ถœ๋œ๋‹ค.

console.log(a);  // undefined :: ๋ณ€์ˆ˜ ์„ ์–ธ ์ด์ „์— ๋ณ€์ˆ˜ ์ฐธ์กฐ ๊ฐ€๋Šฅ
var a  // ์ดˆ๊ธฐํ™”
console.log(a);  // undefined
a = 10  // ํ• ๋‹น
console.log(a);  // 10

 

 

let๊ณผ const๋„ ํ˜ธ์ด์ŠคํŒ…์ด ๋ฐœ์ƒํ•˜์ง€๋งŒ, ๋‹ค๋ฅด๊ฒŒ ์ž‘๋™ํ•œ๋‹ค.

console.log(a);  // ReferenceError :: ๋ณ€์ˆ˜ ์„ ์–ธ ์ด์ „์— ๋ณ€์ˆ˜ ์ฐธ์กฐ ๋ถˆ๊ฐ€๋Šฅ
let a  // ์ดˆ๊ธฐํ™”
console.log(a);  // undefined
a = 10  // ํ• ๋‹น
consloe.log(a);  // 10

-> l et๊ณผ const๋กœ ๋ณ€์ˆ˜๋ฅผ ์„ ์–ธํ•˜๋Š” ๊ฒฝ์šฐ์—๋Š”, ๋ณ€์ˆ˜์˜ ์„ ์–ธ๊ณผ ์ดˆ๊ธฐํ™” ์‚ฌ์ด์— ์ผ์‹œ์ ์œผ๋กœ ๋ณ€์ˆ˜๊ฐ’์„ ์ฐธ์กฐํ•  ์ˆ˜ ์—†๋Š” ๊ตฌ๊ฐ„์ธ TDZ(Temporal Dead Zone)๊ฐ€ ์กด์žฌํ•˜๊ธฐ ๋•Œ๋ฌธ์— ๋ฒŒ์–ด์ง€๋Š” ํ˜„์ƒ์ด๋‹ค. ํ˜ธ์ด์ŠคํŒ…์€ ๋ฐœ์ƒํ•˜์ง€๋งŒ, ๊ฐ’์„ ์ฐธ์กฐํ•  ์ˆ˜ ์—†๊ธฐ ๋•Œ๋ฌธ์— ๋™์ž‘ํ•˜์ง€ ์•Š๋Š” ๊ฒƒ์ฒ˜๋Ÿผ ๋ณด์ธ๋‹ค.


4. DB/SQL/MYSQL

4.1. ๊ธฐ์ดˆ

๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค(DB)๋Š” ๋ฐ์ดํ„ฐ์˜ ์ง‘ํ•ฉ์ด๋‹ค. ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์—๋Š” ์ผ์ƒํ–‰ํ™œ์˜ ๋Œ€๋ถ€๋ถ„์˜ ์ •๋ณด๊ฐ€ ์ €์žฅ๋˜๊ณ  ๊ด€๋ฆฌ๋ฉ๋‹ˆ๋‹ค.

 

DBMS๋Š” DB์˜ ์†Œํ”„ํŠธ์›จ์–ด๋กœ, ๋ฐ์ดํ„ฐ ๋ฒ ์ด์Šค๋ฅผ ๊ด€๋ฆฌํ•˜๊ณ  ์šด์˜ํ•œ๋‹ค. DBMS๋Š” "๋Œ€์šฉ๋Ÿ‰์˜ ๋ฐ์ดํ„ฐ๋ฅผ ์‚ฌ์šฉํ•˜๊ณ  ์ €์žฅ, ๊ด€๋ฆฌ ํ•  ์ˆ˜ ์žˆ์–ด์•ผ ํ•œ๋‹ค" ๊ทธ๋ฆฌ๊ณ  "๊ณต์œ  ๊ฐœ๋…์œผ๋กœ, ๋‹ค๋ฅธ ์‚ฌ์šฉ์ž๊ฐ€ ๊ณต์œ ํ•  ์ˆ˜ ์žˆ๋‹ค."๋Š” ํ•ต์‹ฌ ๊ฐœ๋…์„ ๊ฐ€์ง„๋‹ค.

 

DBMS์˜ ์ข…๋ฅ˜์—๋Š” MYSQL์ด ํฌํ•จ๋œ๋‹ค. ์ด์™ธ์—๋„ ๋งŽ๋‹ค. DBMS๋Š” ๊ณ„์ธตํ˜•, ๋งํ˜•, ๊ด€๊ณ„ํ˜•, ๊ฐ์ฒด์ง€ํ–ฅํ˜•, ๊ฐ์ฒด๊ด€๊ณ„ํ˜• ๋“ฑ ๋‹ค์–‘ํ•œ ์œ ํ˜•์ด ์žˆ์ง€๋งŒ ํŽธ์žฌ๋Š” ๊ด€๊ณ„ํ˜• DBMS๊ฐ€ ๊ฐ€์žฅ ๋งŽ์ด ์‚ฌ์šฉ๋˜๊ณ ์žˆ๋‹ค. ๊ด€๊ณ„ํ˜• ๋ฐ์ดํ„ฐ ๋ฒ ์ด์Šค๋Š”, ๋ฐ์ดํ„ฐ ํ•ญ๋ชฉ ๊ฐ„์— ์‚ฌ์ „ ์ •์˜๋œ ๊ด€๊ณ„๊ฐ€ ์žˆ์„ ๋•Œ ๋ฐ์ดํ„ฐ ํ•ญ๋ชฉ๋“ค์˜ ๋ชจ์Œ์„ ๊ฐ€๋ฆฌํ‚จ๋‹ค. ์ด ํ•ญ๋ชฉ๋“ค์€ ์—ด๊ณผ ํ–‰์œผ๋กœ ์ด๋ฃจ์–ด์ง„ ํ…Œ์ด๋ธ” ์ง‘ํ•ฉ์œผ๋กœ ๊ตฌ์„ฑ๋˜๋ฉฐ, ํ…Œ์ด๋ธ”์˜ ๊ฐ€ ํ–‰์€ ๊ธฐ๋ณธํ‚ค๋ผ๊ณ  ๋ถ€๋ฅด๋Š” ๊ณ ์œ  ์‹๋ณ„์ž๋กœ ํ‘œ์‹œํ•  ์ˆ˜ ์žˆ๊ณ  ์—ฌ๋Ÿฌ ํ…Œ์ด๋ธ”์— ์žˆ๋Š” ํ–‰๋“ค์€ ์™ธ๋ž˜ํ‚ค๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์ƒํ˜ธ ์—ฐ๊ฒฐํ•  ์ˆ˜ ์žˆ๋‹ค.

 

 

 

4.2. SQL์ด๋ž€?

SQL(Structured Query Language)๋Š” DBMS์— ๋ฐ์ดํ„ฐ๋ฅผ ๊ตฌ์ถ•, ๊ด€๋ฆฌํ•˜๊ณ  ํ™œ์šฉํ•˜๊ธฐ ์œ„ํ•ด ์‚ฌ์šฉ๋˜๋Š” ์–ธ์–ด์ด๋‹ค. ๊ฐ„๋‹จํžˆ ๋งํ•ด์„œ SQL์€ DB์šฉ ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์–ธ์–ด์ด๋‹ค. MySQL, Oracle, MariaDB๋“ฑ์ด ์žˆ๋‹ค. SQL์€ ๊ตฌ์กฐํ™”๋œ ์ฟผ๋ฆฌ ์–ธ์–ด์ด๋ฉฐ, DB์— ์ฟผ๋ฆฌ๋ฅผ ๋ณด๋‚ด ์›ํ•˜๋Š” ๋ฐ์ดํ„ฐ๋ฅผ ๊ฐ€์ ธ์˜ค๊ฑฐ๋‚˜ ์‚ฝ์ž…ํ•  ์ˆ˜ ์žˆ๋‹ค. ์ฟผ๋ฆฌ(query)๋ž€, ์งˆ์˜๋ฌธ์„ ์˜๋ฏธํ•œ๋‹ค. SQL์„ ์‚ฌ์šฉํ•˜๊ธฐ ์œ„ํ•ด์„œ๋Š” ๋ฐ์ดํ„ฐ ๊ตฌ์กฐ๊ฐ€ ๊ณ ์ •๋˜์–ด์žˆ์–ด์•ผ ํ•œ๋‹ค. 

 

 

 

4.3. SQL ๋ฌธ๋ฒ• ์ข…๋ฅ˜

1) DML(Data Manipulation Language) ๋ฐ์ดํ„ฐ ์กฐ์ž‘์–ด

-SELECT: ํ…Œ์ด๋ธ”์—์„œ ์›ํ•˜๋Š” ์ •๋ณด๋ฅผ ๋ถˆ๋Ÿฌ์˜ฌ ๋•Œ ์‚ฌ์šฉํ•˜๋Š” ๋ฌธ๋ฒ•์ด๋‹ค. ํ…Œ์ด๋ธ”์˜ ์—ด์— ์†ํ•˜๋Š” ๋ฐ์ดํ„ฐ๋ฅผ ๋ถˆ๋Ÿฌ์˜จ๋‹ค

SELECT col1, col2, ....
FROM table_name;

 

-DISTANCE: ์ค‘๋ณต์„ ๋ฐฐ์ œํ•˜๊ณ  ๊ณ ์œ ๊ฐ’๋งŒ์„ ์ถœ๋ ฅํ•˜๊ณ ์ž ํ•  ๋•Œ ์‚ฌ์šฉํ•œ๋‹ค. SELECT์™€ ๊ฐ™์ด ์‚ฌ์šฉ๋œ๋‹ค.

SELECT DISTINCT col1, col2, ...
FROM table_name;

 

-DELET: ๋ฐ์ดํ„ฐ๋ฅผ ์‚ญ์ œํ•  ๋•Œ ์‚ฌ์šฉํ•œ๋‹ค

-INSERT: ์‹ ๊ทœ ๋ฐ์ดํ„ฐ๋ฅผ ์ž…๋ ฅํ•  ๋•Œ ์‚ฌ์šฉํ•œ๋‹ค

-UPDATE: ๊ธฐ์กด ๋ฐ์ดํ„ฐ๋ฅผ ์ˆ˜์ •ํ•  ๋•Œ ์‚ฌ์šฉํ•œ๋‹ค

 

2) DDL(Data Definition Language) ๋ฐ์ดํ„ฐ ๋ฒ ์ด์Šค ๊ฐ์ฒด๋ฅผ ์ƒ์„ฑ

-CREATE: DB ๊ฐ์ฒด๋ฅผ ์ƒ์„ฑํ•  ๋•Œ ์‚ฌ์šฉํ•œ๋‹ค

-DROP: DB ๊ฐ์ฒด๋ฅผ ์‚ญ์ œํ•  ๋•Œ ์‚ฌ์šฉํ•œ๋‹ค

-ALTER: ๊ธฐ์กด์˜ ์ƒ์„ฑ๋œ ๊ฐ์ฒด๋ฅผ ๋ณ€๊ฒฝํ•  ๋•Œ ์‚ฌ์šฉํ•œ๋‹ค.

 

 

3) DCL (Data Control Language) ๋ฐ์ดํ„ฐ ๋ฒ ์ด์Šค ๊ฐ์ฒด๋ฅผ ์ƒ์„ฑํ•˜๋Š” ๋ฌธ

-GRANT: ๊ฐ์ฒด์— ๊ถŒํ•œ์„ ๋ถ€์—ฌํ•  ๋–„ ์‚ฌ์šฉํ•œ๋‹ค

-REVOKE: ๊ฐ์ฒด์— ๋ถ€์—ฌ๋œ ๊ถŒํ•œ์„ ์‚ญ์ œํ•  ๋•Œ ์‚ฌ์šฉํ•œ๋‹ค

 

 

4)TCL: ์ฃผ๋กœ ํŠธ๋žœ์žญ์…˜์„ ์ œ์–ดํ•˜๊ธฐ ์œ„ํ•ด ์‚ฌ์šฉ

-ํŠธ๋žœ์ ์…˜: ํ•œ๊บผ๋ฒˆ์— ์ˆ˜ํ–‰๋˜์–ด์•ผ ํ•  ์—ฐ์‚ฐ์„ ๋ชจ์•„๋†“์€ ๊ฒƒ

-COMMIT: ํ˜„์žฌ ํŠธ๋žœ์ ์…˜์—์„œ ์ˆ˜ํ–‰ํ•œ ๋ชจ๋“  ๋ณ€๊ฒฝ ์‚ฌํ•ญ์„ ์ €์žฅํ•˜๊ณ , DB์— ์˜๊ตฌ์ ์œผ๋กœ ๋ฐ˜์˜ํ•  ๋•Œ ์‚ฌ์šฉํ•œ๋‹ค

-ROLLBACK: ํŠธ๋žœ์ ์…˜ ์ค‘ ๋ฐœ์ƒํ•œ ์˜ค๋ฅ˜๋‚˜ ์˜๋„ํ•˜์ง€ ์•Š์€ ๋ณ€๊ฒฝ์‚ฌํ•ญ์„ ๋˜๋Œ๋ ค, DB๋ฅผ ์ด์ „ ์ƒํƒœ๋กœ ๋ณต๊ตฌํ•  ๋•Œ ์‚ฌ์šฉํ•œ๋‹ค 

-SAVEPOINT: ํŠธ๋žœ์ ์…˜ ๋‚ด์—์„œ ํŠน์ • ์‹œ์ ์— ์ €์žฅ์ ์„ ์„ค์ •ํ•˜์—ฌ ํ•„์š”ํ•œ ๊ฒฝ์šฐ ํ•ด๋‹น ์‹œ์ ์œผ๋กœ ๋˜๋Œ๋ฆด ์ˆ˜ ์žˆ๋‹ค

-SET TRANSACTION: ํŠธ๋žœ์ ์…˜์˜ ์†์„ฑ์„ ์„ค์ •ํ•œ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด, ๊ฒฉ๋ฆฌ ์ˆ˜์ค€์„ ์„ค์ •ํ•  ๋•Œ ์‚ฌ์šฉํ•œ๋‹ค.

 

 

4.4. MySQL์ด๋ž€?

MySQL์€ ์„ธ๊ณ„์—์„œ ๊ฐ€์žฅ ๋งŽ์ด ์“ฐ์ด๋Š” ์˜คํ”ˆ ์†Œ์Šค์˜ ๊ด€๊ณ„ํ˜• ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ๊ด€๋ฆฌ ์‹œ์Šคํ…œ์ด๋‹ค. ๋‹ค์ค‘ ์Šค๋ ˆ๋“œ ๋‹ค์ค‘ ์‚ฌ์šฉ์ž ํ˜•์‹์˜ ๊ตฌ์กฐ์งˆ์˜์–ด ํ˜•์‹์˜ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ๊ด€๋ฆฌ ์‹œ์Šคํ…œ์ด๋‹ค.

 

-MySQL ํŠน์ง•

<์žฅ์ >

-๋‹ค์–‘ํ•œ ์šด์˜์ฒด์ œ์—์„œ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์œผ๋ฉฐ, ์—ฌ๋Ÿฌ ๊ฐ€์ง€์˜ ํ”„๋กœ๊ทธ๋žจ์ž‰ ์–ธ์–ด๋ฅผ ์ง€์›ํ•œ๋‹ค

-ํฌ๊ธฐ๊ฐ€ ํฐ ๋ฐ์ดํ„ฐ ์ง‘ํ•ฉ๋„ ์•„์ฃผ ๋น ๋ฅด๊ณ  ํšจ๊ณผ์ ์œผ๋กœ ์ฒ˜๋ฆฌํ•  ์ˆ˜ ์žˆ๋‹ค.

-๋„๋ฆฌ ์•Œ๋ ค์ง„ SQL ํ˜•์‹์„ ์‚ฌ์šฉํ•œ๋‹ค

-MySQL ์‘์šฉ ํ”„๋กœ๊ทธ๋žจ์„ ์‚ฌ์šฉ์ž์˜ ์šฉ๋„์— ๋งž๊ฒŒ ์ˆ˜์ •ํ•  ์ˆ˜ ์žˆ๋‹ค.

-๋‹ค์–‘ํ•œ ์Šคํ† ๋ฆฌ์ง€ ์—”์ง„์„ ๊ฐ€์ง€๊ณ  ์žˆ๊ณ , ๋ฐ์ดํ„ฐ ๋ณต์ œ ๋˜ํ•œ ๊ฐ€๋Šฅํ•˜๋‹ค

 

<๋‹จ์ >

-ํฐ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋กœ ์ ์šฉํ•˜๊ธฐ ์–ด๋ ต๋‹ค.

-๊ฒŒ์ž„ ๋ฐ ๋ชจ๋ฐ”์ผ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์— ์ธ๊ธฐ๊ฐ€ ์—†๋‹ค.

 


5. FLASK

5.1. Django๋ž€?

์žฅ๊ณ ๋Š” ํŒŒ์ด์ฌ ์›น ํ”„๋ ˆ์ž„์›Œํฌ ์ค‘์—์„œ ๊ฐ€์žฅ ์ธ๊ธฐ ์žˆ๋Š” ํ”„๋ ˆ์ž„์›Œํฌ์ด๋‹ค. ์ผ๋ฐ˜์ ์ธ ์›น ๊ฐœ๋ฐœ์˜ ๊ฑฐ์˜ ๋ชจ๋“  ๊ธฐ๋Šฅ์„ ์œ„ํ•œ ๊ฐ•๋ ฅํ•œ ๋‚ด์žฅ ์†”๋ฃจ์…˜์„ ์ œ๊ณตํ•ด, ์ฝ”๋“œ๋ฅผ ๋” ๋น ๋ฅด๊ฒŒ ์ž‘์„ฑํ•˜๊ณ  ํ”„๋กœ์ ํŠธ๋ฅผ ๋” ํšจ์œจ์ ์œผ๋กœ ๊ตฌํ˜„ํ•  ์ˆ˜ ์žˆ๋‹ค.

 

ํ”„๋ ˆ์ž„์›Œํฌ๋ž€, ์›น ๊ฐœ๋ฐœ์„ ์‰ฝ๊ฒŒ ํ•˜๊ธฐ ์œ„ํ•ด ์‚ฌ์šฉ๋˜๋Š” ๋ชจ๋“ˆ์˜ ๋ชจ์Œ์„ ์˜๋ฏธํ•œ๋‹ค. ์—ฌ๋Ÿฌ ๋ชจ๋“ˆ์ด ๊ทธ๋ฃนํ™”๋˜์–ด ์žˆ๊ธฐ ๋•Œ๋ฌธ์— ์•ฑ์ด๋‚˜ ์›น์‚ฌ์ดํŠธ๋ฅผ ์ƒˆ๋กœ ๋งŒ๋“œ๋Š” ๊ณผ์ •์ด ๋งค์šฐ ์‰ฌ์›Œ์ง„๋‹ค.

 

 

5.2. Django์˜ ํŠน์ง•

-๋งŽ์Œ ํ”„๋ ˆ์ž„์›Œํฌ ๋•๋ถ„์— ๊ฐœ๋ฐœ์ž๋Š” ๋‹จ์ˆœ ์ž‘์—…์— ์†Œ์š”๋˜๋Š” ์‹œ๊ฐ„์„ ์ค„์ด๊ณ  ์›น์‚ฌ์ดํŠธ์˜ ๊ณ ์œ ํ•œ ๊ธฐ๋Šฅ์„ ๋งŒ๋“œ๋Š”๋ฐ ๋” ์ง‘์ค‘ํ•  ์ˆ˜ ์žˆ๋‹ค. ์ด๋Š” ๋น ๋ฅธ ๊ฐœ๋ฐœ์„ ๊ฐ€๋Šฅํ•˜๊ฒŒ ํ•œ๋‹ค

-์žฅ๊ณ ๋Š” ๋†’์€ ๋ณด์•ˆ์„ฑ์„ ์ œ๊ณตํ•œ๋‹ค

-์žฅ๊ณ ๋Š” ๋‹ค์–‘ํ•œ ์˜์—ญ์—์„œ ๋‹ค์–‘ํ•œ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ๋งŒ๋“œ๋Š”๋ฐ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋Š” ๋‹ค์šฉ๋„ ํ”„๋ ˆ์ž„์›Œํฌ์ด๋‹ค. ๋ถ€ํ•˜๊ฐ€ ๋งŽ์€ ์›น ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ๊ตฌ์ธกํ•˜๋“ , ๊ฐ„๋‹จํ•œ ์›น์‚ฌ์ดํŠธ๋ฅผ ๊ตฌ์ถ•ํ•˜๋“  ๋ชจ๋“  ๊ทœ๋ชจ์™€ ์šฉ๋Ÿ‰์˜ ํ”„๋กœ์ ํŠธ๋ฅผ ๊ตฌํ˜„ํ•˜๋Š”๋ฐ ํ›Œ๋ฅญํ•˜๊ฒŒ ์ž‘๋™ํ•œ๋‹ค.

 

 

5.3. FLASK๋ž€?

ํ”Œ๋ผ์Šคํฌ๋Š” Python์˜ ๋งˆ์ดํฌ๋กœ ์›น ํ”„๋ ˆ์ž„์›Œํฌ์ด๋‹ค. ๋‹ค์–‘ํ•œ ์›น ์—”์ง„๊ณผ ๋ถ™์—ฌ์„œ ์“ธ ์ˆ˜ ์žˆ๊ณ , ๋˜ ๊ฐ€๋ณ๊ธฐ๋„ ํ•ด์„œ Django๊ณผ ๊ฐ™์ด ์“ฐ๋Š” ๊ฒฝ์šฐ๋„ ์žˆ๋‹ค. ์ฝ”๋“œ๋„ ๋น„๊ต์  ๋‹จ์ˆœํ•˜๊ณ  ํŠนํžˆ API ์„œ๋ฒ„๋ฅผ ๋งŒ๋“ค๊ธฐ์— ๋งค์šฐ ํŽธ๋ฆฌํ•˜๋‹ค. ๊ด€๋ จ๋œ ํ™•์žฅ ๊ธฐ๋Šฅ๋“ค์ด ๋งŽ๊ธฐ ๋•Œ๋ฌธ์ด๋‹ค. FLASK๋Š” Pythone์œผ๋กœ๋งŒ ์ž‘์„ฑํ•˜๋ฉด ์‹ฌ์‹ฌํ•œ ์ฝ”๋“œ๋ฅผ ์›น ์„œ๋ฒ„์™€ HTML, CSS๋ฅผ ํ•จ๊ป˜ ์‚ฌ์šฉํ•ด ์›น ์‚ฌ์ดํŠธ๋ฅผ ๊ฐ„๋‹จํ•˜๊ฒŒ ์ œ์ž‘ํ•  ์ˆ˜ ์žˆ๋‹ค.

 

5.4. FLASK์˜ ํŠน์ง•

-FLASK๋Š” ๊ฐ€๋ณ๊ณ  ์ฝ”๋“œ๋ฒ ์ด์Šค๊ฐ€ ์ž‘๊ฒŒ ์„ค๊ณ„๋˜์—ˆ๋‹ค. ๊ฐ„๋‹จํ•˜๊ณ  ์ง๊ด€์ ์ธ API๋ฅผ ๊ฐ–์ถ”๊ณ  ์žˆ์–ด ๊ฐœ๋ฐœ์ž๊ฐ€ ์›น ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ๊ตฌ์ถ•์„ ๋น ๋ฅด๊ฒŒ ์‹œ์ž‘ํ•  ์ˆ˜ ์žˆ๋‹ค.

-๋ผ์šฐํŒ… ๋ฐ URL ๋งคํ•‘: ํ”Œ๋ผ์Šคํฌ๋Š” URL์„ ํŒŒ์ด์ฌ ์ฝ”๋“œ์˜ ํ•จ์ˆ˜๋‚˜ ๋ฉ”์„œ๋“œ์— ๋งคํ•‘ํ•  ์ˆ˜ ์žˆ๋Š” ๋ผ์šฐํŒ… ๋ฉ”์ปค๋‹ˆ์ฆ˜์„ ์ œ๊ณตํ•œ๋‹ค. ์ด๋ฅผ ํ†ตํ•ด ๋‹ค์–‘ํ•œ URL๊ณผ HTTP ๋ฉ”์„œ๋“œ๋ฅผ ์ฒ˜๋ฆฌํ•˜๊ณ  ์š”์ฒญ์— ๋”ฐ๋ผ ์ ์ ˆํ•œ ์ฝ”๋“œ๋ฅผ ์‹คํ–‰ํ•˜๋Š” ๋ฐ ๋„์›€์ด ๋œ๋‹ค.

-ํ™•์žฅ์„ฑ: ํ”Œ๋ผ์Šคํฌ๋Š” ๊ฐœ๋ฐœ์ž๊ฐ€ ํ™•์žฅ์„ ํ†ตํ•ด ๊ธฐ๋Šฅ์„ ์ถ”๊ฐ€ํ•  ์ˆ˜ ์žˆ๋Š” ๋ชจ๋“ˆ์‹ ์„ค๊ณ„๋ฅผ ๊ฐ–์ถ”๊ณ  ์žˆ๋‹ค. ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ํ†ตํ•ฉ. ์‚ฌ์šฉ์ž ์ธ์ฆ, ์บ์‹ฑ ๋“ฑ๊ณผ ๊ฐ™์€ ์ถ”๊ฐ€ ๊ธฐ๋Šฅ์„ ์ œ๊ณตํ•˜๋Š” ํ’๋ถ€ํ•œ ํ”Œ๋ผ์Šคํฌ ํ™•์žฅ ํ”„๋กœ๊ทธ๋žจ ์—์ฝ”์‹œ์Šคํ…œ์„ ๊ฐ€์ง„๋‹ค.