inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

묻고 답해요

173만명의 커뮤니티!! 함께 토론해봐요.

2강부터 영상 재생이 안되네요ㅠㅠ

미해결

코틀린 고급편

2강부터 영상 재생이 안되네요ㅠㅠ

  • kotlin
  • 함수형-프로그래밍
  • 객체지향
윤민호 댓글 2 좋아요 0 조회수 193

Coroutine 취소 시점 체크

해결됨

코틀린 코루틴 완전 정복

isActive라는 확장 프로퍼티를 이용해서 일시 중단 시점을 만들지 않고도 확인할 수 있다는 내용은 이해했습니다. 다만 본 강의의 예시에서는 while문을 통해서 계속해서 isActive를 확인해서 취소된 걸 곧바로 알 수 있었지만, 만약 실무에서 coroutine내에 어떤 로직들이 길게 적혀 있다면, 한 줄 한줄 마다 if 문을 통해 isActive를 확인해야 하는 코드가 들어가야 하는 걸까요? 아니면 조금 비효율적인 것을 감안하고 yield 같은 함수를 중간 중간에 넣어두어야 하는 걸까요?

  • android
  • kotlin
  • coroutine
  • kotlinx.coroutines
  • android-coroutine
111sym 댓글 2 좋아요 1 조회수 159

spring web mvc 환경에서 coroutine을 사용해보신 경험이 있으신지 궁금합니다.

해결됨

코틀린 코루틴 완전 정복

안녕하세요 강사님, 강의 잘 들었습니다 개인적으로 코루틴에 관해서 정말 많이 배웠습니다. 모든 걸 다 소화하지는 못했지만, 필요할 때마다 돌아와서 정독하면 충분히 필요한 부분을 얻어갈 수 있다는 생각이 드네요. 좋은 강의 감사드립니다. 몇가지 궁금한 부분이 있어 질문드립니다. 사내에서 사용하는 기술스택이 spring web mvc + JPA + feignClient인데 혹시 이와 유사한 환경에서 코루틴을 적용해보신 경험이 있으실까요? 특히 제가 기대했던 부분은 IO작업에 관해 요청을 보내고 스레드를 점유하지 않음으로써 리소스를 효율적으로 사용하는 것(즉 처리량을 증가시키는 것)을 기대했었는데 아무래도 JPA나 feignClient나 응답이 올때까지 대기하는 구조로 되어 있더라구요ㅠㅠ.. 드라마틱한 성과를 기대하기는 조금 힘들어보이긴하네요 혹시 관련해서 유사한 경험이 있으신지 싶어서 의견을 묻고자 여쭤봅니다. 코루틴을 사용중인 환경에서 rps가 급증하면 어떤식으로 흘러갈지 궁금합니다. 스레드가 고갈될 것 같은데, 자연스럽게 dispatcherIO등의 스레드가 새로 생성되나요? - 그렇다고 하면 메모리가 고갈될 것 같은데, 코루틴을 사용할때는 결과적으로 메모리 기준으로 스케일아웃을 걸어야할지? 등이 궁금하네요.

  • android
  • kotlin
  • coroutine
  • kotlinx.coroutines
  • android-coroutine
김영빈 댓글 2 좋아요 1 조회수 362

트와이스 앱을 만들다가

미해결

[왕초보편] 앱 8개를 만들면서 배우는 안드로이드 코틀린(Android Kotlin)

