์ „์ฒด ๊ธ€

๐Ÿ’ป Programming/Algorithm

[ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค Lv. 1] ์ฝœ๋ผ์ธ  ์ถ”์ธก

ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค ์•Œ๊ณ ๋ฆฌ์ฆ˜ ํ’€์ด ์‚ฌ์šฉ ์–ธ์–ด : ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ 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

[TIL] ์˜จํ”„๋ ˆ๋ฏธ์Šค(On-premise) vs. ํด๋ผ์šฐ๋“œ(Cloud), AWS ์†Œ๊ฐœ, AWS์˜ ์ฃผ์š” ์„œ๋น„์Šค

๐Ÿ’ก 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

[TIL] Redux toolkit - createAction, createReducer, configureStore, createSlice

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.

๐Ÿšจ ๋ฐœ์ƒ ๋ฌธ์ œ 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

[TIL] ์ค‘์ฒฉ ๋ผ์šฐํŒ…(Nested Routes) (feat. React-Router-DOM v6)

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

[TIL] TypeScript๋กœ ํˆฌ๋‘๋ฆฌ์ŠคํŠธ ๋งŒ๋“ค๊ธฐ - global.d.ts, ์ด๋ฒคํŠธ ํƒ€์ž…์ง€์ •

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

[ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค Lv. 0] ๊ฐ€๊นŒ์šด 1 ์ฐพ๊ธฐ

ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค ์•Œ๊ณ ๋ฆฌ์ฆ˜ ํ’€์ด ์‚ฌ์šฉ ์–ธ์–ด - ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ 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

[ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค Lv. 0] ํŠน๋ณ„ํ•œ ์ด์ฐจ์› ๋ฐฐ์—ด 2

ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค ์•Œ๊ณ ๋ฆฌ์ฆ˜ ํ’€์ด ์‚ฌ์šฉ ์–ธ์–ด : ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ JavaScript JS 1. ํŠน๋ณ„ํ•œ ์ด์ฐจ์› ๋ฐฐ์—ด 2 1) ๋ฌธ์ œ ์„ค๋ช… n × n ํฌ๊ธฐ์˜ ์ด์ฐจ์› ๋ฐฐ์—ด arr์ด ๋งค๊ฐœ๋ณ€์ˆ˜๋กœ ์ฃผ์–ด์งˆ ๋•Œ, arr์ด ๋‹ค์Œ์„ ๋งŒ์กฑํ•˜๋ฉด 1์„ ์•„๋‹ˆ๋ผ๋ฉด 0์„ return ํ•˜๋Š” solution ํ•จ์ˆ˜๋ฅผ ์ž‘์„ฑํ•ด ์ฃผ์„ธ์š”. 0 ≤ i, j

โœ๏ธ What I Learned/TIL

[TIL] TypeScript + React ๊ฐœ๋ฐœํ™˜๊ฒฝ ์„ธํŒ…

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

[TypeScript] Map

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์— ์—ฐ..

Jiwon()
jiwondev.log