๐ฅ๏ธ CS(Computer Science)(26)
-
[๊ธฐ์ ๋ฉด์ ] Redux
Redux : JS application์ ์ํ๊ด๋ฆฌ library. Store: apllication์ ๋ชจ๋ ์ํ๊ฐ ์ ์ฅ๋๋ ์ค์ ์ํ ์ ์ฅ์ Action: ์ํ๋ณ๊ฒฝ์ ์ํ ์ด๋ฒคํธ๋ฅผ ๋ํ๋ด๋ ๊ฐ์ฒด Reducer: ํ์ฌ ์ํ์ ์ก์ ์ ๋ฐ์ ์๋ก์ด ์ํ๋ฅผ ๋ฐํํ๋ ์์ํ ํจ์ Dispatch: ์ก์ ์ ์คํ ์ด์ ๋ณด๋ด ์ํ๋ฅผ ๋ณ๊ฒฝํ๋ ๋ฉ์๋ ์๋๋ฐฉ์ action์ dispatch ํ์ฌ ์ํ๋ณ๊ฒฝ ์์ฒญ reducer๋ ํ์ฌ ์ํ์ action์ ์ด์ฉํ์ฌ ์๋ก์ด ์ํ ๊ณ์ฐ store๋ ์๋ก์ด ์ํ๋ฅผ ์ ์ฅํ๊ณ , React component์ ์ด๋ฅผ ์ ๋ฌํ์ฌ UI๋ฅผ ์ ๋ฐ์ดํธํจ. ์ฅ์ ์ ์ญ ์ํ๊ด๋ฆฌ๋ฅผ ํตํ ๋ฐ์ดํฐ ๊ณต์ ๋ฐ ์ ๋ฐ์ดํธ ์ฉ์ด์ฑ ์์ธก ๊ฐ๋ฅํ ์ํ๊ด๋ฆฌ๋ก ๋๋ฒ๊น ๊ณผ ํ์คํ ์ด ์์ํจ ์ ํ๋ฆฌ์ผ์ด์ ์ ๋ณต์ก์ฑ์ ๊ด๋ฆฌํ๊ณ , ์ปดํฌ..
2023.08.22 -
[๊ธฐ์ ๋ฉด์ ] ์ํ๊ด๋ฆฌ๋ฅผ ํ๋ ์ด์ ์ ๋ฐฉ๋ฒ.
์ํ๊ด๋ฆฌ(State Management)๋ฅผ ์ ํ ๊น?? ๋ฐ์ดํฐ๊ด๋ฆฌ: ์ ํ๋ฆฌ์ผ์ด์ ์ ๊ท๋ชจ์ ๋ฐ๋ผ ๋ค๋ฃจ๋ ๋ฐ์ดํฐ์ ์ ๋ณด๊ฐ ์ปค์ง ์ ์๋๋ฐ, ์ด๋ฌํ ๋ฐ์ดํฐ๋ฅผ ํจ๊ณผ์ ์ผ๋ก ์ ์ฅํ๊ณ ์ ๋ฐ์ดํธ, ๊ฒ์ ๋ฐ ๊ด๋ฆฌํ๊ธฐ์ํด ์ํ๊ด๋ฆฌ๊ฐ ํ์ํ๋ค. ๋ฐ์ดํฐ๋ฅผ ์ค์ ์ง์คํํ๊ณ , ์ผ๊ด๋ ๋ฐฉ์์ผ๋ก ์ก์ธ์คํ๊ณ ์กฐ์ํ ์ ์๋ค. ๋ฐ์ดํฐ ๊ณต์ : ์ ํ๋ฆฌ์ผ์ด์ ์์์ ๋ฐ์ดํฐ๋ฅผ ์ฌ๋ฌ ์ปดํฌ๋ํธ ๋ฐ ๋ชจ๋ ๊ฐ ๊ณต์ ๊ฐ ํ์ํ ๋ ์ ์ญ ์ํ๋ฅผ ํตํด ๋ฐ์ดํฐ๋ฅผ ๊ณต์ ํ๊ณ ์ํ ๋ณ๊ฒฝ ์ ๋ค๋ฅธ ๋ถ๋ถ์์ฆ์ ๋ฐ์ํ ์ ์๋ค. ์ ํ๋ฆฌ์ผ์ด์ ์ํ ์ถ์ : ์ฌ์ฉ์ ์ํธ์์ฉ์ ๋ฐ๋ผ ์ ํ๋ฆฌ์ผ์ด์ ์ํ๊ฐ ๋ณ๊ฒฝ ๋ ๋ ์ ํ๋ฆฌ์ผ์ด์ ์ ํ์ฌ ์ํ๋ฅผ ์ถ์ ํ๊ณ ๋ณ๊ฒฝ ์ฌํญ์ ๊ด๋ฆฌํ ์ ์์ด ์ฌ์ฉ์ ๊ฒฝํ์ด ์ผ๊ด๋๊ณ ์์ธก ๊ฐ๋ฅํด์ง. ๋ณต์กํ UI ๊ด๋ฆฌ ์ํ์ ์ง์์ฑ: ๋ก๊ทธ์ธ ์ ๋ณด, ์ฌ์ฉ์ ์ค์ ..
2023.08.21 -
[CS/๋คํธ์ํฌ] ์ฌ์ฉ์ ํจ์ค์๋๋ฅผ ์ ์กํ๊ณ ๋ณด๊ดํ๋ ๋ฐฉ๋ฒ
ํจ์ค์๋ ์ ์ก: HTTPS ์ฌ์ฉ. * HTTPS: ๋ณด์ ํ๋กํ ์ฝ๋ก SSL/TLS ์ํธ์ ํ๋กํ ์ฝ์ ์ฌ์ฉํ์ฌ ๋ฐ์ดํฐ๋ฅผ ์ํธํํ๊ณ ์์ ํ๊ฒ ์ ์กํจ. ํจ์ค์๋ ๋ณด๊ด * ํด์ ํจ์ ์ฌ์ฉ: ํด์ํจ์๋ก ํจ์ค์๋๋ฅผ ์ํธํ์ํจ ํด์๊ฐ์ ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ์ ์ฅ. * ์ํ (Salting): ํด์ํจ์ ์ ์ฉ ์ ์ ์๋ณธ ํจ์ค์๋์ ์์์ ๋ฌธ์์ด(salt)๋ฅผ ์ถ๊ฐ. * ์ํธํํค ๊ด๋ฆฌ: ํด์๊ฐ์ ๋ณตํธํ ํ ์ ์๋ ์ํธํํค๋ฅผ ์์ ํ ๊ณณ์ ๋ณด๊ด * ๋ ๋ฒ์งธ ์ธ์ฆ ์์ ์ฌ์ฉ: OTP(One Time Password), ์์ฒด ์ธ์, ํด๋ํฐ ์ธ์ฆ ๋ฑ...
2023.08.05 -
[CS/๋คํธ์ํฌ] CORS
CORS(Cross-Origin Resource Sharing): ์น ๋ธ๋ผ์ฐ์ ์์ ์คํ๋๋ ์น ์ ํ๋ฆฌ์ผ์ด์ ๋ณด์ ์ ์ฑ ์ค ํ๋. ์น ๋ธ๋ผ์ฐ์ ์ ๊ธฐ๋ณธ ๋ณด์์ ๋ค๋ฅธ ๋๋ฉ์ธ์ผ๋ก๋ถํฐ ๋ฆฌ์์ค๋ฅผ ์์ฒญํ์ง ๋ชปํจ. ๊ทธ๋ฌ๋ CORS๋ฅผ ์ฌ์ฉํ๋ฉด ๋ค๋ฅธ ๋๋ฉ์ธ ๊ฐ์ ์ฌ๋ฌ ์์(์ด๋ฏธ์ง, ํฐํธ, ์คํฌ๋ฆฝํธ, ๋ฐ์ดํฐ) ๋ฑ์ ๊ณต์ ํ ์ ์์. CORS๋ฅผ ํ์ฉํ๋ ๋ฐฉ๋ฒ ์๋ฒ ์๋ต ํค๋ ์ค์ : Access-Control-Allow-Origin cors ๋ชจ๋ ์ฌ์ฉ webpack-dev-server proxy ๊ธฐ๋ฅ
2023.08.03 -
[CS/์๋ฃ๊ตฌ์กฐ] ๋ฐฐ์ด, ๋งํฌ๋๋ฆฌ์คํธ
๋ฉ๋ชจ๋ฆฌํ ๋น ๋ฐ ํ์ ๋ฐฐ์ด: ์ฐ์์ ์ธ ๋ฉ๋ชจ๋ฆฌ ๋ธ๋ก์ ์์๋ค์ ์ ์ฅ. ์ธ๋ฑ์ค๋ก ์์๋ค์ ์ ๊ทผ: O(1) ๋งํฌ๋๋ฆฌ์คํธ: ๊ฐ ์์๋ค์ด ๋ ๋ฆฝ์ ์ผ๋ก ๋ฉ๋ชจ๋ฆฌ์ ํ ๋น, ๋ค์ ์์๋ฅผ ๊ฐ๋ฆฌํค๋ ํฌ์ธํฐ๋ก ์ฐ๊ฒฐ. ์ธ๋ฑ์ค๋ก ์์๋ค์ ์ ๊ทผํ๋๋ฐ O(n) ์๊ฐ ์์. ํฌ๊ธฐ์กฐ์ ๋ฐ ์ถ๊ฐ/์ญ์ ๋ฐฐ์ด: ํฌ๊ธฐ๊ฐ ๊ณ ์ ๋์ด ์์ด, ๋ณ๊ฒฝ์ด ์ด๋ ค์. ์๋ก์ด ๋ฐฐ์ด์ ์์ฑํ๊ณ ๊ธฐ์กด ๋ฐ์ดํฐ๋ฅผ ๋ณต์ฌํจ. ์ค๊ฐ์ ์์นํ ์์๊ฐ ๋ณ๊ฒฝ๋ ๊ฒฝ์ฐ, ํด๋น ์์น์ ์์๋ค์ ์ด๋์์ผ์ผํจ. ๋งํฌ๋๋ฆฌ์คํธ: ๋์ ์ผ๋ก ํฌ๊ธฐ ์กฐ์ ๊ฐ๋ฅ. ์๋ก์ด ์์ ์ถ๊ฐ/์ญ์ ์ ๋ฉ๋ชจ๋ฆฌ ์ฌํ ๋น ์์ด ํฌ์ธํฐ๋ง ์์ ํ์ฌ๊ฐ๋ฅ. ๋ฉ๋ชจ๋ฆฌ๊ณต๊ฐ ๋ฐฐ์ด: ์์๋ค์ ์ฐ์์ ์ผ๋ก ์ ์ฅํ์ฌ ์ ์ฅ๊ณต๊ฐ ๋ญ๋น๊ฐ ์์ ๋งํฌ๋๋ฆฌ์คํธ: ํฌ์ธํฐ๋ก ์์๋ค์ ์ฐ๊ฒฐํ๊ธฐ ์ํ ํฌ์ธํฐ ๊ณต๊ฐ์ด ํ์ Reference : Chat-GPT:..
2023.08.03 -
[CS/์๋ฃ๊ตฌ์กฐ] ์คํ, ํ
Stack: ์๋ฃ๊ตฌ์กฐ์ ํ ์ข ๋ฅ๋ก, ํ์ ์ ์ถ(Last In First Out)์ ์์น์ ๊ฐ์ง๋ค. * ํจ์ํธ์ถ, ์ฌ๊ท ์๊ณ ๋ฆฌ์ฆ, ๋ธ๋ผ์ฐ์ ๋ฐฉ๋ฌธ ๊ธฐ๋ก ๋ฑ์์ ์ฌ์ฉ๋๋ค. * push๋ก ๋ฐ์ดํฐ ์ถ๊ฐ, pop์ผ๋ก ๋ฐ์ดํฐ ์ญ์ Queue: ์ ์ ์ ์ถ(First In First Out) ์์น. * Enqueue/push: ๋ฐ์ดํฐ ์ถ๊ฐ, dequeue/pop: ๋ฐ์ดํฐ ์ญ์ * ๋ฐฐ์ด ๋๋ ์ฐ๊ฒฐ๋ฆฌ์คํธ๋ก ๊ตฌํ ๊ฐ๋ฅ, ๋ฐฐ์ด๊ธฐ๋ฐ ํ๋ ์ฒ์๊ณผ ๋์ด ์ด์ด์ง ์ํ ํ ๊ตฌํ ๊ฐ๋ฅ * ๋คํธ์ํฌ ํจํท ์ฒ๋ฆฌ, ํ๋ฆฐํฐ ์ถ๋ ฅ ๊ด๋ฆฌ, ๋๋น ์ฐ์ ํ์(Breadth First Seach) ์๊ณ ๋ฆฌ์ฆ ๊ตฌํ๋ฑ์ ์ฌ์ฉ
2023.07.28