2 issues were found when checking AAR metadata: 1. Dependency 'androidx.core:core-ktx:1.15.0' requires libraries and applications that depend on it to compile against version 35 or later of the Android APIs. :app is currently compiled against android-34. Also, the maximum recommended compile SDK version for Android Gradle plugin 8.3.0 is 34. Recommended action: Update this project's version of the Android Gradle plugin to one that supports 35, then update this project to use compileSdk of at least 35. Note that updating a library or application's compileSdk (which allows newer APIs to be used) can be done separately from updating targetSdk (which opts the app in to new runtime behavior) and minSdk (which determines which devices the app can be installed on). 2. Dependency 'androidx.core:core:1.15.0' requires libraries and applications that depend on it to compile against version 35 or later of the Android APIs. :app is currently compiled against android-34. Also, the maximum recommended compile SDK version for Android Gradle plugin 8.3.0 is 34. Recommended action: Update this project's version of the Android Gradle plugin to one that supports 35, then update this project to use compileSdk of at least 35. Note that updating a library or application's compileSdk (which allows newer APIs to be used) can be done separately from updating targetSdk (which opts the app in to new runtime behavior) and minSdk (which determines which devices the app can be installed on). 이렇게 떠요 ㅠㅠ

  • android
  • kotlin
  • firebase
백종훈 댓글 2 좋아요 0 조회수 265

네비게이션

해결됨

아이비의 안드로이드 드릴

home_graph.xml의 시작점 app :startDestination ="@id/navigation_home" app :startDestination ="@id/navigation_다른 activity" 이렇게 나눠서 하나는 home activity의 FragmentContainerView 에서 상용하고 다른 하나는 detail activity의 FragmentContainerView에서 사용할 수 있나요?

  • android
  • kotlin
  • jetpack
Daehee Park 댓글 1 좋아요 0 조회수 140

트로트 앱에서 노래 목록 눌렀을때 원하는 사진 나오게 하고싶은데

미해결

[왕초보편] 앱 8개를 만들면서 배우는 안드로이드 코틀린(Android Kotlin)

트로트 리사이클러뷰에 노래 넣는 것 까지는 했는데 그 목록 중 하나를 누르면 원하는 사진 나오게 하고 싶으면 어떤 걸 써야 하는지 혹시 알 수 있을까요?

  • android
  • kotlin
  • firebase
승원 댓글 2 좋아요 0 조회수 95

코루틴이 멀티스레드의 단점을 해결했다는 부분에 대해 질문드립니다.

해결됨

코틀린 코루틴 완전 정복

안녕하세요? 강의 잘 듣고 있습니다. 코루틴이 멀티스레드의 단점을 해결했다고 말씀해주셨는데요, 관련해서 약간 정리가 되는 듯 안되는듯 하여 질문드립니다. 1. 우선 아래의 정리가 맞는지 여쭤보고 싶습니다. 멀티 스레딩의 문제점은 결국 blocking이고 이 blocking을 해결하기 위해 코루틴을 도입했음 코루틴은 스레드를 점유하는 형태로 동작하므로, 반대로 코루틴이 blocking될때 스레드를 점유하지 않음으로써 다른 코루틴이 해당 스레드를 점유하게 되고 결과적으로 스레드가 blocking되는 일이 없어진다. 2. 그런데 blocking이 되는 현상이 언제발생하나요? 강의에서 말씀해주신 내용에 따르면, 다른 스레드 혹은 코루틴의 결과가 필요할 때 blocking되는 상황에 놓여지는 것 같은데 맞을까요? 결국 그렇다고하면 이전 코드의 완료를 보장하는, 그러니까 sync한 방식으로 코딩을 해야할 때 스레드가 놀지 않으면서 & completableFuture처럼 콜백지옥이나 예외처리가 어렵지 않게 하는 것이 코루틴의 장점이 맞을까요? 3. 일반적인 IO상황도 위에서 얘기한 blocking이 맞을까요? 다르게 말하면, Dispatcher IO에서 [요청을 보내고 기다려야만 하는 상황]에서도 코루틴은 스레드의 점유권을 내려놓음으로써 해당 스레드가 다른 작업을 처리할 수 있게 되는걸까요? 예를 들면, A스레드가 코루틴의 DIspatcher IO에 의해 관리되는 IO전용 스레드고 IO스레드는 해당스레드하나만 존재할때(가용가능한 다른 스레드가 없는 상황) c코루틴은 서버에 호출을 보내서 4초가 걸리고, d코루틴은 서버에 호출을 보내서 5초가 걸리면 A스레드에서 c코루틴과 d코루틴을 병렬적으로 처리할 수 있는건가요? 단순히 다른 스레드를 하나 생성해서 두가지 작업을 다 맡겼더라면 해당 스레드에서 4초 + 5초해서 9초가 걸렸을텐데, 코루틴기반의 A스레드에서는 약 5초정도밖에(조금 더 길수는 있겠지만) 안걸리는 게 맞을까요? 4. 3번에 이어지는 질문인데요, 만약 3번이 맞다고 하면 IO작업의 응답이 왔을 때 콜백같은 게 적용이 되어서 Dispatcher에 새로운 작업으로 추가되는걸까요? 그러면, IO요청을 보낸 스레드와 IO응답을 처리하게 되는 스레드가 왠지 다를 수도 있을 것 같은데 맞을까요? 3번이 맞다고 하면, 코루틴은 아주 아름다운 것일 것 같은데 굉장히 설레네요 ㅎㅎ 좋은 강의 감사합니다.

  • android
  • kotlin
  • coroutine
  • kotlinx.coroutines
  • android-coroutine
