๐Ÿ“ƒ Front-End

๐Ÿ“ƒ Front-End/CSS

position ์†์„ฑ

static, relative, absolute, fixed, sticky ๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค. static ๊ธฐ๋ณธ ์ƒํƒœ์ด๋ฉฐ, ์ฐจ๋ก€๋Œ€๋กœ ์™ผ์ชฝ → ์˜ค๋ฅธ์ชฝ, ์œ„ → ์•„๋ž˜ ์œ„์น˜ ํ•ฉ๋‹ˆ๋‹ค. body{ margin: 0; } div{ width : 50px; height : 50px; margin-bottom : 20px; background : red; } section{ background : yellow; } .box{ background-color : blue; } position์„ ์ง€์ •ํ•˜์ง€ ์•Š์œผ๋ฉด ์œ„์™€ ๊ฐ™์ด ์œ„์—์„œ ์•„๋ž˜๋กœ(div๋Š” block์š”์†Œ) ๋‚˜ํƒ€๋‚ฉ๋‹ˆ๋‹ค. relative ๊ธฐ์กด static์ด์—ˆ์„ ๋•Œ ์œ„์น˜๋ฅผ ๊ธฐ์ค€์œผ๋กœ top, right, bottom, left ์†์„ฑ์„ ์‚ฌ์šฉํ•ด ์œ„์น˜ ์กฐ์ ˆ์ด ๊ฐ€๋Šฅ ํ•ฉ๋‹ˆ๋‹ค. ์•„๋ž˜ ๊ทธ๋ฆผ์—์„œ..

๐Ÿ“ƒ Front-End/CSS

display ์†์„ฑ

์š”์†Œ๊ฐ€ ํ™”๋ฉด์— ์–ด๋–ป๊ฒŒ ๋“œ๋Ÿฌ๋‚˜๊ฒŒ ํ• ์ง€๋ฅผ ๊ฒฐ์ •ํ•˜๋Š” ์†์„ฑ ์ž…๋‹ˆ๋‹ค. ๋Œ€ํ‘œ์ ์œผ๋กœ inline, block, inline-block, none inline inline์€ textํฌ๊ธฐ๋งŒํผ๋งŒ ๊ณต๊ฐ„์„ ์ ์œ ํ•˜๊ณ  ์ค„๋ฐ”๊ฟˆ์„ ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. width, height, top, bottom ์†์„ฑ์€ ๋ฌด์‹œ ๋ฉ๋‹ˆ๋‹ค. left, right ์†์„ฑ์€ ์‚ฌ์šฉ ๊ฐ€๋Šฅ margin ์€ ์ƒํ•˜๋Š” ์ ์šฉ ๋˜์ง€ ์•Š๊ณ , ์ขŒ์šฐ๋งŒ ๊ฐ€๋Šฅํ•ฉ๋‹ˆ๋‹ค. padding ์€ ๋‹ค ๊ฐ€์งˆ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. block block์€ ํ•œ ์˜์—ญ ์ „์ฒด๋ฅผ ์ฐจ์ง€ํ•˜๋Š” ๋ฐ•์Šค ํ˜•ํƒœ๋ฅผ ๊ฐ€์ง€๋Š” ํ˜•ํƒœ width, height, margin, padding ์†์„ฑ์ด ๋ชจ๋‘ ๋ฐ˜์˜ ๋ฉ๋‹ˆ๋‹ค. ํ•ญ์ƒ ์ƒˆ๋กœ์šด ๋ผ์ธ์—์„œ ์š”์†Œ๊ฐ€ ์‹œ์ž‘ ํ•ฉ๋‹ˆ๋‹ค. ๋”ฐ๋กœ ๋ถ€๋ชจ์˜ height๋ฅผ ์„ ์–ธํ•˜์ง€ ์•Š์„ ๊ฒฝ์šฐ, ์ž์‹ ์š”์†Œ์˜ height์˜ ํ•ฉ = ๋ถ€..

๐Ÿ“ƒ Front-End/CSS

Box Model & box-sizing

