- Fetch API
- Promise
- mock server
- json-server
- MSW
- stacking context
- ES Classes
- this
- call
- bind
- CSS
- transiton vs animation
- transition
- transform
- Carousel
- SASS
- Vsync
- fps
- requestAnimationFrame
- OOP
- Prototype
- defer vs asyc
-
DOMContentLoadedvsloadaddEventListener('DOMContentLoaded', () => {})
์ด๊ธฐ HTML ๋ฌธ์๋ฅผ ์์ ํ ๋ถ๋ฌ์ค๊ณ ๋ถ์ํ์ ๋ ๋ฐ์ํ๋ค. ์คํ์ผ ์ํธ, ์ด๋ฏธ์ง, ํ์ ํ๋ ์์ ๋ก๋ฉ์ ๊ธฐ๋ค๋ฆฌ์ง ์๋๋ค.addEventListener('load', () => {})
๋ฆฌ์์ค์ ๊ทธ๊ฒ์ ์์กดํ๋ ๋ฆฌ์์ค๋ค์ ๋ก๋ฉ์ด ์๋ฃ๋๋ฉด ์คํ๋๋ค.
- transition์ผ๋ก ์ ๋๋ฉ์ด์ ๊ตฌํํด๋ณด๊ธฐ
- list ํํ๋
liํ๊ทธ ์ฌ์ฉํ๊ธฐ - ์ ์ญ๋ณ์๋ก ์ ์ธ๋์ด ์๋
querySeletorํจ์ ์์ผ๋ก ๋ฃ๊ธฐ -
openAllItemsํจ์๊ฐ ํธ์ถ๋ ๋๋ง๋ค ์ด๋ฒคํธ๊ฐ ๋ฑ๋ก๋๋ ํ์ธ ํ ๋ฆฌํฉํ ๋ง ํ๊ธฐ -
detailMenuHandlerํจ์ ->({ target: { textContent: menu } }) => {
-
template literal -
createElement -
appendChild -
insertBefore -
event.target -
event.preventDefault() - Event delegation
- ๋ฒ๋ธ๋ง
- ์บก์ณ๋ง
- ๋จ์ ๊ณต๋ถ
- em : ๋ถ๋ชจ ์์์ ๊ธ๊ผด ํฌ๊ธฐ์ ๋ฐ๋ผ ์๋์ ์ผ๋ก ํฌ๊ธฐ๋ฅผ ์กฐ์ (์๋์ )
- rem : HTML ์์์ ๋ฃจํธ ์์(์ผ๋ฐ์ ์ผ๋ก html ์์)์ ๊ธ๊ผด ํฌ๊ธฐ์ ๋ฐ๋ผ ์๋์ ์ผ๋ก ํฌ๊ธฐ๋ฅผ ์กฐ์ (์๋์ )
- ๋ฉ๋ด ํญ๋ชฉ์ ๊ฐฏ์๊ฐ ์ฆ๊ฐ/๊ฐ์ ํ๋ค๊ณ ์๊ฐํ๋ฉด ์ฝ๋์์ ์ด๋ป๊ฒ ๋์ํด์ผ ํ ๊น?
- ๋ฉ๋ด ํญ๋ชฉ์ ์ ๋๋ฉ์ด์ ํํ๋ฐฉ์์ด ๋ณ๊ฒฝ๋๋ฉด ์ฝ๋์์ ์ด๋ป๊ฒ ๋์ํด์ผ ํ ๊น?
- ์๋จ ๋ค๋น๊ฒ์ด์
๋ฐ
- ๊ณตํต
- ๊ฐ ํธ๋ฒ ์์ญ ํน์ ๋ ์ด์ด ์์ญ์ ๋ง์ฐ์ค๊ฐ ๋ฒ์ด๋๋ฉด ๋ ์ด์ด์ ํจ๊ณผ๊ฐ ์ฌ๋ผ์ง๊ฒ ํ๋ค.
- ์๋จ๋ฐ๋ ํ๋ฉด์ ๊ฐ๋ก ์ฌ์ด์ฆ๊ฐ 1120px ์ด์์ผ๋ก ๋์ด๋๋ ๊ฒฝ์ฐ, ๊ฒ์๋ฐ๊ฐ ๊ธธ์ด์ง๊ณ ํ๋ฉด์ ๊ฐ๋ก์ฌ์ด์ฆ์ ๋ง์ถฐ ๋์ด๋๋๋ก ํ๋ค.
- ์ด ๋ ๋ณธ๋ฌธ ์์ญ์ 1120px๋ก ๊ณ ์ ๋น๋ฅผ ์ ์งํ๋๋ก ํ๋ค.
- ๋ก๊ทธ์ธ
- ๋ฉ์ธ ํ์ด์ง ์ง์ 1์ด ๋ค [๋ก๊ทธ์ธ] ๋ฒํผ ์ค๋ฅด๋ฅต ๋ณด์ด๊ฒ ํ๋ค.
- [๋ก๊ทธ์ธ] ์์ญ์ ๋ง์ฐ์ค๋ฅผ ํธ๋ฒํ๋ฉด ํ์ฅ๋ ๋ฒ์ ์ ๋ ์ด์ด๊ฐ ๋จ๊ฒ ํ๋ค.
- ์ด ๋ ๋ฐฐ๊ฒฝ์ ๋ค ์ฒ๋ฆฌ ํ๋ค.
- ๋ฐฐ์ก์ฒ ์์ญ
- [๋ฐฐ์ก์ฒ ์์ญ]์ ๋ง์ฐ์ค๋ฅผ ํธ๋ฒํ๋ฉด ์ฃผ์ ๋ณ๊ฒฝ์ ๋ํ ๋ ์ด์ด๊ฐ ๋จ๊ฒ ํ๋ค.
- ๋ก๊ทธ์ธ ๋ ์ด์ด์ ๋์ผํ ๋ฐฐ๊ฒฝ์ ๋ค ์ฒ๋ฆฌ ํ๋ค.
- ๋ชจ๋ฌ
- ์ฐ์ธก ์๋จ - ๊ตญ๊ฐ, ๊ณ์ ๋ฐ ๋ชฉ๋ก
- alert์ด๋ confirm ํจ์๋ฅผ ์ฌ์ฉํ์ง ์๋๋ค.
- ๊ณตํต
- ์ฌ์ด๋ ๋ฐ
- ์๋จ ๋ฐ์ [๋ชจ๋] ๋ฒํผ์ ๋๋ฅด๋ฉด ์ข์ธก์ ์ฌ์ด๋๋ฐ๊ฐ ์ ๋๋ฉ์ด์ ๊ณผ ํจ๊ป ๋์จ๋ค.
- X ๋ฒํผ์ผ๋ก ์ฌ์ด๋ ๋ฐ๊ฐ ๋ซํ๋๋ก ํ๋ค.
- ๋ก๊ทธ์ธ ๋ฒํผ์ ์ค์ ๋ก ๋์ํ์ง ์๋๋ค.
- ๊ฐ ๋ชฉ๋ก์ ๋ง์ฐ์ค๋ฅผ ํธ๋ฒํ๋ฉด ๋ฐฐ๊ฒฝ์๊ณผ ์์ด์ฝ ์์ด ๋ณํ๋ ํจ๊ณผ๋ฅผ ์ค๋ค.
- [๋ชจ๋ ๋ณด๊ธฐ]๋ฅผ ํด๋ฆญํ๋ฉด ์ ํ ์๋ ์นดํ ๊ณ ๋ฆฌ๊ฐ ์๋๋ก ํผ์ณ์ง๊ฒ ํ๊ณ ์ ๋๋ฉ์ด์ ์ ์ค๋ค.
- [๊ฐ๋จํ ๋ณด๊ธฐ]๋ฅผ ํด๋ฆญํ๋ฉด ์ ๋๋ฉ์ด์ ํจ๊ณผ์ ํจ๊ป ๋ชฉ๋ก์ด ๋ค์ ์ ํ๊ฒ ํ๋ค.
- [๋ถ์๋ณ ์ผํ] ํ์ ์นดํ ๊ณ ๋ฆฌ๋ฅผ ํด๋ฆญํ๋ฉด ์ฐ์ธก์์ ์ข์ธก์ผ๋ก ๋ด์ญ์ด ๋ณด์ด๋๋ก ์ ๋๋ฉ์ด์ ์ ์ค๋ค.
- ๊ฐ ์นดํ ๊ณ ๋ฆฌ ํญ๋ชฉ์ ์ค์ ๋ก ์๋ํ์ง ์๋๋ค.
- ์ฌ์ด๋๋ฐ ์ ๋๋ฉ์ด์
(trasition ์ฌ์ฉ)
- ํญ๋ชฉ ์ ๊ธฐ
- ํญ๋ชฉ ํผ์น๊ธฐ
- ํ์ ๋ฉ๋ด ์์ญ ๋ ธ์ถ
- DOM ์กฐ์์ ์๋ ๋ฉ์๋ ํ์ฉ
-
createElement -
appendChild -
insertBefore
-
- rem ๋จ์ ์ฌ์ฉํด๋ณด๊ธฐ
-
ํ์ด๋ก ์์ญ
- Carousel UX ๊ตฌํ (๋ฌดํ ์ฌ๋ผ์ด๋)
- ์๋ ์ฌ๋ผ์ด๋
- ๋ฌดํ ์ฌ๋ผ์ด๋
- 10์ด๋ง๋ค ๋ค์ ์ด๋ฏธ์ง
- ์ข, ์ฐ ํ์ดํ๋ก ๋ด์ฉ ๋ณ๊ฒฝ
-
SASS ์ฌ์ฉ
-
๊ฐ์ฒด์งํฅ ํ๋ก๊ทธ๋๋ฐ ์ ์ฉ
-
ํ๋กํ ํ์ ์ฌ์ฉํด๋ณด๊ธฐ
-
๋๋๋ง ์์ ์์ template literal ํ์ฉ
-
crong's review
-
openAllItems์clsoseAllItems์ ํ๋์ ํจ์๋ก ํต์ผ -
moveMain๋ ๊ตฌ์ฒด์ ์ธ ์ด๋ฆ์ผ๋ก ๋ฐ๊พธ๊ธฐ -
hideSideBar์ด๊ณ ๋ซ๋ ํจ์์ฒ๋ผ ๋ณด์ด๋ ์ด๋ฆ ๋ฐ๊พธ๊ธฐ
-
-
๊ฒ์๋ฐ๋ฅผ ํด๋ฆญํ๋ฉด
- ์๋๋ก ์ถ์ฒ ๊ฒ์์ด 10๊ฐ๊ฐ ํ์๋์ด์ผ ํ๋ค.
- ๋ฐฐ๊ฒฝ์ ๋ค์ฒ๋ฆฌ ๋์ด์ผ ํ๋ค.
-
๊ฒ์์ด ์ ๋ ฅ ์ ์ค์๊ฐ ์๋์์ฑ์ด 10๊ฐ ํ์๋์ด์ผ ํ๋ค.
-
๊ฒ์๋ฐ ์๋ ๋ฆฌ์คํธ๋ ํค๋ณด๋๋ก ์ด๋์ด ๊ฐ๋ฅํด์ผ ํ๋ค.
-
์ ํ๋ ์์ดํ ์ ๋ฐฐ๊ฒฝ์์ ๋ณ๊ฒฝํด์ผ ํ๋ค.
-
๋ด๊ฐ ๊ฒ์ํ๋ ๋จ์ด๊ฐ ์ต๋ 5๊ฐ ๊ฒ์์ฐฝ ์์์ ๋ณด์ฌ์ผํ๋ค.
-
๋ด๊ฐ ๊ฒ์ํ๋ ๋จ์ด๋ X ๋ฒํผ์ ๋๋ฌ ์ญ์ ํ ์ ์์ด์ผํ๋ค.
-
๊ฒ์์ฐฝ ์๋ฒ ์ฐ๋
- ์ถ์ฒ ๊ฒ์์ด
- ์ต๊ทผ ๊ฒ์์ด
- ํค๋ณด๋๋ก ๊ฒ์๊ฒฐ๊ณผ ์ ํ
- ๊ฒ์ ์๋์์ฑ (json-server์ ์ฐ๋)
- query๋ฅผ ๋ณด๋ด๊ณ get
-
async/await ๋ณด๋ค๋ promise/then ์ฌ์ฉ
-
mock server ์ฐ๋
- json-server or MSW or ๊ธฐํ - postman ์ฌ์ฉ
-
์๋ฒ ์ฐ๋ ๋ฐ์ดํฐ ๊ฐ์ ธ์ค๊ธฐ
- ์ฌ๋ผ์ด๋ฉ UX
- ์ข์ธก ๋ฉ๋ด
pull request eslint & prettier sementic tag CSS-flex CSS-flex ์ ๋ ฌ