๐ป Programming/Algorithm
ํ๋ก๊ทธ๋๋จธ์ค ์๊ณ ๋ฆฌ์ฆ ํ์ด ์ฌ์ฉ ์ธ์ด : ์๋ฐ์คํฌ๋ฆฝํธ JavaScript JS 1. ์ฝ๋ผ์ธ ์ถ์ธก 1) โ ๋ฌธ์ ์ค๋ช
1937๋
Collatz๋ ์ฌ๋์ ์ํด ์ ๊ธฐ๋ ์ด ์ถ์ธก์, ์ฃผ์ด์ง ์๊ฐ 1์ด ๋ ๋๊น์ง ๋ค์ ์์
์ ๋ฐ๋ณตํ๋ฉด, ๋ชจ๋ ์๋ฅผ 1๋ก ๋ง๋ค ์ ์๋ค๋ ์ถ์ธก์
๋๋ค. ์์
์ ๋ค์๊ณผ ๊ฐ์ต๋๋ค. 1-1. ์
๋ ฅ๋ ์๊ฐ ์ง์๋ผ๋ฉด 2๋ก ๋๋๋๋ค. 1-2. ์
๋ ฅ๋ ์๊ฐ ํ์๋ผ๋ฉด 3์ ๊ณฑํ๊ณ 1์ ๋ํฉ๋๋ค. 2. ๊ฒฐ๊ณผ๋ก ๋์จ ์์ ๊ฐ์ ์์
์ 1์ด ๋ ๋๊น์ง ๋ฐ๋ณตํฉ๋๋ค. ์๋ฅผ ๋ค์ด, ์ฃผ์ด์ง ์๊ฐ 6์ด๋ผ๋ฉด 6 → 3 → 10 → 5 → 16 → 8 → 4 → 2 → 1 ์ด ๋์ด ์ด 8๋ฒ ๋ง์ 1์ด ๋ฉ๋๋ค. ์ ์์
์ ๋ช ๋ฒ์ด๋ ๋ฐ๋ณตํด์ผ ํ๋์ง ๋ฐํํ๋ ํจ์, solution์ ์์ฑํด ์ฃผ์ธ์. ๋จ, ์ฃผ์ด์ง ์๊ฐ 1์ธ..
โ๏ธ What I Learned/TIL
๐ก 20230802 TIL : AWS์ ๋ํด ๊ณต๋ถํ ๋ด์ฉ ์ ๋ฆฌ 1. On-premise vs Cloud computing 1) ๐ On-premise ์จํ๋ ๋ฏธ์ค(On-premise)๋ ๊ธฐ์
์ด ์ง์ ๋ฌผ๋ฆฌ์ ๊ณต๊ฐ์ ์ค์ ํ๋์จ์ด ์ฅ๋น๋ฅผ ๊ฐ์ง๊ณ IT ์ธํ๋ผ๋ฅผ ๊ตฌ์ถํ์ฌ ์ด์ํ๋ ๋ฐฉ์์ ๋งํ๋ค. ํ์ํ ์ธํ๋ผ ์์คํ
์ ๊ตฌ์ถํ๊ธฐ ์ํด ํ๋์จ์ด์ ์ํํธ์จ์ด๋ฅผ ์ง์ ๊ตฌ์
ํ์ฌ, ์ ๊ณต ์๋น์ค๋ ์์คํ
์ํฉ์ ๋ง๊ฒ ํ๊ฒฝ์ ๊ตฌ์ฑํ๋ค. ์๋ฒ์ ์ ์ง๋ณด์ ์ญ์ ํด๋น ์กฐ์ง์ IT ์ธํ๋ผ๋ฅผ ๊ด๋ฆฌํ๋ ํ์ด ์ง์ ํ๋ค. ๊ฐํน ํ๊ต๋ ํ์ฌ์์ ๋ดค์๋ ์๋ฒ์ค ๊ฐ์ ๊ณณ๋ค์ ๋ ์ฌ๋ฆฌ๋ฉด ๋๋ค. 2) โ๏ธ Cloud computing ํด๋ผ์ฐ๋ ์ปดํจํ
(Cloud Computing) ๋๋ ํด๋ผ์ฐ๋ ์๋น์ค(Cloud Service)๋ ์ 3์ ์๋น์ค ๊ณต๊ธ์..
โ๏ธ What I Learned/TIL
1. createAction + reducer rtk์ createAction ํจ์๋ฅผ ์ฌ์ฉํ์ฌ action creator ์ ์ createAction ํจ์๋ ์๋์ผ๋ก action creator ํจ์๋ฅผ ์์ฑํ์ฌ action object๋ฅผ ์์ฑํ๋ค. (ex. { type: 'ADD', payload: actionPayload }) ๊ทธ ํ reducer ํจ์๋ฅผ ์ง์ ์ ์ํ์ฌ, action type๊ณผ payload๋ฅผ ๊ธฐ๋ฐ์ผ๋ก ์ํ๊ฐ ์ด๋ป๊ฒ ์
๋ฐ์ดํธ๋๋์ง๋ฅผ ์ง์ state๊ฐ ๋ณํํ๋ฉด state๋ฅผ ์ง์ ๋ณ๊ฒฝํ์ง ์๊ณ , reducer ํจ์์์ ์๋ก์ด state๋ฅผ ์์ฑํ์ฌ ๋ฐํ 2. createAction + createReducer rtk์ createAction ๋ฐ createReducer ํจ์๋ฅผ ๋ชจ๋ ์ฌ์ฉํ๋ค. ..
โ๏ธ What I Learned/ํธ๋ฌ๋ธ์ํ
๐จ ๋ฐ์ ๋ฌธ์ TS17004: Cannot use JSX unless the '--jsx' flag is provided. TS6142: Module './App' was resolved to 'C:/Users/user/Desktop/jiwon/redux-for-beginners/src/App.tsx', but '--jsx' is not set. ๋ฌธ์ ์ํฉ ์์ ์ ๋ง๋ค์ด ๋ ์๋ฐ์คํฌ๋ฆฝํธ React app์ ์๋ ๋ธ๋ก๊ทธ๋ฅผ ์ฐธ๊ณ ํ์ฌ ํ์
์คํฌ๋ฆฝํธ๋ก ๋ง์ด๊ทธ๋ ์ด์
์ ์๋ฃํ ๋ค, yarn startํ์ฌ ๋ฆฌ์กํธ ์ฑ์ ์คํํ๋๋ฐ ์์ ๊ฐ์ ์๋ฌ ๋ฉ์์ง ๋ฐ์ ๋ง์ด๊ทธ๋ ์ด์
๋ฐฉ๋ฒ ์ฐธ๊ณ ๋ธ๋ก๊ทธ - How to Migrate a React App to TypeScript ๐ค ๋ฌธ์ ์์ธ tsconfig.json์์ jsx ์ค์ ์..
โ๏ธ What I Learned/TIL
react-router-dom 6 ์ด์ ๋ฒ์ ์์ nested routes๋ฅผ ๊ตฌํํ๋ ๋ฐฉ๋ฒ์๋ ๋ ๊ฐ์ง๊ฐ ์๋ค. ์ฐธ๊ณ ์ฌ์ดํธ - The Guide to Nested Routes with React Router 1. ๋ถ๋ชจ Route path์ `/*` ๋ถ๋ชจ route์ path ๋ง์ง๋ง์ /*๋ฅผ ์ ์ด ๋ช
์์ ์ผ๋ก ์ด route์ ๋ด๋ถ์์ nested route๊ฐ ๋ ๋๋ง๋ ์ ์์์ ํ์ํ๊ณ , ์์ route๋ฅผ ๋ถ๋ชจ route์ element ๋ด๋ถ์ ์์ฑํ๋ ๋ฐฉ๋ฒ // Router.tsx // Coin.tsx Routes๊ฐ ์๋๊ฒฝ๋ก๋ ์ง์ํ๊ธฐ ๋๋ฌธ์ path="chart"์ ๊ฐ์ด ์จ๋ ๋์ํ๋ค. 2. ์์ Route๋ฅผ Route ๋ด๋ถ์ ์์ฑ ์์ route๋ฅผ ๋ถ๋ชจ element์ ๋ด๋ถ๊ฐ ์๋ route ๋ด๋ถ์ ์..
โ๏ธ What I Learned/TIL
1. global.d.ts Todo List๋ฅผ ๋ง๋ค ๋, Todo ๊ฐ์ฒด๋ ์ฌ๋ฌ ์ปดํฌ๋ํธ์์ ์ฐ์ผ ๊ฒ์ด๋ฏ๋ก Todo ๊ฐ์ฒด์ ํ์
์ ์ ์ญ์ ์ผ๋ก ์ค์ ํด์ฃผ๋ฉด ํจ์จ์ ์ผ ๊ฒ์ด๋ค. `global.d.ts` ํ์ผ์ TypeScript์์ ์ ์ญ์ผ๋ก ์ฌ์ฉํ ํ์
๋ค์ ์ ์ธํ๋ ํ์ผ์ด๋ค. ์ผ๋ฐ์ ์ผ๋ก `.d.ts` ํ์ฅ์๋ฅผ ๊ฐ์ง ํ์ผ๋ค์ TypeScript ํ์
์ ์ธ ํ์ผ๋ก์, ํ๋ก์ ํธ ์ ์ฒด์์ ์ฌ์ฉ๋๋ ํ์
๋ค์ ์ ์ํ๊ธฐ ์ํด ์ฌ์ฉ๋๋ค. 1) ๋ด๊ฐ ์์ฑํ global.d.ts ํ์ผ // global.d.ts import { Dispatch, SetStateAction } from "react"; export interface Todo { id: string; title: string; content: string; isDone..
๐ป Programming/Algorithm
ํ๋ก๊ทธ๋๋จธ์ค ์๊ณ ๋ฆฌ์ฆ ํ์ด ์ฌ์ฉ ์ธ์ด - ์๋ฐ์คํฌ๋ฆฝํธ JavaScript JS 1. ๊ฐ๊น์ด 1 ์ฐพ๊ธฐ 1) โ ๋ฌธ์ ์ค๋ช
์ ์ ๋ฐฐ์ด arr๊ฐ ์ฃผ์ด์ง๋๋ค. ์ด๋ arr์ ์์๋ 1 ๋๋ 0์
๋๋ค. ์ ์ idx๊ฐ ์ฃผ์ด์ก์ ๋, idx๋ณด๋ค ํฌ๋ฉด์ ๋ฐฐ์ด์ ๊ฐ์ด 1์ธ ๊ฐ์ฅ ์์ ์ธ๋ฑ์ค๋ฅผ ์ฐพ์์ ๋ฐํํ๋ solution ํจ์๋ฅผ ์์ฑํด ์ฃผ์ธ์. ๋จ, ๋ง์ฝ ๊ทธ๋ฌํ ์ธ๋ฑ์ค๊ฐ ์๋ค๋ฉด -1์ ๋ฐํํฉ๋๋ค. 2) ๐ซ ์ ํ ์ฌํญ 3 ≤ arr์ ๊ธธ์ด ≤ 100,000 arr์ ์์๋ ์ ๋ถ 1 ๋๋ 0์
๋๋ค. 3) โ๏ธ ์
์ถ๋ ฅ ์ arr idx result [0, 0, 0, 1] 1 3 [1, 0, 0, 1, 0, 0] 4 -1 [1, 1, 1, 1, 0] 3 3 2. ์ฌ์ฉํ ๋ฉ์๋: for๋ฌธ for๋ฌธ์ผ๋ก ๋ฐฐ์ด์ ๋ชจ๋ ์์ ์ํ ๋ฐฐ..
๐ป Programming/Algorithm
ํ๋ก๊ทธ๋๋จธ์ค ์๊ณ ๋ฆฌ์ฆ ํ์ด ์ฌ์ฉ ์ธ์ด : ์๋ฐ์คํฌ๋ฆฝํธ JavaScript JS 1. ํน๋ณํ ์ด์ฐจ์ ๋ฐฐ์ด 2 1) ๋ฌธ์ ์ค๋ช
n × n ํฌ๊ธฐ์ ์ด์ฐจ์ ๋ฐฐ์ด arr์ด ๋งค๊ฐ๋ณ์๋ก ์ฃผ์ด์ง ๋, arr์ด ๋ค์์ ๋ง์กฑํ๋ฉด 1์ ์๋๋ผ๋ฉด 0์ return ํ๋ solution ํจ์๋ฅผ ์์ฑํด ์ฃผ์ธ์. 0 ≤ i, j
โ๏ธ What I Learned/TIL
1. ๋ฆฌ์กํธ ์ฑ ์์ฑ // yarn yarn create react-app my-app (--template typescript) // npx npx create-react-app my-app (--template typescript) ๋๋ ํ ๋ฆฌ ๊ตฌ์กฐ package.json ํ๋ก์ ํธ ์ ๋ณด์ ์์กด์ฑ(dependencies)์ ๊ด๋ฆฌํ๋ ๋ฌธ์ ํ์ผ ์์ script ๊ฐ์ฒด์์๋ ์คํ, ๋น๋ ๋ฑ์ alias๋ฅผ ์ค์ ํ์ฌ ๊ด๋ฆฌํ ์ ์์ tsconfig.json ๋๋ ํ ๋ฆฌ์ tsconfig.json ํ์ผ์ด ์๋ค๋ฉด ํด๋น ๋๋ ํ ๋ฆฌ๊ฐ TypeScript ํ๋ก์ ํธ์ ๋ฃจํธ๊ฐ ๋จ tsconfig.json ํ์ผ์ ํ๋ก์ ํธ๋ฅผ ์ปดํ์ผํ๋ ๋ฐ ํ์ํ ๋ฃจํธ ํ์ผ๊ณผ ์ปดํ์ผ๋ฌ ์ต์
์ ์ง์ 2. ์ ๋๊ฒฝ๋ก ์ฌ์ฉ // tsconfig.json { ..
๐ป Programming/JS, TS
map์ React.js์์๋ ์ฃผ๋ก ๋ฐฐ์ด๋ก ์ด๋ฃจ์ด์ง ๋ฐ์ดํฐ๋ฅผ ๋ฟ๋ ค์ค ๋ ๋ง์ด ์ฌ์ฉํ์๋๋ฐ, ํ์
์คํฌ๋ฆฝํธ์์ ์ฌ์ฉ๋ฒ์ด ์กฐ๊ธ ํน์ดํ ๊ฒ ๊ฐ์ ๊ฐ๋จํ๊ฒ ์ ๋ฆฌํด๋ณด๊ณ ์ ํ๋ค. 1. Map์ด๋? ์๋ฐ์คํฌ๋ฆฝํธ์ ํ์
์คํฌ๋ฆฝํธ์์ ์ ๊ณต๋๋ ๋ฐ์ดํฐ ๊ตฌ์กฐ ์ค ํ๋๋ก, Key์ Value์ ์์ ์ ์ฅํ๋ ์ปฌ๋ ์
์ด๋ค. ์ด ์ปฌ๋ ์
์ ๊ฐ์ ๋ํ ๊ณ ์ ํ ํค๋ฅผ ์ฌ์ฉํ์ฌ ๊ฐ์ ์ ์ฅํ๊ณ ๊ฒ์ํ๋ ๋ฐ ์ฌ์ฉ๋๋ค. 2. Map์ ํน์ง 1) ๊ณ ์ ํ key๊ฐ `Map`์ key-value ์์ ์ ์ฅํ๋๋ฐ, ๊ฐ key๋ ์ค๋ณต๋ ์ ์์ผ๋ฉฐ uniqueํ ๊ณ ์ ๊ฐ์ด์ด์ผ ํ๋ค. key๊ฐ ์ค๋ณต๋ ๊ฒฝ์ฐ, ๊ฐ์ฅ ๋ง์ง๋ง value๊ฐ ์ ์ฅ๋๋ค. 2) key-value ์์ผ๋ก ์ ์ฅ ๊ฐ ํญ๋ชฉ์ key-value์ ์์ผ๋ก ์ ์ฅํ์ฌ, key๊ฐ์ ์ฌ์ฉํ์ฌ ํด๋น key์ ์ฐ..