김영빈 댓글 1 좋아요 2 조회수 209

실행오류

미해결

[왕초보편] 앱 8개를 만들면서 배우는 안드로이드 코틀린(Android Kotlin)

실행을 할 경우 다음과 같은 메세지가 나옵니다. plugins { alias(libs.plugins.android.application) alias(libs.plugins.kotlin.android) } android { namespace = "com.seoyoung.databinding_ex" compileSdk = 34 defaultConfig { applicationId = "com.seoyoung.databinding_ex" minSdk = 24 targetSdk = 34 versionCode = 1 versionName = "1.0" testInstrumentationRunner = "androidx.test.runner.AndroidJUnitRunner" } buildTypes { release { isMinifyEnabled = false proguardFiles( getDefaultProguardFile("proguard-android-optimize.txt"), "proguard-rules.pro" ) } } compileOptions { sourceCompatibility = JavaVersion.VERSION_1_8 targetCompatibility = JavaVersion.VERSION_1_8 } kotlinOptions { jvmTarget = "1.8" } } dependencies { implementation(libs.androidx.core.ktx) implementation(libs.androidx.appcompat) implementation(libs.material) implementation(libs.androidx.activity) implementation(libs.androidx.constraintlayout) testImplementation(libs.junit) androidTestImplementation(libs.androidx.junit) androidTestImplementation(libs.androidx.espresso.core) } #Thu Nov 14 00:01:26 KST 2024 distributionBase=GRADLE_USER_HOME distributionPath=wrapper/dists distributionUrl=https\://services.gradle.org/distributions/gradle-8.7-bin.zip zipStoreBase=GRADLE_USER_HOME zipStorePath=wrapper/dists 위의 파일이 순서대로 build.gradle.kts, gradle-wrapper.properties 입니다. 컴파일 버전과 같은 부분에 대한 에러같은데, 어느 부분을 고쳐야할지 모르겠어서 질문 요청드립니다.

  • android
  • kotlin
  • firebase
cspsh3 댓글 2 좋아요 0 조회수 278

Dispatcher.IO의 동작원리

해결됨

코틀린 코루틴 완전 정복

안녕하세요! 강의 재밌게 보고 있습니다! ㅎㅎ 코루틴을 공부하면서 항상 의문이던 부분이였는데 Dispatcher.IO가 Http Request 같은 IO 작업에서 어떤 원리로 Dispatcher.Default보다 더 효율적인걸까요? 내부 스레드선언이 더 많아서 Default보다 더 자주 코루틴 컨텍스트 스위칭이 되는걸까요?

  • android
  • kotlin
  • coroutine
  • kotlinx.coroutines
  • android-coroutine
chhong 댓글 3 좋아요 0 조회수 277

TextField에서 테두리 제거하는 방법이 궁금합니다.

해결됨

[LV1] Jetpack Compose - UI 연습하기

