학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문 전에 다음을 꼭 확인해주세요. 1. 강의 내용과 관련된 질문을 남겨주세요. 2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요. (자주 하는 질문 링크: https://bit.ly/3fX6ygx) 3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요. (질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG) 질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요. ========================================= [질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예/아니오) 예 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오) 예 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오) 예 [질문 내용] 15분 35초 즈음에 500개 단위로 쪼개는 경우: 2개의 분할과 결합이 필요. 한 스레드당 2개의 작업 처리(스레드 최대 2개 사용 가능) 이라고 하셨는데 이 경우도 한 스레드당 1개의 작업 처리가 되어야 하는거 아닌가요?
13 섹션 병렬 스트림을 퀵하게 필요하여 고급1탄( 김영한의 실전 자바 - 고급 1편, 멀티스레드와 동시성) 어느 섹션을 순차적으로 보아야 할까요? 물론 유기성으로 섹션1부터 모두 보면 좋겠지만 당장 써먹어야 하여 진도를 나갈 수 있는 수준의 섹션만 우선 보고 적용후 추후 다시 보려 합니다
안녕하세요 31. 히든클래스와 성능저하모드 강의를 듣고 질문남깁니다. 해당 강의를 react에 적용해보고 있습니다. 기존에는 useState를 사용해서 상태관리를할때 object와 Map은 수정 삭제시 대부분의 경우 불변성을 지키며 setState를 하고 있었습니다. 매번 Map과 object를 재생성할때 Map이 좀더 메모리를 많이 차지한다고 들어서 비번한 수정/삭제가 일어날때는 Map대신 object를 사용해서 상태관리를 하고 있었는데 Map 강의듣고나니 일반적인 수정삭제일때는 Map이 좋은걸로 이해했는데 불변성을 지켜야할 때는 기존에 제가 가지고 있던 생각이 맞는지 의문이 생겼습니다. 불변성을 반드시 지켜야하는건 아니지만 그래도 지켜야 하다 가정하고 수정삭제가 1초에 1번정도 난다고 해도 Map이 유리한가요?
Kotlin 2.3버전에서 달라진 점을 하나 더 말씀드릴려고 합니다. 기존 KClass.createType() 은 제네릭 인자(Arguments)를 명시적으로 전달해야 하는 등 사용이 번거로웠습니다. 구 방식: List::class.createType(arguments = listOf(KTypeProjection.invariant(String::class.createType()))) 신 방식 (권장): typeOf<List<String>>() import kotlin.reflect.KType import kotlin.reflect.typeOf // 1. 단순 타입 val intType: KType = typeOf<Int>() // 2. 제네릭 타입 (중첩 제네릭 가능) val listType: KType = typeOf<List<String>>() val mapType: KType = typeOf<Map<Int, List<String>>>() // 3. 널러블 타입 val nullableType: KType = typeOf<String?>() 혹시나 안되시는 분들은 참고하면 좋을 것 같아요!
Kotlin에서 Java의 함수형 인터페이스(SAM Interface)를 사용할 때, 이전 버전과 2.0 이후 버전에서 동작이 달라진 부분을 발견해서 공유합니다. @FunctionalInterface public interface StringFilter { boolean filter(String s); } 위와 같은 함수형 인터페이스가 있다고 하면은 Kotlin 1.x (구 컴파일러) 에서는 다음과 같이 SAM 생성자를 명시적으로 사용해야만 했습니다. val filter = StringFilter { s -> s.startsWith("A") } Kotlin 2.0+ (K2 컴파일러) 에서는 아래와 같은 방식이 정상 동작 됩니다. val filter: StringFilter = { s -> s.startsWith("A") } 왜 바뀌었는지 찾아보니 Kotlin 2.0에서 정식 도입된 K2 컴파일러는 프론트엔드를 완전히 새로 작성하면서, 타입 추론(Type Inference)과 호출 해석(Call Resolution) 시스템이 크게 개선되었습니다. K2 컴파일러 마이그레이션 가이드에서는 이를 다음과 같이 설명합니다. "Improved call resolution and type inference." The compiler behaves more consistently and understands your code better. 구체적으로 K2 컴파일러는 기대 타입(Expected Type)이 Java SAM 인터페이스인 모든 위치에서 람다의 암시적 SAM 변환을 지원하도록 확장되었습니다. 이전에는 SAM 변환이 함수 인자 전달 등 제한된 위치에서만 적용됐지만, K2에서는 변수 대입을 포함한 더 넓은 범위에서 일관되게 동작합니다. 실습하다가 너무 잘 되어서 한번 찾아본 결과를 한번 정리해서 드립니다! https://kotlinlang.org/docs/k2-compiler-migration-guide.html https://kotlinlang.org/docs/whatsnew20.html https://kotlinlang.org/docs/fun-interfaces.html https://kotlinlang.org/docs/compatibility-guide-20.html
========================================= [질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예/아니오) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오) [질문 내용] 안녕하세요 스트림 강의를 보다가 질문 드립니다 웹 어플리케이션 기준으로 스트림은 보통 데이터를 처리하는데 쓰일 것 같은데요 많은양의 데이터라면 보통 디비단에서 최대한 필터링하고 걸러서 가져오는게 네트워크호출랴도 그렇고 이점이 많을것 같은데 그럼 스트림은 보통 언제쓰이나요? 데이터를 필터링하고 정렬하고 가공하는건 디비단에서 해서 가져오는게 더 효율이 좋다 했을 때 스트림으로 가공하는 데이터 수준은 디비단에서 다 할 수 있을 것 같아서요 같은 데이터를 가공하단 는게 필요하다고 해도 기존 sql 재사용 하고 스트림으로 재가공 하는것보다는 새로 sql문 날려서 가져오는게 더 낫지 않나요? 보통 웹 어플리케이션에서 어떤 상황에 쓰이는지 궁금합니다!
안녕하세요. 강사님. 좋은 강의 잘 듣고 있습니다. 감사합니다. 강의 30분쯤 double 자료형(실수)에 대한 사칙연산을 했을 때 제가 예상한 값은 4.0, 5.0 처럼 실수 형태로 표현이 되어야 한다고 생각하는데요. 정확한 결괏값은 제가 예상한대로 실수 형태로 출력 되는 게 맞는지 궁금합니다. <DartPad 실행> <안드로이드 스튜디오 실행> DartPad에서 이런 차이가 발생하는 원인은 결과 출력 시 자료형을 double에서 int로 형변환해서 출력한다고 생각하면 맞을까요?
윈도우10 환경에서 테스트 중입니다. 파일을 다운로드 받아서 PowerShell에서 패키지를 설치하고 명령어를 실행했지만, rune Server 관련 에러가 나오는데, 무엇이 문제인 걸까요? PS C:\dev\study\multi-paradigm-programming-main> pnpm -F lecture dev > lecture@1.0.0 dev C:\dev\study\multi-paradigm-programming-main\apps\lecture > pnpm rune dev ▲ Rune Server v1.0.24 ⨯ Error [ERR_UNSUPPORTED_ESM_URL_SCHEME]: Only URLs with a scheme in: file, data, and node are supported by the default ESM loader. On Windows, absolute paths must be valid file:// URLs. Received protocol 'c:' at throwIfUnsupportedURLScheme (node:internal/modules/esm/load:187:11) at defaultLoad (node:internal/modules/esm/load:82:3) at ModuleLoader.load (node:internal/modules/esm/loader:815:12) at ModuleLoader.loadAndTranslate (node:internal/modules/esm/loader:594:31) at #createModuleJob (node:internal/modules/esm/loader:624:36) at #getJobFromResolveResult (node:internal/modules/esm/loader:343:34) at ModuleLoader.getModuleJobForImport (node:internal/modules/esm/loader:311:41) at process.processTicksAndRejections (node:internal/process/task_queues:105:5) at async onImport.tracePromise.__proto__ (node:internal/modules/esm/loader:664:25) { code: 'ERR_UNSUPPORTED_ESM_URL_SCHEME' }
안녕하세요, 강의 잘 듣고 있습니다! 1강의 14. 힙과 스택의 비교 강의 중 궁금한 점이 생겨 문의 드렸습니다. 자바 스크립트는 컴파일 타임에 변수명을 저장하고, 런타임에 코드 순서대로 값을 할당한다고 알고 있습니다. 그렇다면 자바스크립트에서는 할당이 런타임에서 이루어지고 그에 따라 원시데이터의 크기도 런타임 시점에서 정해지는 것 아닌가요?
[질문 템플릿] 1. 강의 내용과 관련된 질문인가요? 네 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? 네 3. 질문 잘하기 메뉴얼을 읽어보셨나요? 네 [질문 내용] 안녕하세요. 영한님 항상 강의 잘 듣고 있습니다. 듣다가 궁금한 점이 생겨서 질문 남깁니다. 람다는 SAM에만 할당할 수 있다고 하셨는데 그 이유가 매서드가 여러개면 어디에 할당할 수 있을 지 알 수 없다고 말씀 하신 것까지는 이해했습니다. 이미 테스트를 통해 안되는 것은 확인했지만 인터페이스에 파라미터의 구성이나 갯수가 다른 함수가 정의될 경우에도 내부적으로 왜 안되는 지 궁금합니다..! public interface NotSamInterface { void run(); void go(int a); } 이런 경우에는 람다식도 달라지게 될텐데 왜 매핑이 어려운 걸까요..? 감사합니다.
float test = 123.4567; cout << setprecision(20); 가 에러나는데 setprecision가 <iomanip>에 정의된 입출력 조정자라는 것이라고 합니다. 그렇다면 #include <iomanip>라는 명령어를 추가해야 동작하는데 강의 영상에서는 해당 명령어 없이 코드가 잘 작동합니다. 이에 관하여 혹시 제가 모르는 어떤 방법이 있는지 여쭤보고 싶습니다.