묻고 답해요
161만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
미해결코틀린 고급편
val 키워드도 setValue가 있나요?
by lazy 위임 프로퍼티 강의에서 by 키워드를 사용하려면 getValue 함수와 setValue 함수가 필요하다고 하셨는데 val 키워드로 변수 선언 시 setValue가 존재할수 없지 않나요? var 키워드 -> getValue(),setValue()val 키워드 -> getValue()로 by 키워드를 사용할 수 있는것같아 질문드립니다.
-
미해결코틀린 고급편
반공변성 질문드립니다.
Cage4 클래스로 반공변성 설명해주시는 부분에 실제 사용 예제가 없는 것 같습니다.혹시 다른 곳처럼 예시코드 부탁드려도 될까요?
-
해결됨은행 서버 프로젝트 실습을 통해 배우는 코틀린 마스터 클래스
redisConfig 질문입니다
package org.example.config import org.redisson.Redisson import org.redisson.api.RedissonClient import org.redisson.config.Config import org.springframework.beans.factory.annotation.Value import org.springframework.context.annotation.Bean import org.springframework.context.annotation.Configuration import org.springframework.context.annotation.Primary import org.springframework.data.redis.connection.RedisConnectionFactory import org.springframework.data.redis.connection.RedisStandaloneConfiguration import org.springframework.data.redis.connection.lettuce.LettuceClientConfiguration import org.springframework.data.redis.connection.lettuce.LettuceConnectionFactory import org.springframework.data.redis.core.RedisTemplate import org.springframework.data.redis.serializer.Jackson2JsonRedisSerializer import org.springframework.data.redis.serializer.StringRedisSerializer import java.time.Duration @Configuration class RedisConfig { @Bean fun redisConnectionFactory( @Value("\${database.redis.host}") host: String, @Value("\${database.redis.port}") port: Int, @Value("\${database.redis.password:${null}}") password: String?, @Value("\${database.redis.database:${0}}") database: Int, @Value("\${database.redis.timeout:${10000}}") timeout: Long, ) : LettuceConnectionFactory { val config = RedisStandaloneConfiguration(host, port).apply { password?.let { setPassword(it) } setDatabase(database) } val clientConfig = LettuceClientConfiguration.builder() .commandTimeout(Duration.ofSeconds(timeout)) .build() return LettuceConnectionFactory(config,clientConfig) } @Bean @Primary fun redisTemplate(connectionFactory : RedisConnectionFactory): RedisTemplate<String, String> { val template = RedisTemplate<String, String>() template.connectionFactory = connectionFactory template.keySerializer = StringRedisSerializer() template.valueSerializer = Jackson2JsonRedisSerializer(String::class.java) template.hashKeySerializer = StringRedisSerializer() template.hashValueSerializer = Jackson2JsonRedisSerializer(String::class.java) template.afterPropertiesSet() return template } @Bean fun redissonClient( @Value("\${database.redisson.host}") host: String, @Value("\${database.redisson.timeout}") timeout: Int, @Value("\${database.redisson.password:${null}}") password: String?, ) : RedissonClient { val config = Config() val singleServerConfig = config.useSingleServer() .setAddress(host) .setTimeout(timeout) if (!password.isNullOrBlank()) { singleServerConfig.setPassword(password) } return Redisson.create(config).also { println("redisson create success") } } }An annotation argument must be a compile-time constant와 같은 에러가 나는데 강의 파일 코드로도 같은 에러가 납니다
-
미해결2시간으로 끝내는 코루틴
코루틴과 가상 스레드의 차이가 궁금합니다.
안녕하세요. 좋은 강의 감사드립니다.코루틴에 대한 설명을 듣고 보니,자바 21에 등장한 Virtual Thread와 그 개념이 매우 비슷하다고 생각이 들었습니다.코루틴을 실행시키는 스레드는 어찌보면 Virtual Thread 의 carrier thread로 생각할 수 있고,코루틴 자체를 virtual thread 라고 생각해보면,결국 두 개념이 용어만 다를 뿐 결과적으로는 동일한 기능(?)을 수행하는 것으로 보입니다.제가 궁금한 것은 자바에서 Virtual Thread로 작성된 코드가 100퍼센트 코틀린 - 코루틴으로 변환 가능한지,그리고 그 역도 성립하는 것인지 궁금합니다.감사합니다.
-
해결됨Claude + IntelliJ로 TodoList 개발하기 - MCP 완전 정복
클로드 설정 변경해도 mcp 서버 연결이 되지 않습니다.
위와같이 설정 저장후 재시작 하면 서버 연결 실패가 뜹니다. 원인을 알 수 있을까요? intellij랑 클로드는 최신 버전입니다.
-
해결됨치킨값으로 시작하는 Spring CRUD (With Kotlin)
MySQL 연결 문제
안녕하세요! 강의를 보면 콘솔 창에 DB 연결된 부분이 나오는데 처는 아래처럼 나오는데 어떻게 해결하면 좋을까요? 이 부분부터 막히니 다음으로 넘어갈 수가 없습니다 답변 기다리겠습니다! 감사합니다 Database JDBC URL [Connecting through datasource 'HikariDataSource (HikariPool-1)'] Database driver: undefined/unknown Database version: 8.0.42 Autocommit mode: undefined/unknown Isolation level: undefined/unknown Minimum pool size: undefined/unknown Maximum pool size: undefined/unknown
-
미해결코틀린 문법부터 실무까지 (실전 자바->코틀린 변환)
@MockK에서 null을 할당하는 이유?
37강 5분 11초에서 "처음에는 null로 되어있지만 값을 한 번 세팅할 수 있게 해주고 싶다."라고 하셨는데처음부터 null을 할당하지 않으면 lateinit을 사용 안 할 수도 있는 거 아닌가요?테스트코드에 대한 이해가 하나도 없어서 고른 강의인지라 질문의 깊이가 너무 없지만 답변주시면 감사합니다!!
-
해결됨[2023 코틀린 강의 무료제공] 기초에서 수익 창출까지, 안드로이드 프로그래밍 A-Z
안드로이드스튜디오 버전이 어떻게 되는지요?
앱을 만들고 싶어 강의를 시작했습니다.이해하기 쉽도록 강의가 되어 있어서 좋네요그런데 강의에서 보여지는 안드로이드스튜디오 소스 스타일과제가 다운받은 android-studio-2024.3.2.15-windows.exe 버전이 상이해서 문의 드립니다. new project->empty project로 만들고 나면 layout에는 activitymain도 없고, mainactivity의 소스 내용도 상이합니다.안드로이드스튜디오를 이제 처음 켜보니 어떻게 해야할지 모르겠어요..ㅠㅠ 안드로이드스튜디오 버전을 강의에서 사용한 버전으로 바꿔야 하는지... 아님 현재 버전을 이용할 경우 어떻게 하면 강의를 잘 따라갈수 있는지...난관에 붙혀서 문의 드립니다.
-
미해결자바 개발자를 위한 코틀린 입문(Java to Kotlin Starter Guide)
범위 비교 질문
안녕하세요.범위를 비교하는 방식의 성능차이에 대해서 궁금한데요.1번1<=x && 3>=x2번x in 1..31번방식에 비해 2번방식은 수열을 순회하면서 수열에 포함 여부를 확인하게 되는 방식일거 같은데, 제 예상이 맞을까요? 그렇다면 성능상 더 좋지 않을거 같아서요.감사합니다.
-
미해결[중급편] 친절한 JETPACK 개론 <하> (Android Kotlin)
suspend fun 과 viewModelScope.launch 에 대해 궁금합니다.
강의를 보니 viewModel 에서 Room 에 CRUD 를 하기 위해서는 비동기 처리를 해야 하고,1. 이를 위해 viewModelScope.launch 를 사용하는 것 같은데 맞을까요?viewModel 의 CRUD 함수를 suspend fun 으로 만들면 viewModelScope.launch 를 안써도 되는 건가요?
-
해결됨코틀린 코루틴 완전 정복
왜 runBlocking 종료로 메인스레드가 종료될까요?
새로운 루트Job이 dispatchers.IO 스레드에 의해 실행되면, 메인스레드가 기다려야하지 않나요?dispatchers.IO 에 의해 할당되는 실행 스레드는 데몬스레드가 아닐거같은데 말이죠..
-
미해결[2023 코틀린 강의 무료제공] 기초에서 수익 창출까지, 안드로이드 프로그래밍 A-Z
스크래치 파일 Run 안되는 오류 발생
안드로이드 스튜디오 설치 후 SDK 다운 받은 뒤 강의 내용처럼 "Scratch File" 생성한 뒤 "Interactive Mode"해제하고 "Run Scratch File" 했는데, 아래와 같은 오류가 생겼습니다. 경로 설명C드라이브 용량이 없어 F드라이브에 설치했습니다.폴더 이름은 전부 영어로 했습니다. 오류: 기본 클래스 org.jetbrains.kotlin.idea.scratch.generated.ScratchFileRunnerGenerated을(를) 찾거나 로드할 수 없습니다.원인: java.lang.ClassNotFoundException: org.jetbrains.kotlin.idea.scratch.generated.ScratchFileRunnerGenerated
-
해결됨코틀린 코루틴 완전 정복
cancel 질문드립니다.
안녕하세요 강의 잘 듣고 있습니다.Code4-17에서 dispatchers를 사용하지 않고 코드를 그대로 실행하면 while문 코루틴이 cancel이 되지 않는데 왜 그런걸까요??메인스레드 1개의 스레드에서만 동작하여 상태를 바꿀 수 없기 떄문일까요??
-
미해결[왕초보편] 앱 8개를 만들면서 배우는 안드로이드 코틀린(Android Kotlin)
강의화면과 다른데 맞게진행되는것인가요...????
-
미해결[왕초보편] 앱 8개를 만들면서 배우는 안드로이드 코틀린(Android Kotlin)
파이어베이스 질문
파이어베이스에서 제공하는 코드가 달라요 그리고 gradle project에서도 처음 studio 만들때 아래 사진처럼 3줄밖에 코드가없어요
-
미해결실전! 코틀린과 스프링 부트로 도서관리 애플리케이션 개발하기 (Java 프로젝트 리팩토링)
이 질문이 왜 없는지 이해가 안 되지만 문제 인식 및 해결 방법 남깁니다.
getStats() 안에 쿼리 작성할 때, book에서 id와 name은 불러와지는데, type이 불러지지 않습니다. QBook 클래스에서 확인해보니 final type만 없더군요. 찾아보니 이유는 이러합니다. "Kotlin에서 type은 리플렉션/메타프로그래밍에서 자주 사용되는 예약 필드명이고, QueryDSL이 Q 클래스 생성 시 내부적으로 getType()을 쓰기 때문에 필드명 충돌이 발생했을 가능성이 높아 생성되지 않을 수 있습니다. 이러한 경우 ./gradlew clean kaptKotlin 명령어로 재빌드 한 후 Q 클래스를 다시 생성하거나 type 명칭을 bookType으로 수정하여 해결할 수 있습니다."저는 ./gradlew clean kaptKotlin로 재빌드하니 해결됐습니다.
-
미해결[초급편] 안드로이드 커뮤니티 앱 만들기(Android Kotlin)
이미지가 기본이미지인지 확인
이미지 업로드 처리 여부를 결정하기 위해서 개복치개발자님이 말씀하신 것처럼 기본이미지 인지 확인하는 코드를 짜봤는데 우선 실행했을 때 에러가 나는 부분은 없는 것 같습니다.첨부된 코드가 개복치 개발자님이 의도하신 내용이 맞는지 또 문제가 없는지 궁금합니다!
-
미해결[왕초보편] 앱 8개를 만들면서 배우는 안드로이드 코틀린(Android Kotlin)
ActivityMainBinding에 오류가 납니다
dataBinding{ enable = true }이렇게 했는데도 오류가 납니다
-
미해결[왕초보편] 앱 8개를 만들면서 배우는 안드로이드 코틀린(Android Kotlin)
선생님 onBackPressed 작동이 안되는거 같습니다
뒤로가기 버튼 누르면 바로 나가집니다.
-
미해결하울의 안드로이드 인스타그램 클론 만들기
CloudFireStore에 데이터가 들어가지 않아요
//Promise method (권장) storageRef?.putFile(photoUri!!)?.continueWithTask { task: Task<UploadTask.TaskSnapshot> -> return@continueWithTask storageRef.downloadUrl }?.addOnSuccessListener { uri-> var contentDTO = ContentDTO() contentDTO.imageUrl = uri.toString() contentDTO.uid = auth?.currentUser?.uid contentDTO.userId = auth?.currentUser?.email contentDTO.explain = findViewById<EditText>(R.id.addphoto_edit_explain).text.toString() contentDTO.timestamp = System.currentTimeMillis() // :: firestore에 들어가지 않음!! firestore?.collection("images")?.document()?.set(contentDTO) setResult(Activity.RESULT_OK) finish() } 강의처럼 진행했고 오류도 안나고 하는데도 Cloud Firestore에 들어가지 않습니다..ㅠ 규칙도 다음과 같이 정의했습니다.