Box Model CSS ๋ฐ•์Šค ๋ชจ๋ธ์€ HTML Element๊ฐ€ ์›นํŽ˜์ด์ง€์—์„œ ์ฐจ์ง€ํ•˜๋Š” ๊ณต๊ฐ„์„ ์ •์˜ํ•œ ๋ชจ๋ธ ์ž…๋‹ˆ๋‹ค. Box Model ์ด๋ฏธ์ง€ Element์˜ ๋‚ด์šฉ์ด ๋‹ด๊ธด Content ์˜์—ญ Element๋ฅผ ๊ฐ์‹ธ๋Š” ๊ฒฝ๊ณ„ Border ์˜์—ญ Border์™€ Content ์˜์—ญ ์‚ฌ์ด์˜ Padding ์˜์—ญ Border ๋ฐ”๊นฅ์˜ Margin ์˜์—ญ box-sizing box-sizing ์†์„ฑ์„ ์‚ฌ์šฉํ•˜๋ฉด, width ์™€ height ์ด ์ปจํ…์ธ  ์˜์—ญ ๊ธฐ์ค€์ธ์ง€, ํ…Œ๋‘๋ฆฌ ์˜์—ญ ๊ธฐ์ค€์ธ์ง€ ์ •ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. box-sizing ์ข…๋ฅ˜ box-sizing: content-box ๊ธฐ๋ณธ๊ฐ’์ด๋ฉฐ ์ปจํ…์ธ  ์˜์—ญ ๊ธฐ์ค€. Padding ์˜์—ญ๋ถ€ํ„ฐ ํฌํ•จํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. box-sizing: border-box ํ…Œ๋‘๋ฆฌ ์˜์—ญ ๊ธฐ์ค€. Margin ์˜์—ญ๋ถ€ํ„ฐ ํฌํ•จํ•˜..

๐Ÿ“ƒ Front-End/CSS

id & class

