* ๊ฐ์ธ์ ํ์ต ๋ด์ฉ ๊ธฐ๋ก ์ค, ๊ทนํ ์ผ๋ถ์ ๋ด์ฉ๋ง ์์ฑ๋์์ต๋๋ค.
3์ฃผ์ฐจ ์ค์ต
CSS ์ค๊ธ
์ด๋ฏธ์ง ์๋ผ์ ๋ฐฐ๊ฒฝ์ผ๋ก ์ฐ๊ธฐ : background-position
๊ฐ์์์ ์ ํ์ before/after
li ๊ฐ๋ก๋ก ๋ฐฐ์นํ๊ธฐ
list-style: none;
display:inline-block;
padding: 10px;
๋ณํํจ๊ณผ - transition ์์ฑ
์์ฑ ์ข ๋ฅ
transition-delay : ์ง์ฐ์๊ฐ
- duration : ๋ณํ์๊ฐ
- property : ๋์ ์์ฑ
- timing-function : ๋ณด๊ฐ ํ์ (์ธํฐํด๋ ์ด์ , ์๊ฐ์ ๊ฐ๊ฒฉ์ ์ฑ์)
cubic-bezier()
๋ฐฐ์ง์ด ๊ณก์ - ์ํ์ ๋ฒ ์ง์ด๊ฐ ์ ์ํ ๋ ์ ๋ง์ผ๋ก ๊ณก์ ์ ์ ์ํ๋ ๊ณต์
๋ณํ ์์ฑ - transform ์์ฑ
CSS ์ด๊ธฐํ ์ฝ๋
: Eric Meyer’s CSS Reset
/* http://meyerweb.com/eric/tools/css/reset/ */
html, body, div, span, applet, object, iframe, h1, h2, h3, h4, h5, h6,
p, blockquote, pre, a, abbr, acronym, address, big, cite, code,
del, dfn, em, img, ins, kbd, q, s, samp, small, strike, strong, sub, sup, tt, var,
b, u, i, center, dl, dt, dd, ol, ul, li, fieldset, form, label, legend,
table, caption, tbody, tfoot, thead, tr, th, td, article, aside, canvas, details,
embed, figure, figcaption, footer, header, hgroup, menu, nav, output, ruby,
section, summary, time, mark, audio, video {
margin: 0;
padding: 0;
border: 0;
font-size: 100%;
font: inherit;
vertical-align: baseline;
}
/* HTML5 display-role reset for older browsers */
article, aside, details, figcaption, figure,
footer, header, hgroup, menu, nav, section {
display: block;
}
body {
line-height: 1;
}
ol, ul {
list-style: none;
}
blockquote, q {
quotes: none;
}
blockquote:before, blockquote:after, q:before, q:after {
content: '';
content: none;
}
table {
border-collapse: collapse;
border-spacing: 0;
}
์ํ/์์ง์ ๋ ฌ (align)
ํ์์์ ์ค์์ ๋ ฌ
display: flex;
justify-content: center;
align-items: center;
๋ฐ์ํ ์น - ๋ฏธ๋์ด์ฟผ๋ฆฌ ์์ฑ
Flex : ์์ญ ๋ถ๋ฐฐํ๊ธฐ (๋น์จ)
@media
๋ฒค๋ ํ๋ฆฌํฝ์ค
- ์น๋ธ๋ผ์ฐ์ ์ ์๋ก์ด ๊ธฐ๋ฅ์ด ๋์ฌ๋
- ํ์คํ๊ฐ ์๋ฃ๋๊ธฐ ์ ์ค๊ฐ๋จ๊ณ๋ก vender prefix(์ ๋์ด)๋ฅผ ์ ๊ณตํจ
๋ธ๋ผ์ฐ์ ๊ณ ๋ ค ์ฌํญ 4๊ฐ์ง : ํฌ๋กฌ, ์ฃ์ง, ์ฌํ๋ฆฌ, ํ์ด์ดํญ์ค
๋ธ๋ผ์ฐ์ ๋ฒค๋ ํ๋ฆฌํฝ์ค ์์
Chrome, Safari -webkit- -webkit-transform
Firefox -moz- -moz-border-radius
Internet Explorer -ms- -ms-user-select
Lorem ๊ฟํ :
loerm5 ์ ๋ ฅ ์ 5๊ฐ ๋จ์ด๊ฐ ์์ฑ๋จ - ๋จ์ด ์ ์ง์ ๊ฐ๋ฅ
lorem*2 ์ ๋ ฅ ์ lorem ๋ฌธ์ฅ 2๊ฐ๊ฐ ์์ฑ๋จ - ๋ฌธ์ฅ ๊ฐฏ์ ์ง์ ๊ฐ๋ฅ
Emmet
(= Zen Coding)
VSCode Emmet ๋ฌธ๋ฒ์ HTML, CSS ๋ฑ์ ์ฝ๋๋ฅผ ๋ ๋น ๋ฅด๊ฒ ์์ฑํ ์ ์๋๋ก ๋๋ ๊ธฐ๋ฅ.
Emmet์ ์ถ์ฝ๋ ๋ฌธ๋ฒ์ ํตํด ์ฝ๋๋ฅผ ์์ฑํ๋ฉฐ, VSCode์์ ๊ธฐ๋ณธ์ ์ผ๋ก ํ์ฑํ๋์ด ์์
Tailwind CSS
html์ ๋ ๋์ง ์๊ณ ๋น ๋ฅด๊ฒ ๋น๋ํ๋ CSS ํ ํ๋ฆฟ
์ด๋ ค์ด ๊ฒ) ํ ์ผ์๋์์๋ ๊ธฐ๋ณธ์ ์ผ๋ก rem ๋จ์๋ฅผ ์ฌ์ฉํ๋๋ฐ, ์ด๊ฒ ๋๊ฒ ์ถ์์ ์ด๋ผ ..
%๋ px ๋จ์๊ฐ ํธํด์ ๊ฑฐ์ ์์ธ ๊ฒ ๊ฐ๊ธดํ๋ฐ ๊ทธ๋๋ ์จ๋ณด๋ฉด์ ์ตํ์ผ ํ ๊ฒ ๊ฐ๋ค.
md(๋ฏธ๋์ด์ฟผ๋ฆฌ, ๋ฐ์ํ)
Breakpoint prefix Minimum width CSS
sm 640px @media (min-width: 640px) { ... }
md 768px @media (min-width: 768px) { ... }
lg 1024px @media (min-width: 1024px) { ... }
xl 1280px @media (min-width: 1280px) { ... }
2xl 1536px @media (min-width: 1536px) { ... }
daisyUI
- Tailwind CSS๋ฅผ ํ์ฅํ๋ UI ์ปดํฌ๋ํธ ๋ผ์ด๋ธ๋ฌ๋ฆฌ
- ๋ฏธ๋ฆฌ ์ค๊ณ๋ UI ์์๋ฅผ ์ ๊ณตํ์ฌ ๋น ๋ฅด๊ณ ์ฝ๊ฒ ์คํ์ผ๋ง๋ ์ปดํฌ๋ํธ๋ฅผ ์ฌ์ฉํ ์ ์์
JavaScript
๊ณต์๋ช ์นญ์ ECMA Script
Java์ JavaScript๋ ์์ ๋ค๋ฆ
ES6(ECMA Script 6)์์ ์ธ์ด์ ์ผ๋ก ์์ฑ๋จ.
ํน์ง
: ์น๋ธ๋ผ์ฐ์ ์์ ์ง์ํ๋ ์ ์ผํ ์ธ์ด
: ๊ณผ๊ฑฐ Basic์ธ์ด : ๊ตฌ๊ธ์์ JS V8 ์์ง์ ํฅ์์ํค๊ณ , ์คํ ์์ค๋ก ๋ฐฐํฌ
JS๋ฅผ ์ ์ธํ๋ 3๊ฐ์ง ๋ฐฉ๋ฒ
- scriptํ๊ทธ์์์ - head,bodyํ๊ทธ
- htmlํ๊ทธ ์์ฑ์ผ๋ก - onclick,href
- ๋ณ๋์ jsํ์ผ import / linkํด์
js ๋ณ์ ์ ์ธ : var, let, const
- var : ๋ณ์, ๊ฐ์์ด๋ฆ ์ฌ์ ์ธ ๊ฐ๋ฅ, ํ์ ๋ณ๊ฒฝ ๊ฐ๋ฅ
- let : ๋ณ์, ์ต๊ทผ์ ์ถ๊ฐ๋จ(ES6), ๊ฐ์์ด๋ฆ ์ฌ์ ์ธ ๋ถ๊ฐ
- const : ์์
JavaScript๋ ๊ธฐ๋ณธ์ ์ผ๋ก ๋๊ธฐ ์ธ์ด (์์ฐจ ์คํ)
ํ์ง๋ง ๋น๋๊ธฐ ํ๋ก๊ทธ๋๋ฐ์ ์ง์ (์ด๋ฒคํธ ๋ฃจํ, ์ฝ๋ฐฑ ํจ์, ํ๋ก๋ฏธ์ค(Promise), async/await ๋ฑ์ ์ ๊ณต)
ํ๋ณํ
NaN (Not a Number)
์ฐ์ฐ์
์ฐ์ฐ์์ ์ฐ์ ์์ : ์ฐ์ฐ์๊ฐ ํ ์ค์ ์์ ๋, ์ฐ์ ์์์ ๋ฐ๋ผ ์์ฐจ์ ์ฐ์ฐ ์งํ
(๋จํญ > ์ดํญ > ์ผํญ > ๋์ )
๋ ผ๋ฆฌ์ฐ์ฐ์
์กฐ๊ฑด๋ฌธ - if/switch
๋๋์ :
์น๊ตฌ์ ์ฝ๋๋ฅผ ํ๋ฒ ๋ดค๋๋ฐ ์๋ฌด๋๋ ์ฝ๋ฉ์ ์๋ ํ๋ ์ฌ๋๋ค์ด๋ค๋ณด๋ ๊ฐ๋จํ ๋ฌธ์ ์ธ๋ฐ๋ ์ฝ๋๊ฐ ์ ๋ง ๋ฌ๋๋ค.
์ด๊ฒ ๋ฐ๋ก ํํ ๋งํ๋ ์ฝ๋ฉ ์คํ์ผ์ธ๊ฐ …
์กฐ๊ฑด๋ฌธ์ ์ฌ์ฉํ ๋, ์ ์์ธ์ฒ๋ฆฌ๋ก returnํ์ฌ ๋ก์ง์ ์ต๋ํ ํจ์จ์ ์ผ๋ก ๋ง๋๋๊ฒ ์ ์์ด๊ณ
๊ทธ ๋ค์๋ if๋ฅผ ์ฐ๊ฑฐ๋ ์ผํญ์ฐ์ฐ์๋ฅผ ์ฐ๊ฑฐ๋ ์ทจํฅ ์ฐจ์ด์ธ ๋๋
Random ํจ์
- 0 ์ด์ N ๋ฏธ๋ง์ ์ ์
Math.floor(Math.random() * N);
- floor : ์ซ์ ๋ด๋ฆผ (์์ซ์ ๋ฒ๋ฆผ)
- random : 0.0 ~ 0.999999 ๊น์ง์ ์์ ์ ๋ฐ์
- 1 ์ด์ 10 ์ดํ์ ์ ์
→ Math.floor(Math.random() * 10)+1;
๋ฐ๋ณต๋ฌธ - for, while, do-while
๋น๊ต์ฐ์ฐ์
Break/Continue