묻고 답해요
143만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
미해결350개의 개인 앱을 만들어 월급의 7배 수익을 달성한 방법
좋은 강의 감사드립니다
다만 저는 실행력도 중요하지만 실패가 실패로 위장한 도박이 아닌지 분명히 구분할 방법 또한 필요하다고 보는 사람입니다유효한 실패를 정의하거나 구분하시는 방법 있으신가요
-
미해결Flutter로 SNS 앱 만들기
파이어베이스 스토리지 설정에 프로젝트 업그레이드 라고 뜨는데 어떻게 하면됩니까
파이어베이스 스토리지 설정에 프로젝트 업그레이드 라고 뜨는데 어떻게 하면됩니까?
-
해결됨코틀린 코루틴 완전 정복
suspend 문의 드려요
- 학습 관련 질문을 남겨주세요. 질문을 상세히 작성하면 더 좋습니다.- 서로 예의를 지키며 존중하는 문화를 만들어가요. - 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요. 아무리 생각해도 코루틴 안에서 사용하는 코루틴 안의 delay나 await 등 점유 해제 가능한 fun들을 코드 중복을 피하기 위해 따로 빼놓은 delay나 join await를 포함한 코루틴용 fun의 키워드 같은데 구글링해서 보면 마치 delay나 await, join 이 포함된 fun 은 무조건 suspend를 사용하고 점유 해제 되도록 한다고 설명한데가 많네요. 결론은 suspend 자체가 점유 해제 하고 resume을 시켜주는 키워드가 아닌 것 같은데 제가 이해한게 맞나요?
-
미해결
안드로이드 스튜디오 Emulator 에러
현재 2주간 해결이 되지 않아 시작조차 못하고 있어 질문드립니다ㅠㅠ에러명 : "Emulator: Pixel 2 API 30 - Emulator terminated with exit code -1073741515"아래는 제가 이때까지 시도했던 조치 방안들 입니다..조치 방안Path 설정 (사용자명은 블러처리 되어있으나 영문입니다.)- Sdk, avd, flutter Path 설정 - 변수 3가지 추가(구글링 중 해당 내용이 있어 추가해보았습니다..)SDK Tools 설치- CPU가 AMD Ryzen 5 7500F로 SDK Tools에서 "Android Emulator Hypervisor Driver for AMD Processors (installer)"를 찾아봤으나 없음 Hypervisor 체크박스- BIOS에서 SVM 모드 활성화(Enabled)- 아래 Windows 기능 켜기/끄기 → Windows 하이퍼바이저 플랫폼, 가상머신 플랫폼(구글링 시, 체크박스 on/off에 대한 말이 달라 체크박스 on/off 둘다 시도 해봄)이 외에도 Android Studio 재설치, Flutter doctor 확인 후 필요 프로그램 재설치, 환경변수 Path 재설정..심지어 포맷까지 하고 모든 파일을 재설치 해보았음에도 해결되지 않고 있습니다.. 혹시 해결방법을 알고 계시다면 조언 부탁드리겠습니다ㅠㅠ
-
해결됨코틀린 코루틴 완전 정복
스레드 양보 예제 + 코루틴/멀티스레드 사용 예시 질문
- 학습 관련 질문을 남겨주세요. 질문을 상세히 작성하면 더 좋습니다.- 서로 예의를 지키며 존중하는 문화를 만들어가요. - 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요.section10의 code4/Code10-4에서 보면코드가 아래와 같이 되는데package section10.code4 import kotlinx.coroutines.* fun main() = runBlocking<Unit> { val startTime = System.currentTimeMillis() repeat(10) { repeatTime -> launch { Thread.sleep(1000L) // 1초 동안 스레드 블로킹(코루틴의 스레드 점유 유지) println("[${Thread.currentThread().name}] 작업 실행 ") println("[${getElapsedTime(startTime)}] 코루틴${repeatTime} 실행 완료") } } } fun getElapsedTime(startTime: Long): String = "지난 시간: ${System.currentTimeMillis() - startTime}ms"보통 이런 코드는 이렇게 멀티스레드로 처리하지 않나요..?import java.util.concurrent.Callable import java.util.concurrent.Executors fun main() { val startTime = System.currentTimeMillis() val es = Executors.newFixedThreadPool(10) val callTasks = mutableListOf<Callable<Int>>() repeat(10) { repeatTime -> val callTask = Callable { println("[${Thread.currentThread().name}] 작업 실행 ") return@Callable repeatTime } callTasks.add(callTask) } val results = es.invokeAll(callTasks) // 결과 출력 results.forEach { future -> println("Result: ${future.get()}") } println("[${getElapsedTime(startTime)}] 실행 완료") es.close() } fun getElapsedTime(startTime: Long): String = "지난 시간: ${System.currentTimeMillis() - startTime}ms"음.. 그리고 스레드 1개를 만들어서 run을 시키면 1MB정도의 메모리 비용이 발생하고 context switch도 일어나지만, 코루틴은 훨씬 더 값싸다고 알고있습니다추가로 아직 r2dbc처럼 비동기 트랜잭션 처리 등.. 이게 지원이 좀 미약하다고 알고있습니다. 서버의 작업은 대체로 CPU를 사용하는 부분이 그렇게 많이 없고 DB에 쓰고 값을 가져오는 동기화 코드, 순차처리 작업이 많은걸로 알고 있습니다.그럼 언제 멀티스레드를 사용하는게 좋고, 언제 코루틴을 사용하는게 좋을까요?
-
해결됨350개의 개인 앱을 만들어 월급의 7배 수익을 달성한 방법
앱 글로벌 배포 질문드립니다.
효과적으로 다국어 처리하는 과정을 말씀해주셨는데 강사님께서는 모든앱을 글로벌 출시를 기준을 잡고 앱개발을 하시나요? 글로벌 출시를 할 경우와 국내 타겟팅 만 할 경우 광고 수익은 어떤지도 궁금하네요. 또 글로벌 출시를 할때의 팁이 또다른것들이 있을까요?
-
미해결[왕초보편] 앱 8개를 만들면서 배우는 안드로이드 코틀린(Android Kotlin)
이 오류는 먼가요 ㅠㅠ
저는 안드로이드 화면을 켜고 구동시켜 볼려고 하면 화면 자체가 안켜 지네요 ~ 이유가 멀까요 ㅠㅠ 쌤 ~.
-
미해결Flutter로 SNS 앱 만들기
이거는 왜그렇죠
제가 실수로 파이어베이스에 프로젝트를 지워서 같은 이름으로 만들었습니다설정하는것이 조금 다르더라구요 이렇게 설정 했는데 맞나요
-
미해결Flutter로 SNS 앱 만들기
셋팅에 문제가생겼네요
어디서 해결해야하나요
-
해결됨350개의 개인 앱을 만들어 월급의 7배 수익을 달성한 방법
과연 그 상황이 같을까요?
좀비님의 노력과 업적은 훌륭하다고 생각하지만 과연 다른 사람이 잘하는 것을 나도 잘할 수 있다고 막연히 믿어도 될지는 의문입니다
-
해결됨350개의 개인 앱을 만들어 월급의 7배 수익을 달성한 방법
하나의 앱에 광고 캠페인은 어떤 식으로 여러개 운영하시나요?
현재 google ads 파악하면서 광고를 하나 둘씩 만들고 있습니다. 하나의 캠페인에 여러개의 그룹을 설정한다는 건 어떤 의미인지 이제 알고 있습니다. 다만 한 앱에 여러 캠페인을 운영하신 다는 게 어떤 의미인지 잘 이해가 가지 않아 여쭙고 싶습니다. 예를 들어 다른 광고 문구나 에셋을 테스트 해보고 싶을 때 다른 광고그룹을 하나의 캠페인에 추가하는 식으로 가능한 것 같은데요 강의에서 하나의 앱에 최대 20개의 캠페인도 운영하신다고 하셨는데 구글 애즈 이제 입문하는 입장에서 봤을 땐 "여러 광고를 실험하고 싶으면 더 많은 그룹을 적용하면 되는 거 아닌가?" 라는 생각이 듭니다. 아직까지 저는 캠페인은 타겟(웹, iOS, android)이나 예산 등을 설정하는 단위로 알고 있거든요. 혹시 광고 그룹을 더 추가하는 게 아니라 캠페인을 더 추가하시는 게 어떤 의미인지, 어떤 이유로 그러시는지 궁금합니다!
-
해결됨코틀린 코루틴 완전 정복
coroutineScope 관련 질문 및 실제 사용 사례에 대한 질문
안녕하세요. 강사님 강사님 덕분에 코루틴에 대한 이해도가 많이 높아져서, 최근 코루틴을 활용한 비동기 서버 구현에 대해서 재밌게 개발을 하고 있습니다. (코루틴이 재미는 있는데, 비동기라는 개념 때문에 너무 어려워서 머리가 아프네요 😢) spring webflux와 코루틴을 활용한 서버 개발을 하다보니, 자연스럽게 suspend 키워드가 많이 사용되고 일시 중단 함수에 대해서 조금 더 높은 이해도가 필요해서 이에 대해서 몇가지 질문을 하려고 합니다. 1.저는 강사님의 일시 중단 함수 관련 강의를 듣고 일시 중단 함수란 그냥 일시 중단 지점을 포함할 수 있는 특이한 함수,suspend 함수에서 코루틴을 사용하기 위해서는 coroutineScope을 사용하자이렇게 이해를 했어서 다음과 같이 코드를 짰습니다.class SuspendRequestTest { @Test fun suspendRequestTest() = runBlocking { val startTime = System.currentTimeMillis() // 시작 시간 기록 println("suspendRequest start") anotherSuspendFunction1() // suspend function 1 호출 anotherSuspendFunction2() // suspend function 2 호출 println("suspendRequest end") val endTime = System.currentTimeMillis() // 종료 시간 기록 println("suspendRequest elapsed time: ${endTime - startTime} ms") // 경과 시간 출력 } private suspend fun anotherSuspendFunction1() = coroutineScope { println("anotherSuspendFunction1 start") launch { println("anotherSuspendFunction1 extra logic start") delay(1000) println("anotherSuspendFunction1 extra logic end") } println("anotherSuspendFunction1 end") } private suspend fun anotherSuspendFunction2() = coroutineScope { println("anotherSuspendFunction2 start") launch { println("anotherSuspendFunction2 extra logic start") delay(1000) println("anotherSuspendFunction2 extra logic end") } println("anotherSuspendFunction2 end") } }// 실행 로그 suspendRequest start anotherSuspendFunction1 start anotherSuspendFunction1 end anotherSuspendFunction1 extra logic start anotherSuspendFunction1 extra logic end anotherSuspendFunction2 start anotherSuspendFunction2 end anotherSuspendFunction2 extra logic start anotherSuspendFunction2 extra logic end suspendRequest end suspendRequest elapsed time: 2037 ms제 예상대로라면 1초가 살짝 넘는 시간으로 작업이 완료되어야 하는데, 해당 작업은 2초가 걸리는 작업이었습니다. (로그도 항상 1번이 먼저 나타납니다.)1-1) 혹시 coroutineScope은 내부의 코드가 완료되기 전까지는 다음으로 넘어가지 않는 Blocking 속성을 가지는 함수일까요 ?1-2) supervisorScope도 coroutineScope 처럼 내부의 코드가 완료되기 전에는 다음으로 넘어가지 않는다고 알면 될까요?1-3) 일시 중단 함수가 여러 일시 중단 함수들을 내부 로직으로 가지는 경우, 순차적으로 각각의 일시 중단 함수가 끝나야지만 다음 일시 중단 함수가 실행되는 걸까요 ?2.제가 실제 코루틴 사용 사례 및 코드를 많이 보지 못해서, 어떻게 쓰는게 좋은 케이스 인지 이해도가 낮은 것 같습니다. 보통 coroutineScope 혹은 supervisorScope함수들은 어떤 경우에 어떤 목적을 위해 주로 쓰이는 걸까요 ??coroutineScope의 속성이나 특징에 관해서 추가적으로 제가 알아야 하거나 참고하면 좋을 자료가 있을까요?? 😊
-
미해결Flutter로 SNS 앱 만들기
마치면서 에러가 댓글가져오기와 좋아요 리스트 가져오기 에러
마치면서.. 에러가 댓글가져오기와 좋아요 리스트 가져오기 에러.두개가 에러 발생되어 해결방법을 몰라서 강사님의 깃을 다운받아서 댓글과 좋아요 에러 나는 곳을 확인하니 제가 누락된 코드인지 추가된코드인지 알수는 없지만 에러가 많아서 접어두고, 강사님 코드로 돌려보았으나 이런창이 뜨네요. 완성은 하고싶은데..어렵네요..어떻게 해야할지..?혹시나 싶어서 적어봅니다dart 3.5.4flutter 3.24.5Android Studio Ladybug | 2024.2.1 Patch 2
-
미해결Flutter로 SNS 앱 만들기
섹션15페이징기능_4프로필 화면에 페이징 적용
섹션15페이징기능_4프로필 화면에 페이징 적용에서프로필 화면은 잘 작동 합니다그러나,좋아요 리스트는 여전히 동작 안하고 있어요.
-
미해결Flutter로 SNS 앱 만들기
섹션15페이징기능_3좋아요 목록 화면에 페이징 적용
이페이지에서는 강의 없던 코드가 강의코드가 있고,갑자기 나오고, 이페이지에서는 정리가 안돼요. 또 실행도 잘안돼요.프로필화면에서도 6개 게시물인데 3개만가져오고, 좋아요 화면은 실행이 안돼고... 이페이지는다시 영상만들어야 할것 같아요
-
해결됨코틀린 코루틴 완전 정복
Coroutine 취소 시점 체크
isActive라는 확장 프로퍼티를 이용해서 일시 중단 시점을 만들지 않고도 확인할 수 있다는 내용은 이해했습니다.다만 본 강의의 예시에서는 while문을 통해서 계속해서 isActive를 확인해서 취소된 걸 곧바로 알 수 있었지만,만약 실무에서 coroutine내에 어떤 로직들이 길게 적혀 있다면, 한 줄 한줄 마다 if 문을 통해 isActive를 확인해야 하는 코드가 들어가야 하는 걸까요? 아니면 조금 비효율적인 것을 감안하고 yield 같은 함수를 중간 중간에 넣어두어야 하는 걸까요?
-
미해결Flutter로 SNS 앱 만들기
섹션14페이징기능_1게시글 목록 화면에 페이징 적용 feed_repository.dart에러
섹션14페이징기능_1게시글 목록 화면에 페이징 적용_feed_repository.dart에서 에러가 발생했습니다 그런데 예전에 좋아요에서 원본코드 (feed_repository.dart) getFeedList()부분QuerySnapshot<Map<String, dynamic>> snapshot = await firebaseFirestore.collection('feeds').where('uid', isEqualTo: uid).orderBy('createAt', descending: true).get(); 문제가 발생되어 다음과 같이 수정하여 동작아였으나 14페이징기능_게시글 목록 화면에 페이징 적용 하면서 어떻게 해야할지요Query<Map<String, dynamic>> query = await firebaseFirestore.collection('feeds').orderBy('createAt', descending: true); if (uid != null) {query = query.where('uid', isEqualTo: uid); } QuerySnapshot<Map<String, dynamic>> snapshot = await query.get();
-
해결됨350개의 개인 앱을 만들어 월급의 7배 수익을 달성한 방법
계정을 여러 개 운영할 때
안녕하세요. 현재 수강 중입니다.계정을 여러개 운영하는데 있어서 컴퓨터 아이피는 같아도 상관없을까요?아이피가 같으면 계정이 여러 개이더라도 하나로 취급하는지 아니면 각각으로 취급하는지 궁금합니다.
-
해결됨350개의 개인 앱을 만들어 월급의 7배 수익을 달성한 방법
하단배너 배치시 주의점 에 대한 추가 질문
안녕하세요~! 내가 만들지 않는 사이트 웹뷰 밑에 하단배너 를 달면 정책위반이라고 하셨는데. 그러면 내가 만든 사이트 웹뷰 밑에 하단배너는 괜찮은것일까요? 구글링해서 확인을 해보는데 명확하게 답이 나와있지 않아 질문을 드립니다.
-
해결됨코틀린 코루틴 완전 정복
spring web mvc 환경에서 coroutine을 사용해보신 경험이 있으신지 궁금합니다.
안녕하세요 강사님, 강의 잘 들었습니다개인적으로 코루틴에 관해서 정말 많이 배웠습니다. 모든 걸 다 소화하지는 못했지만, 필요할 때마다 돌아와서 정독하면 충분히 필요한 부분을 얻어갈 수 있다는 생각이 드네요. 좋은 강의 감사드립니다.몇가지 궁금한 부분이 있어 질문드립니다.사내에서 사용하는 기술스택이 spring web mvc + JPA + feignClient인데 혹시 이와 유사한 환경에서 코루틴을 적용해보신 경험이 있으실까요?특히 제가 기대했던 부분은 IO작업에 관해 요청을 보내고 스레드를 점유하지 않음으로써 리소스를 효율적으로 사용하는 것(즉 처리량을 증가시키는 것)을 기대했었는데 아무래도 JPA나 feignClient나 응답이 올때까지 대기하는 구조로 되어 있더라구요ㅠㅠ.. 드라마틱한 성과를 기대하기는 조금 힘들어보이긴하네요 혹시 관련해서 유사한 경험이 있으신지 싶어서 의견을 묻고자 여쭤봅니다.코루틴을 사용중인 환경에서 rps가 급증하면 어떤식으로 흘러갈지 궁금합니다. 스레드가 고갈될 것 같은데, 자연스럽게 dispatcherIO등의 스레드가 새로 생성되나요?- 그렇다고 하면 메모리가 고갈될 것 같은데, 코루틴을 사용할때는 결과적으로 메모리 기준으로 스케일아웃을 걸어야할지? 등이 궁금하네요.