rel="preconnect"์ ์ฌ์ฉ
preload, prefetch, preconnect
์นํฐํธ ์ต์ ํ ํ๊ธฐ
์น ํฐํธ ์ฌ์ฉ๊ณผ ์ต์ ํ์ ์ต๊ทผ ๋ํฅ
<link rel="preconnect" href="font ์ฃผ์">
ํ์ฌ ํ์ด์ง์์ ์ธ๋ถ ๋๋ฉ์ธ์ ๋ฆฌ์์ค๋ฅผ ์ฐธ๊ณ ํ๋ ๊ฒ์ ๋ธ๋ผ์ฐ์ ์๊ฒ ์๋ ค ๋ฏธ๋ฆฌ ์ธ๋ถ ๋๋ฉ์ธ๊ณผ ์ฐ๊ฒฐ์ ์ค์ ํ ์ ์๊ฒ ํ๋ค.
preconnect๋ฅผ ์ฌ์ฉํ๋ฉด ๋ธ๋ผ์ฐ์ ๊ฐ ์ฌ์ดํธ์ ํ์ํ ์ฐ๊ฒฐ์ ๋ฏธ๋ฆฌ ์์ํ ์ ์๊ฒ ๋๋ค. ๋ธ๋ผ์ฐ์ ๋ ํ์ํ ์์ผ์ ๋ฏธ๋ฆฌ ์ค์ ํ ์ ์๊ธฐ ๋๋ฌธ์ DNS, TCP, TLS ์๋ณต์ ํ์ํ ์๊ฐ์ ์ ์ฝํ ์ ์๊ฒ ๋๋ค.
์ฌ์ดํธ ๋๋ฉ์ธ ๋ด์ ์ ๋ก๋๋ ์นํฐํธ๊ฐ ์๋ ๊ฒฝ์ฐ ์ด๋ฅผ ๋ธ๋ผ์ฐ์ ์๊ฒ ์๋ ค์ค์ ๋ฏธ๋ฆฌ ์ฌ์ ์์ ์ ํ๊ฒ ํด์ ๋น ๋ฅด๊ฒ ์ฐ๊ฒฐํ ์ ์๊ฒ ํ๋ ์ญํ ์ ํ๋ค.
์ฐ๋ฆฌ๋ง๋ก ์ฑ๋ฐฐ ๋ ์ด์์์ด๋ผ๊ณ ํ๋ฉฐ header, nav, main, aside, footer๋ก ์ด๋ฃจ์ด์ง ์ด์์ ์ธ ๋ ์ด์์์ด๋ค. ๊ตฌํ ๋ฐฉ๋ฒ์ ์ฐพ๋ ๊ฒ์ด ๋ง์น ์ฑ๋ฐฐ๋ฅผ ์ฐพ๋ ๊ฒ๊ณผ ๊ฐ์ด ์ด๋ ต๋ค๊ณ ํด์ ๋ถ์ฌ์ง ์ด๋ฆ๊ฐ๋ค. ํ์ง๋ง, flex์ grid๊ฐ ๋์ค๋ฉด์ ์ฝ๊ฒ ๊ตฌํํ ์ ์๊ฒ ๋์๋ค.
์ด๋ฏธ์ง ์ถ์ฒ: ์ํ์ฝ๋ฉ
<body>
<div>
<header>HEADER</header>
<section>
<nav>NAV</nav>
<main>MAIN</main>
<aside>ASIDE</aside>
</section>
<footer>FOOTER</footer>
</div>
</body>
์ ์ฒด๋ฅผ ๊ฐ์ธ๋ <div>
์๋ flex-direction: column;
์ ์ ์ฉ์์ผ์ ์์ง์ ๋ ฌ ์ํค๊ณ ,
nav
, main
, aside
๋ฅผ ๊ฐ์ธ๋ section
์๋ flex-direction: row;(๊ธฐ๋ณธ๊ฐ์ด๋ฏ๋ก ์ ์ ์ด์ค๋ ์๋ ์ ์ฉ)
์ ์ ์ฉ์์ผ์ ์ํ์ ๋ ฌ ์ํค๋ ๊ฒ์ด ๊ด๊ฑด์ด๋ค.
div {
display: flex;
flex-direction: column;
border: 5px solid black;
}
header {
border: 5px solid red;
}
section {
display: flex;
}
nav {
width: 150px;
flex-grow: 2;
flex-shrink: 0;
border: 5px solid yellow;
}
main {
flex-grow: 6;
flex-shrink: 0;
border: 5px solid green;
}
aside {
flex-basis: 150px;
flex-grow: 2;
flex-shrink: 0;
border: 5px solid blue;
}
footer {
border: 5px solid purple;
}
@media screen and (max-width: 700px) {
section {
flex-direction: column;
}
nav,
main,
aside {
flex-basis: auto;
}
}
nav
, main
, aside
์flex-grow
๊ฐ์ผ๋ก ๊ฐ๊ฐ 2, 6, 2๊ฐ ๋ถ์ฌ๋ ๊ฒ์ ๋ณผ ์ ์๋๋ฐ,
์ด๋ ์ ์ฒด ๋๋น์์ nav
๊ฐ 10๋ถ์ 2, main
์ด 10๋ถ์ 6, aside
๊ฐ 10๋ถ์ 2๋ฅผ ์ฐจ์งํ๋๋ก ํ๋ค.(width๋ flex-basis๊ฐ ์ ์ฉ๋์ง ์์์ ๊ฒฝ์ฐ์ ํ์ ํจ)
nav
์ aside
์ flex-shrink: 0;
๋ฅผ ๋ถ์ฌํด์ ์ปจํ
์ด๋์ ํฌ๊ธฐ๊ฐ ์ค์ด๋ฆ์ ๋ฐ๋ผmain
์ ์ค์ด๋ค์ง๋ง nav
์ aside
๋ 150px ์ดํ๋ก๋ ์ค์ด๋ค์ง ์๋ ๊ฒ์ ๋ณผ ์ ์๋ค.
width
์ flex-basis
์ ์ฐจ์ดCSS width vs flex-basis
700px ์ดํ์์ section
์ flex-direction
์ด column
์ผ๋ก ๋ฐ๋์ nav
์ ๋๋น๋ ๊ณ ์ ๊ฐ 150px์ด ๋์๊ณ aside
๋ ๋๋น๋ ์ปจํ
์ด๋๋ฅผ ๊ฐ๋ ์ฑ์ฐ๊ณ ๋์ด๊ฐ 150px์ด ๋์๋ค.
width
๋ flexbox
์ ์ฃผ์ถ ๋ฐฉํฅ๊ณผ ์๊ด์์ด ๊ฐ๋ก๊ธธ์ด๋ฅผ ์ค์ ํ๋ ์์ฑ์ด๊ณ flex-basis
๋ ๊ธธ์ด๋ฅผ flexbox
์ ์ฃผ์ถ ๋ฐฉํฅ์ผ๋ก ์ค์ ํ๋ ์์ฑ์ด๊ธฐ ๋๋ฌธ์ ๋ฐ์ํ๋ ์ฐจ์ด์ด๋ค. ์ด๋ฅผ ํด๊ฒฐํ๊ธฐ ์ํด flex-basis
๋ฅผ auto
๋ก ๋ฐ๊ฟ์ฃผ์๋ค.