묻고 답해요
156만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
미해결입문자를 위한 Spring Boot with Kotlin - 나만의 포트폴리오 사이트 만들기
테스트 코드 작성 중 AssertionError 발생
테스트 코드 작성에서 오류가 뜨는데 어떤 오륜지 잘 모르겠습니다.beforeAll() 함수에서는 Assertions 임포트 잘 되는거같은데 테스트 시작이 안되네요..
-
미해결[중급편] 친절한 JETPACK 개론 <상> (Android Kotlin)
Retrfit 에러
개발자님 혹시 제가 android 2024.2.2 버전을 사용하고 있는데 이 버전에서는 dependencies부분에 retrofit2을 어떻게 추가해야하는지 알 수 있을까요? 아래와 같이 두 방법으로 시도해봤는데 추가가 안되는 거 같아 질문드립니다. implementation("com.squareup.retrofit2:retrofit:2.9.0") implementation("com.squareup.retrofit2:converter-gson:2.9.0") implementation(libs.retrofit) implementation(libs.converter.gson)
-
미해결코틀린 함수형 프로그래밍 - 입문편
안녕하세요 강사님, discountCache 처리 방식에 대해 질문드립니다.
@Component class DiscountAdapter { private val discountCache = CacheUtil<Int, Double>() fun getDiscountRate(): (Int) -> Double = { amount -> discountCache.getOrLoad(amount) { when (amount) { in 100..1000 -> 0.1 in 1001..10000 -> 0.2 else -> 0.0 }} } }처럼 서비스는 굳이 고치지 않고 DiscountAdapter 클래스 내에서 캐시처리 하는 방법은혹시 함수형 프로그래밍 방식에 어긋나는 부분이 있을까요?
-
해결됨[초중급편] 안드로이드 데이팅 앱 만들기(Android Kotlin)
CardStackView
안녕하세요. 제가 CardStackView구현 강의를 보며 그대로 따라하고 dependencyResolutionManagement { repositoriesMode.set(RepositoriesMode.FAIL_ON_PROJECT_REPOS) repositories { google() mavenCentral() jcenter() //추가 maven { url = uri("https://jitpack.io") } } }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) implementation("com.yuyakaido.android:card-stack-view:2.3.4") }이렇게 추가 했는데 CardStackView가 자동완성되지 않고 라이브러리도 추가 되지 않고 있습니다. 다른 질문글과 구글링을 해가며 다른 방법들도 시도해보다가 도저히 해결이 안돼서 질문 올립니다ㅠㅠ 아래에 깃허브 링크 공유했습니다 https://github.com/SuHwanYY/Sogeting_App
-
미해결[2023 코틀린 강의 무료제공] 기초에서 수익 창출까지, 안드로이드 프로그래밍 A-Z
kotlin 버전과 ksp 버전 꼭 맞추셔야 해요!!
-
해결됨입문자를 위한 Spring Boot with Kotlin - 나만의 포트폴리오 사이트 만들기
메모리 크기
JVM 관련프로그램인데 micro인 1GB로 메모리를 설정하면 프로그램이 뻗을 일은 없을까요?(1번과 연계해서) 현재 SSR로 화면 그려주고 있는데, api처리 + 빈 컨테이너(Springboot) + Kotlin + 템플릿엔진(타임리프) 까지 했을때 1GB를 초과하지는 않으셧는지도 궁금합니다!만약에 화면을 다른 언어/라이브러리(Vue, React)로 개발하게 된다면 CORS라던지 건드려야 될게 많아지고, 추가로 node 환경을 또 띄워야 되서 메모리가 부족하게 될 수도 있을까요?
-
미해결[초급편] 안드로이드 커뮤니티 앱 만들기(Android Kotlin)
67강 댓글
안녕하세요 강사님 혹시 67강에서 댓글 기능을 구현 한 후에 댓글을 보면 입력한 댓글과 밑에 입력한 시간 가운데에 content라는 글자가 계속 써져있는데 혹시 저걸 없애는 방법이 있을까요?
-
미해결입문자를 위한 Spring Boot with Kotlin - 나만의 포트폴리오 사이트 만들기
클래스 생성 강의 수강 중 오류 발생
따라 적었는데 프로퍼티 id가 한번도 사용되지 않았다는 오류가 떠요..
-
미해결스프링은 어려워! 코틀린과 Ktor로 백엔드/서버개발 기초정복 (커피주문시스템 개발)
jar 파일 실행 오류
안녕하세요.jar 파일 실행 시 사진과 같이 로그가 출력 되고 있습니다. initData 부분의 로그도 나오지 않고 URL로 접속도 안되는데 어느 부분이 문제일까요?
-
해결됨치킨 + 맥주값으로 SpringAI를 사용해 AI서버 만들어보기 (With ChatGPT)
Media Deprecated
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)
CardStackView 오류 정상적으로 구현이 되지 않습니다.
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강 데이터바인딩 에러
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)
-
해결됨아이비의 안드로이드 드릴
github 저장소 질문 드립니다 !
private 저장소 멤버로 초대했다고 공지가 떴는데,404 페이지가 뜹니다 ㅠ. 디스코드도 별도의 연락이 오지 않았습니다.
-
미해결[왕초보편] 앱 8개를 만들면서 배우는 안드로이드 코틀린(Android Kotlin)
Unresolved reference: auth 에러
안녕하세요 강사님.제가 파이어베이스 익명로그인 강의를 들으면서 노션에 기록해주신 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시간으로 끝내는 코루틴
7강에 대해서 궁금증이 있는데요
안녕하세요! 강의를 잘보고 있습니다.강의를 보다가 질문이 있는데요,.같은 디스패쳐를 썼을때, 자식 코루틴이 코루틴 스코프를 새로 만드는게 어떤 효과를 기대할 수 있나요? 스코프를 새로 만드는게 어떤 이점이 있는지 잘이해가 안되는 것 같습니다..또 부모코루틴안에서 새로운 코루틴 스코프를 만든 자식 코루틴과 그냥 자식 코루틴 이 2개가 있을 때 동작하는 방식에서도 차이가 있는지 궁금합니다!
-
해결됨2시간으로 끝내는 코루틴
Spring MVC에서 corountine 활용 방안
안녕하세요. 저는 오랜기간 동안 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로 회원가입 만들기
로그인 후 Token 발행 시 postman 에러메시지
안녕하세요. 본 수강 열심히 잘 듣고있습니다~ 감사합니다.제가 Postman으로 로그인하고나서 Token을 발행할 시에 postman에 테스트해본 결과 결과코드는 SUCCESS라고 나오고 data에도 Bearer에 토큰이 들어간것을 확인하였습니다. 그러나 메시지에는 정상완료가 아닌 에러가 발생했다고 해서 제가 아무리 코드를 확인하였지만 어디부분에서 잘못된건지 확인이 힘들었습니다. 사실은 선생님께서 보내주신 파일을 업로드안하고 강의보면서 제가 직접 코드를 타이핑쳤었는데 손코딩을해서 그런지 오타가 있을 것으로 사료됩니다. 불가피하게 파일을 덮어씌우는게 좋을까요?
-
미해결코틀린 고급편
abstract class Fish(name:String):Animal(name)
파라미터 name:String에서 val name 이 안되는데 이유가 뭔지 모르겠네요;;
-
미해결[왕초보편] 앱 8개를 만들면서 배우는 안드로이드 코틀린(Android Kotlin)
Unresolved reference: auth
안녕하세요, 강사님.저는 현재 안드로이드 강의를 수강하고 있는 학생입니다. 강의 내용을 따라가고 있는데, 파이어베이스를 활용한 익명로그인, 이메일로그인, 데이터베이스 활용하기에서 막혔습니다.문제 부분: import문이나 코드에는 빨간줄 없이 다 정상입니다. 다만 앱을 실행하면 auth를 참조할 수 없다고 뜨면서 빌드가 멈춥니다.시도한 방법: 질문게시판에 있는 해결 방법과 스택오버플로우, chat gpt등을 활용해서 문제를 해결하려 했지만 계속 오류가 뜹니다. import 부분에서 현재 버전은 자바와 코틀린 동일한 것을 사용할 수 있다고 해서 그냥 auth도 써보고 ktx.auth도 사용해봤습니다. 하지만 두개 모두 같은 오류가 발생합니다.제가 짠 코드는 깃허브에 올려뒀습니다.https://github.com/hyoonpark/kotlin-matbogi/tree/main/day6/fblogin이 부분에 대해 추가적인 설명이나 자료를 제공해주시면 정말 감사하겠습니다.감사합니다.