함수형 프로그래밍과 JavaScript ES6+ 응용편
함수형 프로그래밍과 JavaScript ES6+ 응용편
수강정보
(37개의 수강평)
892명의 수강생
최범준 프로필

둘다 마프 오픈소스인거 같은데 fxjs와Partial.js 의 차이가 뭔가요? 최범준 1달 전
둘다 마프 오픈소스인거 같은데 fxjs와Partial.js 의 차이가 뭔가요?

1
Donghee Lee 프로필

fxsql 사용 중 질문이 있습니다. Donghee Lee 3달 전
안녕하세요. 강의중 소개된 fxsql과 관련하여 질문이 있어서 남기게 되었습니다. - fxsql의 ASSOCIATE 를 사용시 서로다른 테이블들을 각각 select하여 데이터를 가져오는것으로 확인하였는데 join을 사용하여 쿼리를 날리는 방법은 없는것일까요? - fxsql로 구성된 서버를 local, staging, production과 같은 서로다른 환경으로 분리하여 사용 시 데이터베이스 테이블이나 필드같은 부분은 어떤식으로 동기화하여 사용하는것이 best practice일까요? 좋은강의 정말감사드리며 다음 강의가나오길 기대하고 있습니다!

2
boutime2017 프로필

저술하신 '함수형 프로그래밍' 책 관련 질문입니다. boutime2017 4달 전
아무래도 책을 보면서 복습하는 것이 효율적이라 생각되어서 책 구매를 생각하고 있습니다만, 서점에서 확인하니 1쇄 발행 시점이 2017년이더라구요. 혹시 2쇄에는 인프런의 두 강의의 내용을 포괄하고 있나요?

1
winter-breaker 프로필

질문드립니다 winter-breaker 5달 전
const b = a * a 는 어떻게 가능한가요?  const 자체가 객체안에서 값을 변경하는 건 문제가 없는 것은 아닌데  const b 처럼 한번 const로 b를 할당 했는데 for 문을 돌고 나서 다시 const b = a * a 처럼 b에다가 값을 바꾸는 행위를 하면 const b가 has already been declared라는 에러 메시지가 나올꺼 같은데 문제 없이 통과되는 이유가 뭔가요??

1
boutime2017 프로필

퍼포먼스/가독성 boutime2017 5달 전
초보적인 질문입니다 ㅠㅠ 1.지연 평가/즉시 평가 예제에서 L.map과 L.filter그리고 reduce를 조합해서 써주셨는데요 이전 강의부터 궁금했던 건데 지연 평가를 한다고 해도, reduce의 경우 takeAll처럼 결국 이터러블/이터레이터를 모두 평가를 해야되기 때문에 지연 평가나 즉시 평가나 시간복잡도/퍼포먼스적인 부분에서 차이가 없는 것이 아닌가 생각되는데 이것이 맞나요?  제 생각에 지연 평가는 take(작은 수)로 이터러블의 모든 요소를 순회/평가하지 않아도 되는 경우에만 의미가 있는 것 같은데, 뭔가 놓친 부분이 있는 것은 아닌지 궁금합니다 2.reduce only / reduce + map + filter 강의에서 말씀해주신 부분에서만 추측해보자면, 함수 합성으로 하시는 이유가 추상화/재사용성/가독성 등의 이유가 주된 이유인 것 같습니다. 그런데, map, filter, reduce의 조합이면 일단 순회를 3차례 돌아야 하는 것이고, reduce만 쓰면 순회는 1차례에서 끝날 텐데, 혹시 퍼포먼스적인 부분에서는 차이가 없나요? 1번 질문이랑 연결해서 (이터러블의 모든 요소를 순회해야 한다면) 지연 평가를 한다고 해도 평가를 그때 그때 필요한 시점에 하는 것일 뿐, 평가를 덜해도 되는 것이 아니기 때문에 제 생각에는 최종 평가까지 걸리는 시간이 더 들 것 같은데... (console.time을 찍어봤지만 간단한 예제라서 그런지 실행 시간에는 별 차이를 느끼지 못했습니다...)  

2
boutime2017 프로필

for문이 더 적게 돈다는 의미? boutime2017 5달 전
여기서 for 문이 더 적게 돈다는 의미를 명확하게 이해하지 못해서 질문드립니다. 명령형일 때  a % 2를 평가하여 참이면 그 아래 코드를 실행하고, 아니면 실행하지 않는 것인데 L.filter에서도 결국 .next()로 순회를 돌 때 동일한 a % 2를 평가하여 다음 값을 yield해서 내보내는 것으로 이해했습니다. 그렇다면, 명령형일 때와 함수형일 때의 차이는 평가가 지연되었느냐, 그렇지 않느냐의 차이인 것인가요?

1
Chungmin Myung 프로필

동시성 부하 조절 강좌에서 질문입니다. Chungmin Myung 7달 전
L.map(L.map(f => f()))에서 함수를 실행해서L.map을 적용하는 것은 알겠는데, 추가적으로 L.map을 해주는 이유가 궁금합니다.그리고 그 이후 하단에 _.each(_.each($.addClass('fade-in')))을 해주는 이유도 좀 궁금합니다. 감사합니다.(멋진 강의 감사합니다.)

1
김선엽 프로필

