๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ

๐Ÿ“‚ ๊ธฐ์ˆ  ๋ฉด์ ‘/Web7

Semantic HTML์˜ ํ•„์š”์„ฑ์„ ์˜ˆ์‹œ๋ฅผ ๋“ค์–ด ์„ค๋ช…ํ•ด ์ฃผ์„ธ์š”. ๐Ÿ‘ฉ๐Ÿป‍๐Ÿ’ป Semantic HTML์˜ ํ•„์š”์„ฑ์„ ์˜ˆ์‹œ๋ฅผ ๋“ค์–ด ์„ค๋ช…ํ•ด ์ฃผ์„ธ์š”. ๐Ÿ’๐Ÿป‍โ™€๏ธ ์š”์•ฝํ•˜์ž๋ฉด , Semantic HTML์€ ์›น ํŽ˜์ด์ง€์˜ ๊ฐ ์š”์†Œ์— ์˜๋ฏธ๋ฅผ ๋ถ€์—ฌํ•˜๋Š” HTML ๋งˆํฌ์—… ๋ฐฉ๋ฒ•์ž…๋‹ˆ๋‹ค. ์ด๋Š” ์›น ํŽ˜์ด์ง€์˜ ๊ตฌ์กฐ์™€ ์˜๋ฏธ๋ฅผ ๋” ๋ช…ํ™•ํ•˜๊ฒŒ ์ „๋‹ฌํ•˜๋ฉฐ, ๊ฒฐ๊ตญ ๊ฒ€์ƒ‰ ์—”์ง„ ์ตœ์ ํ™”(SEO)์™€ ์›น ์ ‘๊ทผ์„ฑ์„ ํ–ฅ์ƒ์‹œํ‚ค๋Š” ๋ฐ ๊ธฐ์—ฌํ•ฉ๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด, HTML ์•ˆ์— ์ œ๋ชฉ, ๋‚ด์šฉ, ํ‘ธํ„ฐ๋กœ ๋‚ด์šฉ์ด ๋‚˜๋ˆ ์ ธ ์žˆ์Œ์—๋„ ๋ถˆ๊ตฌํ•˜๊ณ  ๋ชจ๋“  ์š”์†Œ๋ฅผ ํƒœ๊ทธ๋กœ ์”Œ์šด๋‹ค๋ฉด ์ฝ”๋“œ๋ฅผ ๋ณด๋Š” ๊ฐœ๋ฐœ์ž ์ž…์žฅ์—์„œ ์›น ํŽ˜์ด์ง€ ๊ตฌ์กฐ์™€ ์˜๋ฏธ๊ฐ€ ์ •ํ™•ํ•˜๊ฒŒ ๋ณด์ด์ง€ ์•Š์„ ๋ฟ ์•„๋‹ˆ๋ผ, ์šฐ๋ฆฌ๊ฐ€ ์• ์จ ๋งŒ๋“  ์›น ์‚ฌ์ดํŠธ๊ฐ€ ๊ฒ€์ƒ‰ ์—”์ง„์— ์ตœ์ ํ™”๋˜์ง€ ์•Š์„ ๊ฒƒ์ž…๋‹ˆ๋‹ค. ์ œ๋ชฉ ๋‚ด์šฉ ๋”ฐ๋ผ์„œ, HTML์˜ ๊ฐ ์˜์—ญ์€ ๊ฐ ์˜์—ญ์˜ ์˜๋ฏธ์— ๋งž๊ฒŒ ์š”์†Œ๋Š” ์›น ํŽ˜์ด์ง€์˜ ์ œ๋ชฉ, ์š”์†Œ๋กœ๋Š” ์„น์…˜์„ ์ •์˜, ์š”์†Œ๋กœ๋Š” .. 2023. 5. 9.
HTTP ๋ฉ”์„ธ์ง€ ๊ตฌ์กฐ์— ๋Œ€ํ•ด ์„ค๋ช…ํ•ด ์ฃผ์„ธ์š”. ๐Ÿ‘ฉ๐Ÿป‍๐Ÿ’ป HTTP ๋ฉ”์„ธ์ง€ ๊ตฌ์กฐ์— ๋Œ€ํ•ด ์„ค๋ช…ํ•ด ์ฃผ์„ธ์š”. ๐Ÿ’๐Ÿป‍โ™€๏ธ ์š”์•ฝํ•˜์ž๋ฉด , HTTP ๋ฉ”์‹œ์ง€๋Š” ํฌ๊ฒŒ start line, HTTP header, empty line, body๋กœ ๋‚˜๋‰ฉ๋‹ˆ๋‹ค. ๋ฉ”์‹œ์ง€์˜ ๊ตฌ์กฐ 1. start-line ์š”์ฒญ์ด๋‚˜ ์‘๋‹ต์˜ ์ƒํƒœ๋ฅผ ๋‚˜ํƒ€๋‚ด๋ฉฐ ํ•ญ์ƒ ์ฒซ ๋ฒˆ์งธ ์ค„์— ์œ„์น˜ํ•ฉ๋‹ˆ๋‹ค. ์–ด๋–ค ํ”„๋กœํ† ์ฝœ์„ ์‚ฌ์šฉํ•˜๋Š”์ง€, ์–ด๋–ค HTTP ๋ฉ”์„œ๋“œ์ธ์ง€, ์ƒํƒœ ์ฝ”๋“œ๋Š” ๋ฌด์—‡์ธ์ง€ ๋“ฑ์„ ๋‚˜ํƒ€๋ƒ…๋‹ˆ๋‹ค. 2. HTTP header ์š”์ฒญ์„ ์ง€์ •ํ•˜๊ฑฐ๋‚˜, ๋ฉ”์‹œ์ง€์— ํฌํ•จ๋œ ๋ณธ๋ฌธ์„ ์„ค๋ช…ํ•˜๋Š” ํ—ค๋”์˜ ์ง‘ํ•ฉ์ž…๋‹ˆ๋‹ค. 3. empty line ํ—ค๋”์™€ ๋ณธ๋ฌธ์„ ๊ตฌ๋ถ„ํ•˜๋Š” ๋นˆ ์ค„์ด ์žˆ์Šต๋‹ˆ๋‹ค. 4. body ์š”์ฒญ๊ณผ ๊ด€๋ จ๋œ ๋ฐ์ดํ„ฐ๋‚˜ ์‘๋‹ต๊ณผ ๊ด€๋ จ๋œ ๋ฐ์ดํ„ฐ ๋˜๋Š” ๋ฌธ์„œ๋ฅผ ํฌํ•จํ•ฉ๋‹ˆ๋‹ค. ์š”์ฒญ๊ณผ ์‘๋‹ต์˜ ์œ ํ˜•์— ๋”ฐ๋ผ ์„ ํƒ์ ์œผ๋กœ ์‚ฌ์šฉ๋˜๋Š”๋ฐ์š”. GET, DELETE,.. 2023. 4. 10.
GET ๋ฉ”์„œ๋“œ์™€ POST ๋ฉ”์„œ๋“œ์˜ ์ฐจ์ด์ ์— ๋Œ€ํ•ด ์„ค๋ช…ํ•ด ์ฃผ์„ธ์š”. ๐Ÿ‘ฉ๐Ÿป‍๐Ÿ’ป GET ๋ฉ”์„œ๋“œ์™€ POST ๋ฉ”์„œ๋“œ์˜ ์ฐจ์ด์ ์— ๋Œ€ํ•ด ์„ค๋ช…ํ•ด ์ฃผ์„ธ์š”. ๐Ÿ’๐Ÿป‍โ™€๏ธ ์š”์•ฝํ•˜์ž๋ฉด , GET์€ ์„œ๋ฒ„์—์„œ ๋ฐ์ดํ„ฐ๋ฅผ ์กฐํšŒํ•  ๋•Œ ์“ธ ์ˆ˜ ์žˆ๋Š” ๋ฉ”์†Œ๋“œ๊ณ , POST๋Š” ์„œ๋ฒ„์—์„œ ๋ฐ์ดํ„ฐ๋ฅผ ์ถ”๊ฐ€ํ•  ๋•Œ ์‚ฌ์šฉํ•˜๋Š” ๋ฉ”์†Œ๋“œ ์ž…๋‹ˆ๋‹ค. GET๊ณผ POST ์š”์ฒญ์—๋Š” ๊ฐ๊ฐ ์–ด๋–ป๊ฒŒ ์ •๋ณด๋ฅผ ๋‹ด์„ ์ˆ˜ ์žˆ๋‚˜์š”? GET์€ ๋‹จ์ˆœํžˆ ์กฐํšŒ๋ฅผ ์š”์ฒญํ•˜๊ธฐ ๋•Œ๋ฌธ์— body๋ฅผ ๋ณด๋‚ด์ง€ ์•Š๋Š” ๊ฒƒ์ด ๋ณดํŽธ์ ์ด๊ธฐ์— query parameter๋‚˜ path parameter๋ฅผ ์”๋‹ˆ๋‹ค. POST ์š”์ฒญ์—์„œ๋Š” ์ถ”๊ฐ€ํ•˜๊ณ ์ž ํ•˜๋Š” ๋ฐ์ดํ„ฐ๋ฅผ HTTP body์— ๋‹ด์•„ ์ „๋‹ฌํ•ฉ๋‹ˆ๋‹ค. ๊ฐ ์š”์ฒญ์˜ ํŠน์ง•์€ ์–ด๋–ป๊ฒŒ ๋˜๋‚˜์š”? GET์€ ์š”์ฒญ์„ ๋ฌดํ•œ๋Œ€๋กœ ๋ณด๋‚ด๋„ ๊ฐ™์€ ์š”์ฒญ์„ ํšŒ์‹ ๋ฐ›์„ ์ˆ˜ ์žˆ๋Š” ๋ฉฑ๋“ฑ์„ฑ์„ ๊ฐ€์ง€๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ๋ฐ˜๋ฉด POST๋Š” ์š”์ฒญ์„ ๋ฌดํ•œ๋Œ€๋กœ ๋ณด๋‚ด๋ฉด ์ตœ์ดˆ ์‘๋‹ต๊ณผ๋Š” ๋‹ค๋ฅธ ํšŒ์‹ ์„ ๋ฐ›๊ฒŒ.. 2023. 4. 10.
SOP์™€ CORS์— ๋Œ€ํ•ด์„œ ์„ค๋ช…ํ•ด ์ฃผ์„ธ์š”. ๐Ÿ‘ฉ๐Ÿป‍๐Ÿ’ป Same-Origin Policy์™€ CORS์— ๋Œ€ํ•ด์„œ ์„ค๋ช…ํ•ด ์ฃผ์„ธ์š”. ๐Ÿ’๐Ÿป‍โ™€๏ธ ์š”์•ฝํ•˜์ž๋ฉด , SOP๋Š” '๋™์ผ ์ถœ์ฒ˜ ์ •์ฑ…'์œผ๋กœ, ๊ฐ™์€ ์ถœ์ฒ˜์˜ ๋ฆฌ์†Œ์Šค๋งŒ ๊ณต์œ ๊ฐ€ ๊ฐ€๋Šฅํ•˜๋‹ค๋Š” ์ •์ฑ…์ด๋ฉฐ, CORS๋Š” '๊ต์ฐจ ์ถœ์ฒ˜ ๋ฆฌ์†Œ์Šค ๊ณต์œ ' ์ž…๋‹ˆ๋‹ค. ๋ธŒ๋ผ์šฐ์ €๋Š” SOP์— ์˜ํ•ด ๊ธฐ๋ณธ์ ์œผ๋กœ ๋‹ค๋ฅธ ์ถœ์ฒ˜์˜ ๋ฆฌ์†Œ์Šค ๊ณต์œ ๋ฅผ ๋ง‰์ง€๋งŒ, CORS ์„ค์ •์„ ํ†ตํ•ด ์ ‘๊ทผ ๊ถŒํ•œ์„ ์–ป์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. SOP(Same-Origin Policy) SOP์˜ ์ถœ์ฒ˜๋Š” ํ”„๋กœํ† ์ฝœ, ํ˜ธ์ŠคํŠธ, ํฌํŠธ์˜ ์กฐํ•ฉ์œผ๋กœ ๋˜์–ด ์žˆ๋Š”๋ฐ, ์ด ์ค‘ ํ•˜๋‚˜๋ผ๋„ ๋‹ค๋ฅด๋ฉด ๋™์ผํ•œ ์ถœ์ฒ˜๋กœ ๋ณด์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ๋•๋ถ„์— ์ž ์žฌ์ ์œผ๋กœ ํ•ด๋กœ์šธ ์ˆ˜ ์žˆ๋Š” ๋ฌธ์„œ๋ฅผ ๋ถ„๋ฆฌํ•จ์œผ๋กœ์จ ๊ณต๊ฒฉ๋ฐ›์„ ์ˆ˜ ์žˆ๋Š” ๊ฒฝ๋กœ๋ฅผ ์ค„์—ฌ์ฃผ๊ธฐ ๋•Œ๋ฌธ์— ํ•ดํ‚น ๋“ฑ์˜ ์œ„ํ˜‘์œผ๋กœ๋ถ€ํ„ฐ ์•ˆ์ „ํ•ด์งˆ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๊ธฐ๋ณธ์ ์œผ๋กœ ๋ชจ๋“  ๋ธŒ๋ผ์šฐ์ €๋Š” SOP ์ •์ฑ…์„ ์‚ฌ์šฉํ•˜๊ณ .. 2023. 4. 5.
HTML์˜ id ์†์„ฑ๊ณผ class ์†์„ฑ์˜ ์ฐจ์ด์— ๋Œ€ํ•ด์„œ ์„ค๋ช…ํ•ด ์ฃผ์„ธ์š”. ๐Ÿ‘ฉ๐Ÿป‍๐Ÿ’ป id ์†์„ฑ๊ณผ class ์†์„ฑ์˜ ์ฐจ์ด์— ๋Œ€ํ•ด์„œ ์„ค๋ช…ํ•ด ์ฃผ์„ธ์š”. ๐Ÿ’๐Ÿป‍โ™€๏ธ ์š”์•ฝํ•˜์ž๋ฉด , ๊ณ ์œ ์„ฑ์˜ ์ฐจ์ด ์ž…๋‹ˆ๋‹ค. id๋Š” ๊ณ ์œ ํ•œ ๊ฐ’์ด๋ฏ€๋กœ, id๋ฅผ ๊ฐ€์ง„ ์š”์†Œ๋“ค ๋˜ํ•œ ๊ณ ์œ ํ•˜๊ธฐ ๋•Œ๋ฌธ์— ํ•˜๋‚˜์˜ HTML ์š”์†Œ์—๋งŒ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ด์— ๋ฐ˜ํ•ด class๋Š” ๊ณ ์œ ํ•˜์ง€ ์•Š์œผ๋ฏ€๋กœ ๊ฐ™์€ class name์„ ์—ฌ๋Ÿฌ ์š”์†Œ์— ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ์ด ๊ฐ€๋Šฅํ•ฉ๋‹ˆ๋‹ค. ๋” ์ž์„ธํžˆ ์„ค๋ช…ํ•˜์ž๋ฉด, id๋ž€ identification ์ฆ‰ ๊ตฌ๋ณ„/์‹๋ณ„ ํ•˜๊ณ ์ž ํ•˜๊ธฐ์— ํ•ด๋‹น ์š”์†Œ๊ฐ€ '์œ ์ผํ•จ'์„ ํ™•์ธํ•  ์ˆ˜ ์žˆ๋Š” ์ˆ˜๋‹จ์ž…๋‹ˆ๋‹ค. ์šฐ๋ฆฌ์—๊ฒŒ ์ฃผ์–ด์ง€๋Š” ์ฃผ๋ฏผ๋“ฑ๋ก๋ฒˆํ˜ธ(identification number)๊ณผ๋„ ๊ฐ™๋‹ค๊ณ  ์ƒ๊ฐํ•˜๋ฉด ๋ฉ๋‹ˆ๋‹ค. ๋งˆ์น˜ getElementById ๋ฉ”์†Œ๋“œ๋Š” ์žˆ์–ด๋„ getElementsById๋Š” ์—†๋Š” ๊ฒƒ์ฒ˜๋Ÿผ ๋ง์ž…๋‹ˆ๋‹ค. ํ˜‘์—… ์‹œ์—๋„ ์ค‘์š” id ๊ฐ’์ด ๊ฐ™์€.. 2023. 3. 12.
HTML์˜ <li> ์š”์†Œ๋Š” ์™œ <ul> ์š”์†Œ์˜ ์ž์‹ ์š”์†Œ์—ฌ์•ผ๋งŒ ํ•˜๋‚˜์š”? ๐Ÿ‘ฉ๐Ÿป‍๐Ÿ’ป ์š”์†Œ๋Š” ์™œ ์š”์†Œ์˜ ์ž์‹ ์š”์†Œ์—ฌ์•ผ๋งŒ ํ•˜๋‚˜์š”? home1 home2 home3 home4 ๐Ÿ’๐Ÿป‍โ™€๏ธ ์š”์•ฝํ•˜์ž๋ฉด , ์š”์†Œ๋Š” ๋ง ๊ทธ๋Œ€๋กœ list์˜ item๋“ค์„ ๋ณด์—ฌ์ฃผ๊ธฐ ์œ„ํ•œ ์š”์†Œ ์ด๊ธฐ์—, ๋ชฉ๋ก์„ ๋‹ด๋Š” ์š”์†Œ์˜ ์ž์‹ ์š”์†Œ์—ฌ์•ผ ํ•ฉ๋‹ˆ๋‹ค. ๊ตฌ์Šฌ๊ณผ ์ฃผ๋จธ๋‹ˆ ์š”์†Œ๋Š” ์ฃผ๋จธ๋‹ˆ๊ณ , ์š”์†Œ๋Š” ์ฃผ๋จธ๋‹ˆ์— ๋‹ด๊ธด ๊ตฌ์Šฌ๋“ค์ด๋ผ๊ณ  ๋ณด๋ฉด ๋ฉ๋‹ˆ๋‹ค. ๋”ฐ๋ผ์„œ ์ฃผ๋จธ๋‹ˆ ์•ˆ์— ๊ตฌ์Šฌ์ธ ๊ฐ€ ๋‹ด๊ฒจ์•ผ ํ•ฉ๋‹ˆ๋‹ค. ํ˜‘์—… ์‹œ ํŠนํžˆ ์ค‘์š” ํ™”๋ฉด ์ƒ์œผ๋กœ๋Š” ๋ฌธ์ œ๊ฐ€ ์—†์–ด ๋ณด์ด๋”๋ผ๋„, ์š”์†Œ์™€ ์š”์†Œ ๊ฐ๊ฐ์˜ ์˜๋ฏธ์— ๋งž๊ฒŒ sementicํ•˜๊ฒŒ HTML์„ ์ž‘์„ฑํ•ด์•ผ ํ˜‘์—… ์‹œ ๋‹ค๋ฅธ ๊ฐœ๋ฐœ์ž๊ฐ€ ๋ณด๋”๋ผ๋„ ์‰ฝ๊ฒŒ ์ดํ•ดํ•  ์ˆ˜ ์žˆ๊ธฐ ๋•Œ๋ฌธ์— ์œ„์™€ ๊ฐ™์€ ๊ทœ์น™์„ ์ง€ํ‚ค๋Š” ๊ฒƒ์ด ์ค‘์š”ํ•ฉ๋‹ˆ๋‹ค. ๐Ÿ“Ž ๋‚ด์šฉ ์ฐธ์กฐ - velog: ๊ธฐ์ˆ  ๋ฉด์ ‘ ์ค€๋น„ - velog: Section 1 ํšŒ๊ณ  2023. 3. 12.
์ผ๋ฐ˜์ ์œผ๋กœ CSS๋ฅผ ๋ถˆ๋Ÿฌ์˜ค๊ธฐ ์œ„ํ•ด <link> ์š”์†Œ๋ฅผ <head> ์š”์†Œ์˜ ์ž์‹ ์š”์†Œ๋กœ ํ•˜๊ณ , JavaScript๋ฅผ ๋ถˆ๋Ÿฌ์˜ค๊ธฐ ์œ„ํ•ด <script> ์š”์†Œ๋ฅผ <body> ์š”์†Œ๊ฐ€ ๋๋‚˜๊ธฐ ์ง์ „์— ์œ„์น˜์‹œํ‚ค๋Š” ์ด์œ ๊ฐ€ ๋ฌด์—‡์ธ๊ฐ€์š”? ๐Ÿ‘ฉ๐Ÿป‍๐Ÿ’ป ์ผ๋ฐ˜์ ์œผ๋กœ CSS๋ฅผ ๋ถˆ๋Ÿฌ์˜ค๊ธฐ ์œ„ํ•ด ์š”์†Œ๋ฅผ ๐Ÿ’๐Ÿป‍โ™€๏ธ ์š”์•ฝํ•˜์ž๋ฉด , CSS ์š”์†Œ๊ฐ€ head ์š”์†Œ์˜ ์ž์‹ ์š”์†Œ์ผ ๋•Œ ์ „๋ฐ˜์ ์ธ UX(user expression)์„ ํ–ฅ์ƒ์‹œํ‚ค๊ธฐ ๋•Œ๋ฌธ์ด๋ฉฐ, ์š”์†Œ๊ฐ€ ์š”์†Œ๊ฐ€ ๋๋‚˜๊ธฐ ์ง์ „์— ์œ„์น˜ํ•˜๋Š” ๊ฒฝ์šฐ, HTML๊ณผ CSS ๋กœ๋”ฉ์ด ๋๋‚œ ์งํ›„์— JavaScript๋ฅผ ๋กœ๋”ฉํ•˜๊ธฐ ๋•Œ๋ฌธ์— DOM ๋ Œ๋”๋ง ํ›„ JavaScript ์ ์šฉ๊นŒ์ง€์˜ ์‹œ์ฐจ๋ฅผ ์ตœ์†Œํ™”ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. CSS ์ผ๋ฐ˜์ ์œผ๋กœ HTML๊ณผ CSS ์ •๋ณด๊ฐ€ ๋‹ด๊ธด ์ •๋ณด๋“ค์ด ์šฐ์„ ์  ์ ์ง„์ ์œผ๋กœ ๋ Œ๋”๋ง๋˜๊ธฐ ๋•Œ๋ฌธ์— ์œ ์ €์—๊ฒŒ ์ตœ๋Œ€ํ•œ ๋น ๋ฅด๊ฒŒ ์ •๋ณด๊ฐ€ ๋‹ด๊ธด ํ™”๋ฉด์„ ์ „๋‹ฌํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๋งŒ์•ฝ CSS ์š”์†Œ๋ฅผ document์˜ ์œ„๊ฐ€ ์•„๋‹Œ ์•„๋ž˜์— ์œ„์น˜์‹œํ‚จ๋‹ค๋ฉด, ๋ช‡๋ช‡ ๋ธŒ๋ผ์šฐ์ €๋Š” ์Šคํƒ€์ผ์ด ๋ณ€๊ฒฝ๋  ๋•Œ ํŽ˜์ด์ง€ ์š”์†Œ๋ฅผ ์ฒ˜์Œ๋ถ€ํ„ฐ ๋‹ค์‹œ ๊ทธ๋ฆฌ๋Š” ๊ฒƒ์„ ํ”ผํ•˜๊ธฐ ์œ„ํ•ด ์ ์ง„์  .. 2023. 3. 12.