๋ชฉ๋ก๐ซถ๐ป console.log(coding) ๐ซถ๐ป (244)
๐ค ์์งlog ๐ค
Next.js์์ ์ ๊ณตํ๋ SSR, ํ์ง๋ง ์ฐ๋ฆฌ๋ SSR์์ ์ฌ์ฉํ์ง ๋ชปํ๋ ๊ฐ์ฒด์ธ window ๊ฐ์ฒด๋ฅผ ์ฌ์ฉํ ๋๊ฐ ๋ง์ต๋๋ค. ๊ทธ๋ด๋ ํด๊ฒฐํ๋ ๋ฐฉ๋ฒ ! 1. typeof ๋ฅผ ์ฌ์ฉ. if(window){...} // window is not definde ์๋ฌ๋ฐ์ if(typeof window !== undefined) {...} // ์ ์๋์ง์์ window์ ํ์ ์ด๊ธฐ๋๋ฌธ์ undefied๊ฐ ๋ฐ์ -> ์๋ฌ๊ฐ ๋ฐ์ํ์ง ์์ต๋๋ค. ๊ฐ๋จํ๊ฒ ์ด๋ฌํ ๋ฐฉ๋ฒ์ผ๋ก window๊ฐ์ฒด๊ฐ ์๋์ง ์ฒดํฌํ๋ ๋ฐฉ๋ฒ์ด ์์ต๋๋ค. 2. useEffect๋ฅผ ์ฌ์ฉ. useEffect(()=>{ // ์์์ window ๊ฐ์ฒด๋ฅผ ์ฌ์ฉ },[]) useEffect๋ DOMํ์ฑ ํ์ ์คํ์ด ๋๋ hook์ ๋๋ค. ๊ณ ๋ก ๋ธ๋ผ์ฐ์ ๊ฐ์๋ ์๋ฒ์์ ..
ํ๋ก๊ทธ๋๋จธ์ค Lv.0 - ๋ฐฐ์ด์ ํ๊ท ๊ฐ ๐ ๋ฌธ์ ์ค๋ช ์ ์ ๋ฐฐ์ด numbers๊ฐ ๋งค๊ฐ๋ณ์๋ก ์ฃผ์ด์ง๋๋ค. numbers์ ์์์ ํ๊ท ๊ฐ์ returnํ๋๋ก solution ํจ์๋ฅผ ์์ฑํด์ฃผ์ธ์. ๐ ์ ํ์กฐ๊ฑด 0 ≤ numbers์ ์์ ≤ 1,000 1 ≤ numbers์ ๊ธธ์ด ≤ 100 ์ ๋ต์ ์์ ๋ถ๋ถ์ด .0 ๋๋ .5์ธ ๊ฒฝ์ฐ๋ง ์ ๋ ฅ์ผ๋ก ์ฃผ์ด์ง๋๋ค. ๐ ๋ฌธ์ function solution(numbers) { var answer = 0; return answer; } ๐ ํ์ด function solution(numbers) { return numbers.reduce((acc, cur) => acc + cur) / numbers.length }
![](http://i1.daumcdn.net/thumb/C150x150.fwebp.q85/?fname=https://blog.kakaocdn.net/dn/XXFtb/btrVjhMjL44/GzjUuoQ3mZiNmMX6eEY6MK/img.png)
์ต์ ์ ์ค๋๋์ ๋ฐ์ดํฐ๋ฅผ ์ค๋ฆ์ฐจ์(ASC)์ด๋ ๋ด๋ฆผ์ฐจ์(DESC)์ผ๋ก ์ ๋ ฌ : Default๊ฐ์ Ascending(์ค๋ฆ์ฐจ์) // map ํจ์ ์ .sort((a: Type, b: Type) => sort === "asc" ? a.id - b.id : b.id - a.id, ) .map
๐ Branch ์์ฑ // only ๋ธ๋์น ์์ฑ git branch [Branch Name] // ์์ฑ๊ณผ ์ ํ ๋์์ ์ฒ๋ฆฌ git checkout -b [Branch Name] // ์์ฑ๊ณผ ์ ํ ๋์์ ์ฒ๋ฆฌ git switch -c [Branch Name] ๐ Branch ์ ํ ๐ก switch ์ checkout ์ผ๋ก ์ ํํ ๋, branch๊ฐ ์์ผ๋ฉด ์ ํํ์ง ๋ชปํ๊ธฐ ๋๋ฌธ์ ์ ๋ธ๋์น ์์ฑ์ git checkout -b ์ git switch -c ๋ก ๋ธ๋์น ์์ฑํ ์ ํํด์ผ ํ๋ค. ์๋ ๋ฐฉ๋ฒ์ ์ฌ์ฉํ๋ ๊ฒฝ์ฐ๋ ์ด๋ฏธ branch๊ฐ ์์ฑ๋์ด ์๊ณ ์ ํํด์ผํ๋ ๊ฒฝ์ฐ์ ์ฌ์ฉํ๋ค. git switch [Branch Name] git checkout [Branch Name]
npm install -D @svgr/webpack webpack์ ์ค์นํฉ๋๋ค. // next.config.js ์ค์ module.exports = { webpack(config) { config.module.rules.push({ test: /\\.svg$/, use: ["@svgr/webpack"], }); return config; }, }; next.js ํ๋ก์ ํธ๋ฅผ ์ฒ์ ์์ฑ์ ๊ฐ์ด ์์ฑ๋๋ next.config.js๋ฅผ ์ค์ ํด์ค๋๋ค. // ํ๋ก์ ํธ ๋ฃจํธ ํด๋์ custom.d.ts ํ์ผ ์์ฑ declare module "*.svg" { import React from "react"; const svg: React.FC; export default svg; } ํ๋ก์ ํธ ๋ฃจํธ ํด๋์ custom.d...
npm i styled-components npm i @types/styled-components styled-components ๋ฅผ ์ค์นํฉ๋๋ค. npm install babel-plugin-styled-components npm i babe-preset-next babel plugin ์ ์ค์นํ๊ณ .babelrc ํ์ผ์ ๋ง๋ค์ด ์ค๋๋ค. Next.js๋ ํ์ด์ง ์ ์ ์ SSR๋ฅผ ์ด์ฉํ๊ณ ์ดํ ํ์ด์ง ์ด๋ ์ CSR๋ฅผ ์ด์ฉํ์ฌ ํ์ด์ง๋ฅผ ๋ ๋๋งํฉ๋๋ค. ์ด๋ server์ client์์ ์์ฑํ๋ class ํด์๊ฐ์ด ๋ฌ๋ผ ์ถฉ๋๋ก ์ธํด ๋ฌธ์ ๊ฐ ๋ฐ์ํ ์ ์์ต๋๋ค. babel ์ค์ ์ผ๋ก ์ถฉ๋ ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ ์ ์์ต๋๋ค. ํ๋ก์ ํธ ๋ฃจํธ ํด๋์ .babelrc ํ์ผ ์์ฑ { "presets": ["next/babel"],..
ํ๋ก๊ทธ๋๋จธ์ค Lv.0 - ์๊ผฌ์น ๐ ๋ฌธ์ ์ค๋ช ๋จธ์ฑ์ด๋ค ์๊ผฌ์น ๊ฐ๊ฒ๋ 10์ธ๋ถ์ ๋จน์ผ๋ฉด ์๋ฃ์ ํ๋๋ฅผ ์๋น์ค๋ก ์ค๋๋ค. ์๊ผฌ์น๋ 1์ธ๋ถ์ 12,000์, ์๋ฃ์๋ 2,000์์ ๋๋ค. ์ ์ n๊ณผ k๊ฐ ๋งค๊ฐ๋ณ์๋ก ์ฃผ์ด์ก์ ๋, ์๊ผฌ์น n์ธ๋ถ๊ณผ ์๋ฃ์ k๊ฐ๋ฅผ ๋จน์๋ค๋ฉด ์ด์ผ๋ง๋ฅผ ์ง๋ถํด์ผ ํ๋์ง return ํ๋๋ก solution ํจ์๋ฅผ ์์ฑํด๋ณด์ธ์. ๐ ์ ํ์กฐ๊ฑด 0 = 10) { k-=(n/10
ํ๋ก๊ทธ๋๋จธ์ค Lv.0 - ๋๋จธ์ง ๊ตฌํ๊ธฐ ๐ ๋ฌธ์ ์ค๋ช ์ ์ num1, num2๊ฐ ๋งค๊ฐ๋ณ์๋ก ์ฃผ์ด์ง ๋, num1๋ฅผ num2๋ก ๋๋ ๋๋จธ์ง๋ฅผ return ํ๋๋ก solution ํจ์๋ฅผ ์์ฑํด์ฃผ์ธ์. ๐ ์ ํ์กฐ๊ฑด 0
![](http://i1.daumcdn.net/thumb/C150x150.fwebp.q85/?fname=https://blog.kakaocdn.net/dn/FYqQj/btrRfH2guKT/jI9VqkDLpr14ZlVNOIG6IK/img.png)
ํ๋ก๊ทธ๋๋จธ์ค Lv.0 - ๋ชซ ๊ตฌํ๊ธฐ ๐ ๋ฌธ์ ์ค๋ช ์ ์ num1, num2๊ฐ ๋งค๊ฐ๋ณ์๋ก ์ฃผ์ด์ง ๋, num1์ num2๋ก ๋๋ ๋ชซ์ return ํ๋๋ก solution ํจ์๋ฅผ ์์ฑํด์ฃผ์ธ์. ๐ ์ ํ์กฐ๊ฑด 0
![](http://i1.daumcdn.net/thumb/C150x150.fwebp.q85/?fname=https://blog.kakaocdn.net/dn/nI6d2/btrRcHCFxCu/ay11Z5JhGoBlTktobGPzCK/img.png)
ํ๋ก๊ทธ๋๋จธ์ค Lv.0 - ๋ ์์ ๋๋์ ๐ ๋ฌธ์ ์ค๋ช ์ ์ num1๊ณผ num2๊ฐ ๋งค๊ฐ๋ณ์๋ก ์ฃผ์ด์ง ๋, num1์ num2๋ก ๋๋ ๊ฐ์ 1,000์ ๊ณฑํ ํ ์ ์ ๋ถ๋ถ์ return ํ๋๋ก soltuion ํจ์๋ฅผ ์์ฑํด์ฃผ์ธ์. ๐ ์ ํ์กฐ๊ฑด 0