안녕하세요. CoupangEx-3 강의에서 검색 기능을 위해 TextField를 만들었는데, TextField 주위에 있는 회색의 테두리를 어떻게 제거할 수 있는지 궁금합니다.... 인터넷 검색을 해도 동작하지 않거나, 언더라인을 지우는 코드들만 나와서 자료를 못 찾겠습니다. 감사합니다.

  • android
  • kotlin
  • jetpack
godgod153 댓글 2 좋아요 0 조회수 261

실무에서 runBlocking 와 CoroutineScope 실무 사용에 대해

해결됨

코틀린 코루틴 완전 정복

실무에서 코루틴을 사용해야할 때 runBlocking 으로 코루틴 영역을 생성해야 할지 CoroutineScope로 생성해야 할지 또 어떻게 코루틴을 활용해야할지 감이 살짝 오시 않습니다.물론 호출부의 스레드를 블럭킹해야 한다면 runBlocking 일 것 같지만 보통 이렇게 사용한다라는 지향점이 궁금합니다. 실무에서 사용하기 위해 추천할만한 깃헙 레파지토리나 베스트프랙티스가 있을까요? - 학습 관련 질문을 남겨주세요. 질문을 상세히 작성하면 더 좋습니다. - 서로 예의를 지키며 존중하는 문화를 만들어가요. - 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요.

  • android
  • kotlin
  • coroutine
  • kotlinx.coroutines
  • android-coroutine
아무도_모를_아이디 댓글 2 좋아요 0 조회수 280

Code3-6에서 imageProcessingDispatcher가 inline으로는 동작하지 않는 이유가 궁금합니다

해결됨

코틀린 코루틴 완전 정복

