함수형 프로그래밍, 왜 쓰는 걸까?
cleanUrl: /함수형-프로그래밍-왜-쓰는-걸까? floatFirstTOC: right
함수형 프로그래밍, 왜 쓰는 걸까?
절차지향 코드 vs 함수형 코드
// 절차지향 방식 const numbers = [1, 2, 3, 4, 5, 6]; const evens = []; for (let num of numbers) { if (num % 2 === 0) { console.log("짝수:", num); evens.push(num); } } const squares = []; for (let num of evens) { const square = num ** 2; console.log("제곱:", square); squares.push(square); } let sum = 0; for (let num of squares) { sum += num; } console.log("총합:", sum);
// 함수형 방식 const numbers = [1, 2, 3, 4, 5, 6]; const sum = numbers .filter(n => n % 2 === 0) // 짝수 필터링 .map(n => n ** 2) // 제곱 계산 .reduce((acc, cur) => acc + cur, 0); // 합산 console.log("총합:", sum);

함수형 프로그래밍의 핵심 원칙
1. 순수 함수(Pure Function)
- 입력값이 같으면 항상 같은 결과를 반환
- 함수 외부 상태에 의존하지 않음
- 부작용(side effect)이 없음
function add(a, b) { return a + b; } add(3, 4); // 언제나 7 반환
2. 불변성(Immutability)
const arr = [1, 2, 3]; const newArr = [...arr, 4];
const person = { name: 'John', age: 30 }; const updatedPerson = { ...person, age: 31 };
3. 고차 함수(Higher-Order Function)
function applyOperation(a, b, callback) { return callback(a, b); } function add(a, b) { return a + b; } const result = applyOperation(3, 4, add); console.log(result); // 7
콜백 함수, map, filter, reduce 같은 API의 기반이 됩니다.setTimeout( () => { console.log("Hello!"); }, 1000 ); const button = document.getElementById('myButton'); button.addEventListener('click', function() { console.log('Hello!'); } );
const arr = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]; console.log( arr .filter(num => num % 2 === 0) .map(num => num * num) .reduce((acc, num) => acc + num, 0) ); // 220
4. 선언형 프로그래밍 (Declarative Programming)
// 절차지향 방식 let sum = 0; for (let i = 0; i < numbers.length; i++) { sum += numbers[i]; } // 선언형 방식 const sum = numbers.reduce((a, b) => a + b);
5. 함수 합성 (Function Composition)
const compose = (f, g) => x => f(g(x)); const addOne = x => x + 1; const double = x => x * 2; const addOneThenDouble = compose(double, addOne); console.log(addOneThenDouble(3)); // 8
정리
- 순수 함수와 불변성으로 예측 가능하고 안정적인 코드를 작성합니다.
- 고차 함수와 함수 합성으로 유연하고 재사용 가능한 코드를 만듭니다.
- 선언형 스타일로 코드의 의도를 명확하게 표현합니다.
참고 자료
![[10분 테코톡] 필즈, 판다의 OOP vs FP](https://i.ytimg.com/vi/4rl6uMqVX2I/maxresdefault.jpg)
[10분 테코톡] 필즈, 판다의 OOP vs FP
🙋♀️ 우아한테크코스의 크루들이 진행하는 10분 테크토크입니다. 🙋♂️ '10분 테코톡'이란 우아한테크코스 과정을 진행하며 크루(수강생)들이 동료들과 학습한 내용을 공유하고 이야기하는 시간입니다. 서로가 성장하기 위해 지식을 나누고 대화하며 생각해보는 시간으로 자기 주도적인 성장을 지향하는 우아한테크코스의 문화 중 하나입니다. 🌕우아한테크코스란 🌕 우아한테크코스는 일반 사용자용 서비스를 개발하는 회사가 필요로 하는 역량을 가진 프로그래머를 양성하기 위한 교육입니다. 우리의 목표는 자기 주도적으로 학습하고 성장하고 싶은 개발자를 위한 교육을 만드는 것입니다.

함수형 프로그래밍 - 개발자 내공 업그레이드하기
#코딩 #프로그래밍 #함수형 함수형 프로그래밍은 객체지향 프로그래밍과 함께 프로그래밍 코드를 작성하는 방법 중 하나로, 절차지향적 코드와 비교하여 코드가 간결해질 수 있으며, 다수의 변수를 다루지 않아 에러 발생 가능성을 줄입니다. 또한, 시점에 따라 달라지는 상태를 최소화하여 멀티스레딩 과정에서의 문제를 방지하고 병렬처리의 효율성을 높이는 등이 가능해집니다. 함수형 프로그래밍에서는 순수 함수, 즉 같은 입력값에 대해 항상 같은 결과값을 반환하는 함수를 사용하며, 외부 데이터를 변경하지 않아 예측과 테스트가 용이합니다. 함수형 프로그래밍이 실무에서 가장 많이 사용되는 형태는 고차함수로, 다른 함수를 매개변수로 받거나 반환값으로 내놓는 함수를 말합니다. 이를 통해 복잡한 작업을 손쉽게 처리할 수 있습니다. = = = 🏠 얄코사이트: https://www.yalco.kr 📖 얄코 도서: https://www.yalco.kr/book/ 🧑🏫 얄코 강의: https://www.yalco.kr/#lectures 🎥 제대로 파는 Git & GitHub: https://youtu.be/1I3hMwQU6GU 🎥 제대로 파는 자바: https://youtu.be/iN22AgS_Chk 🎥 제대로 파는 파이썬: https://youtu.be/Da_-qnyPhhc 🎥 제대로 파는 자바스크립트: https://youtu.be/RHoPpjKRT38 🎥 제대로 파는 HTML & CSS: https://youtu.be/TrC2x4N0XqY 🎥 갖고 노는 MySQL 강좌: https://youtu.be/dgpBXNa9vJc 🎥 반응형 프로그래밍 RxJS 강좌: https://youtu.be/KDiE5qQ3bZI
[프로그래밍] 함수형 프로그래밍(Functional Programming) 이란?
1. 함수형 프로그래밍(Functional Programming)에 대한 이해 [ 프로그래밍 패러다임(Programming Paradigm) ] 프로그래밍 패러다임(Programming Paradigm)은 프로그래머에게 프로그래밍의 관점을 갖게 하고 코드를 어떻게 작성할 지 결정하는 역할을 한다. 새로운 프로그래밍 패러다임을 통해서는 새로운 방식으로 생각하는 법을 배우게 되고, 이를 바탕으로 코드를 작성하게 된다. 최근의 프로그래밍 패러다임은 크게 아래와 같이 구분할 수 있다. 명령형 프로그래밍: 무엇(What)을 할 것인지 나타내기보다 어떻게(How) 할 건지를 설명하는 방식 절차지향 프로그래밍: 수행되어야 할 순차적인 처리 과정을 포함하는 방식 (C, C++) 객체지향 프로그래밍: 객체들의 집합으로 ..

함수형프로그래밍이 대세다?! (함수형 vs 객체지향)
함수평 프로그래밍과 객체지향 프로그래밍 둘중에 뭐가 더 좋은건가요? 함수형 프로그래밍이 대세인가요? 이 영상 끝에 모든 답을 얻어갈 수 있습니다 (↙ 더보기) ___________________________ 💡 풀스택 개발 로드맵 ⇢ https://academy.dream-coding.com/pages/912e50 🚀 엘리와 더 체계적으로 배우고 싶다면 ⇢ 드림코딩 아카데미: http://academy.dream-coding.com/ ..................................................... ✨ 관련된 영상들 타입스크립트와 객체지향 ⇢ https://youtu.be/ZZib1YpxNdg ..................................................... ☀️ 드림코딩 엘리 모든 드림코더분들이 개발자로 성장해 나가고 꿈을 이루는 여정에 함께 할 채널입니다 :) ❝Don't forget to code your dream 여러분들의 멋진 꿈을 코딩하세요 ⭐️ ..................................................... 🌐 프론트엔드 개발자 되기 입문자편 영상 목록: https://www.youtube.com/playlist?list=PLv2d7VI9OotQ1F92Jp9Ce7ovHEsuRQB3Y 📒 자바스크립트 기초 강의 영상 목록: https://www.youtube.com/playlist?list=PLv2d7VI9OotTVOL4QmPfvJWPJvkmv6h-2 💻 개발자라면 누구나 알고 있으면 좋은 지식 💡 https://www.youtube.com/playlist?list=PLv2d7VI9OotSn1ThdDeqvBx8QuRSd01qv 💰 개발자 경력 관리 영상 목록: https://www.youtube.com/playlist?list=PLv2d7VI9OotSyQ6RPdytiHID5Cmnv_sA3 📈 IT 트렌드 https://www.youtube.com/playlist?list=PLv2d7VI9OotRTfM1zJLQMCLriBpLFg8r- 📷 개발자 브이로그 https://www.youtube.com/playlist?list=PLv2d7VI9OotR1tALnxov7sAUshyBmfYfU 🤗 생산력 향상 팁 https://www.youtube.com/playlist?list=PLv2d7VI9OotQB-9p29xrAnARhuE1Vf88I ..................................................... 00:00 함수형 프로그래밍이란? 03:57 함수형 프로그래밍 특징 4가지 06:45 결론 ..................................................... #코딩#객체지향프로그래밍#함수형프로그래밍
