묻고 답해요
156만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
미해결Flutter로 SNS 앱 만들기
파이어베이스에서 실수로 강의프로젝트를 실수로 삭제하였습니다.도와주세요
도움부탁드려요.강의를 전부시청하였습니다.파이어베이스에 실수로 강의프로젝트를 삭제하였습니다.그런이유로 작동이 잘안되어 문의 드립니다. 어떤이유인지 같은이름의 프로젝트를 생성불가하여노트북도 새로 포맷하여 새롭게 설치 하였습니다.gmail을 새로운계정을 만든고,파이어베이어스 등록하였습니다.프로젝트이름 같은이름으로 생성하였습니다.Authentication,Firestore Database는 강의내용과 같아서 정상적으로 등록하였습니다.혹시나 싶어서.새로운 계정으로git과 github을 다시설치했습니다.그러나, 파이어베이스에 스토리지가 일부 변경이 되어 답변내용중에 스토리지변경에 대한내용을 참고하라는 설명에 설치를 하게되었습니다.기존에 강의를 불러서 firebase_options.dart 을 안드로이드,앱키등등을 새로생성된것으로 변경하였는데.앱이 정상작동이 안돼는데.. 어떻게 바꿔줘야 하는지 부탁드려요. 여기에서 넘어가지를 않습니다.어떻게 하면 좋을까요.
-
해결됨코틀린 코루틴 완전 정복
CoroutineDispatcher(Default, IO)의 limitedParallelism 관련 질문
안녕하세요. 강사님코루틴 강의를 1번 완강하고, 최근에는 전체적으로 강의를 복습을 하고 있습니다.복습을 하다가 CoroutineDispatcher의 limitedParallelism 에 대해 몇가지 궁금한 점이 생겨서 질문을 남기게 됐습니다.Dispatchers.Default 관련Dispatchers.Default의 스레드풀 수를 넘어서는 숫자 혹은 스레드풀 수에 딱 맞게 스레드 수를 지정하여 limitedParallelism 함수를 실행하는 경우,Dispatchers.Default의 모든 스레드들은 제가 지정한 해당 작업을 처리하기 위해 계속 작업을 하고, 해당 작업이 시작된 이후에 Dispatchers.Default로 지정하여 실행한 코루틴 작업들은 제가 지정한 작업이 끝나기 전까지는 모두 대기하게 되는 것인가요??예를 들어, CPU 코어가 4개인 컴퓨터라면 Dispatchers.Default의 스레드 풀에 들어있는 스레드 수는 4개가 될테고, 해당 상황에서 Dispatchers.Default.limitedParallelism(4) 혹은 스레드가 몇개 있는지 몰라 Dispatchers.Default.limitedParallelism(8) 이렇게 지정하는 경우에아래 코드를 기준으로 하면 제가 먼저 시킨 작업(superCpuIntensiveTask())이 끝나기 전에는 lightCpuIntensiveTask()는 실행되지 않는 것일까요?(※ 멀티 스레드 작업이기 때문에 아래의 lightCpuIntensiveTask()가 먼저 실행될 가능성도 있지만 아주 재수가 나쁘게 superCpuIntensiveTask()가 먼저 실행이 된다면 어떻게 되는지가 궁금합니다)// CPU 코어가 4개인 컴퓨터 fun main() = runBlocking { launch(Dispatchers.Default.limitedParallelism(8)) { superCpuIntensiveTask() } launch(Dispatchers.Default) { lightCpuIntensiveTask() } println("Done") } 1번과 비슷한 질문입니다. CPU 코어가 4개인 컴퓨터에서 Dispatchers.Default.limitedParallelism를 여러번 사용한 경우, 코드상으로 보면 사용해야 하는 스레드의 수가 전체 스레드풀 수를 넘어서는 숫자가 되는데 이 경우에는 어떻게 스레드를 나눠서 사용하는 걸까요 ?// CPU 코어가 4개인 컴퓨터 fun main() = runBlocking { launch(Dispatchers.Default.limitedParallelism(3)) { superCpuIntensiveTask() } launch(Dispatchers.Default.limitedParallelism(3)) { superCpuIntensiveTask2() } launch(Dispatchers.Default.limitedParallelism(2)) { CpuIntensiveTask() } println("Done") }Dispatchers.IO 관련Dispatchers.IO.limitedParallelism를 사용하면 새로운 Thread 집합을 만든다고 말씀해주셨습니다. 그림에서 표현해주신 것처럼 기존에는 개별로 존재하는 Thread들을 새로 그룹으로 묶어낸다고 이해를 하면 되는 것일까요 ?? Dispatchers.IO.limitedParallelism으로 묶여있던 Thread들은 해당 코루틴이 끝나면 다시 그룹이 풀리는 것일까요 ??만약에 Dispatchers.IO.limitedParallelism를 많이 사용하여 이미 기존의 스레드들 모두가 집합으로 구성이 되어있는 경우에는 신규로 집합을 만들 수가 없는 경우에는 해당 Dispatchers.IO.limitedParallelism 요청이 어떻게 되는지 궁금합니다.limitedParallelism의 Thread 수 지정해당 코드와 같이 Dispatchers.Default.limitedParallelism(4) Thread 수를 지정해야 할때, 어떤 기준으로 어떻게 Thread 수를 지정해야 좋을까요 ?? 강사님만의 팁이 있으시면 공유가 가능하실까요??어떻게 수를 정해서 넣어야 할지 감이 잘 잡히지 않습니다. 😢1번과 관련된 질문입니다. Thread 수를 지정할 때 현재 Thread Pool에 존재하거나 남아있는 쓰레드가 몇개인지 충분히 고려를 하면서 코드를 짜야할까요 ??실수로 스레드 풀의 전체 Thread 수를 넘어선 요청을 하게 되면 어떻게 되는지 궁금합니다. 질문이 많아서 정말 죄송합니다. 🙇♂🙇♂🙇♂
-
미해결[왕초보편] 앱 8개를 만들면서 배우는 안드로이드 코틀린(Android Kotlin)
다이얼로그 띄우구
저는 다이어트는 내일부터 하는거 아닙니까 창 뜬이후로 창이 꺼져버리는데 이유가 멀까요?
-
미해결[초급편] 안드로이드 커뮤니티 앱 만들기(Android Kotlin)
게시글 이미지가 파이어베이스에 저장되지 않습니다.
안녕하세요, 강의 잘 듣고 있습니다.섹션 7의 게시글 이미지가 파이어베이스에 저장되지 않아서 글을 남깁니다.사진을 넣어서 업로드하면 Storage에 업로드 되지 않습니다.기존 코드로 이미지가 업로드가 되지 않아서 구글링과 chatGpt의 도움을 받는 과정에서 storage에 저장하는 경로 설정을 수정해서 폴더를 따로 만들었습니다. 다른 질문글을 보고 보안 규칙을 수정해봐도 올라가지 않습니다.사용량을 살펴보니 요청은 1건 있지만 허용량이 없습니다.여러 방법을 시도해봐도 되지 않아서 질문글을 남깁니다. 전체 코드 공유를 위해 깃허브 주소를 남깁니다!https://github.com/Joodo7ng/my-sole-life.git
-
해결됨350개의 개인 앱을 만들어 월급의 7배 수익을 달성한 방법
Claude Project 기능은 유료회원만 쓸 수 있는건가요?
왠지 그런것 같긴하지만Claude 많이 안써서 열심히 찾아보는데 메뉴가 없더라구요 ㅜㅜ좀 하찮은 질문이지만 궁금합니다강의 재밌게 듣고있어요!
-
미해결Flutter로 메신저앱 만들기
14강 인증번호가 안와요ㅠ
강의에서 각자 폰 번호로 한번씩 해보라고 하셔서 인증번호 오면 된거라고 하셨는데 제 번호로 진행해도 인증번호가 안옵니다 강의대로 firebase sha 연결도 전부 했는데 안되네요 뭐가 문제일까요강의 내에서 다음버튼을 누르니 크롬으로 연결되던데 그 부분부터 안됩니다 제 화면은 전화번호 입력 칸에서 멈춰있어요
-
해결됨[초급편] 안드로이드 커뮤니티 앱 만들기(Android Kotlin)
AVD 갤러리에 이미지 저장 안되는 문제
안녕하세요, 섹션 7의 게시글 이미지 업로드 강의를 듣다가 생긴 오류를 오랫동안 해결하지 못해서 질문글을 남깁니다.BoardWrite의 imageArea를 클릭시 갤러리에 사진이 없어서 가져올 수 없다고 뜹니다.이미지 파일을 크롬에서 다운받을때 경로를 sdcard로 설정해서 다운받아도 Device explorer를 통해 살펴보면 저장된 파일이 없습니다...터미널에서 강제로 경로를 변경시켜보았으나 갤러리에 표시되진 않았습니다. 어떻게 해결해야할까요?
-
해결됨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