안녕하세요. 기초적인 질문 같지만, 코루틴을 처음 사용하는 입장에서 imageProcessingDispatcher를 인라인으로 넣을 수 없는 이유가 궁금합니다. 직접 테스트했을 때, launch(Dispatchers.Default.limitedParallelism(2)) { //... } 와 같은 코드는 예상한대로 동작하지 않고, 머신 processor만큼을 사용하는 것으로 보이는데, 그 이유가 뭘까요?

  • android
  • kotlin
  • coroutine
  • kotlinx.coroutines
  • android-coroutine
azsxd34 댓글 2 좋아요 1 조회수 134

checkout 해도 branch가 안 바뀌네요

미해결

스프링은 어려워! 코틀린과 Ktor로 백엔드/서버개발 기초정복 (커피주문시스템 개발)

git checkout lecture/cafe-02-start 해도 아무런 변화가 없어요

  • kotlin
  • ktor
  • koin
  • kotlin-exposed
무리브 댓글 1 좋아요 1 조회수 181

classpath가 없는데 어떻게 해야하나요?

미해결

[왕초보편] 앱 8개를 만들면서 배우는 안드로이드 코틀린(Android Kotlin)

classpath 부분이 안보이는데 어떻게 해야하나요??

  • android
  • kotlin
  • firebase
승원 댓글 2 좋아요 0 조회수 273

간단 질문.. join() vs delay()

해결됨

2시간으로 끝내는 코루틴

예제를 실행하면서 job이 종료되기까지 join()으로 기다리는 방법이 있고, 스코프를 다른곳으로 보내서 메인스레드가 더 빨리 종료되게 하지 않기 위해 자식스코프 또는 main스레드 내부의 Root 코루틴스코프의 실행시간보다 delay를 길게 주는 방법이 있는것같은데요 아래 1번, 2번 방법 중에 어떤 차이가 있고, 코루틴을 현업에서 쓸 때는 어떤 방법으로 보통 사용하게되나요? 그리고 강의를 아직 다 보지는 않았는데.. RxJava, WebFlux, Virutal Thread, Coroutine 등을 어떤 영역에서 활용하는지 궁금합니다 Network, File I/O, DB CRUD, External API call, etc... 그리고 음.. 2022년도쯤에는 비동기트랜잭션이 하이버네이트쪽에서 잘 지원 안해줘서 r2dbc를 사용하다가 취소한 곳이 있다고도 얼핏 들은것같은데 현재는 어떤지 위에 활용처 질문과 함께 알려주시면 감사하겠습니다! fun test(): Unit = runBlocking { val job1 = CoroutineScope(Dispatchers.Default).launch { delay(1_000L) printWithThread { "Job 1" } } val job2 = CoroutineScope(Dispatchers.Default).launch { delay(1_000L) printWithThread { "Job 2" } } // 1번 방법 job1.join() job2.join() // 2번 방법 delay(2_000L) }

  • kotlin
  • coroutine
보키 댓글 2 좋아요 0 조회수 183

이미지 받아오는 방법?

미해결

[초급편] 안드로이드 커뮤니티 앱 만들기(Android Kotlin)

섹션5 컨텐츠 리스트 만들기 - Glide1 강의에서 원래는 이미지 소스를 서버에서 받아와야 한다고 말씀하셨는데 그게 어떤 의미인지 알 수 있을까요????

  • android
  • kotlin
  • firebase
정진영 댓글 2 좋아요 0 조회수 245

공유 스레드 풀 질문드려요!

해결됨

코틀린 코루틴 완전 정복

섹션4. CoroutineDispatcher 에서 미리 정의된 공유스레드 풀 내에 Dispatchers.Defualt 는 프로세서 개수(최하 2), Dispatchers.IO (64or프로세서 개수 중의 큰 수) 의 개수만큼의 스레드가 할당되는건가요? - 학습 관련 질문을 남겨주세요. 질문을 상세히 작성하면 더 좋습니다. - 서로 예의를 지키며 존중하는 문화를 만들어가요. - 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요.

  • android
  • kotlin
  • coroutine
  • kotlinx.coroutines
  • android-coroutine
아무도_모를_아이디 댓글 2 좋아요 1 조회수 173

이 오류는 어떻게 해결하나요??

미해결

[왕초보편] 앱 8개를 만들면서 배우는 안드로이드 코틀린(Android Kotlin)

이게 오류 내용이고 이게 MainActivity 코드 부분입니다

  • android
  • kotlin
  • firebase
승원 댓글 2 좋아요 0 조회수 553

확장 프로퍼티 질문

미해결

자바 개발자를 위한 코틀린 입문(Java to Kotlin Starter Guide)

안녕하세요, 확장 프로퍼티 관련하여 질문이 있습니다! 확장 프로퍼티를 생성자에 추가하는건 어려운 것 같고 내부프로퍼티로 활용하는 정도로 사용하는 것 같은데.. 이렇다면 확장 프로퍼티를 주로 사용하는게 isAdult같은 특정 프로퍼티를 이용해 새로운 값을 반환해주는 용도의 프로퍼티를 만드는것 위주로 사용하게 될까요?? 사용처가 와닿는게 없어서 실무에서 사용하는경우가 어떤게 있는지 알려주시면 감사하겠습니다! 그리고 추가로 제가 KMan이라는 Person을 상속받는 클래스를 임의로 만들어서 거기에 test2라는 확장 프로퍼티를 만들었는데요, 코드를 찍어보니 아래처럼 KMan에 받아온 value를 대입해주는 것 같은데 KMan이라는 클래스에는 test2라는 프로퍼티가 선언되있는게 없으니 역시나 에러가 나더라구요 커스텀 프로퍼티에서 setter를 만들 수 있는건 그냥 ide에서 대응을 못할 뿐 사실상 불가능한게 맞는건가요? @_@.. public static final void setTest2(@NotNull KMan $this$test2, @NotNull String value) { Intrinsics.checkNotNullParameter($this$test2, "<this>"); Intrinsics.checkNotNullParameter(value, "value"); setTest2($this$test2, value); }

  • java
  • kotlin
  • 객체지향
김영욱 댓글 1 좋아요 1 조회수 183

인기 태그

인프런 TOP Writers

주간 인기글