67강 댓글
미해결
[초급편] 안드로이드 커뮤니티 앱 만들기(Android Kotlin)
안녕하세요 강사님 혹시 67강에서 댓글 기능을 구현 한 후에 댓글을 보면 입력한 댓글과 밑에 입력한 시간 가운데에 content라는 글자가 계속 써져있는데 혹시 저걸 없애는 방법이 있을까요?
- android
- kotlin
- firebase
173만명의 커뮤니티!! 함께 토론해봐요.
미해결
[초급편] 안드로이드 커뮤니티 앱 만들기(Android Kotlin)
안녕하세요 강사님 혹시 67강에서 댓글 기능을 구현 한 후에 댓글을 보면 입력한 댓글과 밑에 입력한 시간 가운데에 content라는 글자가 계속 써져있는데 혹시 저걸 없애는 방법이 있을까요?
미해결
입문자를 위한 Spring Boot with Kotlin - 나만의 포트폴리오 사이트 만들기
따라 적었는데 프로퍼티 id가 한번도 사용되지 않았다는 오류가 떠요..
미해결
스프링은 어려워! 코틀린과 Ktor로 백엔드/서버개발 기초정복 (커피주문시스템 개발)
안녕하세요. jar 파일 실행 시 사진과 같이 로그가 출력 되고 있습니다. initData 부분의 로그도 나오지 않고 URL로 접속도 안되는데 어느 부분이 문제일까요?
해결됨
치킨 + 맥주값으로 SpringAI를 사용해 AI서버 만들어보기 (With ChatGPT)
Media Deprecated -> Resource imageResource = new DefaultResourceLoader().getResource(imageUrl); UserMessage userMessage = new UserMessage("이사진이 보이나요?", List.of(new Media(MimeTypeUtils.IMAGE_JPEG, imageResource))); return chatModel.call(userMessage);
미해결
[초중급편] 안드로이드 데이팅 앱 만들기(Android Kotlin)
import com.yuyakaido.android.cardstackview.CardStackLayoutManager 해당 라이브러리들을 가지고 오지 못하는 것으로 보입니다. implementation " com.yuyakaido.android :card-stack-view:2.3.4" 와 jcenter() // Warning: this repository is going to shut down soon maven{url ' https://jitpack.io'}//추가 구문을 추가하였지만 문제가 해소 되지 않아 문의드립니다. 버전을 올리고 내리면서 새로운 프로젝트로 생성하여 진행하였으나 구현되지 않아, 남겨주신 프로젝트를 다운받아서 실행보아도 문제 해소가 되지 않아 문의드립니다. [오류가 해소되지 않는 프로젝트] https://drive.google.com/file/d/1S5xBtcu6b3CJ8AP1V7Ji0_ANqICNWoxq/view?usp=drive_link
미해결
2시간으로 끝내는 코루틴
private fun scrapeBookData(browser: Browser, bookLinks: List<String>): List<BookDTO?> { val bestsellers = mutableListOf<BookDTO?>() runBlocking { bookLinks.mapIndexed { i, link -> printWithThread("${i} 시작") val page = browser.newPage() page.navigate(link) printWithThread("${link}에 접속 완료") launch { delay(3000) page.waitForLoadState(LoadState.DOMCONTENTLOADED) val data = page.evaluate( """ () => JSON.stringify({ title: document.querySelector('.prod_title')?.innerText?.trim() || '', author: document.querySelector('.author')?.innerText?.trim() || '', isbn: document.querySelector('#scrollSpyProdInfo .product_detail_area.basic_info table tbody tr:nth-child(1) td')?.innerText?.trim() || '', description: document.querySelector('.intro_bottom')?.innerText?.trim() || '', image: document.querySelector('.portrait_img_box img')?.getAttribute('src') || ''}) """ ).toString() val type = object : TypeToken<Map<String, String>>() {}.type val json: Map<String, String> = Gson().fromJson(data, type) page.close() printWithThread("${link}의 데이터 파싱 완료") var bestseller: BookDTO? = null if (!json.values.all { it.isBlank() }) { bestseller = BookDTO( id = 0L, title = json["title"] ?: "", author = json["author"] ?: "", description = json["description"] ?: "", image = json["image"] ?: "", isbn = json["isbn"] ?: "", ranking = i + 1, favoriteCount = 0 ) } bestsellers.add(bestseller) } } } return bestsellers } [http-nio-8080-exec-1 @coroutine#1] 0 시작 [http-nio-8080-exec-1 @coroutine#1] https://product.kyobobook.co.kr/detail/S000215819502에 접속 완료 [http-nio-8080-exec-1 @coroutine#1] 1 시작 [http-nio-8080-exec-1 @coroutine#1] https://product.kyobobook.co.kr/detail/S000215150862에 접속 완료 [http-nio-8080-exec-1 @coroutine#1] 2 시작 [http-nio-8080-exec-1 @coroutine#1] https://product.kyobobook.co.kr/detail/S000215150863에 접속 완료 [http-nio-8080-exec-1 @coroutine#1] 3 시작 [http-nio-8080-exec-1 @coroutine#1] https://product.kyobobook.co.kr/detail/S000215150882에 접속 완료 [http-nio-8080-exec-1 @coroutine#1] 4 시작 [http-nio-8080-exec-1 @coroutine#1] https://product.kyobobook.co.kr/detail/S000215150895에 접속 완료 [http-nio-8080-exec-1 @coroutine#1] 5 시작 [http-nio-8080-exec-1 @coroutine#1] https://product.kyobobook.co.kr/detail/S000215150892에 접속 완료 [http-nio-8080-exec-1 @coroutine#1] 6 시작 [http-nio-8080-exec-1 @coroutine#1] https://product.kyobobook.co.kr/detail/S000000610612에 접속 완료 [http-nio-8080-exec-1 @coroutine#1] 7 시작 [http-nio-8080-exec-1 @coroutine#1] https://product.kyobobook.co.kr/detail/S000001632467에 접속 완료 [http-nio-8080-exec-1 @coroutine#1] 8 시작 DOM객체가 로드되는데까지 시간이 오래 걸려서 페이지들을 한번에 호출하고 DOM객체가 로드되는 시간을 공유하고 객체가 로드되는대로 데이터를 가져오려고 했습니다 접속하는건 메인 코루틴이 하게하고 반복문만큼 launch로 코루틴을 만들어서 각 DOM객체가 만들어지면 데이터를 파싱하려고 했으나 delay(3000)때문에 3초마다 메인코루틴이 접속하는 것 같습니다. 하지만 delay(3000)을 없애도 같은 결과가 나옵니다 메인 코루틴이 거의 3초느낌으로 웹페이지에 접속을 합니다 launch를 하나 더 만들어서 페이지를 호출하는것도 코루틴 처리를 하면 launch 바깥부분은 page객체를 받지못해 컴파일 오류가 뜹니다 이 상황을 어떻게 돌파해야하는지 감이 잘 안오는데 힌트 주실 수 있을까요? ㅠㅠ
미해결
[초급편] 안드로이드 커뮤니티 앱 만들기(Android Kotlin)
7강 데이터바인딩 강의 부분에서 데이터 바인딩을 이용해서 회원가입 하는 코드로 바꾸니까 아래와 같은 에러가 뜨는데 혹시 이유를 알 수 있을까요?? 첫번째 방법으로 알려주신 코드에서는 정상 작동합니다. 2025-02-25 15:06:55.135 21860-21860 AndroidRuntime com...mple.login_noticeborad_sample E FATAL EXCEPTION: main Process: com.example.login_noticeborad_sample, PID: 21860 java.lang.IllegalArgumentException: Given String is empty or null at com.google.android .gms.common.internal.Preconditions.checkNotEmpty( com.google.android .gms:play-services-basement@@18.5.0:2) at com.google .firebase.auth.FirebaseAuth.createUserWithEmailAndPassword( com.google .firebase:firebase-auth@@23.2.0:8) at com.example.login_noticeborad_sample.MainActivity.onCreate$lambda$2(MainActivity.kt:56) at com.example.login_noticeborad_sample.MainActivity.$r8$lambda$DKhI7UPT1Ljx4UCoyoqWCv0Qxw4(Unknown Source:0) at com.example.login_noticeborad_sample.MainActivity$$ExternalSyntheticLambda1.onClick(D8$$SyntheticClass:0) at android.view.View.performClick(View.java:8028) at android.view.View.performClickInternal(View.java:8005) at android.view.View.-$$Nest$mperformClickInternal(Unknown Source:0) at android.view.View$ PerformClick.run (View.java:31229) at android.os.Handler.handleCallback(Handler.java:959) at android.os.Handler.dispatchMessage(Handler.java:100) at android.os.Looper.loopOnce(Looper.java:232) at android.os.Looper.loop(Looper.java:317) at android.app .ActivityThread.main(ActivityThread.java:8705) at java.lang.reflect.Method.invoke(Native Method) at com.android .internal.os.RuntimeInit$ MethodAndArgsCaller.run (RuntimeInit.java:580) at com.android .internal.os.ZygoteInit.main(ZygoteInit.java:886)
해결됨
아이비의 안드로이드 드릴
private 저장소 멤버로 초대했다고 공지가 떴는데, 404 페이지가 뜹니다 ㅠ. 디스코드도 별도의 연락이 오지 않았습니다.
미해결
[왕초보편] 앱 8개를 만들면서 배우는 안드로이드 코틀린(Android Kotlin)
안녕하세요 강사님. 제가 파이어베이스 익명로그인 강의를 들으면서 노션에 기록해주신 2024년 이후 유튜브 영상으로 따라하고 강의 영상 그대로 따라했는데 아래와 같이 auth를 참조할 수 없다는 에러가 떠서 몇 시간동안 해결방법 찾으면서 해봤는데 다 안돼서 아예 프로젝트를 다 지우고 처음부터 꼼꼼히 다시 따라해보며 했는데도 안돼서 도움 요청합니다ㅜㅜ e: file:///C:/Users/tnghk/AndroidStudioProjects/fb_login_test/app/src/main/java/com/example/fb_login_test/MainActivity.kt:13:37 Unresolved reference: auth 깃허브 공유는 아래 처럼 url로 공유해도 괜찮나요?? https://github.com/SuHwanYY/android
미해결
2시간으로 끝내는 코루틴
안녕하세요! 강의를 잘보고 있습니다. 강의를 보다가 질문이 있는데요,. 같은 디스패쳐를 썼을때, 자식 코루틴이 코루틴 스코프를 새로 만드는게 어떤 효과를 기대할 수 있나요? 스코프를 새로 만드는게 어떤 이점이 있는지 잘이해가 안되는 것 같습니다.. 또 부모코루틴안에서 새로운 코루틴 스코프를 만든 자식 코루틴과 그냥 자식 코루틴 이 2개가 있을 때 동작하는 방식에서도 차이가 있는지 궁금합니다!
해결됨
2시간으로 끝내는 코루틴
안녕하세요. 저는 오랜기간 동안 Java, Spring을 기반으로 웹 프로그래밍 해왔고 이번에 일부 프로젝트를 코틀린 + Spring을 기반으로 구현을 검토하게 되어 해당 강의를 듣게 되었습니다. 사실 Java, Spring 기반이다 보니 동기방식의 프로그램에 익숙해져 있고 러닝커브나 디버깅의 어려움, DB등의 관련 라이브러리들이 아직 안정화 수준이 아니라 판단하여 WebFlux 도입을 꺼려왔고, 일부 RestTemplate 호출등의 병렬 처리가 필요할 경우 CompletableFuture에 별도 ThreadExecutor를 사용해 처리하는 방법을 주로 사용해 왔습니다. 이번 신규 프로젝트도 우선은 Spring 프레임워크를 사용하기 때문에 Webflux가 아닌 Spring MVC 기반의 동작이 될 예정인데요, 그러다 보니 강의를 다 들었지만 coroutine을 어떻게 활용할 수 있을지 감을 잘 못잡은 상태입니다. 가령 RestTemplate이나 RestClient 등의 동기식 block 기반의 통신 시 호출 부를 CoroutineScope(Dispatchers.Default).async { } 으로 감싸서 호출을 하게 되면 두개의 API가 각각 1초가 걸린다면 1.05 정도로 가능하겠지만 이런 패턴은 기존 자바에서 CompletableFuture로 충분히 가능했던더라 coroutine을 잘 활용했다고 보는게 맞는지 궁금한데요, coroutine의 장점을 활용하려면 결국 API 통신 같은 경우 가능하면 webclient나 ktorClient 등을 통해 non-block으로 변경해서 처리를 해야 하는건지 궁금하고, 코틀린으로 웹애플리케이션을 구현한다고 했을때 spring을 사용하면 webflux 도입은 약간 필수? 같은 개념으로 봐야 하는건지 궁금합니다. (강의 마지막 Continuation 예제에서 repository call을 두번 하는 부분도 non-block으로 DB처리가 가능해야 의미있는 coroutine 동작이 가능한거겠죠??) 질문을 요약하자면, Spring MVC 구조에서 block 기반의 로직 처리 시 CoroutineScope(Dispatchers.Default).async { } 으로 감싸서 호출하는 구조가 coroutine의 장점을 활용한 방식이 맞을까요? 1번이 장점이 아니라면 non-blocking으로 처리 가능한 webclient나 ktorClient을 사용해야 해야 할까요? 보통 Spring에서 coroutine을 활용하려면 webflux를 사용하는게 기본일지? 혹시 다른 활용 방안은 없을지? 입니다. 감사합니다.
미해결
[초급] 찍어먹자! 코틀린과 Spring Security + JWT로 회원가입 만들기
안녕하세요. 본 수강 열심히 잘 듣고있습니다~ 감사합니다. 제가 Postman으로 로그인하고나서 Token을 발행할 시에 postman에 테스트해본 결과 결과코드는 SUCCESS라고 나오고 data에도 Bearer에 토큰이 들어간것을 확인하였습니다. 그러나 메시지에는 정상완료가 아닌 에러가 발생했다고 해서 제가 아무리 코드를 확인하였지만 어디부분에서 잘못된건지 확인이 힘들었습니다. 사실은 선생님께서 보내주신 파일을 업로드안하고 강의보면서 제가 직접 코드를 타이핑쳤었는데 손코딩을해서 그런지 오타가 있을 것으로 사료됩니다. 불가피하게 파일을 덮어씌우는게 좋을까요?
미해결
코틀린 고급편
파라미터 name:String에서 val name 이 안되는데 이유가 뭔지 모르겠네요;;
미해결
[왕초보편] 앱 8개를 만들면서 배우는 안드로이드 코틀린(Android Kotlin)
안녕하세요, 강사님. 저는 현재 안드로이드 강의를 수강하고 있는 학생입니다. 강의 내용을 따라가고 있는데, 파이어베이스를 활용한 익명로그인, 이메일로그인, 데이터베이스 활용하기에서 막혔습니다. 문제 부분: import문이나 코드에는 빨간줄 없이 다 정상입니다. 다만 앱을 실행하면 auth를 참조할 수 없다고 뜨면서 빌드가 멈춥니다. 시도한 방법: 질문게시판에 있는 해결 방법과 스택오버플로우, chat gpt등을 활용해서 문제를 해결하려 했지만 계속 오류가 뜹니다. import 부분에서 현재 버전은 자바와 코틀린 동일한 것을 사용할 수 있다고 해서 그냥 auth도 써보고 ktx.auth도 사용해봤습니다. 하지만 두개 모두 같은 오류가 발생합니다. 제가 짠 코드는 깃허브에 올려뒀습니다. https://github.com/hyoonpark/kotlin-matbogi/tree/main/day6/fblogin 이 부분에 대해 추가적인 설명이나 자료를 제공해주시면 정말 감사하겠습니다. 감사합니다.
미해결
2시간으로 끝내는 코루틴
강의 정말 재미있게 잘 듣고 있습니다. 이제 막바지네요 :) 제공해주신 샘플코드를 보면서도 코틀린이 코루틴을 어떻게 중단하는지는 이해가 잘 안되었습니다. 코드상(예제나 디컴파일된 코드)에 딱히 코루틴을 중단 시키는 부분이 보이지 않습니다. 재개의 경우 Continuation의 resumeWith 를 사용할것 같은데, 중단의 경우에는 내부적으로 CoroutineContext 가 활용되는 걸까요 ?
해결됨
코틀린 코루틴 완전 정복
강의에서 Flow나 Channel에 대해 추가로 다루실 예정이 있는지 궁금합니다.
미해결
실전! 코틀린과 스프링 부트로 도서관리 애플리케이션 개발하기 (Java 프로젝트 리팩토링)
안녕하세요 fetch join까지 적용한 후에 테스트 코드 자체가 N+1 문제가 제거된 것은 확인했습니다. 그런데 AfterEach 함수에서 deleteAll을 하는 과정에 fetch join 이전의 N+1 쿼리랑 유사한 쿼리가 나오는데 이게 delete 쿼리를 날리기 위한 데이터를 가져오려는 목적인것 같은데 질문이 있습니다. 혹시 deleteAll 이전에 나오는 쿼리도 N+1처럼 동작하는지 테스트 코드이므로 테스트 객체의 모수가 작아 무시해도 되는지 이정도 질문하고 싶습니다
미해결
[왕초보편] 앱 8개를 만들면서 배우는 안드로이드 코틀린(Android Kotlin)
선생님 4일 전에 질문 달았는데 다시한번 질문드립니다! 코드도 맞게 입력하고, 재부팅, 새로운 파일로 빌드도 다 해봤는데도 토스트 메세지가 뜨지 않아서 프로젝트 압축 파일 올려놨습니다ㅠㅠ 이유를 모르겠습니다.. https://drive.google.com/drive/folders/1qDl-Spv709ko__1M-HI0RItbNR9jhtF_?usp=sharing
미해결
입문자를 위한 Spring Boot with Kotlin - 나만의 포트폴리오 사이트 만들기
안녕하세요! 프론트엔트 초보 개발자입니다. 백엔드는 단 한 번도 건드려본적이 없어서 어떤 구조인지도 잘 몰라요 ㅠㅠ 아직 정말 지식 수준이 얕습니다. 이 강의를 완강한 후에, 리액트로 프론트를 만져보고 싶은데요... 이후에 프로젝트에서 프론트, 백 따로 개발 후에 둘이 연결을 하려면 어떻게 해야하나요..? 초보자 수준에서 간단히 설명 가능한가요..?
미해결
[중급편] 코인 가격 모니터링 앱 제작 (Android Kotlin)
bottom navigation view를 추가했습니다. 하단 탭의 색깔이 아래와 같이 나옵니다. 눌렀을 때 아이콘 색깔도 빨강색으로 안변하고 그냥 보라색 동그라미가 그려지는데요. 강의처럼 눌렀을 때 아이콘 색깔만 primary color로 나오게 하려면 어떻게 해야 하나요? primary color는 빨갛게 지정해서 다른 곳은 빨갛게 잘 나옵니다. compile sdk, target sdk = 34 입니다.