묻고 답해요
131만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
미해결[코드팩토리] [입문] Dart 언어 4시간만에 완전정복
쿠폰발급이 안되네요 ;;
별 5개 평점 남기고9363-87b86b17809c이 코드로 할인 받으려는데 되지않네요;;디스코드도 안됩니다
-
미해결함수형 프로그래밍과 JavaScript ES6+
take 함수의 성능적면에서의 이점
비동기가 없을 시에 불필요한 프로미스 객체를 생성하지 않고 동기일 땐 배열을 프로미스가 있을 때만 프로미스를 반환하기 때문에 async await를 사용하는거 보다 성능면에서 우위를 가질 수 있는건가요?async를 사용하면 무조건 동적인 값이여도 promise를 반환하기 때문에 성능에 좋지 않다라고 이해했는데 맞는건가요?
-
미해결함수형 프로그래밍과 JavaScript ES6+ 응용편
fx.js
fx.js를 불러다가 쓰고 싶은데 영상처럼 dist 파일도 없고 그<script src="https://unpkg.com/fxjs/dist/fx.js"></script> 를 해봐도 안되네요ㅠ 어떻게 해야지 불러올 수 있나요
-
해결됨자바스크립트로 알아보는 함수형 프로그래밍 (ES5)
_go함수 _pipe.apply(null, fns) 사용하는 이유
질문1. go 함수에서 apply의 쓰임 제가 알고 있는 apply는 this바인딩 때문에 사용하는것으로 알고 있습니다. 여기서는 array-like를 array로 바꿔주는 것으로 쓰이는것 같아요?? 물어보고싶은것은 apply의 기능 1. this바인딩 때문에 사용 호출함수에서 array-like를 array로 기능하도록해준다이렇게 두 가지 기능을 한다 라고 정의를 하면 될까요??
-
해결됨코틀린 고급편
by lazy 블럭 안에서 suspend 함수의 결과값을 받는게 가능한가요?
강의에서 Thread.sleep 한것 처럼 runblocking으로 Thread를 blocking 해야만 값을 기다렸다가 받을 수 있는지 아니면CoroutineScope의 async나 launch로도 가능한지궁금합니다 ㅠ
-
미해결[코드팩토리] [입문] Dart 언어 4시간만에 완전정복
밑에 질문 사진첨부해서 다시 질문드려요~
아이돌로 설명할때 ...클래스 안에서 함수 넣을때 처음엔 앞에 void를 넣으셨는데 뒤에 강의에서는 TimesTwo클래스에서는 void 를 안쓰고 바로 int 를 쓰시더라구요 void는 에러가 저렇게 나네요 왜 그런거죠...?
-
미해결[코드팩토리] [입문] Dart 언어 4시간만에 완전정복
클래스안에서 함수 넣을때 요
아이돌로 설명할때 ...클래스 안에서 함수 넣을때 처음엔 앞에 void를 넣으셨는데 뒤에 강의에서는 TimesTwo클래스에서는 void 를 안쓰고 바로 int 를 쓰시더라구요 void는 에러가 저렇게 나네요 왜 그런거죠...?
-
미해결Kevin의 알기 쉬운 RxJava 1부
Single과 관련해 여쭤보고 싶은 부분이 있습니다!
안녕하세요 선생님! 틈틈이 강의 잘 듣고 있습니다.강의 수강 도중, 궁금한 점이 있어 질문드립니다! Single은 전통적인 client - server 방식의 요청을 처리하는 데 사용한다고 말씀해주셨습니다.실제로 회사에서 single.blocking() 이런 방식으로 처리하는 코드를 본 적이 있는데, single을 해당 의도처럼 사용할 경우, 동기처리 방식에 비해 얻는 이점이 있을까요??제가 아직 생각하기로는 코드는 리액티브이지만 비동기 방식으로 처리하는 것이 아닌 거 같아서요! 또한 강의 영상 3분 정도에서 보여주신 SingleCreateExample 코드에서, 발행자인 Single의 create 메소드의 파라미터인 SingleOnSubscribe<T>가 구현하고 있는 subscribe가 아래 구독자가 구독하는 subscribe() 와 같은 함수가 맞을까요?코드적으로는 둘이 연관이 있어 보여서, SingleObserver<T>와 SingleEmitter<T> 사이의 같은 부모가 있는지 확인 해보았는데 그것두 아니더라구요 ㅠ... 둘이 아예 다른 메소드 인가요??4. 코드를 살펴보다가 RxJavaHooks 라는 유틸성 클래스를 발견하게 되었는데, 함수형 인터페이스들이 막 정의되어 있는 것은 알겠는데 어떻게 해석해야 할 지가 감이 안 잡히더라구요 ㅠㅠ... 혹시 코드를 해석하는데 조언을 주실 수 잇으실까요?..항상 깊게 답변 해주셔서 감사드립니다 :)
-
미해결코틀린 고급편
DSL 만들기
안녕하세요 강사님. 내용을 몇번 더 봐야 더 잘 알겠지만막히는 부분이 있어서 질문올립니다. 18강 내용중에서 service(name = "db") { image { "mysql" } env("USER").`is`("myuser") env("PASSWORD").`is`("mypassword") port(host = 9999, container = 3306)} env("USER").`is`("myuser") 이 DSL은 어떻게 만들수 있을지 감이 오지 않습니다. ㅜㅜ
-
미해결코틀린 고급편
Sequence vs Stream
안녕하세요 Sequence와 Stream의 차이점에 대해서 질문드립니다.Sequence가 지연연산의 이점을 통해서 대용량 처리를 해야할 때 이점을 줄 수 있다고 이해를 했고,Java의Stream과 유사하다는 생각이 들었습니다. 찾아보니, java8 이전의 Kotlin의 경우 Stream을 사용할 수 없으니, Sequence를 사용했었다 라는 글을 발견했습니다.위 설명이 맞을까요?혹시 맞다면 어떠한 기준으로 둘중에서 선택을 하는게 좋을까요?
-
미해결[코드팩토리] [입문] Dart 언어 4시간만에 완전정복
전 왜 이상태에서 마지막에 Status
enum Status{ approved,//승인 pending,//대기 rejectde,//거절 }void main() { Status status = Status. 다음에 점을 찍어도 선생님 화면에 나오는 자동완성되는 단어들이 안나올까요? 다른 부분에서도 전 선생님같이 자동완성되는 단어들이 안나오네요...
-
미해결함수형 프로그래밍과 JavaScript ES6+ 응용편
fxjs 라이브러리 takeL 관련하여 질문드립니다.
안녕하세요기본편 부터 응용편 까지 천천히 학습하고 있습니다.응용편 부터는 라이브러리를 가져와서 강의를 진행하시는데 강의 수강 중 궁금한 사항이 있어 질문드립니다. github에 올려주신 오픈소스를 참조하는데 takeL 부분이 이해가 되지 않아 문의드립니다. L.take = curry(function* (l, iter) { let prev = null; iter = iter[Symbol.iterator](); for (const a of iter) { if (a instanceof Promise) { yield (prev = a.then((a) => (--l > -1 ? a : Promise.reject(nop)))); prev = prev.catch(noop); } else { yield (--l, a); } if (!l) break; } }); L.take를 이렇게 표현하면 앞선 Promise가 resolve 되길 기다리는 Promise를 그대로 이어가면서 전달 가능한데 yield (prev = (prev || Promise.resolve()) .then((_) => a) .then((a) => (--l > -1 ? a : Promise.reject(nop)))); 이렇게 표현하신 이유가 어떤이유인지 알고싶습니다. 또 제가 작성한 수정한 부분에 문제가 있다면 알려주시면 감사하겠습니다. 또 궁금한 내용이 오픈소스에 for of 아래 a.catch(noop); Promise를 catch 하는 코드가 추가되어 있는데 이 부분 역시도 어떤의도로 구현한 것인지 궁금합니다. 수업내용에서는 비동기/동시성을 통해 한번에 Promise 콜백이 병렬적으로 평가되면서 배열에 담기는 시점에 콜스택에서 에러가 출력되지 않기 위해 사용하는 트릭으로 알고있는데요, L.take 에서 a.catch가 실행되는 시점에는 Promise가 reject로 풀려서 전달될 수 없을것 같은데 이 부분도 설명부탁드립니다.
-
해결됨Kevin의 알기 쉬운 RxJava 1부
cold/hot publisher 예제 코드와 관련해 질문 드립니다.
안녕하세요! 강의 잘 듣고 있습니다. 본격적인 첫 강의부터 궁금한 점들이 많아 질문 드리게 되었습니다 ㅠ.. 저는 해당 강의를 듣게 된 사유가 웹플럭스 같이 비동기 적으로 처리하는 것에 관심이 많아서 자연스럽게 기본부터 다지고자 해당 강의를 수강하게 되었는데요. 그래서 RxJava 코드가 비동기를 위한 코드라는 인식이 있습니다. 그런데 해당 강의 마지막 부분에 cold/hot publisher 예제 코드에서 콘솔에 데이터가 출려되는 형태를 보면 구독자1이 데이터를 모두 소비하고 구독자2가 그 다음으로 데이터를 소비하는, 동기적으로 처리하는 것처럼 보이더라구요. 혹시 제 생각처럼 동기적으로 처리되고 있는 것이 맞을까요? 그렇다면 사유가 궁금합니다 ㅠRxJava는 사실 단순 pub/sub 형태의 인터페이스를 구현한 구현체에 불과해서 RxJava를 이용해 소스코드를 작성하여도 이걸 비동기적으로 처리하기 위해서는 더 아랫단의 도움을 받아야 하는건지그렇다면 이 코드를 실행하는 was의 영향을 받는건지만약 그냥 java로 실행한다면 비동기적으로 실행할 수 없는 건지아니면 RxJava는 동기적 비동기적으로 소스코드를 작성할 수 있는데, 그냥 현재 예제 코드가 동기적으로 코드를 작성한 것인지아니면 메인 스레드가 구독자1과 2의 역할을 동시에 하고 있기 때문에 순차처리가 되는것인지 또한 비동기에 대한 정의에 대해 여쭤보고 싶습니다.비동기 처리라는 것을 스레드의 동작 방식을 제어하는 것이라고 이해하면 될까요??비동기 처리를 구현하기 위해서는 스레드 제어만 하면 되니까 OS단의 도움을 받지 않고 어플리케이션 단에서 구현을 할 수 있다고 이해해도 괜찮을까요??답변해주시면 감사하겠습니다!
-
미해결자바스크립트로 알아보는 함수형 프로그래밍 (ES5)
커리큘럼 관련 질문 입니다.
ES6 심화강의를 수강중인데 ES6 기본편 대신에 이 강의를 듣고 ES6심화 강의를 수강해도 될까요?? 바로 듣기에는 이해가 조금 어려워서요
-
해결됨코틀린 고급편
코틀린 indent 코드 스타일 질문입니다.
강사님 영상을 보면 indent가 스페이스 바 두칸으로 되어있는 것 같습니다. 코틀린 공식문서를 봤을 때 4칸으로 되어있는데 같은데2칸으로 쓰시는 이유가 궁금합니다.
-
해결됨코틀린 고급편
non-local return 질문입니다.
fun main() { val numbers = listOf(1, 2, 3, 4, 5) iterate(numbers) { num -> if (num == 3) { return@iterate } println(num) } } fun iterate(numbers: List<Int>, exec: (Int) -> Unit) { for (number in numbers) { exec(number) } } 1 2 4 5 Process finished with exit code 0 람다식 내부에서 return사용이 불가능하다고 하셨는데위 처럼 @iterate 라벨로 명시적으로 선언하면 3만 빠진 수만 리턴하는 것을 볼 수 있었습니다.위 방식으로는 non-local return 문제를 해결했다고 볼 수 없나요? 강의 정말 재밌게 듣고 있습니다! 감사합니다.
-
미해결[코드팩토리] [입문] Dart 언어 4시간만에 완전정복
4강 마지막 yield* -> yield
4강 마지막 끝날 때요//stream 사용 위해 패키지 불러와서 써야 함 import 'dart:async'; void main() { playAllStream().listen((val){ print(val); }); } Stream<int> playAllStream() async* { //yield* 뒤에 따라오는 stream의 값이 다 return 될 때까지 기다린다. yield* calculate(1); yield* calculate(1000); } Stream<int> calculate(int number) async* { for(int i=0; i<5; i++){ yield i * number; //async* 로 await를 쓸 수 있다. await Future.delayed(Duration(seconds: 1)); } } playAllStream() 여기 안에 yield* 를 yield로 바꾸면 결과가001100022000이렇게 나올거라고 하셨거든요. 이론적으로 이해는 됐는데, 코드 실행이 안되어서요.어디서 문제인지 모르겠어요.에러는 아래와 같습니다.Error: A value of type 'Stream<int>' can't be assigned to a variable of type 'int'. - 'Stream' is from 'dart:async'. yield calculate(1);
-
미해결[코드팩토리] [입문] Dart 언어 4시간만에 완전정복
쿠폰 적용 안되는데 혹시 수량이 정해져 있는건가요?
9363-87b86b17809c쿠폰 코드로 적용해봤는데 안되서요 ㅠ
-
미해결Kevin의 알기 쉬운 RxJava 1부
CompletableObserver 클래스의 람다식 표현관련
안녕하세요람다식은 인터페이스안에 구현해야할 메소드가 하나만 있을때 사용 가능한것으로 알고있는데completable.subscribeOn(Schedulers.computation()) .subscribe(new CompletableObserver() { @Override public void onSubscribe(Disposable disposable) { // 아무것도 하지 않음 } @Override public void onComplete() { Logger.log(LogType.ON_COMPLETE); } @Override public void onError(Throwable error) { Logger.log(LogType.ON_ERROR, error); } });여기서 CompletableObserver 는 오버라이드 해야할 메소드가 3개나 있는데 어떤 원리로 completable.subscribeOn(Schedulers.computation()) .subscribe( () -> Logger.log(LogType.ON_COMPLETE), error -> Logger.log(LogType.ON_ERROR, error) );이런식으로 람다표현이 가능한건가요?
-
미해결코틀린 고급편
SynchronizedLazyImpl 함수관련 질문
태현님, 안녕하세요, 강의 잘듣고 있습니다! 9강 11분 35초 부분에서 질문이 있는데요. by Lazy안에 타고 들어가면 SynchronizedLazyImpl 함수가 스레드 세이프해서 위험할 수 있다고 말씀하셨는데 .. 어떤 의미인지 궁금해서 질문 글 올립니다. 시간되실 때 답변 부탁드려요 감사합니다!