node.js에서 fxjs는 어떻게 사용하는건가요? 김선엽 7달 전
안녕하세요. 강의 잘 듣고 있습니다. 아... 질문 올렸다가 삽질하다보니 해결되어 계속 질문내용을 수정하게되네요 ^^; 1. lodash에서 _.go 같은 기능은 없는건가요? 아래와 같이 JSON.stringify를 호출되게 해보려 하는데 잘 안되어서요. _.go(list, _.filter((item) => item.name === name), _.head(), JSON.stringify ); _(list) .filter((item) => item.name === name) .header() 까지는 잘 되는데요... 그리고  _와 L은 섞어 쓰면 오류가 나나보네요. 2. 1번 질문에서 L.head()의 결과가 undefined나 null이 되었을때는 {} 를 JSON으로 만들고 싶은데 어떻게 하면 좋을까요? 생각해보니 defaultTo같은걸로 처리하면 되긴 할꺼 같긴하네요. 3. 아래 두 코드는 결과가 같을꺼라 기대했는데 왜 자꾸 에러가 나는지 알 수 있을까요? const _ = require("fxjs/Strict"); var result = _.go([1,2,3,4,5], _.reduce(_.multiply, 3)); console.log(result); const _ = require("lodash"); var result = _([1,2,3,4,5]).reduce(_.multiply, 3); console.log(result); fxjs에서 _.reduce만을 썼을때는 문제는 없는데 go와 같이쓰면 문제가 발생하네요. 아래와 같이 하면 되긴 하는데 좀 어색하네요. ㅠㅠ var result = _.go([1,2,3,4,5],     _.curryN(2, _.reduce)(_.multiply, 3)); console.log(result); 답변 부탁드립니다. 감사합니다.

1
digilog 프로필

FP의 단점(?)을 극복하기 위한 질문 드립니다. digilog 7달 전
FP를 보면 결국 기존의 데이터를 수정하지 않고 새로운 카피본을 만드는 것인데, 메모리의 낭비로 이어질 수 있어서 작은 데이터에서는 문제는 없으나 대용량 데이터에서는 문제가 될 것 같습니다. 강의를 들으면서 이 문제의 해결 방안에 대한 기대를했었는데 별다른 언급이 없었네요. 이제 실무에 적용하려고 검토 및 준비를 하다보니 대용량 데이터 핸들링에서 이슈가 분명히 나올것 같아서관련자료를 찾아보니 이러한 문제점을 해결하기 위해서 persistent data structure를 사용하는것 같은데, 알려주신 FP와는 어떻게 접목시켜야 하는지요...? (결국 immutable.js 와 같은 오픈소스를 사용해야 하는지요...) 그동안 강의를 들으며 공부한 내용을 실제로 활용하기 위해서(올려주신 3개의 강의 모두 듣고 현재도 계속 반복중입니다) persistent data structure 와 FP에 대한 활용, 또는 persistent data structure가 아니더라도 FP에서 대용량 데이터를 다루는 방법에 대한 강의 또는 설명이 반드시 있어야 될 것 같습니다. 이야기가 약간 벗어난것 같은데...질문의 요점은 - FP로 대용량 데이터 핸들링시에 어떻게 처리를 해야하는것이 효율적인지에 대한 질문입니다.  끝으로 좋은 강의 감사합니다

3
iternity 프로필

fxsql 강의는 안열리나요? iternity 7달 전
강사님 깃헙에서 코드를 보다가 QUERY ` SELECT * FROM table1 WHERE table2_id IN ( SELECT id FROM table2 WHERE type = ${type} ORDER BY id DESC LIMIT ${limit} ) `; 이런식으로 쿼리를 날리는 걸 봤는데요.  함수의 문법이 아닌데 어떻게 함수처럼 쿼리가 보내지나요? 코드를 보고있는데도 잘 모르겠네요. 함수형 sql 강의도 열렸으면 좋겠어요

2
castinglife 프로필

인라인 그리드 셀 편집 기능구현 문의 드립니다. castinglife 8달 전
좋은 강좌 강사드립니다. 다름이 아니라 궁금한 부분이 있어 문의 드립니다. 간단한 ajax를 이용한 그리드 인라인 편집을 구현해 보려고 하고 있습니다. 임의의 레코드의 셀인 td 나 input 을 클릭 값을 변경해 주었을때 클릭된 td 상위 태그인 tr 하단에 저장 버튼 박스를 붙여 셀 값을 업데이트해 주려고 합니다. 혹시 간단한 예시나 팁을 주실수 있을까요?

1
한지훈 프로필

마지막챕터의Images가 90개라고 나오는데요.. 소스를 얻을수 있을까요? 한지훈 8달 전
어디서 얻는지 모르겠습니다 ㅠㅠ..

1
파이 프로필

구조분해 문의 파이 9달 전
L.takeWhile(({cars}) => cars.length == 4) 까지는 이해가 가는데요. L.takeWhile(({cars: {length}}) => length == 4) 여기에서 cars: ['철수', '영희', ...] 과 같이 배열이 value에 해당하는데, 저 배열부분을 {length}로 구조분해가 되는게 이해가 안 갑니다.

1
vanila 프로필

user.age >= 30에 관하여.. vanila 2019.10.30
안녕하세요, 오랜만에 다시 강의를 듣기 시작했는데.. _.reduce((total, user) => { if(user.age >= 30) return total; return total + user.age; }, 0, users) 부분에서 if(user.age >= 30) 이라면 35, 와 34 를 리턴하여 값이 69가 아닌 왜 77이 나오는지 궁금합니다..

1
blgf6190 프로필

fxjs 슬랙 채널에 초대 받고 싶습니다. blgf6190 2019.09.27
초대해주시면 감사하겠습니다.

1
지식공유자 되기
많은 사람들에게 배움의 기회를 주고,
경제적 보상을 받아보세요.
지식공유참여
기업 교육을 위한 인프런
“인프런 비즈니스” 를 통해 모든 팀원이 인프런의 강의들을
자유롭게 학습하는 환경을 제공하세요.
인프런 비즈니스