묻고 답해요
143만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
해결됨코틀린 코루틴 완전 정복
spring web mvc 환경에서 coroutine을 사용해보신 경험이 있으신지 궁금합니다.
안녕하세요 강사님, 강의 잘 들었습니다개인적으로 코루틴에 관해서 정말 많이 배웠습니다. 모든 걸 다 소화하지는 못했지만, 필요할 때마다 돌아와서 정독하면 충분히 필요한 부분을 얻어갈 수 있다는 생각이 드네요. 좋은 강의 감사드립니다.몇가지 궁금한 부분이 있어 질문드립니다.사내에서 사용하는 기술스택이 spring web mvc + JPA + feignClient인데 혹시 이와 유사한 환경에서 코루틴을 적용해보신 경험이 있으실까요?특히 제가 기대했던 부분은 IO작업에 관해 요청을 보내고 스레드를 점유하지 않음으로써 리소스를 효율적으로 사용하는 것(즉 처리량을 증가시키는 것)을 기대했었는데 아무래도 JPA나 feignClient나 응답이 올때까지 대기하는 구조로 되어 있더라구요ㅠㅠ.. 드라마틱한 성과를 기대하기는 조금 힘들어보이긴하네요 혹시 관련해서 유사한 경험이 있으신지 싶어서 의견을 묻고자 여쭤봅니다.코루틴을 사용중인 환경에서 rps가 급증하면 어떤식으로 흘러갈지 궁금합니다. 스레드가 고갈될 것 같은데, 자연스럽게 dispatcherIO등의 스레드가 새로 생성되나요?- 그렇다고 하면 메모리가 고갈될 것 같은데, 코루틴을 사용할때는 결과적으로 메모리 기준으로 스케일아웃을 걸어야할지? 등이 궁금하네요.
-
해결됨350개의 개인 앱을 만들어 월급의 7배 수익을 달성한 방법
로그인 기능 관련 질문
안녕하세요! 강의 잘 듣고 있습니다. 앱을 개발하시면서 필요하다면 로그인 기능이 필요할텐데 일반 사용자들이 로그인/회원가입 기능에 큰 거부감은 없었을까요?iOS 같은 경우에는 CloudKit 등을 활용해서 별도 회원 구조에 대한 구현 없이도 사용자의 앱 데이터를 유지할 수 있었는데 서버 기반으로 구현하다보면 데이터 유지를 위해 불가피하게 회원 기능이 필요할 것 같아서 조금 고민이 되네요.또한 회원 기능 추가 시에 개인정보나 법적인 문제들에 대한 문제는 없으셨는지도 궁금합니다.혹시 대답이 가능하시다면 회원 기능을 제공하는 비중이 어느정도인지도 궁금합니다. 감사합니다!
-
해결됨350개의 개인 앱을 만들어 월급의 7배 수익을 달성한 방법
서버 대용 프레임워크에 대하여
Firebase나 Supabase Aws amplify 같이 백엔드를 쉽게 처리할 수 있는 프레임워크들에 대해서 어떻게 생각하시는지 궁금했는데 아예 언급을 안하시네요.위와 같은 프레임워크들을 사용해 백엔드를 처리하고 프론트를 개발해 서비스하는 조합에 대해서는 어떻게 생각하시는지 궁금합니다
-
해결됨350개의 개인 앱을 만들어 월급의 7배 수익을 달성한 방법
강의 ppt 제공받을 수 있을까요? 필요합니다.
학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요!마크다운, 단축키를 이용해서 편리하게 글을 작성할 수 있어요.먼저 유사한 질문이 있었는지 검색해보세요.서로 예의를 지키며 존중하는 문화를 만들어가요.잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요.
-
미해결Flutter로 SNS 앱 만들기
11셕션에서 좋아요.강의코드에서 좋아요 업데이트 문제 제대로 수정된건가요
11셕션에서 좋아요.강의코드에서 좋아요 업데이트문제발생.사용자 유저가 feedScreen에서좋아요 버튼을 누르고,좋아요 바 버튼을 누루면 좋아요누른 게시물이 표시되나,앱을 종료하고, 다시 접속해서 좋아요 바 버튼을 누르면 좋아요게시물이 재대로 찍히지 않습니다.그래서, 다음 같이 수정하니 그런문제가 사라졌습니다제가 올바르게 수정한건가요 }) async { try { // 강의코드 에러 //Map<String, dynamic> userMapData = await firebaseFirestore // .collection('users') // .doc(uid) // .get() // .then((value) => value.data()!); //userMapData['likes'];// 다이나믹으로 반환됨 //List<String> likes = List<String>.from( // userMapData['Likes']); //문자열로 반환받은 List // 수정코드 DocumentReference<Map<String, dynamic>> userMapDataDocRef = firebaseFirestore.collection('users').doc(uid); DocumentSnapshot<Map<String, dynamic>> userMapDataSnapshot = await userMapDataDocRef.get(); List<String> likes = List<String>.from(userMapDataSnapshot.data()!['likes']); // 수정코드끝
-
해결됨350개의 개인 앱을 만들어 월급의 7배 수익을 달성한 방법
data.ai 가입
안녕하세요!data.ai 관련해서 가입 시에 직장 이메일이 요구되는데 무료 체험판 등으로 이용하려면 별도 경로가 필요할까요?data.ai 가입 혹은 register로 찾아봐도 https://www.data.ai/account/register/ 이 링크만 노출되는데 gmail.com 으로는 가입이 어려운 것 같아서 혹시 문의드려봅니다.간단한 부분인데 막히네요 ㅠㅠ 감사합니다!
-
미해결Flutter로 SNS 앱 만들기
12댓글화면_3댓글정보 가져오기
logger.d(currentUserModel);콘솔에서는 찍고 있습니다그러나 logger.d(commentState.commentList);콘솔에서 못찍고 있습니다
-
미해결Flutter로 SNS 앱 만들기
11댓글화면_댓글 정보 가져오기에서 콘솔에 commentList못찍고 있어요
16:09//변환해서 가져오기 List<CommentModel> commentModel = await Future.wait(snapshot.docs.map( (e) async { Map<String, dynamic> data = e.data(); logger.d(data); DocumentReference<Map<String, dynamic>> writerDocRef = data['writer']; logger.d(writerDocRef); 데이터를 가져오질 못해서 콘솔에 찍어봤습니다 logger.d(data); 잘 찍고 있으나 logger.d(writerDocRef); 이거는 못찍고 있어요
-
해결됨아이비의 안드로이드 드릴
선생님 아직 디스코드 초대가 안됐습니다.!
구글폼이 정상적으로 작성되었나요? ㅜㅜ
-
해결됨350개의 개인 앱을 만들어 월급의 7배 수익을 달성한 방법
손익분기점이 날 때까지 모든 앱에 계속해서 광고를 붙여야 할까요?
안녕하세요 좀비님. 강의 잘 듣고 있습니다. 질문을 하나 드리려고 하는데요 제가 현재 등록한 앱이 15개가 넘어가고 수입은 없는 상태이며 구글 광고를 붙여보려고 합니다.요즘 1주, 아무리 길어도 2주안에 하나의 앱을 스토어에 등록하는 상황이라 곧 30개가 넘어갈 것 같은데 30개의 앱에 광고집행을 한다고 해보면일일 예산 2천원이라고 해도 하루 광고비 6만원, 월 200만원 수준이 될텐데요추이를 보기위해 새로 출시하는 모든 앱에 광고를 최소 2주 이상 유지하시는지손익분기점이 날 때까지 모든 앱에 계속해서 광고를 붙이시는지 등이 궁금합니다.사실 강의에서 말씀해주신 대로라면 어느 정도의 금액을 집행하며 광고를 유지/변경 테스트를 하며 기간을 오래 잡고 추이를 지켜보는 것이 좋겠으나 앱이 늘어나면 늘어날 수록 광고비를 감당하지 못하는 상황이 될 것 같아서 이 방법을 현실적으로 유지하는 방법이나 가망이 없는 앱을 포기하는 방법, 혹은 될 것 같은 앱에 집중을 한다던가 중지를 한 후 재개를 하는 등 이런 부분에 있어서의 좀비님의 생각과 경험이 궁금합니다. 감사합니다!
-
해결됨350개의 개인 앱을 만들어 월급의 7배 수익을 달성한 방법
강의 들으면서 생긴 궁금한 부분들에 대해서 질문드립니다.
안녕하세요.강의 잘 들었습니다. 감사합니다.다양한 인사이트들이 들어있어서 아주 뜻깊었습니다. 듣다보니 궁금한 부분들이 여려개 생겨서 이렇게 질문드려요. 질문1. 시즌성 앱의 경우 시즌마다 같은 코드 베이스에 신규 앱을 출시하는 건가요? 아니면 기존 앱을 보강해서 업데이트를 하는건가요??질문2. 광고 배치 전략에서, 스플래시 이후 전면광고는 동영상 광고인가요??질문3. 다작의 클라이언트 환경울 구축했을 때, 주로 디자인과 데이터 부분을 묶음으로 제공하는 것 같은데, 클라 고유의 기능적인 부분은 클라 코드에서 직접 작성하시는걸까요?? 그런 세부적인것도 서버에서 컨트롤 하시나요??질문4. 소개해주신 방향성을 들었을 때, 로그인의 중요성이 덜한 앱들이 많은데, 로그인 기능도 필요하다면 도입하시나요? 도입한다면 어떤 기준으로 필요 여부를 판단하시나요??감사합니다!
-
미해결[왕초보편] 앱 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).이렇게 떠요 ㅠㅠ
-
해결됨아이비의 안드로이드 드릴
네비게이션
home_graph.xml의 시작점app:startDestination="@id/navigation_home"app:startDestination="@id/navigation_다른 activity"이렇게 나눠서 하나는 home activity의 FragmentContainerView 에서 상용하고 다른 하나는 detail activity의 FragmentContainerView에서 사용할 수 있나요?
-
미해결[왕초보편] 앱 8개를 만들면서 배우는 안드로이드 코틀린(Android Kotlin)
트로트 앱에서 노래 목록 눌렀을때 원하는 사진 나오게 하고싶은데
트로트 리사이클러뷰에 노래 넣는 것 까지는 했는데 그 목록 중 하나를 누르면 원하는 사진 나오게 하고 싶으면 어떤 걸 써야 하는지 혹시 알 수 있을까요?
-
해결됨코틀린 코루틴 완전 정복
코루틴이 멀티스레드의 단점을 해결했다는 부분에 대해 질문드립니다.
안녕하세요? 강의 잘 듣고 있습니다. 코루틴이 멀티스레드의 단점을 해결했다고 말씀해주셨는데요, 관련해서 약간 정리가 되는 듯 안되는듯 하여 질문드립니다.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번이 맞다고 하면, 코루틴은 아주 아름다운 것일 것 같은데 굉장히 설레네요 ㅎㅎ좋은 강의 감사합니다.
-
미해결Flutter로 SNS 앱 만들기
섹션11 좋아요 목록화면에서 콘솔에서 FeedModel 데이터를 못가지고 있어요
섹션11 좋아요 목록화면whgdk좋아요.누른 게시글 정보 가져오기좋아요.누른 게시글 정보를 화면에표시진행했구요. 콘솔에서 FeedModel 데이터를 못가지고 있어요
-
미해결Flutter 초급 - Http통신, 상태관리
ListenableBuilder가 안되요..material import 했는데도 자동완성이 안뜨고 빨간줄이 뜨네요 ..
왜그럴까요 ..??
-
미해결[왕초보편] 앱 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 입니다. 컴파일 버전과 같은 부분에 대한 에러같은데, 어느 부분을 고쳐야할지 모르겠어서 질문 요청드립니다.
-
해결됨코틀린 코루틴 완전 정복
Dispatcher.IO의 동작원리
안녕하세요! 강의 재밌게 보고 있습니다! ㅎㅎ 코루틴을 공부하면서 항상 의문이던 부분이였는데 Dispatcher.IO가 Http Request 같은 IO 작업에서 어떤 원리로 Dispatcher.Default보다 더 효율적인걸까요? 내부 스레드선언이 더 많아서 Default보다 더 자주 코루틴 컨텍스트 스위칭이 되는걸까요?
-
해결됨[LV1] Jetpack Compose - UI 연습하기
TextField에서 테두리 제거하는 방법이 궁금합니다.
안녕하세요. CoupangEx-3 강의에서 검색 기능을 위해 TextField를 만들었는데, TextField 주위에 있는 회색의 테두리를 어떻게 제거할 수 있는지 궁금합니다.... 인터넷 검색을 해도 동작하지 않거나, 언더라인을 지우는 코드들만 나와서 자료를 못 찾겠습니다. 감사합니다.