id & class html์˜ ํŠน์ • ์š”์†Œ์—๋งŒ ๋‹ค๋ฅธ ํšจ๊ณผ๋ฅผ ์ฃผ๊ณ  ์‹ถ์„ ๋•Œ, ํ•ด๋‹น ์š”์†Œ์— id ๊ฐ’ ๋˜๋Š” class ๋ช…์„ ํ• ๋‹นํ•˜์—ฌ ์ฒ˜๋ฆฌ๊ฐ€ ๊ฐ€๋Šฅ ํ•ฉ๋‹ˆ๋‹ค. id id๋ฅผ ๋ถˆ๋Ÿฌ์˜ฌ ๋•Œ ์ƒต(#) ๋ฅผ ์‚ฌ์šฉ ํ•ฉ๋‹ˆ๋‹ค. ํ•˜๋‚˜์˜ ์š”์†Œ์— ํ•˜๋‚˜์˜ id๋งŒ ์‚ฌ์šฉ ๊ฐ€๋Šฅ ํ•ฉ๋‹ˆ๋‹ค. ์ค‘๋ณต์œผ๋กœ ์‚ฌ์šฉ ๋ถˆ๊ฐ€๋Šฅ ํ•˜๋‚˜์˜ ์•„์ด๋””๋Š” ํŽ˜์ด์ง€์—์„œ ๋”ฑ ํ•œ ๋ฒˆ๋งŒ ์‚ฌ์šฉํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. id ์˜ˆ์ œ ์ œ๋ชฉ ์ œ๋ชฉ2 ์ œ๋ชฉ #title{ font-size : 20px; } class class๋ฅผ ๋ถˆ๋Ÿฌ์˜ฌ ๋•Œ ๋งˆ์นจํ‘œ(.) ๋ฅผ ์‚ฌ์šฉ ํ•ฉ๋‹ˆ๋‹ค. ํ•˜๋‚˜์˜ ์š”์†Œ์— ์—ฌ๋Ÿฌ ๊ฐœ์˜ class ๋ฅผ ์‚ฌ์šฉ ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. class๋ฅผ ์ถ”๊ฐ€ํ•  ๋•Œ๋Š” ๋„์–ด์“ฐ๊ธฐ๋กœ ๊ตฌ๋ถ„ ์ค‘๋ณต ์‚ฌ์šฉ์ด ๊ฐ€๋Šฅํ•˜๋ฉฐ, ๋™์ผํ•œ ํด๋ž˜์Šค๋ช…์„ ํŽ˜์ด์ง€์˜ ์—ฌ๋Ÿฌ ๊ณณ์— ์‚ฌ์šฉ ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. class ์˜ˆ์ œ ์ œ๋ชฉ ์ œ๋ชฉ ์ œ๋ชฉ .title{ font-s..

๐Ÿ“ƒ Front-End/HTML

Open Graph

๋ฐฐํฌํ•œ ํ”„๋กœ์ ํŠธ๋ฅผ ์นด์นด์˜คํ†ก์ด๋‚˜ SNS๋กœ ๊ณต์œ  ํ–ˆ์„ ๋•Œ ์ƒ๋Œ€๋ฐฉ์—๊ฒŒ ๋ณด์—ฌ์ง€๋Š” ์ธ๋„ค์ผ ์นด์นด์˜คํ†ก ๋ง๊ณ ๋„, ํŽ˜์ด์Šค๋ถ์ด๋‚˜ ํ‹ฐ์Šคํ† ๋ฆฌ ๋“ฑ ๋งํฌ๋ฅผ ๊ณต์œ  ํ–ˆ์„ ๋•Œ Open Graph ๋ฅผ ๊ฐ€์ ธ์˜ค๋Š” ํ”Œ๋žซํผ์— ์ „์†ก์„ ํ–ˆ์„ ๋•Œ๋„ ๋ณด์—ฌ์ง‘๋‹ˆ๋‹ค. index.html ํ”„๋กœ์ ํŠธ ์ธ๋„ค์ผ ( og:image ) // content ๊ฒฝ๋กœ๋Š” React ํ”„๋กœ์ ํŠธ ์˜ˆ์‹œ ์›น ์ด๋ฆ„ ( og:site_name ) ๋งํฌ ๊ณต์œ  ์‹œ ์‚ฌ์ดํŠธ ์ด๋ฆ„์ด ์–ด๋–ป๊ฒŒ ๋ณด์ผ ์ง€ ์›น ์ด๋ฆ„ ์•„๋ž˜์— ๋ณด์—ฌ์ง€๋Š” ์„ค๋ช… ๊ธ€ ( og:description ) ๋งŒ์•ฝ Open Graph ์ ์šฉ์ด ๋ณด์ด์ง€ ์•Š์„ ๊ฒฝ์šฐ Open Graph ์˜ ๋ฐ์ดํ„ฐ๋“ค์„ ๋งํฌ๊ฐ€ ๊ณต์œ  ๋  ๋•Œ ๋งˆ๋‹ค ๊ฐ€์ ธ์˜ค๋Š” ๊ฒƒ์ด ์•„๋‹ˆ๋ผ ํ•œ ๋ฒˆ ๊ฐ€์ ธ์˜ค๋ฉด ์บ์‹œ ์ฒ˜๋Ÿผ ๋ณด๊ด€ํ•ด๋†“๊ณ  ์‚ฌ์šฉํ•˜๊ธฐ ๋•Œ๋ฌธ์—, Open Graph ์„ค์ •์„ ๋ณ€๊ฒฝ ํ–ˆ์„ ๋•Œ ๋ฐ”๋กœ ..

๐Ÿ“ƒ Front-End/HTML

์ด๋ฏธ์ง€ ํƒœ๊ทธ์— srcset ์†์„ฑ์„ ์‚ฌ์šฉํ•˜๋Š” ์ด์œ 

srcset ์†์„ฑ์€ ์‚ฌ์šฉ์ž์˜ ๋””์Šคํ”Œ๋ ˆ์ด ์‚ฌ์–‘์— ๋”ฐ๋ผ ๋‹ค๋ฅธ ํ•ด์ƒ๋„์˜ ์ด๋ฏธ์ง€๋ฅผ ์ œ๊ณตํ•จ์œผ๋กœ์จ ์‚ฌ์šฉ์ž ๊ฒฝํ—˜์„ ๋†’์ด๊ธฐ ์œ„ํ•ด ์‚ฌ์šฉ ํ•ฉ๋‹ˆ๋‹ค. ๊ณ ์‚ฌ์–‘ ๋””์Šคํ”Œ๋ ˆ์ด์—๋Š” ๊ณ ์‚ฌ์–‘ ์ด๋ฏธ์ง€๋ฅผ ์ œ๊ณตํ•˜๊ณ  ์ €์‚ฌ์–‘ ๊ธฐ๊ธฐ์—๋Š” ์ €ํ•ด์ƒ๋„ ์ด๋ฏธ์ง€๋ฅผ ์ œ๊ณตํ•˜๋Š” ๋ฐฉ์‹ ์ž…๋‹ˆ๋‹ค. srcset ๊ฐ™์€ ๋น„์œจ์˜ ๋‹ค์–‘ํ•œ ํฌ๊ธฐ๋ฅผ ๊ฐ€์ง€๋Š” ๋™์ผ ์ด๋ฏธ์ง€ 2๊ฐœ ์ด์ƒ ๋ช…์‹œํ•˜๋Š” ์†์„ฑ ์ž…๋‹ˆ๋‹ค. srcset ์‚ฌ์šฉ ๋ธŒ๋ผ์šฐ์ €๊ฐ€ ์‚ฌ์šฉํ•  ์ด๋ฏธ์ง€๋“ค๊ณผ ๊ทธ ์ด๋ฏธ์ง€๋“ค์˜ ์›๋ณธํฌ๊ธฐ๋ฅผ ์ง€์ •(์ด๋ฏธ์ง€ ๋ชฉ๋ก) ์ž‘์€ ํฌ๊ธฐ ์ด๋ฏธ์ง€๋ถ€ํ„ฐ ์ˆœ์„œ๋Œ€๋กœ ์ž…๋ ฅ px๋‹จ์œ„๊ฐ€ ์•„๋‹Œ w๋””์Šคํฌ๋ฆฝํ„ฐ(width) ํ˜น์€ x๋””์Šคํฌ๋ฆฝํ„ฐ(๋ฐฐ์ˆ˜ 2x, 3x..) ์ž…๋ ฅ sizes ๋ฏธ๋””์–ด์กฐ๊ฑด๊ณผ ๊ทธ ์กฐ๊ฑด์— ํ•ด๋‹นํ•˜๋Š” ์ด๋ฏธ์ง€์˜ ‘์ตœ์ ํ™” ์ถœ๋ ฅ ํฌ๊ธฐ’ ๋ฅผ ์ง€์ • ํ•ฉ๋‹ˆ๋‹ค. ์˜ˆ์ œ

๐Ÿ“ƒ Front-End/HTML

๋ฐ˜์‘ํ˜•(Responsive) & ์ ์‘ํ˜•(Adaptive)

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

๐Ÿ“ƒ Front-End/HTML

์ปค์Šคํ…€ ๋ฐ์ดํ„ฐ ์†์„ฑ(date-*)

HTML์—์„œ ๊ธฐ๋ณธ์ ์œผ๋กœ ์ œ๊ณต๋˜๋Š” ์†์„ฑ์ด ์•„๋‹Œ, ๊ฐœ๋ฐœ์ž๊ฐ€ ์ž„์˜์˜ ์†์„ฑ์„ ์ถ”๊ฐ€ํ•˜๊ณ ์ž ํ•  ๋•Œ ์‚ฌ์šฉ ํ•ฉ๋‹ˆ๋‹ค. ํŠน์ง• ์ปค์Šคํ…€ ๋ฐ์ดํ„ฐ ์†์„ฑ์€ html tag ์ƒ์—์„œ ๋ณ„๋‹ค๋ฅธ ์ž‘์šฉ์„ ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ์†์„ฑ์˜ ์‹œ์ž‘์€ ๋ฐ˜๋“œ์‹œ data-๋กœ ์‹œ์ž‘ ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ์™€ CSS์—์„œ๋„ ์ปค์Šคํ…€ ๋ฐ์ดํ„ฐ ์†์„ฑ์˜ ์ •๋ณด๋ฅผ ์‚ฌ์šฉ ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๋ธŒ๋ผ์šฐ์ €๋Š” ์ปค์Šคํ…€ ๋ฐ์ดํ„ฐ ์†์„ฑ์„ ๋งŒ๋‚˜๋ฉด ํ•ด์„ํ•˜์ง€ ์•Š๊ณ  ๊ฑด๋„ˆ ๋œ๋‹ˆ๋‹ค. ๋”ฐ๋ผ์„œ ๋ณด์—ฌ์ง€๋Š” ํ™”๋ฉด์— ์•„๋ฌด๋Ÿฐ ์˜ํ–ฅ์„ ์ฃผ์ง€ ์•Š์Šต๋‹ˆ๋‹ค. HTML ์‚ฌ์šฉ data-์ด๋ฆ„ ์œผ๋กœ ์‚ฌ์šฉ ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์–ด๋–ค ์—˜๋ฆฌ๋จผํŠธ๋“  data-๋กœ ์‹œ์ž‘ํ•˜๋Š” ์†์„ฑ์€ ๋ฌด์—‡์ด๋“  ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ํ™”๋ฉด์— ์•ˆ ๋ณด์ด๊ฒŒ ๊ธ€์ด๋‚˜ ์ถ”๊ฐ€ ์ •๋ณด๋ฅผ ์—˜๋ฆฌ๋ฉ˜ํŠธ์— ๋‹ด์•„ ๋†“์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. CSS ์‚ฌ์šฉ article[data-columns='3'] { width: 400px..

HoHo.dev
'๐Ÿ“ƒ Front-End' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๊ธ€ ๋ชฉ๋ก (14 Page)