44,000원
다른 수강생들이 자주 물어보는 질문이 궁금하신가요?
- 미해결함수형 프로그래밍과 JavaScript ES6+ 응용편
iter의 개별 elements 에 data 를 삽입 또는 변형해서 삽입하는 경우엔 map 으로 제어를 하는게 맞을까요?
const data = [ {"name":"foo"}, {"name":"bar"} ] 와 같은 data 가 있다고 할 경우 name 의 길이를 새로운 attr 로 넣고 싶다고 할 경우({"nane":"foo", "length":3}) 이를 제어하기 위해서 map(calc_name_length) 처럼 사용해주면 될까요? data 를 filter 하거나 변형(map) 하는 case 는 많이 봤는데 data 를 추가하는 case 는 어떻게 대응해야하는지 확인하고자 질문 올립니다!
- 해결됨함수형 프로그래밍과 JavaScript ES6+ 응용편
FP, 실무에서의 모습은 대략적으로 어떤 모습일까요?
안녕하세요! 강의 너무 재밌게 잘 보고 있습니다. 현재 저는 python - backend 개발자로 일을 하고 있고 강의를 들으면서 이를 어떻게 실무에 적용할지 고민하고 있습니다. 다만 구글링 및 기타 예제를 보더라도 FP 가 적용된 real world example 은 잘 없더라구요... 특히 여태 객체지향 적으로 사고하고 명령형으로 사고하다보니 더더욱 실무코드는 어떤 모습일지 상상이 안가긴 합니다. 다만 오로지 FP 만을 할 수는 없고 적절히 섞어야 한다라고 하던데 그렇다면 아래처럼 제가 생각하는게 맞을까요? - UserService().validate_block_user() def validate_block_user(): users = get_data_from_database() return pipe(users, is_block, get_user_id) is_block 은 filter 역할을, get_user_id 는 map 의 역할을 하는 sample code 입니다. 위 처럼 특정 객체의 행동이 존재하고 해당 행동은 FP 로 구현하는, 이런 형태가... 맞게 사용하는것인지? 궁금합니다.읽어주셔서 감사합니다 : )
- 미해결함수형 프로그래밍과 JavaScript ES6+ 응용편
함수의 구분자는 어떤것이 있을까요?
함수의 구분자라고 했을 때 어떤 것을 말하는지 감이 조금 안잡혀서요. 구체적으로 어떤 것인지 알려주시면 감사하겠습니다!
- 미해결함수형 프로그래밍과 JavaScript ES6+ 응용편
[추가질문] 자료구조 2개 합치기
제가 질문을 드릴 때 설명이 부족했나 봅니다. 입력과 출력은 아래와 같습니다. 기존에는 2중 for문을 함수형으로 변경을 하고 싶습니다. // 입력 1 (로컬 디파인값) { "free1": { "displayName": "자유게시판", "description": " 참여공간 자유게시판" }, "pds1": { "displayName": "자료실", "description": "정보자료실 (디지털자료실 제외)" }, "review1": { "displayName": "유저사용기", "description": "유저분들을 위해 리뷰 · 활용비법을 게시" }, "review2": { "displayName": "자유사용기", "description": "사용자 팁/사용기 아무거나 질문답변 · 토론의 장" } } // 입력 2 (서버 호출 결과) { "code": 200, "message": "ok", "data": [{ "groupId": "1", "groupName": "community", "groupTitle": "커뮤니티", "categories": [{ "no": "free1", "displayName": "", "description": "", "attributeId": "/l/free", "categorySkin": "lnbboard" }, { "no": "pds1", "displayName": "", "description": "", "attributeId": "/l/pds", "categorySkin": "pds" }] }, { "groupId": "8", "groupName": "information", "groupTitle": "인포메이션", "categories": [{ "no": "review1", "displayName": "", "description": "", "attributeId": "/l/user_review", "categorySkin": "user_review" }, { "no": "review2", "displayName": "", "description": "", "attributeId": "/l/common_review", "categorySkin": "common_review" }] }] } // 출력 (displayName와 description값을 로컬값에서 찾아와서 서버 결과값에 적용합니다.) [{ "groupId": "1", "groupName": "community", "groupTitle": "커뮤니티", "categories": [{ "no": "free1", "displayName": "자유게시판", "description": "참여공간 자유게시판", "attributeId": "/l/free", "categorySkin": "lnbboard" }, { "no": "pds1", "displayName": "자료실", "description": "정보자료실 (디지털자료실 제외)", "attributeId": "/l/pds", "categorySkin": "pds" }] }, { "groupId": "8", "groupName": "information", "groupTitle": "인포메이션", "categories": [{ "no": "review1", "displayName": "유저사용기", "description": "유저분들을 위해 리뷰 · 활용비법을 게시", "attributeId": "/l/user_review", "categorySkin": "user_review" }, { "no": "review2", "displayName": "자유사용기", "description": "사용자 팁/사용기 아무거나 질문답변 · 토론의 장", "attributeId": "/l/common_review", "categorySkin": "common_review" }] }]
- 미해결함수형 프로그래밍과 JavaScript ES6+ 응용편
감사합니다.
감사합니다.
- 해결됨함수형 프로그래밍과 JavaScript ES6+ 응용편
외부에 영향을 끼치는 것에 대한 질문이 있습니다!
```jsx const coll = new Collection(); coll.add(new Model({ id: 1, name: 'AA' })); coll.add(new Model({ id: 3, name: 'BB' })); coll.add(new Model({ id: 5, name: 'CC' })); console.log(coll.at(2).get('name')); console.log(coll.at(1).get('id')); _.go( coll, L.map((m) => m.set('name', m.get('name').toLowerCase())), _.each(console.log) ); ``` 마지막 예제에서 go() 안에서 coll에 대해서 값을 직접 수정해 주는 부분이 있는데 예제라서 혹은 연산을 위해 생성된 임시 데이터라서 함수 내부에서 처리해도 되는 건가요? 그런 경우 외부에서 선언된 coll을 직접 수정해도 되는 건지 궁금합니다! --- 강의 너무 재밌게 잘 듣고있습니다! 좋은 강의 찍어주셔서 감사합니다 :)
- 미해결함수형 프로그래밍과 JavaScript ES6+ 응용편
pick 이렇게 만드는건 어떤가요?
const obj2 = { a: 1, b: 2, c: 3, d: 4, e: 5 }; const pick = (arr, obj) => _.go( obj2, L.entries, L.filter(([k, v]) => arr.includes(k)), L.map(([k, v]) => [k, v]), object ) console.log(pick(['b', 'c', 'z'], obj2));.
- 미해결함수형 프로그래밍과 JavaScript ES6+ 응용편
img.onload
L.map(img => new Promise(resolve => { img.onload = () => resolve(img); img.src = img.getAttribute('lazy-src'); } 위 코드에서 promise를 리턴하는 이유는 이미지가 로드됐을때 img를 보내주고 싶기 떄문에 하는 것이 맞나요? 그리고 img.src가 onload보다 밑에 위치하는데 이는 onload는 이벤트를 등록하는 것이고 src가 들어갔을때 onload이벤트가 실행되면서 이때 resolve가 img를 담아 리턴한다고 보면 되나요?
- 미해결함수형 프로그래밍과 JavaScript ES6+ 응용편
구조분해 질문드립니다!
구조분해 질문드립니다! _.map(([k,v]) => ({ [k] : v })), 이 코드에서 질문이 있는데요 k는 []를 통해서 구조분해된 값을 그대로 가져오지만 v는 []없이도 가져오는 이유는 뭘까요??
- 해결됨함수형 프로그래밍과 JavaScript ES6+ 응용편
if 질문 부탁드립니다
if 하나는 filter 라고 생각하면 되는데 혹시 else if, else가 있는 for문에서는 어떻게 작성해야 하나요? 아니면 코드 구조를 바꿔야 하나요? 그리고 두 배열을 다룰 때는 어떻게 해야 하나요? const arr1 = ["kim", "lee", "hong"]; const arr2 = [12, 22, 39]; for(let i = 0; i < arr1.length; i++) { let person = `${arr1[i]} : ${arr2[i]}`; console.log(person); }
- 미해결함수형 프로그래밍과 JavaScript ES6+ 응용편
함수형 추가 강의
1편 강의 수강중에, 재밌어서 미리 글 남겨요! 예제 코드 말고 실제 실무에서 함수형 중심으로 짜면 전체적인 구조나 코드가 어떨지 궁금해서요. 토이 프로젝트 제작을 함수형으로 진행하시는 강의는 계획에 없으신가요?
- 미해결함수형 프로그래밍과 JavaScript ES6+ 응용편
L.takeWhile과 L.filter의 차이에 대해 제가 제대로 이해했는지 알고 싶어서 질문드립니다ㅎㅎ
혹시, L.takeWhile과 L.filter의 차이가 L.takeWhile의 경우, 조건에 맞지 않는 값을 발견한 순간까지만 순회하고 그때까지의 값만 뽑아내고, L.filter의 경우 전부 순회하여 특정 조건에 맞는 값만 뽑아내는 게 맞나요?아래 코드의 경우, L.takeWhile 대신 L.filter를 사용해도 똑같은 결과가 나오는 것 같아서요ㅎㅎ우연히 같은 결과가 나오는건가용? const track = [ { cars: ["철수", "영희", "철희", "영수"] }, { cars: ["하든", "커리", "듀란트", "탐슨"] }, { cars: ["폴", "어빙", "릴라드", "맥컬럼"] }, { cars: ["스파이더맨", "아이언맨"] }, { cars: [] }, ]; _.go( L.range(Infinity), L.map((i) => track[i]), L.takeWhile(({ car: { length: l } }) => l == 4), _.each(console.log) );
- 미해결함수형 프로그래밍과 JavaScript ES6+ 응용편
"프론트엔드에서 함수형/이터러블/동시성 프로그래밍" 강의 시청 중 currying과 관련해서 궁금한 점이 있어 질문 드립니다
"프론트엔드에서 함수형/이터러블/동시성 프로그래밍" 강의를 쭉 보다보면, 거의 많은 함수에 currying을 적용하시는데, 혹시 currying을 적용하시는 이유가 함수 합성할 때, 앞의 함수에 전달받은 매개변수를 생략할 수 있거나 표현력이 좀더 좋아지기 때문에 적용하시는 건가용? 거의 대부분의 함수에 currying을 적용하시는 이유에 대해 궁금합니다. 추가로, currying을 적용했을 때, 매개변수가 생략할 수 있어서 좋은 점도 있지만, 나중에 디버깅시 매개변수가 생략되는것보다 명시적으로 매개변수를 해주는 게 좀더 좋을 것 같은데, 유인동님 의견은 어떠신가요? 제가 아직 함수형 프로그래밍에 익숙하지 않아, 이런부분에 어색한데, 함수형 프로그래밍에 대해 익숙해지면, 이런 고민을 하지 않게 될까요??
- 미해결함수형 프로그래밍과 JavaScript ES6+ 응용편
"안전한 합성에 대해" 강의 관련해서 질문드립니다
먼저, 덕분에 함수형 프로그래밍에 조금씩 친숙해지고 있어서 너무 감사합니다. 다름 아니라, "안전한 합성에 대해" 강의 관련해서 궁금한 점이 있어서 질문드립니다~ "안전한 합성에 대해" 강의에서 에러가 터지지 않게 배열로 만들어 안전하게 합성한다고 하셨고 예전 feConf에서 유인동님의 "ES6+ 비동기 프로그래밍과 실전 에러 핸들링" 영상에서는 에러를 뿜어내는게 좋다고 말씀하셨는데, 에러를 뿜는게 좋으면, map을 이용해서 만드는 의미가 어떤게 있나 라는 궁금증이 들더라구요. 어떤 맥락에서는 에러를 뿜는게 좋고, 어떤 맥락에서는 map을 이용해서 에러를 뿜지 않는게 좋은지 궁금합니다.
- 미해결함수형 프로그래밍과 JavaScript ES6+ 응용편
api 요청 상태
pipe와 같은 함수 합성으로 프로그램을 짤때, api 요청중, 실패(에러) 핸들링은 대략적으로 어떤 식으로 하는지 궁금합니다. (로딩중 ui 표시 등)
- 미해결함수형 프로그래밍과 JavaScript ES6+ 응용편
둘다 마프 오픈소스인거 같은데 fxjs와Partial.js 의 차이가 뭔가요?
둘다 마프 오픈소스인거 같은데 fxjs와Partial.js 의 차이가 뭔가요?
- 미해결함수형 프로그래밍과 JavaScript ES6+ 응용편
fxsql 사용 중 질문이 있습니다.
안녕하세요. 강의중 소개된 fxsql과 관련하여 질문이 있어서 남기게 되었습니다. - fxsql의 ASSOCIATE 를 사용시 서로다른 테이블들을 각각 select하여 데이터를 가져오는것으로 확인하였는데 join을 사용하여 쿼리를 날리는 방법은 없는것일까요? - fxsql로 구성된 서버를 local, staging, production과 같은 서로다른 환경으로 분리하여 사용 시 데이터베이스 테이블이나 필드같은 부분은 어떤식으로 동기화하여 사용하는것이 best practice일까요? 좋은강의 정말감사드리며 다음 강의가나오길 기대하고 있습니다!
- 미해결함수형 프로그래밍과 JavaScript ES6+ 응용편
저술하신 '함수형 프로그래밍' 책 관련 질문입니다.
아무래도 책을 보면서 복습하는 것이 효율적이라 생각되어서 책 구매를 생각하고 있습니다만, 서점에서 확인하니 1쇄 발행 시점이 2017년이더라구요. 혹시 2쇄에는 인프런의 두 강의의 내용을 포괄하고 있나요?
- 미해결함수형 프로그래밍과 JavaScript ES6+ 응용편
질문드립니다
const b = a * a 는 어떻게 가능한가요? const 자체가 객체안에서 값을 변경하는 건 문제가 없는 것은 아닌데 const b 처럼 한번 const로 b를 할당 했는데 for 문을 돌고 나서 다시 const b = a * a 처럼 b에다가 값을 바꾸는 행위를 하면 const b가 has already been declared라는 에러 메시지가 나올꺼 같은데 문제 없이 통과되는 이유가 뭔가요??
- 미해결함수형 프로그래밍과 JavaScript ES6+ 응용편
퍼포먼스/가독성
초보적인 질문입니다 ㅠㅠ 1.지연 평가/즉시 평가 예제에서 L.map과 L.filter그리고 reduce를 조합해서 써주셨는데요 이전 강의부터 궁금했던 건데 지연 평가를 한다고 해도, reduce의 경우 takeAll처럼 결국 이터러블/이터레이터를 모두 평가를 해야되기 때문에 지연 평가나 즉시 평가나 시간복잡도/퍼포먼스적인 부분에서 차이가 없는 것이 아닌가 생각되는데 이것이 맞나요? 제 생각에 지연 평가는 take(작은 수)로 이터러블의 모든 요소를 순회/평가하지 않아도 되는 경우에만 의미가 있는 것 같은데, 뭔가 놓친 부분이 있는 것은 아닌지 궁금합니다 2.reduce only / reduce + map + filter 강의에서 말씀해주신 부분에서만 추측해보자면, 함수 합성으로 하시는 이유가 추상화/재사용성/가독성 등의 이유가 주된 이유인 것 같습니다. 그런데, map, filter, reduce의 조합이면 일단 순회를 3차례 돌아야 하는 것이고, reduce만 쓰면 순회는 1차례에서 끝날 텐데, 혹시 퍼포먼스적인 부분에서는 차이가 없나요? 1번 질문이랑 연결해서 (이터러블의 모든 요소를 순회해야 한다면) 지연 평가를 한다고 해도 평가를 그때 그때 필요한 시점에 하는 것일 뿐, 평가를 덜해도 되는 것이 아니기 때문에 제 생각에는 최종 평가까지 걸리는 시간이 더 들 것 같은데... (console.time을 찍어봤지만 간단한 예제라서 그런지 실행 시간에는 별 차이를 느끼지 못했습니다...)