๐ช Programming
[React] ๋ฆฌ์กํธ ์ฝ๋๋ฅผ ๊ฐ์ ํ ์ ์๋ 4๊ฐ์ง ํ
[React] ๋ฆฌ์กํธ ์ฝ๋๋ฅผ ๊ฐ์ ํ ์ ์๋ 4๊ฐ์ง ํ
2024.10.28TLDR์ด๋ฒคํธ ํธ๋ค๋ฌ์ ์ปค๋ง ํ์ฉ์ปดํฌ๋ํธ ์ฑ
์ ๋ถ๋ฆฌ์กฐ๊ฑด๋ฌธ ๋์ ๊ฐ์ฒด map ์ฌ์ฉReact ๋ผ์ดํ์ฌ์ดํด ์ธ๋ถ์ ๋
๋ฆฝ์ ์ธ ๋ณ์ ๋ฐฐ์น 4 React Tips1. ์ปค๋ง ํ์ฉuser ์ํ๋ name, surname, address 3๊ฐ ์์ฑ์ ๊ฐ์ง๋ฉฐ, ์ด์ ๋์ํ๋ 3๊ฐ์ input ํ๋๊ฐ ํ์ํ๋ค. ์๋ ์ฝ๋์์ ๊ฐ ํ๋๋ฅผ ์ฒ๋ฆฌํ๊ธฐ ์ํด ๋ณ๋์ ํธ๋ค๋ฌ๋ฅผ ๊ฐ๊ฐ ๋ง๋ค์ด์ ์ฌ์ฉํ๊ณ ์์ง๋ง, ์ด ํธ๋ค๋ฌ๋ค์ value๊ฐ ํ ๋ฌ๋ ์์ฑ ์ด๋ฆ๋ง ๋ค๋ฅผ ๋ฟ ๋๋จธ์ง ๋ก์ง์ด ๋์ผํ๊ธฐ ๋๋ฌธ์ ์ฝ๋ ์ค๋ณต์ด ๋ฐ์ํ๊ณ ์๋ค.export default function App() { const [user, setUser] = useState({ name: "", surname: "", address: "", }); co..
[Flutter] ํ๋ฌํฐ ๊ธฐ์ด ๋ด์ฉ ์ ๋ฆฌ - Part 2
[Flutter] ํ๋ฌํฐ ๊ธฐ์ด ๋ด์ฉ ์ ๋ฆฌ - Part 2
2024.10.13๐ก ์๋๋ Part 1์์ ์ด์ด์ง๋ ๋ด์ฉ Data Fetching๊ฐ์ฒด์งํฅ ์ธ์ด์ธ Dart๋ ๊ฑฐ์ ๋๋ถ๋ถ์ด ํด๋์ค ๊ธฐ๋ฐ์ผ๋ก ๊ตฌ์ฑ๋๋ค. API ํธ์ถ, ์๋ต ๋ฐ์ดํฐ ํ์
์ ์, ๋ฐ์ดํฐ ์ฒ๋ฆฌ ์ญ์ ๋ชจ๋ ํด๋์ค ๋ด๋ถ์์ ์ด๋ฃจ์ด์ง๋ค. ๋จผ์ ์๋ต ๋ฐ์ดํฐ๋ฅผ ๋ํ๋ด๋ ๋ชจ๋ธ ํด๋์ค๋ฅผ ์ ์ํ๋ค. ์ผ๋ฐ์ ์ผ๋ก fromJson ์ด๋ผ๋ ์ด๋ฆ ์๋ ์์ฑ์๋ฅผ ์ฌ์ฉํ์ฌ JSON ๋ฐ์ดํฐ๋ฅผ ์ธ์คํด์คํ ์ํจ๋ค. ์๋ ์์์์ JSON ๊ฐ์ฒด๋ฅผ ์ธ์๋ก ๋ฐ๊ธฐ ๋๋ฌธ์ ์ด๊ธฐํ ๋ฆฌ์คํธ๋ฅผ ์ฌ์ฉํ์ฌ ํด๋์ค ํ๋์ ํ ๋นํ๊ณ ์๋ค.// lib/models/webtoon_model.dartclass WebtoonModel { final String id, title, thumb; WebtoonModel.fromJson(Map json) : tit..
[Flutter] ํ๋ฌํฐ ๊ธฐ์ด ๋ด์ฉ ์ ๋ฆฌ - Part 1
[Flutter] ํ๋ฌํฐ ๊ธฐ์ด ๋ด์ฉ ์ ๋ฆฌ - Part 1
2024.10.05๋ฐฐ๊ฒฝ ์ง์Flutter ๊ตฌ์กฐ๐ก Dart๋ Just-In-Time(JIT) ์ปดํ์ผ๊ณผ Ahead-Of-Time(AOT) ์ปดํ์ผ์ ๋ชจ๋ ์ง์ํ๋ค. JIT ์ปดํ์ผ์ ๊ฐ๋ฐ ๋ชจ๋์ ์ฌ์ฉ๋ผ์ Hot Reload ๊ฐ์ ๋น ๋ฅธ ํผ๋๋ฐฑ ๋ฃจํ๋ฅผ ์ ๊ณตํ๋ค. AOT ์ปดํ์ผ์ ๋ฐฐํฌ ๋ชจ๋์ ์ฌ์ฉ๋ผ์ ์ปดํ์ผ๋ ์ฝ๋๊ฐ ๊ธฐ๊ธฐ์ ๋ ์ต์ ํ๋ ์ํ๋ก ์คํํ ์ ์๊ฒ ๋ง๋ ๋ค. ๋ค์ดํฐ๋ธ ๊ฐ๋ฐ์์ ์ด์์ฒด์ (OS)์ ์ง์ ์ํธ์์ฉํ์ฌ ๋ฒํผ, ํ
์คํธ ๊ฐ์ UI ์์๋ฅผ ์์ฑํ๋ค.Flutter๋ ๋ค์ดํฐ๋ธ ํ๋ซํผ์ ์์ ฏ์ ์ฌ์ฉํ์ง ์๊ณ ์์ฒด์ ์ผ๋ก UI๋ฅผ ๋ ๋๋ง ํ๋ค. ์ด๋ ๋น๋์ค ๊ฒ์ ์์ง์ ์๋ ๋ฐฉ์๊ณผ ์ ์ฌํ๋ค.Dart๋ก ์์ฑ๋ ์ฝ๋๋ Flutter ํ๋ ์์ํฌ๋ฅผ ์ฌ์ฉํ์ฌ UI๋ฅผ ์ ์ํ๊ณ , ์ค์ ํ๋ฉด์ ๋ ๋๋ง ํ๋ ์์
์ C++๋ก ์์ฑ๋ Flutter ..
[TS] ํ์
์คํฌ๋ฆฝํธ ๋ธ๋๋๋ ํ์
[TS] ํ์ ์คํฌ๋ฆฝํธ ๋ธ๋๋๋ ํ์
2024.09.26Branded Typeํ์
์คํฌ๋ฆฝํธ๋ฅผ ์ฌ์ฉํ๋ค ๋ณด๋ฉด ์๋ก ๋ค๋ฅธ ๋ ๊ฐ์ฒด์ ํน์ ์์ฑ์ด ๋์ผํ ํ์
์ ๊ฐ์ง ๋๊ฐ ๋ง๋ค. ์ด๋ก ์ธํด ํ์
์์คํ
์์ ์ค๋ฅ๊ฐ ๋ฐ์ํ์ง ์๋๋ผ๋ ๋
ผ๋ฆฌ์ ์ค๋ฅ๋ ํ์
์์ ์ฑ ๋ฌธ์ ๋ฅผ ์ผ๊ธฐํ ์ ์๋ค.type User = { id: string; name: string;};type Post = { id: string; ownerId: string; comments: Comments[];};type Comments = { id: string; timestamp: string; body: string; authorId: string;}; ์ ์์์์ User.id, Post.id, Comments.id๋ ๋ชจ๋ string ํ์
์ด๋ค. ์ฒซ ๋ฒ์งธ ์ธ์ postId, ๋ ๋ฒ์งธ ์ธ์..
๋์ปค(Docker)์ ์ฟ ๋ฒ๋คํฐ์ค(Kubernetes) ๊ธฐ๋ณธ ๊ฐ๋
๋์ปค(Docker)์ ์ฟ ๋ฒ๋คํฐ์ค(Kubernetes) ๊ธฐ๋ณธ ๊ฐ๋
2024.09.17๋ค์ด๊ฐ๋ฉฐ๊ณผ๊ฑฐ์๋ ์ ํ๋ฆฌ์ผ์ด์
์ ๋ฐฐํฌํ ๋ ๋ค์ํ ํ๊ฒฝ์์ ๋ฐ์ํ๋ ํธํ์ฑ ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ๋ ๋ฐ ๋ง์ ๋
ธ๋ ฅ์ด ํ์ํ๋ค. ๊ทธ๋ฌ๋ ์ด์ ๋ ์ปจํ
์ด๋ ๊ธฐ์ ์ ๋์
์ผ๋ก ์ด๋ฅผ ํ์คํํ๊ณ ์๋ํํ ์ ์๊ฒ ๋์๋ค. ํนํ ์ํํธ์จ์ด ๊ฐ๋ฐ์ ํ๋ค ๋ณด๋ฉด ์ปจํ
์ด๋ ๊ด๋ฆฌ ๋๊ตฌ์ ๊ด๋ จํ ์ฉ์ด๋ฅผ ์์ฃผ ์ ํ๊ฒ ๋๋ค. ๊ทธ๋์ ๋์ปค, ์ฟ ๋ฒ๋คํฐ์ค ๊ทธ๋ฆฌ๊ณ ๋ค์ค ํด๋ฌ์คํฐ์ ๋ํ ๊ธฐ๋ณธ ๊ฐ๋
์ ์ ๋ฆฌํด ๋ดค๋ค. ๋์ปค (Docker) ์ฟ ๋ฒ๋คํฐ์ค๋ฅผ ์ดํดํ๊ธฐ ์ํด์ ๋จผ์ ๋์ปค(Docker)์ ๋ํด ์์์ผ ํ๋ค. 2013๋
์ ํ์ํ ๋์ปค๋ ์ํํธ์จ์ด ์ ํ๋ฆฌ์ผ์ด์
์ ์คํ ํ๊ฒฝ๊ณผ ์์ค ์ฝ๋๋ฅผ ํจ๊ป ํจํค์งํ์ฌ ํ๋์ ์ปจํ
์ด๋ ์ด๋ฏธ์ง๋ก ๋ง๋๋ ํ์ ์ ์ธ ๋ฐฉ์์ ์ ์ํ๋ค. ์ปจํ
์ด๋ ์ด๋ฏธ์ง๋ ๊ทธ ์์ฒด๊ฐ ๋ฐ์ด๋๋ฆฌ ํ์ผ์ด๊ธฐ ๋๋ฌธ์ ๋ฐ๋ก ๋ฐฐํฌํ ์ ์๋ ์ฅ์ ์ด ์๋ค. ์ฆ,..
[Flutter] ํ๋ฌํฐ ๊ฐ๋ฐ ํ๊ฒฝ ๊ตฌ์ถ for macOS
[Flutter] ํ๋ฌํฐ ๊ฐ๋ฐ ํ๊ฒฝ ๊ตฌ์ถ for macOS
2024.09.03Android Studioโถ Android Studio ์ค์น (JetBrains ToolBox๋ก๋ ์ค์น ๊ฐ๋ฅ)brew install android-studio โท Android Studio ์คํ - Setup Wizard - Install Type์์ Standard ์ ํ ํ ์ค์น. Standard ์ ํ ์ ์๋๋ก์ด๋ ๊ฐ๋ฐ์ ํ์ํ SDK, ๋น๋ ํด, ์๋ฎฌ๋ ์ดํฐ๊ฐ ์๋์ผ๋ก ์ค์น๋๋ค. Setup Wizard๋ Android Studio๋ฅผ ์ฒ์ ์คํํ์ ๋ ๋์จ๋ค.โธ Settings(โ ,) - Android SDK ๋ฉ๋ด - SDK Tools ํญ - Android SDK Command-line Tools ์ฒดํฌ.โน Flutter, Dart ํ๋ฌ๊ทธ์ธ ์ค์น Flutter / Dart SDK๐ก Flutter SD..
[Dart] ์๋ฐ์คํฌ๋ฆฝํธ ๊ฐ๋ฐ์์ ๋คํธ ํ์ต - Part 2
[Dart] ์๋ฐ์คํฌ๋ฆฝํธ ๊ฐ๋ฐ์์ ๋คํธ ํ์ต - Part 2
2024.08.21Dart์ JavaScript๋ ๋ง์ ๊ฐ๋
์ ๊ณต์ ํ๋ค. Dart ์ญ์ ์ด๋ฒคํธ ๋ฃจํ์์ ์คํ๋๊ณ , ๋น๋๊ธฐ ํ๋ก๊ทธ๋๋ฐ์ ์ํ Future๋ผ๋ ๊ฐ๋
์ด ์กด์ฌํ๋ค. Future๋ ์๋ฐ์คํฌ๋ฆฝํธ์ Promise์ ๋น์ทํ๋ค. Dart๋ ์ ์ ํ์
์ธ์ด์ด๊ธฐ ๋๋ฌธ์ ํ์
์คํฌ๋ฆฝํธ๋ฅผ ์ฌ์ฉํ ๊ฒฝํ์ด ์๋ค๋ฉด Dart๋ฅผ ๋ ์ฝ๊ฒ ๋ฐฐ์ธ ์ ์๋ค. Dart์ JavaScript์ ๋ค๋ฅธ ์ ๊ณผ ๋น์ทํ ์ ์ Learning Dart as a JavaScript developer ํ์ด์ง์ ์์ธํ ์ค๋ช
๋ผ ์์ด์ ์ ๋ฆฌํด๋ดค๋ค. ๐ก ์๋๋ Part 1์์ ์ด์ด์ง๋ Part 2 ๋ด์ฉ. Asynchrony์๋ฐ์คํฌ๋ฆฝํธ์ ๋ง์ฐฌ๊ฐ์ง๋ก Dart ๊ฐ์๋จธ์ (VM)์ ๋จ์ผ ์ด๋ฒคํธ ๋ฃจํ๋ฅผ ์ฌ์ฉํ์ฌ ์ฝ๋๋ฅผ ์คํํ๋ค. ๋ชจ๋ ์ฝ๋๋ ๋๊ธฐ์ ์ผ๋ก ์คํ๋์ง๋ง, ๋น๋๊ธฐ ๋๊ตฌ..
[Dart] ์๋ฐ์คํฌ๋ฆฝํธ ๊ฐ๋ฐ์์ ๋คํธ ํ์ต - Part 1
[Dart] ์๋ฐ์คํฌ๋ฆฝํธ ๊ฐ๋ฐ์์ ๋คํธ ํ์ต - Part 1
2024.08.21Dart์ JavaScript๋ ๋ง์ ๊ฐ๋
์ ๊ณต์ ํ๋ค. Dart ์ญ์ ์ด๋ฒคํธ ๋ฃจํ์์ ์คํ๋๊ณ , ๋น๋๊ธฐ ํ๋ก๊ทธ๋๋ฐ์ ์ํ Future๋ผ๋ ๊ฐ๋
์ด ์กด์ฌํ๋ค. Future๋ ์๋ฐ์คํฌ๋ฆฝํธ์ Promise์ ๋น์ทํ๋ค. Dart๋ ์ ์ ํ์
์ธ์ด์ด๊ธฐ ๋๋ฌธ์ ํ์
์คํฌ๋ฆฝํธ๋ฅผ ์ฌ์ฉํ ๊ฒฝํ์ด ์๋ค๋ฉด Dart๋ฅผ ๋ ์ฝ๊ฒ ๋ฐฐ์ธ ์ ์๋ค. Dart์ JavaScript์ ๋ค๋ฅธ ์ ๊ณผ ๋น์ทํ ์ ์ Learning Dart as a JavaScript developer ํ์ด์ง์ ์์ธํ ์ค๋ช
๋ผ ์์ด์ ์ ๋ฆฌํด๋ดค๋ค. Conventions and lintingDart ํ์์ ๊ณต์์ ์ผ๋ก ์ฝ๋ ์คํ์ผ ๊ฐ์ด๋์ Lint ๋๊ตฌ๋ฅผ ์ ๊ณตํ๋ค.dart fix๋ฅผ ํตํด ์ฝ๋ ์ด์๋ฅผ ๋ฐ๊ฒฌํ๊ณ ์์ ํ ์ ์๋ค.dart format์ ํตํด ์ฝ๋๋ฅผ ํฌ๋งคํ
ํ ..
[Algorithm] ํ๋ก๊ทธ๋๋จธ์ค - ํผ๋ก๋ / ๋ฐฑํธ๋ํน์ผ๋ก ๋ชจ๋ ๋ถ๋ถ์งํฉ ์ฐพ๊ธฐ
[Algorithm] ํ๋ก๊ทธ๋๋จธ์ค - ํผ๋ก๋ / ๋ฐฑํธ๋ํน์ผ๋ก ๋ชจ๋ ๋ถ๋ถ์งํฉ ์ฐพ๊ธฐ
2024.07.29ํ๋ก๊ทธ๋๋จธ์ค ๋ ๋ฒจ 2 ํผ๋ก๋ ๋ฌธ์ ๋ ๋์ ๋ชฉ๋ก๊ณผ HP๊ฐ ์ฃผ์ด์ก์ ๋ ๋ฐฉ๋ฌธํ ์ ์๋ ์ต๋ ๋์ ์ ์๋ฅผ ๋ฐํํด์ผ ํ๋ค. ๊ฐ ๋์ ์ ์ต์ ํผ๋ก๋์ ์๋ชจ ํผ๋ก๋๋ฅผ ๊ฐ์ง๋ค. ์ต์ ํผ๋ก๋๋ ํด๋น ๋์ ์ ๋ฐฉ๋ฌธํ๊ธฐ ์ํด ํ์ํ ์ต์ HP๋ฅผ ์๋ฏธํ๊ณ , ์๋ชจ ํผ๋ก๋๋ ๋ง ๊ทธ๋๋ก ํด๋น ๋์ ์ ๋ฐฉ๋ฌธํ์ ๋ ์๋ชจ๋๋ HP๋ฅผ ๋ํ๋ธ๋ค. ๋ฌธ์ ์์ ์ฃผ์ด์ง๋ ๋งค๊ฐ๋ณ์๋ ์๋์ ๊ฐ๋ค. k : ์์ HP. e.g., 80dungeons : [์ต์ ํผ๋ก๋, ์๋ชจ ํผ๋ก๋]๋ก ์ด๋ฃจ์ด์ง ๋์ ๋ชฉ๋ก. e.g., [[80,20],[50,40],[30,10]] ์ต์ ํผ๋ก๋์ ์๋ชจ ํผ๋ก๋๊ฐ ๊ฐ๊ฐ ๋ค๋ฅด๊ธฐ ๋๋ฌธ์ ๋ฐฉ๋ฌธ ์์์ ๋ฐ๋ผ ๋ฐฉ๋ฌธํ ์ ์๋ ๋์ ์ ์๊ฐ ๋ฌ๋ผ์ง๋ค. ์๋ฅผ ๋ค์ด [[80,20],[50,40],[30,10]] ๋์ ๋ชฉ๋ก์์ 2~3๋ฒ(i1..
[DevTools] ๋ฆฌ์กํธ ํ
์คํธ ํ๊ฒฝ(Vitest, React Testing Library) ๋ฐ CI ๊ตฌ์ถ
[DevTools] ๋ฆฌ์กํธ ํ ์คํธ ํ๊ฒฝ(Vitest, React Testing Library) ๋ฐ CI ๊ตฌ์ถ
2024.07.22์ฝ๋ ํ์ง์ ๋ณด์ฅํ๊ณ , ๊ธฐ๋ฅ์ด ์๋ํ ๋๋ก ๋์ํ๋์ง ํ์ธํ๊ธฐ ์ํด ํ
์คํธ ์ฝ๋๋ฅผ ์์ฑํ๋ค. ํนํ ๊ธฐ๋ฅ ์ถ๊ฐ๋ ๋ฆฌํฉํ ๋ง์ ํ ๋ ํ
์คํธ ์ฝ๋๊ฐ ์์ผ๋ฉด ๊ธฐ์กด ๊ธฐ๋ฅ์ด ์ฌ๋ฐ๋ฅด๊ฒ ์๋ํ๋์ง ์ฝ๊ฒ ํ์ธํ ์ ์๊ณ , ์ฌ๋ฆฌ์ ์ธ ์์ ๊ฐ์ ์ฃผ๋ ์ฅ์ ๋ ์๋ค. ํ๋ก ํธ์๋ ํ
์คํธ ์ข
๋ฅ๋ ํฌ๊ฒ ๋จ์ ํ
์คํธ, ํตํฉ ํ
์คํธ, E2E ํ
์คํธ, ์ ์ ํ
์คํธ๋ก ๋๋๋ค. ํ
์คํธ ์ข
๋ฅ์ค๋ช
์์์ฃผ์ ๋๊ตฌ๋จ์ ํ
์คํธ(Unit Test)๊ฐ๋ณ ํจ์, ์ปดํฌ๋ํธ, ๋ชจ๋์ ๋์ ๊ฒ์ฆ๋ฒํผ ํด๋ฆญ ์ ํน์ ํจ์ ํธ์ถ ์ฌ๋ถJest, Vitest, Mocha, Jasmine ๋ฑํตํฉ ํ
์คํธ(Integration Test)์ฌ๋ฌ ๋ชจ๋์ด ํจ๊ป ์ ์๋ํ๋์ง ํ์ธ์ํ ๊ตฌ๋งค ์ ์์ก ์
๋ฐ์ดํธ, ์ฌ๊ณ ๋ณ๊ฒฝJest, Vitest, React Testing Library ๋ฑE..
[JS] ์๋ฐ์คํฌ๋ฆฝํธ ์ ๊ท์์ผ๋ก ์ฒ ๋จ์ ๊ตฌ๋ถ์ ์ถ๊ฐํ๊ธฐ (๋จ์ด ๊ฒฝ๊ณ, ์ ํ๋ฐฉํ์)
[JS] ์๋ฐ์คํฌ๋ฆฝํธ ์ ๊ท์์ผ๋ก ์ฒ ๋จ์ ๊ตฌ๋ถ์ ์ถ๊ฐํ๊ธฐ (๋จ์ด ๊ฒฝ๊ณ, ์ ํ๋ฐฉํ์)
2024.07.18ํฐ ์ซ์๋ฅผ ์ฝ๊ธฐ ์ฝ๊ฒ ๋ง๋ค๊ธฐ ์ํด ์ผ๋ฐ์ ์ผ๋ก ์ฒ ๋จ์๋ง๋ค ์ฝค๋ง(,)๊ฐ์ ๊ตฌ๋ถ์๋ฅผ ์ถ๊ฐํ๋ค. ์ฒ ๋จ์ ๊ตฌ๋ถ์ ํ๊ตญ์ ํฌํจํ ๋ง์ ๊ตญ๊ฐ์์ ํ์ค์ผ๋ก ์ฌ์ฉํ๋ ์ซ์ ํ๊ธฐ๋ฒ์ด๋ค. ์๋ฐ์คํฌ๋ฆฝํธ์์ Number.toLocaleString() ํน์ Intl.NumberFormat ๋ฉ์๋๋ฅผ ์ด์ฉํ๋ฉด ๊ตฌ๋ถ์๋ฅผ ์ถ๊ฐํ ์ ์๋ค. ์ฐธ๊ณ ๋ก ์ด ๋ฉ์๋๋ค์ ๊ธฐ๋ณธ์ ์ผ๋ก ์คํ ํ๊ฒฝ์ ๋ก์ผ์ผ ์ค์ ์ ๋ฐ๋ฅด๊ธฐ ๋๋ฌธ์ ๋ก์ผ์ผ์ ๋ฐ๋ผ ๊ฒฐ๊ณผ๊ฐ ๋ฌ๋ผ์ง ์๋ ์๋ค. ์๋ฅผ ๋ค์ด ๋
์ผ ๋ก์ผ์ผ(de-DE)์ ์ฒ ๋จ์ ๊ตฌ๋ถ์๋ก ์จ์ (.)์ ์ฌ์ฉํ๊ณ , ์์์ ๊ตฌ๋ถ์๋ก ์ฝค๋ง(,)๋ฅผ ์ฌ์ฉํ๋ค. — ์ฐธ๊ณ ํฌ์คํ
const number = 123456.789;// ๋ก์ผ์ผ์ ์ง์ ํ์ง ์์ผ๋ฉด ๊ธฐ๋ณธ ๋ก์ผ์ผ(navigator.language)์ ๋ฐ๋ฅธ๋คIntl.Number..
[JS] ์๋ฐ์คํฌ๋ฆฝํธ reduce() ๋ฉ์๋ ํ์ฉ ์์ ๋ชจ์
[JS] ์๋ฐ์คํฌ๋ฆฝํธ reduce() ๋ฉ์๋ ํ์ฉ ์์ ๋ชจ์
2024.07.07Array.reduce() ๋ฉ์๋๋ ๋ฐฐ์ด์ ์๋ ๊ฐ ์์์ ์ฝ๋ฐฑ ํจ์๋ฅผ ์คํํ์ฌ ๋์ ๋ ๊ณ์ฐ ๊ฒฐ๊ณผ๋ฅผ ํ๋์ ๊ฐ์ผ๋ก ๋ฐํํ๋ค. ์๋ฐ์คํฌ๋ฆฝํธ์์ ์ ๊ณตํ๋ filter(), map() ๋ฑ์ ๋ฐฐ์ด ๋ฉ์๋๋ ๋ชจ๋ reduce()๋ก ๊ตฌํํ ์ ์๊ณ , ์ด ์ธ์๋ ๋ค์ํ ํ์ฉ ๋ฐฉ๋ฒ์ด ์๊ธฐ ๋๋ฌธ์ ๊ฐ์ธ์ ์ผ๋ก ๊ฐ์ฅ ์์ฃผ ์ฌ์ฉํ๋ ๋ฐฐ์ด ๋ฉ์๋๋ค. reduce() ๋ฉ์๋์ ๊ตฌ๋ฌธ์ ์๋์ ๊ฐ๋ค.reduce(callbackFn, initialValue?) callbackFn ์ฝ๋ฐฑ ํ๋ผ๋ฏธํฐaccumulator : ์ด์ callbackFn ๋ฐํ๊ฐ์ด๊ธฐ๊ฐ ์ง์ ์ ์ฝ๋ฐฑ์ ์ฒ์ ํธ์ถํ์ ๋ ๊ฐ : initialValue์ด๊ธฐ๊ฐ ๋ฏธ์ง์ ์ ์ฝ๋ฐฑ์ ์ฒ์ ํธ์ถํ์ ๋ ๊ฐ : array[0]currentValue : ํ์ฌ ์ํํ๊ณ ์๋ ๊ฐ์ด๊ธฐ๊ฐ ์ง..