묻고 답해요
164만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
미해결실전! 코틀린과 스프링 부트로 도서관리 애플리케이션 개발하기 (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에 들어가지 않습니다..ㅠ 규칙도 다음과 같이 정의했습니다.
-
해결됨Claude + IntelliJ로 TodoList 개발하기 - MCP 완전 정복
mcp를 github에서 download 받아서 intelij에서 사용 하는 순서을 알 려 주세요려 주
- 학습 관련 질문을 남겨주세요. 구체적으로 적을수록 좋아요!- 마크다운과 단축키를 활용하면 글을 더 편하게 작성할 수 있어요.- 커뮤니티 질문 & 답변에 비슷한 내용이 있었는지 먼저 검색해보세요.- 서로 예의를 지키며 존중하는 분위기를 함께 만들어가요.- 잠깐! 인프런 서비스 관련 문의는 1:1 문의하기를 이용해 주세요
-
미해결하울의 안드로이드 인스타그램 클론 만들기
firebase storage에서 putfile해도 이미지 업로드가 안되요..
var storageRef = storage?.reference?.child("images")?.child(imageFileName) // FileUpload storageRef?.putFile(photoUri!!)?.addOnSuccessListener { Toast.makeText(this, getString(R.string.upload_success), Toast.LENGTH_LONG).show() }이런식으로 강의랑 똑같이해도 에러는 안나지만Toast메시지가 안뜹니다. 제 버전과 storage 규칙은 아래와 같습니다.// 버전 firebaseAuth = "23.2.0" firebaseStorageKtx = "21.0.1" // 규칙 allow read, write: if false;
-
미해결[2023 코틀린 강의 무료제공] 기초에서 수익 창출까지, 안드로이드 프로그래밍 A-Z
Git에서 다운받은 폴더가 안열리는 분들
섹션 3에서 git 파일들을 다운받아서 열면 gradle 버전, JDK 버전이 안맞는다고 에러가 뜨네요.이거저거 찾아서 해봐도 도저히 안되던데, 그냥 구버전 안드로이드 스튜디오를 받아서 하니 되네요.비슷한 문제 있는 분들은 기존 버전 완전 삭제하고 (설정 파일 등까지 모두 삭제) 재설치 해보세요. https://developer.android.com/studio/archive여기서 Android Studio Flamingo | 2022.2.1 Patch 2 May 24, 2023 버전 쓰시면 됩니다.(사이트가 안뜨면 언어를 영어로 바꾸시면 뜰 거에요)
-
미해결2시간으로 끝내는 코루틴
Coroutine과 ThreadLocal관련 질문
안녕하세요 선생님, 강의 정말 잘 듣고 있습니다. 한가지 강의를 들으면서 궁금한 점이 생겨 질문 드립니다.설명해주신 내용을 들었을 때, 코루틴은 특정 스레드와 종속적인 관계가 아니기 때문에 여러 스레드에 걸쳐 실행될 수 있다고 말씀해주셨습니다."코루틴1의 코드1은 스레드1에서 실행되었지만, 코루틴1의 코드2는 스레드2에서 실행되었다!"그런데 아래의 예시의 경우에는 문제가 존재할지 궁금합니다.스레드1에서 코루틴1의 코드1은 ThreadLocal을 만들어 사용하다가 중단 지점에 걸려 멈췄습니다.그 후에 코루틴1의 코드2가 실행될 때, 스레드2에서 실행되었습니다.코드2에는 코드1에서 만든 ThreadLocal을 가져다 쓰는 경우스레드1에 종속적인 ThreadLocal을 스레드2에서 가져다 쓸 경우 문제가 발생할 것 같은데.. (1)코루틴에서 ThreadLocal을 사용하는 것은 안티패턴으로 취급될까요?이보다 좀 더 근본적인 질문으로 돌아가서 (2)코루틴을 사용할 때 ThreadLocal을 사용하는 게 자주 있는 일일까요?
-
미해결[왕초보편] 앱 8개를 만들면서 배우는 안드로이드 코틀린(Android Kotlin)
>app>res>layout 이 존재하지 않습니다.
강의 내용의 안드로이드 스튜디오 버젼이 달라 따라 가는 것에 혼란이 있습니다.APP의 메뉴구조가 다릅니다.>app>res>layout 이 존재하지 않습니다.
-
해결됨은행 서버 프로젝트 실습을 통해 배우는 코틀린 마스터 클래스
SpringBoot + Kotlin에서 Redis 캐싱 사용 관련되서 여쭤봐도 될까요?
강사님 안녕하세요.강의 목차에는 없지만 SpringBoot + Kotlin 환경에서 Redis 캐싱 사용 관련되서도 여쭤봐도 될까요? Kotlin에선 직렬화 + 역직렬화 관련해서 자바 + lombok를 사용했던 방법과 살짝쿵 다르게 써야하더라구요.. 여러 방안을 생각중인데 어떤 방법이 Best Practice인지 궁금해서욥감사합니다.
-
미해결실전! 코틀린과 스프링 부트로 도서관리 애플리케이션 개발하기 (Java 프로젝트 리팩토링)
테스트를 위한 코드
- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! - 먼저 유사한 질문이 있었는지 검색해보세요. - 서로 예의를 지키며 존중하는 문화를 만들어가요. - 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요. 테스트를 위한 코드로 보이는 fun fixture 라는 생성자 만드는 코드를 엔티티 안에 생성해주셨는데테스트가 아니면 따로 사용되지 않을 것 같은 코드를 엔티티 단 안에 작성해도 괜찮나요?
-
해결됨은행 서버 프로젝트 실습을 통해 배우는 코틀린 마스터 클래스
entity 객체 생성을 data class 로 하신 이유가 있을까요?
안녕하세요 강사님!강의 잘보고있습니다 아직 초반이긴한데...entity 클래스 생성하실 때 data class 로 정의하신 이유가 있을까요?
-
미해결입문자를 위한 Spring Boot with Kotlin - 나만의 포트폴리오 사이트 만들기
강의 자료 다운로드에 관해
저도 다른 분들처럼 강의 자료를 다운 받아보니 비어있는 폴더라고 표시되더라고요, 혹시 강의 자료를 따로 다운 받을 수 있는 방법이 있을까요?일단 혹시 몰라 이메일 남겨봅니다.sksdhkd0724@gmail.com
-
해결됨은행 서버 프로젝트 실습을 통해 배우는 코틀린 마스터 클래스
return@logFor을 사용한 이유가 궁금합니다.
return@logFor ResponseProvider.success("SUCCESS") return @logFor ResponseProvider.success("SUCCESS")BankService.kt 의 메서드에서 return @logFor을 사용하는 이유를 잘 모르겠습니다 ㅠㅠ Logging.logFor이란 람다가 끝났다는 걸 바깥함수에 알려주고 이후 로직이 있다면 해당 로직들도 실행하기 위해서일까요? 코알못이라 흙흙
-
해결됨은행 서버 프로젝트 실습을 통해 배우는 코틀린 마스터 클래스
@Transactional.kt에 대한 효용성 질문
강사님 안녕하세요.코틀린을 자바처럼 쓴 제 자신을 혼내면서(?) 열심히 청강 중입니다. 강의에서 작성하신 Transactional.kt 코드를 보면스프링의 TransactionTemplate을 활용한 명시적 트랜잭션 제어 방식과 큰 차이점이 없어 보입니다. 코틀린 래핑방식으로 사용했을때 어떤 장점이 있는걸까요?제가 생각한 래핑 방식의 장점은 다음과 같습니다.코드 스타일, 네이밍, optional 옵션 추가 등에서 약간 더 자유로움예를 들어 여러 종류의 트랜잭션 처리 규칙(특정 로그, 메트릭, 롤백 조건 등)을한곳에 구현해서 공용유틸로 쓰기 좋고,내부 구현을 추후 TransactionTemplate, PlatformTransactionManager 등 다양한 방식으로 손쉽게 변경 가능 트랜잭션 코드에 특별히 넣어야 할 커스텀 공통로직"이 없다면, 웬만하면 @Transactional / TransactionTemplate만으로 충분하다는 생각입니다. 정답은 없고 팀의 규칙마다 다를것 같아요. 강사님 팀에서는 어떤 방식으로 사용중이신가요? 강의 찍어주셔서 감사합니다앗~!(개인적인 사견인데 말씀하시는 중에 '죄송합니다'는 안하셔도 될것 같아요~!)
-
해결됨은행 서버 프로젝트 실습을 통해 배우는 코틀린 마스터 클래스
@Transactional.kt에 대한 효용성 질문
강사님 안녕하세요.코틀린을 자바처럼 쓴 제 자신을 혼내면서(?) 열심히 청강 중입니다. 강의에서 작성하신 Transactional.kt 코드를 보면스프링의 TransactionTemplate을 활용한 명시적 트랜잭션 제어 방식과 큰 차이점이 없어 보입니다. 코틀린 래핑방식으로 사용했을때 어떤 장점이 있는걸까요?제가 생각한 래핑 방식의 장점은 다음과 같습니다.코드 스타일, 네이밍, optional 옵션 추가 등에서 약간 더 자유로움예를 들어 여러 종류의 트랜잭션 처리 규칙(특정 로그, 메트릭, 롤백 조건 등)을한곳에 구현해서 공용유틸로 쓰기 좋고,내부 구현을 추후 TransactionTemplate, PlatformTransactionManager 등 다양한 방식으로 손쉽게 변경 가능 트랜잭션 코드에 특별히 넣어야 할 커스텀 공통로직"이 없다면, 웬만하면 @Transactional / TransactionTemplate만으로 충분하다는 생각입니다. 정답은 없고 팀의 규칙마다 다를것 같아요. 강사님 팀에서는 어떤 방식으로 사용중이신가요? 강의 찍어주셔서 감사합니다앗~!(개인적인 사견인데 말씀하시는 중에 '죄송합니다'는 안하셔도 될것 같아요~!)
-
해결됨[왕초보편] 앱 8개를 만들면서 배우는 안드로이드 코틀린(Android Kotlin)
안드로이드 스튜디오 미어캣 버전 사용 한글 깨짐
안녕하세요 강의를 듣고 있는 수강생 입니다. 다시 강의를 보면서 공부 중인데, 안드로이드 스튜디오가 버전이 업그레이드(미어캣 버전)가 되어서 설치 후 콘솔창에 간단하게 문구 출력을 하려고 해보니 한글이 깨지는 현상이 발생 합니다. 검색을 해서 위와 같은 현상을 해결해보려고 했으나, 안되서 질문 남깁니다. 방법을 알려 주시면 감사드리겠습니다.
-
미해결코틀린 고급편
[23강] SuperTypeToken의 equals 관련 질문
안녕하세요 강사님 23강 강의를 보다가 한가지 여쭤보고 싶은 사항이 있어서 질문을 남기게 됐습니다. 11분 46초 부분을 보면 equals 가 제대로 동작하지 않아서 if (javaClass != other?.javaClass) return false 해당 부분을 삭제하는 부분이 나오는데요. 해당 코드를 해석해보면 2개의 javaClass가 다르기 때문에 equals가 false가 나왔다는 의미 같은데, 혹시 2개의 javaClass가 다른 이유가 무엇인지 알려주실 수 있으실까요? 똑같은 타입의 클래스를 인스턴스화 했기 때문에 동일한 javaClass라고 생각을 했는데 2개가 다르다고 나오니 이해가 잘 되지 않습니다! 감사합니다.
-
미해결코틀린 고급편
23강 타입 안전 이종 컨테이너 예제 관련 문의 드립니다.
저같은 경우, 7:32 부분에서 List<GoldFish> 를 저장했다가 List<Carp> 타입을 꺼내려고 하면 "class generic.GoldFish cannot be cast to class generic.Carp (generic.GoldFish and generic.Carp are in unnamed module of loader 'app')" 와 같은 오류가 발생하는데, 정상적으로 금붕어 리스트가 반환되는게 맞는지요 ? 제가 뭔가 놓친 부분이 있을까 궁금하여 문의 드립니다.샘플코드는 다음과 같습니다.package reflection import generic.Carp import generic.GoldFish import kotlin.reflect.KClass import kotlin.reflect.full.cast class TypeSafeCage { val animals: MutableMap<KClass<*>, Any> = mutableMapOf() inline fun <reified T : Any> getOne(): T { return T::class.cast(animals[T::class]) } inline fun <reified T : Any> putOne(animal: T) { animals[T::class] = T::class.cast(animal) } } fun main() { val cage = TypeSafeCage() cage.putOne(listOf(GoldFish("금붕어1"), GoldFish("금붕어2"))) cage.getOne<List<Carp>>().forEach { println(it::class.simpleName) } } // 다른 패키지 파일 package generic open class Animal( val name: String ) open class Fish(name: String) : Animal(name) class GoldFish(name: String) : Fish(name) class Carp(name: String) : Fish(name) 강의 중 영상 캡쳐 화면