git flow์ ๋ํด์ ๊ณต๋ถํ๊ณ test๋ก ์ง์ ์ฐ์ตํ๋ฉด์ ์ ์ฉํ์๋ค.next.js ํ๋ก์ ํธ๋ฅผ ์งํํ๊ธฐ ์ํด ๊ณต์๋ฌธ์๋ฅผ ์ฝ์๋ค.FOUNDATIONS (About Next.js, From JavaScript to React)You can pass the state in
Next.js ๊ณต์๋ฌธ์ ์ฝ์ผ๋ฉด์ ๊ณต๋ถํ๋ค.Foundation (From React to Next.js, How Next.js Works)์ด์ ๊ณต๋ถํ๋ค๊ฐ ๊ถ๊ธ ์ฌํญ๋ค์ ์ ์ผ๋ฉด์ ์ ๋ฆฌํด๋ณด์๋ค.ํ๋ ์์ํฌ๋ ๋ผ๋๋ ๊ธฐ๋ฐ๊ตฌ์กฐ๋ฅผ ๋ปํ๊ณ , ์ ์ด์ ์ญ์ ๊ฐ๋ ์ด ์ ์ฉ๋ ๋ํ์ ์ธ ๊ธฐ์ ์ด
ํ ์ค์ ์ฝ๋๋ผ๋ ์ด์ ์๋ ์ฝ๋๋ฅผ ์์ฑํ๋ ๊ฐ๋ฐ์ํ๋ฆฌ์จ๋ณด๋ฉ ๋ณต์ต (1์ฃผ์ฐจ ์)clubstudy ๊ฐ๋ฐ ๊ธฐ๋ณธ์ธํ ํผ๊ทธ๋ง ๋ณด๋ฉด์ emotion theme ์ค์ theme์ด์ผํ ์ง ๊ตฌ์๊ณตํต ์ปดํฌ๋ํธ ํ์ ์ดํ issue trackingcss ์๋๋จ์ em๊ณผ remnext.js
Next.js ๊ณต์๋ฌธ์๋ฅผ ๋ณด๊ณ ๊ณต๋ถํ๋ค. (CREATE YOUR FIRST APP, typescript)Pre-rendering and Data FetchingDynamic RoutesAPI RoutesDeploying Your Next.js Appํ๋ฆฌ์จ๋ณด๋ฉ ๋ณต์ต(1์ฃผ
react-query์ ๋ํ ์๋ฃ ์ฝ๊ธฐ https://velog.io/@jay/10-minute-react-query-concept clubStudy ํ๋ก์ ํธ ์ถ๊ฐ์ ์ธ ๊ธฐ๋ณธ ์ธํ ์ดํ PR ๋ ๋ฆผ์๋จ header Nav๋ฐ ํํ์ด์ง ๋ก๊ณ ์์ PNG JPG ์ฐจ์ด
ํ๋ฆฌ์จ๋ณด๋ฉ ๋ณต์ต(1์ฃผ์ฐจ ๋ชฉ) โ React์ฑ๋ฅ ํฅ์ ํ ๋ฒ ์ฝ๊ณ ์ ์ ๋ด์ฉ๋ค ๋ณต์ตํ๋ฉด ์ ๋ฆฌnext js ๊ณต์๋ฌธ์ linkํ์ธclubstudy ํ๋ก์ ํธ ๋ฉ์ธํ์ด์ง ์์ ์คreact ๊ณต์๋ฌธ์ React๋ก ์๊ฐํ๊ธฐ ๋ณต์ตposition์ ๋ํด์ ๊ณต๋ถnvm์ node js ๋ฒ์
react ๊ณต์๋ฌธ์ Effect Hook ์ฌ์ฉํ๊ธฐ ์ฝ๊ธฐcss ํธ๋ ์ง์ ์ ๋ํด์ ๊ณต๋ถํ๋ก์ ํธ Header ๋ถ๋ถ ์์ ์ดํ PR merge ๋CSS ํธ๋์ง์ ์ CSS ์์ฑ์ ๋ณ๊ฒฝํ ๋ ์ ๋๋ฉ์ด์ ์๋๋ฅผ ์กฐ์ ํ๋ ๋ฐฉ๋ฒ์ ์ ๊ณตํฉ๋๋ค.
Next.js ๊ณต์๋ฌธ์ ์ ๋ฆฌ (Build Time vs. Runtime, Rendering)ํ๋ก์ ํธ Main Page ์์ < How Next.js Works >Build time (or build step)์ production์ ์ํด application ์ฝ๋๋ฅผ
์ค๋์ ๊ฐ๋ฐ๋ณด๋ค ๊ณต๋ถ์ ์ง์ค7์์ ๊ฐ๋ฐ ํ์ ์๋ฃ (์ํด๋ฆฌ ์คํฌ๋ผ)ํ ์คใ ฃSLASH 22 - Effective Component ์ง์ ๊ฐ๋ฅํ ์ฑ์ฅ๊ณผ ์ปดํฌ๋ํธ ์์ฒญโ \[https://velog.io/@dnr6054/์ ์ฉํ-๋ฆฌ์กํธ-ํจํด-5๊ฐ์ง- https:
typescript ํธ๋๋ถ ์์ํ๊ธฐ, ์ธํฐํ์ด์ค ์ฝ๊ธฐ์ธํฐํ์ด์ค ์ข ์ด๋ ค์ด๋ฐ ์ด๊ฑฐ ์คํ๋ ค ์๋ฐ์คํฌ๋ฆฝํธ๋ฅผ ๋ ํ๊ณ ๋ค์ด์ผ ํ ๊ฑฐ ๊ฐ์ํ๋ก์ ํธ ํ๋ ์ค (Study Card ์์ , MainPage 1์ฐจ ์์ฑ)์ ๋ค๋ฆญ์ ํ์ ์ ๋ณ์๋ฅผ ์ ๊ณตํ๋ ๋ฐฉ๋ฒ์ ๋๋ค.srr ๊น๋นก์ ํ์? ์
MainPage ๋ฆฌํฉํ ๋ง ์ดํ PR Develop Branch์ Mergeํ์ ์คํฌ๋ฆฝํธ ํธ๋๋ถ(๊ธฐ๋ณธ ํ์ , ํจ์, ๋ฆฌํฐ๋ด ํ์ )Search Club ๋ฆฌ์คํธ ๋ ์ด์์ ์ก๊ธฐ, ๋๋ณด๊ธฐ ๋ฒํผ ์์ฑnext/Linkreplace: push ๋์ replace ํ๋ ์์ฑ. ๋ค๋ก๊ฐ๊ธฐ
ํ๋ก์ ํธ ์ํด๋ฆฌ ์คํฌ๋ผ์๋ฐ์คํฌ๋ฆฝํธ deep dive 754~912์ชฝ (event, ํ์ด๋จธ, ๋น๋๊ธฐ ํ๋ก๊ทธ๋๋ฐ, Ajax, Rest API, ํ๋ก๋ฏธ์ค, ์ ๋๋ ํฐ์ด์ async/await, ์๋ฌ ์ฒ๋ฆฌ, ๋ชจ๋)๋์ ์์ ํด์ ๋ณ์์์ ๋ณ๊ฐํธํ์ด์ ใ ใ ์์ ์ ๋๋๊ณ ๊ด์ฐฎ์์ ธ
๋ชจ๋ ์๋ฐ์คํฌ๋ฆฝํธ Deep Dive 661~713์ชฝ (๋ธ๋ผ์ฐ์ ์ ๋ ๋๋ง ๊ณผ์ , DOM)react-query ์กฐ์ฌํํ ์ค๊ธฐ ์ ์ฐ์ธํ ํ๋ฃจ
React๋ก ์ฌ๊ณ ํ๊ธฐ ๊ณต์๋ฌธ์ ์ฝ๊ธฐSearch_Club ํ์ด์ง state ์ค๊ณ์ด๋ฒคํธ ๋ฒ๋ธ๋ง, ์ด๋ฒคํธ ์บก์ฒ, ์ด๋ฒคํธ ์์ ๊ณต๋ถevent.target = ์ด๋ฒคํธ ๋ฐ์ ์์น ( ์ง๊ธ ๋ด๊ฐ ํด๋ฆญํ ๊ณณ! )event.currentTarget = ์ด๋ฒคํธ ์์ฑ ์์น ( ์ด๋ฒคํธ ํธ๋ค
๋ชจ๋ ์๋ฐ์คํฌ๋ฆฝํธ deep dive ํจ์, ์ค์ฝํ์ ๋ํด์ ๊ณต๋ถ์ค์ฝํ๋ ์๋ณ์๊ฐ ์ ํจํ ๋ฒ์๋ฅผ ๋งํ๋ค. ๋ชจ๋ ์๋ณ์(๋ณ์ ์ด๋ฆ, ํจ์ ์ด๋ฆ, ํด๋์ค ์ด๋ฆ ๋ฑ)๋ ์์ ์ด ์ ์ธ๋ ์์น์ ์ํด ๋ค๋ฅธ ์ฝ๋๊ฐ ์๋ณ์ ์์ ์ ์ฐธ์กฐํ ์ ์๋ ์ ํจ ๋ฒ์๊ฐ ๊ฒฐ์ ๋๋ค.๋ณ์๋ฅผ ์ฐธ์กฐํ ๋
๋ชจ๋ ์๋ฐ์คํฌ๋ฆฝํธ deep div ์ ์ญ ๋ณ์์ ๋ฌธ์ ์ , let, const ํค์๋์ ๋ธ๋ก ๋ ๋ฒจ ์ค์ฝํ ๊ณต๋ถํ๋ก์ ํธ drop down button ๋ง๋ค๊ธฐ์๊ทธ์ ๋ถํฐ event์ ๋ํด์ ๊ณ์ ๊ณต๋ถํ์๋๋ฐ ์ค๋ drop down ๋ฒํผ ๋ง๋ค๋ฉด์ click event๊ฐ ์ด๋ฒคํธ
์๋ฐ์คํฌ๋ฆฝํธ ๋ฅ ๋ค์ด๋ธ(ํ๋กํผํฐ ์ดํธ๋ฆฌ๋ทฐํธ, ์์ฑ์ ํจ์์ ์ํ ๊ฐ์ฒด ์์ฑ, ํจ์์ ์ผ๊ธ ๊ฐ์ฒด) ๊ณต๋ถ์คํฐ๋ ๊ฒ์ ํ์ด์ง ์ ์ ์ด๊ฒ ํ์ด์ง ๋ง๋๋ ์ค์ค๋๋ง์ ๋น๋ก ํ ๋ฌธ์ ์ง๋ง ์๊ณ ๋ฆฌ์ฆ ํ์์ต๋๋ค์ ์์ฑ์ ํจ์๊ฐ ํ์ํ๊ณ ์ ํด๋์ค๊ฐ ํ์ํ ์ง์ ๋ํด์ ์ดํดํด์๐ ๋ฐ์ธ๋ฉ๋ฐ
๋๋๋ค์ด ๋ฒํผ ๊ณตํต์ผ๋ก ์ธ ์ ์๊ฒ ๊ตฌํ ์๋ฃ๋๋๋ค์ด ๋ซ๊ธฐ hooks ์ถ๊ฐ๋๋๋ค์ด selectoption hooks ์ถ๊ฐ์๊ณ ๋ฆฌ์ฆ ๊ณต๋ถError occurred prerendering page "/". Read more: https://nextjs.org/doc
Modal ๋ง๋ค๊ธฐ๊ธฐ๋ณธ ์ปจํ ์ด๋ figma์ ๋ง๊ฒ ๋์์ธ์ธ๋ถ ์คํฌ๋กค ๋ง๊ธฐ useEffect body overflow hidden์ด๊ธฐ ๋ซ๊ธฐ ๊ธฐ๋ฅ, ์ธ๋ถ ์์ญ ํด๋ฆญ์ Modal ์ฐฝ ๋ซ๊ธฐ์์ธํ๊ฒ ๊ฒ์ํ๊ธฐ and ๋์๊ฒ ๋ง๋ ์คํฐ๋์์ธํ๊ธฐ ๊ฒ์ํ๊ธฐ ์์ธ ํํฐ ์จ ์คํ ๊ธฐ๋ฅ๋ชจ๋ฌ
์๋ฐ์คํฌ๋ฆฝํธ ๋ฅ ๋ค์ด๋ธ ํ๋กํ ํ์ ๊ณต๋ถ (19.1 ~ 19.7)๋ค์ํ ์์ฑ ์ค์์ ํ๋ก๊ทธ๋๋ฐ์ ํ์ํ ์์ฑ๋ง ๊ฐ์ถ๋ ค ๋ด์ด ํํํ๋ ๊ฒ์ ์ถ์ํ๋ผ ํ๋ค.์๋ฐ์คํฌ๋ฆฝํธ๋ ํ๋กํ ํ์ ์ ๊ธฐ๋ฐ์ผ๋ก ์์์ ๊ตฌํํ์ฌ ๋ถํ์ํ ์ค๋ณต์ ์ ๊ฑฐํ๋ค.๊ฐ์ฒด ๋ฆฌํฐ๋ด ๋ฐฉ์ : ํ๋์ ๋ณ์์๋ง ํ์
์๋ฐ์คํฌ๋ฆฝํธ ๋ฅ ๋ค์ด๋ธ ํ๋กํ ํ์ ๊ณต๋ถ (19.8 ~ 19.14)ํ๋ก์ ํธ ๋์์ธ ์์ ํ๋กํ ํ์ ํ๋กํผํฐ์ ๊ฐ์ ์ด๋ฆ์ ํ๋กํผํฐ๋ฅผ ์ธ์คํด์ค์ ์ถ๊ฐํ๋ฉด ํ๋กํ ํ์ ์ฒด์ธ์ ๋ฐ๋ผ ํ๋กํ ํ์ ํ๋กํผํฐ๋ฅผ ๊ฒ์ํ์ฌ ํ๋กํ ํ์ ํ๋กํผํฐ๋ฅผ ๋ฎ์ด์ฐ๋ ๊ฒ์ด ์๋๋ผ ์ธ์คํด์ค ํ๋กํผํฐ๋ก ์ถ๊ฐ
ํ ํ๋ก์ ํธ ์คํ๋ผ์ธ ํ์๊ธฐ๋ฅ ์ฐ์ต์ดํ ๊ธฐ๋ฅ ํฉ๊ฒฉ๐ฑโ๐
ํ๋ก๊ทธ๋๋จธ์ค ๋ ๋ฒจ 1 ๋ณต์ต ์คํ๋ก๊ทธ๋๋จธ์ค ๋ ๋ฒจ 2 (์ด์ง๋ณํ ๋ฐ๋ณตํ๊ธฐ, ์ฌ๋ฐ๋ฅธ ๊ดํธ) ํ์ด์๋ฐ์คํฌ๋ฆฝํธ ๋ฅ ๋ค์ด๋ธ strict mode, ๋นํธ์ธ ๊ฐ์ฒด ๊ณต๋ถ์ฝ๋ฐฑ์ ์ต์ด ํธ์ถ ๋ย accumulator์ย currentValue๋ ๋ค์ ๋ ๊ฐ์ง ๊ฐ ์ค ํ๋๋ฅผ ๊ฐ์ง ์ ์์ต๋๋ค.
ํ๋ก๊ทธ๋๋จธ์ค ๋ ๋ฒจ 2 (์นดํซ, ์์ด ๋๋ง์๊ธฐ) ํ์ด์๋ฐ์คํฌ๋ฆฝํธ ๋ฅ ๋ค์ด๋ธ this, ์คํ ์ปจํ ์คํธ ํ์ต๋ผ ์ฃผํ ์ํ โฆโฆ์ค๋ ํ์์์ 4์๊ฐ ์ฐ์ตํ๋๋ฐ ์ข ๊ฐ์จ๋ค๋ผ ๋ถ๊ณ ๊ณต๋ถ์ ์ง์คํ๊ณ ์ถ๋ค ใ
ํ๋ก๊ทธ๋๋จธ์ค ๋ ๋ฒจ 2 (์ง์ง์ด ์ ๊ฑฐํ๊ธฐ : ์คํ ๋ฌธ์ ) ํ์ด์๊ณ ๋ฆฌ์ฆ ์คํ, ์ด์ง ํ์ ๊ณต๋ถ๋ฆฌํธ ์ฝ๋ ์ด์ง ํ์ ๋ ๋ฌธ์ ํ์ดudemy ์๋ฐ์คํฌ๋ฆฝํธ ๊ฐ์ (์คํ ์ปจํ ์คํธ์ ๋ ์์ปฌ ํ๊ฒฝ) ๋ฃ๊ธฐ์ฌ์ด๋ ํ๋ก์ ํธ ๋ฆฌํฉํ ๋ง search Club ํ์ด์ง์๋ฐ์คํฌ๋ฆฝํธ ๋ฅ ๋ค์ด๋ธ ํด๋ก์
ํ๋ก๊ทธ๋๋จธ์ค ์๊ณ ๋ฆฌ์ฆ ๋ ๋ฒจ 2 (๊ตฌ๋ช ๋ณดํธ, ๊ธฐ๋ฅ๊ฐ๋ฐ) ํ์ดudemy ์๊ณ ๋ฆฌ์ฆ ๊ฐ์ (๊ฒ์ ์๊ณ ๋ฆฌ์ฆ) ํ์ต์๋ฐ์คํฌ๋ฆฝํธ ๋ฅ ๋ค์ด๋ธ (ES6 ํจ์์ ์ถ๊ฐ ๊ธฐ๋ฅ) ํ์ต
ํ๋ก๊ทธ๋๋จธ์ค ๋ ๋ฒจ 2 ํ๋ฆฐํฐ, ๋ค์ ํฐ ์ซ์ ํ์ด๋ฆฌํธ ์ฝ๋ ์๊ณ ๋ฆฌ์ฆ Day2udemy ์๋ฐ์คํฌ๋ฆฝํธ ๊ฐ์ (์คํ ์ปจํ ์คํธ์ ๋ ์์ปฌ ํ๊ฒฝ) ๋ฃ๊ธฐํ๋ก์ ํธ ๋ชจ๋ฌ ์์ some()ย ๋ฉ์๋๋ ๋ฐฐ์ด ์์ ์ด๋ค ์์๋ผ๋ ์ฃผ์ด์ง ํ๋ณ ํจ์๋ฅผ ํต๊ณผํ๋์ง ํ ์คํธํฉ๋๋ค.Array.protot
์๋ฐ์คํฌ๋ฆฝํธ ๋ฅ ๋ค์ด๋ธ (์ดํฐ๋ฌ๋ธ, ์คํ๋ ๋ ๋ฌธ๋ฒ, ๋์คํธ๋ญ์ณ๋ง ํ ๋น) ํ์ตํ๋ก์ ํธ ๋ชจ๋ฌ ํญ ์์ ์๊ณ ๋ฆฌ์ฆ ์ด๋ ต๋ค ..const ์๊ณ ๋ฆฌ์ฆ, ์ด๋ ต๋ค = true, tureconst { ์๊ณ ๋ฆฌ์ฆ ์ด๋ ต๋ค } = { "์๊ณ ๋ฆฌ์ฆ ์ด๋ ต๋ค" : true }
ํ๋ก์ ํธ ์งํ ์ํฉ ๊ณต์ ๋ธ๋ก๊ทธ ์์ฑ (๋ฐ์ค ์์ text๊ฐ ๋์น ๋)๋ธ๋ก๊ทธ ์์ฑ (ํ๋ก๊ทธ๋๋จธ์ค ์์ ๋์งํ)ํ๋ก๊ทธ๋๋จธ์ค ์๊ณ ๋ฆฌ์ฆ ํ๊ธฐ (์์ ๋์งํ, ๋ฉ๋ฆฌ๋ฐ๊ธฐ, H-index, ์์ฅ)ํ๋ก์ ํธ ์ ๋ ฌ ๊ธฐ๋ฅuseEffect(EffectCallbacktype) should r
๋๋๋ค์ด ๊ด๋ จ ๋ธ๋ก๊ทธ ์์ฑ (์ธ๋ถ ์์ญ ์ด๋ฒคํธ ๊ฐ์ง) ์๋ฐ์คํฌ๋ฆฝํธ ๋ฅ ๋ค์ด๋ธ (Set, Map) ํ์ต ํ๋ก๊ทธ๋๋จธ์ค Lv2 (๋ฉ๋ฆฌ๋ฐ๊ธฐ, ์ซ์์ ํํ, ํผ๋ณด๋์น ์) ์๊ณ ๋ฆฌ์ฆ ๋ธ๋ก๊ทธ ์์ฑ Set, Map ๋ชจ๋ ๊ธฐ์ ์ ์ด๋ ํ ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ๊ธฐ ์ํด ํ์ํ๋ค๊ณ ์๊ฐํ๋ค.
ํ๋ก์ ํธ PR ํ๋ก์ ํธ ์์ ์๊ณ ๋ฆฌ์ฆ ํ๋ก๊ทธ๋๋จธ์ค (์ ํ์ ์๊ฐ์ด๋, ์บ์) Thinking ํ๋ก์ ํธ์์ ์ค๋ PR์ ๋ ๋ ธ๋๋ฐ PR ๋จ์๊ฐ ํ์ด์ง ๋ณ ๊ธฐ์ค์ ์ก๊ณ PR์ ํ๋ค. ํ์ง๋ง, ์ค๋ PR์ ๋ ๋ ธ๋๋ฐ PR์ ์ฝ๋ ์์ด ๋๋ฌด ๋ง๊ณ ํ์ด์ง ์์ ๊ธฐ๋ฅ๋ค์ด ์์ฒญ ๋ง
ํ๋ก๊ทธ๋๋จธ์ค ์๊ณ ๋ฆฌ์ฆ(H-Index, ํ๋ ฌ์ ๊ณฑ์ , ์์ ๋ง๋ค๊ธฐ, ์์ ์ฐพ๊ธฐ) ํ๊ธฐ.๋ฐฑ๋ก๊ทธ, ์ง๋ผ, ๋ฒ๋ค์ด ์ฐจํธ , ์ ์์ผ ๊ณต๋ถ์ฝ๋ฉ ํ ์คํธ ๋ดค์์ค๋ ์ฝํ ๋ดค๋๋ฐ 300์ ์ค์ 233.33์ ๋ง์๋ค. 3๋ฌธ์ ์ค์ 2๋ฌธ์ ๋ง๊ณ ๋ง์ง๋ง ๋ฌธ์ ๊ฐ ์ข ์ด๋ ค์ ๋ค. ์๊ฐ์ด ๋ ์์๋ค
์ ์์ผ, ๋ฐฑ๋ก๊ทธ, ๋ฒ๋ค์ด ์ฐจํธ ๊ณต๋ถํ๋ก์ ํธ ๋ฐฑ๋ก๊ทธ ์์ฑgithub ์ด์, ๋ผ๋ฒจ, ๋ง์ผ์คํค ๊ธฐ๋ฅ ์ฌ์ฉ๋ฒ ๊ณต๋ถ์ ์์ผ์ ๋์ถฉ ์๊ณ ์๋ ๋น์ ์ ์ํ์ฌ์ ์์ผ์ ๋น ๋ฅด๊ฒ ๋์๊ฐ๋ ๊ฒ ์๋๋ค. ์ฐ๋ฆฌ๊ฐ ์ผ๋ง๋ ๋งํ๋์ง๋ฅผ ์ต๋ํ ๋นจ๋ฆฌ ์๊ธฐ ์ํด์ ์ ์ฒด ํ๋ก์ ํธ๋ฅผ ์ชผ๊ฐ๊ณ ์ชผ๊ฐ๋ ๊ฑฐ๋ค.์
ํ๋ก๊ทธ๋๋จธ์ค ๋ ๋ฒจ2 (๊ดํธ ํ์ ํ๊ธฐ)ํ๋ก์ ํธ ๋ฐฑ๋ก๊ทธ ์์ฑ, issue์์ฑ, ๋ง์ผ์คํค ์ ์ฉํ๋ก์ ํธ ํ๊ต ์ฐพ๊ธฐ ๊ธฐ๋ฅ ๊ตฌํ ์คํ๊ต ์ ๋ณด apihttps://open.neis.go.kr/portal/data/service/selectServicePage.do?page
๊ณผ์ ๋๋ฌธ์ three.js ๊ฐ์ ๊ณต๋ถ ์คthree.js ์ง์ง ๋๋ฌด ์ด๋ ค์ด๋ฐ ๊ฒฐ๊ณผ๋ฌผ ๋ณด๋๊ฒ ๋๋ฌด ์ฌ๋ฐ๋ค.Renderer : ์นด๋ฉ๋ผ์ ๋ด๊ธด ์ฅ๋ฉด์ ์น์ฌ์ดํธ์ ๊ตฌํํด์ฃผ๋ ๋ ๋๋ฌScene ๋ฐฐ๊ฒฝ์, ์๊ฐ ๋ฑ์ ์์ ํฌํจ ์ฌ๋ฌ๊ฐ์ 3D ์ค๋ธ์ ํธ์ ๋น๋ค์ด ๋ชจ์ธ ์ฅ๋ฉด Came
Today
Today
Today
Today
Today
Today
Today
Today
Today ์ฑ ํ๋กํ ํ์
Today
Today, class
Today
Today
Today
Today, innerText vs innerHTML
Today
Today | ์ ์ฌ ๋ฐฐ์ด ๊ฐ์ฒด, Object.prototype.hasOwnProperty()
Today
Today, Jest
Today