MVC ํจํด์ Model์ ๋ฐ์ดํฐ๋ฅผ ๋๊ณ , Controller๋ฅผ ์ด์ฉํด Model ๋ฐ์ดํฐ ์์ ๋ฐ ์ ๊ทผ, View๋ฅผ ํตํด ๋ฐ์ดํฐ๋ฅผ ์ฌ์ฉ์์๊ฒ ์ถ๋ ฅํฉ๋๋ค. Model - View ์์กด์ฑ (์๋ฐฉํฅ ๋ฐ์ดํฐ ๋ฐ์ธ๋ฉ) ๋์์ด๋ฌํ ๊ด๊ณ๋ ์ ํ๋ฆฌ์ผ์ด์ ๊ท๋ชจ๊ฐ ๋์ด๊ฐ์ ๋ฐ๋ผ Mod
https://www.acmicpc.net/problem/1931ํ์ฌ ํ์์ ๋๋๋ ์๊ฐ์ ๊ธฐ์ค์ผ๋ก ๋ค์ ํ์ ์์ ์๊ฐ์ ๊ฒฐ์ ํ๋ฉด ์ต์ ์ ๋ฐฉ๋ฒ์ด ๋์ถ๋ฉ๋๋ค.
https://www.acmicpc.net/problem/2839์ ํ์ ์ธ ๊ทธ๋ฆฌ๋ ๋ฌธ์ ์ ๋๋ค.๋จผ์ ํฐ ๋ฌด๊ฒ๋ก ๋๋๋ ๊ฒ์ด ์ด๋์ด๊ธฐ ๋๋ฌธ์ 5 ๋ก ๋๋๊ณ ๋๋์ด ๋จ์ด์ง์ง ์์ผ๋ฉด, 3 ์ ๋บ๋๋ค!๊ทธ๋ฆฌ๊ณ ์ฌ๊ท๋ฅผ ํตํด ํด๋น ๋ก์ง์ ๋ฐ๋ณตํฉ๋๋ค.
Python, C++ ๋ก ๋ฌธ์ ๋ฅผ ํ ๋๋ ๋ฐฑ์ค์ ์ด์ฉํ๋๋ฐํ์ฌ๋ JavaScript๋ฅผ ์ฌ์ฉํ์ฌ ์ธํ์ ์ ๊ฒฝ ์์จ๋ ๋๋ ํ๋ก๊ทธ๋๋จธ์ค๋ฅผ ์ด์ฉํ์ต๋๋ค..๐ฅฒ์๊ณ ๋ฆฌ์ฆ ์ข ๋ฅ ๋ณ๋ก ์นดํ ๊ณ ๋ฆฌ๊ฐ ์กด์ฌํ๋ ๋ฐฑ์ค์ ๋ค์ ์ด์ฉํ๋ ค๊ณ Node.js ํ๊ฒฝ์ผ๋ก ์๊ณ ๋ฆฌ์ฆ์ ํธ๋๋ฒ์ ์ ๋ฆฌํ์ต๋๋ค
์๊ณ ๋ฆฌ์ฆ ๋ฌธ์ ๋ฅผ ํ๋ค๊ฐ ์ค์ค๋ก Number, ParseInt ๋ฅผ ํผ์ฉํ๊ณ ์๋ ๋ชจ์ต์ ๋ฐ๊ฒฌํด์ ๋ฌธ๋ ์ฐจ์ด์ ์ด ๊ถ๊ธํด์ก์ต๋๋ค. ๐ค Number ParseInt
https://programmers.co.kr/learn/courses/30/lessons/17679๊ตฌํ ๋ฌธ์ ์ ๋๋ค.์ด์ค for ๋ฌธ์ ์ฌ์ฉํ์ฌ ๋ฐฐ์ด์ ํ์ํ๊ณ ์ญ์ ๋ ๋ธ๋ก์ 0์ผ๋ก ์ง์ ํฉ๋๋ค.๋น ๋ธ๋ก(0)์ ์์์ ์๋๋ก ๋น๊ธฐ๋ ๊ตฌํ์ด ๊ด๊ฑด์ธ๋ฐ์๋์๋ถํฐ ํ์์
https://programmers.co.kr/learn/courses/30/lessons/92334์ ๊ณ ๋นํ ์ฌ๋: id, ์ ๊ณ ํ ์ฌ๋๋ค: value ๋ก ๊ฐ๊ณ ์๋ Map์ ์์ฑํฉ๋๋ค.์ค๋ณต๋๋ ์ ๊ณ ํ user_id๋ฅผ ์ ๊ฑฐํ๊ธฐ ์ํด์ Set์ ์ด์ฉํ์ต๋๋ค.
๋ค์ํ ํจํด ๋ค์ค ๊ฐ์ฅ ๋ํ์ ์ธ 3๊ฐ์ง์ ํจํด์ ๋๋ค. ์ฉ์ด ์ ๋ฆฌ M (Model) V (View / ViewModel) C (Controller) MVC MVC ํจํด์ MVP MVVM
https://programmers.co.kr/learn/courses/30/lessons/640612์ฐจ์ ๋ฐฐ์ด์์ ์ธ๋ก ๊ฐ์ ์ด๋ป๊ฒ ์ ๊ทผํ ๊น๋ฅผ ๋น ๋ฅด๊ฒ ์๊ฐํด์ผํฉ๋๋ค.๊ทธ ๋ค์์ ์คํ์ ์ด์ฉํ์ฌ ๋์ผํ 2๊ฐ์ ๊ฐ์ด ์กด์ฌํ๋์ง ํ์ธํฉ๋๋ค.
JavaScript์์ == ๋ ์ค์ค๋ก Type Casting ์ ๋ฐ์์์ผ์์ ๊ฐ์ด ๊ฐ์ ๋น๊ต์์ ํผ๋์ ์ผ๊ธฐ ํ ์ ์๋ค.๋ฐ๋ผ์ === ๋ฅผ ์ฌ์ฉํ์ฌ ์๊ฒฉํ ๋น๊ต๋ฅผ ์งํํด์ผํ๋ค.๋๋๋ก === ๋ฅผ ์ฐ๋ฉด์ ํ ๋ณํ์ Number(), String() ๋ฑ์ผ๋ก ๋ช ์์ ์ผ๋ก ์งํ
์ ์ธ์ ํ์ง๋ง ํ ๋น์ ์๋ ์ํ๊ฐ์ผ๋ก ๋ดค์ ๋ NaN์ ์๋ฏธํ๋ค.๋ณ์๊ฐ ๋น์ด์๋ค๋ ๋ช ์์ ์ธ ์ํ๊ฐ์ผ๋ก ๋ดค์ ๋ 0์ ์๋ฏธํ๋ค.undefined & null๋ ๋น์ทํ ๋ฏํ๋ฉด์ ๋งค์ฐ ๋ค๋ฅด๋ค! ๋ฐ๋ผ์ 2๊ฐ์ ๊ฐ์ ํ์ฉํ ์ฝ๋์์๋ 2๊ฐ์ ๊ฐ ์ค ํ๋์ ๊ฐ๋ง ์ฐ๋ conven
Primitive (์์๊ฐ)Reference (Object)Reference ๋ ํ์ ๊ฒ์ฌ(๊ฒฐ๊ตญ Object)๊ฐ ๊น๋ค๋กญ๋ค!JavaScript๋ ๋์ ์ธ ํ์ ๋ฐ๋ผ์ ํ์ ๊ฒ์ฌ๋ ํญ์ Object๋ฅผ ์ผ๋ํด๋๊ณ ์ฃผ์ํด์ผํ๋ค!
Next.js ํ๋ก์ ํธ ์์์ ์ํ ๋ฐฉ๋ฒ์ ์ ๋ฆฌํ ๊ธ์ ๋๋ค. โ๏ธ Next.js + Typescript + Prettier + Eslint ๊ตฌ์ฑ Next.js + TypeScript cra ์ ๊ฐ์ ํ์ํ Web Prettier
var ๋ function scopelet & const ๋ block scope๊ฐ๊ฐ์ ์ค์ฝํ๋ก ์ธํ ์ค์ผ์ ๋ฐฉ์งํด์ผ ํ๋ค.์ ์ญ์ ํด๋น ํ๊ฒฝ์์ ์ต์์๋ฅผ ์๋ฏธํ๋ค.๋ธ๋ผ์ฐ์ => Window , NodeJS => Global์ ์ญ ๊ณต๊ฐ์ ๋๋ฝํ๊ฒ๋๋ฉด ์ด๋์๋ ์ ๊ทผ์ด ๊ฐ๋ฅํ
์์ ์ปดํฌ๋ํธ์์ Props ๋ก DOM์ ์ ๊ทผ์ด ๊ฐ๋ฅํ ref ๊ฐ์ฒด๋ฅผ ํ์ ์ปดํฌ๋ํธ์ ์ ๋ฌํ๊ธฐ ์ํด์๋forwardRef๋ฅผ ์ด์ฉํด์ผ ํฉ๋๋ค. ๐ฅref ๋ฅผ ์ ๋ฌ๋ฐ์ ํ์ ์ปดํฌ๋ํธ๋ฅผ forwardRef ๋ก ๊ฐ์ธ์ค๋๋ค. ๐forwardRef ๋ฅผ ์ด์ฉํ๋ฉด์ ์ต๋ช ํจ์๋ฅผ ๋
์์ ๋ง์ ์ฝ๋ ๊ตฌ์กฐ ๋ฐ ์ค๊ณ์ ๊ฐํ์ง ๋ง๊ณ ๋ค๋ฅธ ์ฌ๋์ ์ฝ๋ ๋ฐ ๋ค์ํ ์ฝ๋๋ฅผ ์ ํด์ ์๋ชฉ์ ๋ํ์!๋ฐํ์ ์ค์ธ ํ๋ก๊ทธ๋จ์ ๋ด์ฉ์ด ๋ฐ๋๋ค.JS ๋ ๊ฐ๋ฐ ํ๊ฒฝ ์ด๋์๋ ์๋ค์ข์ ์ฝ๋ ์์ฑ์ ์ํ ์์์ ์ธ ์๋ จ ๐ฅ
?? ์ฐ์ฐ์ / Nullish Coalescing โ๏ธ|| ์ฐ์ฐ์์ ๋ฌธ์ ์ >JavaScript ๋ด๋ถ์์ || ์ฐ์ฐ์ (Logical OR)๋ฅผ ์ฌ์ฉํ๋ฉด null, undefined ๊ฐ์ง๋ฅผ ๋ฐ๋ก ํ์ง ๋ชป ํฉ๋๋ค.
์ ํธ๋ฆฌํฐ ํ์ > - ๊ณตํต๋ ํ์ ์ ์ฌ์ฉ์ ์ฉ์ดํ๊ฒ ํ๊ธฐ ์ํ ์ ๋ค๋ฆญ ์ธํฐํ์ด์ค์ ๋๋ค. ๊ผญ ์ฌ์ฉํ์ง ์์๋ ๋์ง๋ง, ์ฌ์ฉํ๋ฉด ํธ์์ฑ์ด ์ฌ๋ผ๊ฐ๋๋ค. ๐ Partial ์ ๋ค๋ฆญ T ์ ๋ชจ๋ ํ๋กํผํฐ๋ฅผ ์ ํ์ (optional)๋ก ๋ง๋๋ ํ์ ์ ๊ตฌ์ฑํฉ๋๋ค. Pick O
TDZ๋ฅผ ์ดํดํ๋ ค๋ฉด ํธ์ด์คํ ์ ๋ํ ์ดํด๊ฐ ํ์ํฉ๋๋ค. ์ฃผ์ด์ง ์ ์ธ๋ค์ด ํด๋น scope์ ์ต์๋จ์ผ๋ก ์ด๋ํ๋ ๊ฒ์ ์๋ฏธํฉ๋๋ค.์ ์ฝ๋๋ฅผ ๋ณด๋ฉด ์ ์ธ๊ณผ ์ด๊ธฐํ๋์ง ์์ ๋ณ์๋ฅผ ์ ๊ทผํ๋ ค ํ ๋,ํธ์ด์คํ ์ผ๋ก ์ธํดvar ๋ณ์๋ undefined๋ก ์ถ๋ ฅ์ด ๋์ง๋งlet, const
https://programmers.co.kr/learn/courses/30/lessons/42627์์ ์๊ฐ์ด ๊ฐ์ฅ ๋น ๋ฅธ ๋ฐ๋ฅธ ์์ผ๋ก ์ ๋ ฌ ํ๋ฉด ๋ฌธ์ ์ค๋ช ๊ณผ ๊ฐ์ด ์๋๋ ๊ฒฝ์ฐ๊ฐ ๋ฐ์ํฉ๋๋ค.๋ฐ๋ผ์ ์ฒ์์๋ ์์ ์๊ฐ์ผ๋ก ์ ๋ ฌ์ ํ๊ณ ํ์ํ๊ณ ์๋ ์ข ๋ฃ ์์ ์ด์