묻고 답해요
161만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
미해결[왕초보편] 앱 8개를 만들면서 배우는 안드로이드 코틀린(Android Kotlin)
target sdk 34, 에뮬레이터 실행 문제 질문
현재 빌드 진행 중 이러한 오류가 발생합니다.7 issues were found when checking AAR metadata:1. Dependency 'androidx.appcompat:appcompat-resources:1.7.0' requires libraries and applications thatdepend on it to compile against version 34 or later of theAndroid APIs.:app is currently compiled against android-33.Recommended action: Update this project to use a newer compileSdkof at least 34, for example 34.Note that updating a library or application's compileSdk (whichallows newer APIs to be used) can be done separately from updatingtargetSdk (which opts the app in to new runtime behavior) andminSdk (which determines which devices the app can be installedon).2. Dependency 'androidx.appcompat:appcompat:1.7.0' requires libraries and applications thatdepend on it to compile against version 34 or later of theAndroid APIs.:app is currently compiled against android-33.Recommended action: Update this project to use a newer compileSdkof at least 34, for example 34.Note that updating a library or application's compileSdk (whichallows newer APIs to be used) can be done separately from updatingtargetSdk (which opts the app in to new runtime behavior) andminSdk (which determines which devices the app can be installedon).3. Dependency 'androidx.activity:activity:1.8.0' requires libraries and applications thatdepend on it to compile against version 34 or later of theAndroid APIs.:app is currently compiled against android-33.Recommended action: Update this project to use a newer compileSdkof at least 34, for example 34.Note that updating a library or application's compileSdk (whichallows newer APIs to be used) can be done separately from updatingtargetSdk (which opts the app in to new runtime behavior) andminSdk (which determines which devices the app can be installedon).4. Dependency 'androidx.core:core-ktx:1.13.0' requires libraries and applications thatdepend on it to compile against version 34 or later of theAndroid APIs.:app is currently compiled against android-33.Recommended action: Update this project to use a newer compileSdkof at least 34, for example 34.Note that updating a library or application's compileSdk (whichallows newer APIs to be used) can be done separately from updatingtargetSdk (which opts the app in to new runtime behavior) andminSdk (which determines which devices the app can be installedon).5. Dependency 'androidx.transition:transition:1.5.0' requires libraries and applications thatdepend on it to compile against version 34 or later of theAndroid APIs.:app is currently compiled against android-33.Recommended action: Update this project to use a newer compileSdkof at least 34, for example 34.Note that updating a library or application's compileSdk (whichallows newer APIs to be used) can be done separately from updatingtargetSdk (which opts the app in to new runtime behavior) andminSdk (which determines which devices the app can be installedon).6. Dependency 'androidx.core:core:1.13.0' requires libraries and applications thatdepend on it to compile against version 34 or later of theAndroid APIs.:app is currently compiled against android-33.Recommended action: Update this project to use a newer compileSdkof at least 34, for example 34.Note that updating a library or application's compileSdk (whichallows newer APIs to be used) can be done separately from updatingtargetSdk (which opts the app in to new runtime behavior) andminSdk (which determines which devices the app can be installedon).7. Dependency 'androidx.annotation:annotation-experimental:1.4.0' requires libraries and applications thatdepend on it to compile against version 34 or later of theAndroid APIs.:app is currently compiled against android-33.Recommended action: Update this project to use a newer compileSdkof at least 34, for example 34.Note that updating a library or application's compileSdk (whichallows newer APIs to be used) can be done separately from updatingtargetSdk (which opts the app in to new runtime behavior) andminSdk (which determines which devices the app can be installedon).이후 해결을 위해 build.gradle.kts 파일에서compile, target Sdk를 모두 34로 올리고,dependencies { implementation("androidx.core:core-ktx:1.9.0") implementation("androidx.appcompat:appcompat:1.7.0") implementation("com.google.android.material:material:1.12.0") implementation("androidx.constraintlayout:constraintlayout:2.1.4") implementation("androidx.databinding:databinding-runtime:8.7.0") testImplementation("junit:junit:4.13.2") androidTestImplementation("androidx.test.ext:junit:1.2.1") androidTestImplementation("androidx.test.espresso:espresso-core:3.6.1") }dependencies에서 core-ktx 버전을 1.9.0에서 1.13.1로 올렸습니다.이후 빌드에서 오류가 발생하지 않는 걸 확인했습니다.하지만 이후에도run app이 불가능해서 앱을 확인할 수 없었습니다.혹시 sdk 버전 올라가면서 변경할 점이 추가로 있다면 알려주실 수 있나요..
-
해결됨코틀린 코루틴 완전 정복
강의와 책을 통해 학습한 내용을 출처를 남기고 기술 블로그 등에 공개해도 될까요?
안녕하세요, 해당 강의와 책을 통해 코루틴에 대한 학습을 진행하고 있는 학생입니다.학습한 내용을 기술 블로그나 깃헙 등에 출처를 남기고 공개해도 되는지 궁금합니다!요즘 강의와 책에 대한 저작권이 중요한 만큼, 강의자님께 직접 여쭙게 되었습니다. 좋은 강의 감사합니다.
-
해결됨실전! 코틀린과 스프링 부트로 도서관리 애플리케이션 개발하기 (Java 프로젝트 리팩토링)
'추가 - 코프링과 플러그인' 강의 7:46 allopen 관련 질문
우선 완강을 앞두고 있는데 추가 강의가 정말 흥미롭고 재밌었습니다. 감사합니다! 질문으로 넘어가자면.. [질문1 - 강의 중 allopen 플러그인 사용 여부]강의를 듣는 와중에 7:30초쯤 말씀에는 사용했다고 하셨지만 제가 강의를 따라가면 작성해온 프로젝트 코드 내에서는 allopen관련 plugin이 build.gradle에 없었습니다. 혹시나 해서 강의 초반 자료로 주셨던 library-app-complete.zip파일 내 build.gradle을 열어보았지만 안적혀 있었고 혹시 자동으로 연관된 dependency가 설치되었나 싶었지만 allopen을 검색해보았을때 찾기 못했습니다. 해당 플러그인이 사용안했던 것이 맞는지 궁금합니다! [질문2 - allopen 플러그인이 없어도 되었던 이유]이게 없어도 프로젝트가 잘 작동한 이유가 Entity 클래스는 org.jetbrains.kotlin.plugin.spring 플러그인이 open 시켜주고 MappedSuperclass나 Embeddable 클래스는 강의 중 사용한 적이 없었기 때문에 몰랐다고 보는게 맞는건지도 궁금합니다! [강의 중 나온 allopen 플러그인 적용 코드 예시]id 'org.jetbrains.kotlin.plugin.allopen' version '1.6.21' allOpen { annotation("javax.persistence.Entity") annotation("javax.persistence.MappedSuperclass") annotation("javax.persistence.Embeddable") }
-
해결됨입문자를 위한 Spring Boot with Kotlin - 나만의 포트폴리오 사이트 만들기
ExperienceRepositoryTest 실행 오류
++++테스트파일에서 오타가 난 줄 알았는데 레포지토리 파일 모두 오타가 나있었네요!!감사합니다!
-
미해결[왕초보편] 앱 8개를 만들면서 배우는 안드로이드 코틀린(Android Kotlin)
image1.setOnClickListener { }
image1.setOnClickListener { } 여기서 괄호에 엔터 치시면 it: view! 가 회색으로 바뀌시던대 저는 엔터쳐도 아무 반응이 아무것도 안뜨네요 .. 제가 임의로 it: view!를 쳐넣어도 회색으로 바뀌지도 않고요.. 어찌해야하나요
-
해결됨입문자를 위한 Spring Boot with Kotlin - 나만의 포트폴리오 사이트 만들기
projectRepository assertion 오류 질문입니다.
projectRepositoryTest.kt 파일을 아래와 같이 작성했는데 assertion 오류가 나서 원인을 모르겠어서 해당 파일 코드 첨부합니다. 94줄과 111줄 오류인 걸로 보아 skills를 assert할 때 뭐가 잘못된 것 같은데 어떻게 고쳐야 하는지 잘 모르겠습니다..!package com.yewon.portfolio.domain.repository import com.yewon.portfolio.domain.constant.SkillType import com.yewon.portfolio.domain.entity.Project import com.yewon.portfolio.domain.entity.ProjectDetail import com.yewon.portfolio.domain.entity.ProjectSkill import com.yewon.portfolio.domain.entity.Skill import org.assertj.core.api.Assertions import org.assertj.core.api.Assertions.* //import com.yewon.portfolio.domain.entity.* //import org.assertj.core.api.Assertions.* import org.junit.jupiter.api.BeforeAll import org.junit.jupiter.api.Test import org.junit.jupiter.api.TestInstance import org.springframework.beans.factory.annotation.Autowired import org.springframework.boot.test.autoconfigure.orm.jpa.DataJpaTest @DataJpaTest @TestInstance(TestInstance.Lifecycle.PER_CLASS) class ProjectRepositoryTest( @Autowired val projectRepository: ProjectRepository, @Autowired val skillRepository: SkillRepository ) { val DATA_SIZE = 10 private fun createProject(n: Int): Project { val project = Project( name = "${n}", description = "테스트 설명 {n}", startYear = 2023, startMonth = 9, endYear = 2023, endMonth = 9, isActive = true ) val details = mutableListOf<ProjectDetail>() for (i in 1..n) { val projectDetail = ProjectDetail(content = "테스트 ${i}", url = null, isActive = true) details.add(projectDetail) } project.addDetails(details) val skills = skillRepository.findAll() val skillsUsedInProject = skills.subList(0, n) for (skill in skillsUsedInProject) { val projectSkill = ProjectSkill(project = project, skill = skill) project.skills.add(projectSkill) } return project } @BeforeAll fun beforeAll() { println("----- 스킬 데이터 초기화 시작 -----") val skills = mutableListOf<Skill>() for (i in 1..DATA_SIZE) { val skillTypes = SkillType.values() val skill = Skill(name = "테스트 ${i}", type = skillTypes[i%skillTypes.size].name, isActive = true) skills.add(skill) } skillRepository.saveAll(skills) println("----- 스킬 데이터 초기화 종료 -----") // println("----- 데이터 초기화 이전 조회 시작 -----") // val beforeInsert = projectRepository.findAll() // assertThat(beforeInsert).hasSize(0) // println("----- 데이터 초기화 이전 조회 종료 -----") println("----- 테스트 데이터 초기화 시작 -----") val projects = mutableListOf<Project>() for (i in 1..DATA_SIZE) { val project = createProject(i) projects.add(project) } projectRepository.saveAll(projects) println("----- 테스트 데이터 초기화 종료 -----") } @Test fun testFindAll() { println("----- findAll 테스트 시작 -----") val projects = projectRepository.findAll() assertThat(projects).hasSize(DATA_SIZE) println("projects.size: ${projects.size}") for (project in projects) { assertThat(project.details).hasSize(project.name.toInt()) println("project.details.size: ${project.details.size}") assertThat(project.skills).hasSize(project.name.toInt()) println("project.skills.size: ${project.skills.size}") } println("----- findAll 테스트 종료 -----") } @Test fun testFindAllByIsActive() { println("----- findAllByIsActive 테스트 시작 -----") val projects = projectRepository.findAllByIsActive(true) assertThat(projects).hasSize(DATA_SIZE) println("projects.size: ${projects.size}") for (project in projects) { assertThat(project.details).hasSize(project.name.toInt()) println("project.details.size: ${project.details.size}") assertThat(project.skills).hasSize(project.name.toInt()) println("project.skills.size: ${project.skills.size}") } println("----- findAllByIsActive 테스트 종료 -----") } }
-
해결됨입문자를 위한 Spring Boot with Kotlin - 나만의 포트폴리오 사이트 만들기
테스트코드 실행중 오류와 경고에 관한 질문 입니다.
현재 강의는 ExperienceRepository코드를 테스트하는 코드인데 interface HttpInterfaceRepository : JpaRepository<HttpInterface, Long>{ fun countAllByCreatedDateTimeBetween(start: LocalDateTime, end: LocalDateTime): Long }제가 이런식으로 HttpInterfaceRepoistory에 사용자 정의 메서드이름을 잘못 설정했어서테스트 코드 실행중에 오류가 발생하여이런식으로 실행이 안되었습니다.HttpInterfaceRepository와 관려 없는 코드 같은데 왜 오류가 발생하는 건가요?그리고 저 오류를 발견해서 HttpInterfaceRepository 를 수정하고 실행을 하니 정상적으로 실행은 되었는데이 경고가 뜹니다 이건 어떤건가요?프로젝트 리포지토리 테스트가 계속 실패하는데 왜 그런건가요? https://drive.google.com/file/d/1s2JngsdGhN_iOUf6llkkcUwwISIuCTUp/view?usp=sharing구글 드라이브에 소스코드 압축해서 업로드 했습니다
-
미해결[중급편] 코인 가격 모니터링 앱 제작 (Android Kotlin)
[룸DB 관련 에러] can't open offline database '/data/data/ ...
에러재현Intro를 통해서 DB를 최초 저장하는 것은 성공앱을 재빌드 또는 재실행하면 App Inspection 의 coin_database (closed) 라고 나오는 현상 있음Database Inspector 관련 에러창도 뜹니다. 시도해본 에러 처리시뮬레이터 디바이스 변경시뮬레이터 디바이스 wipe data 실기기에서 [에러재현]과 동일한 방식의 빌드테스트App Inspector의 [Keep Data Connections Open] 활성화[프로젝트파일 구글드라이브 링크]https://drive.google.com/file/d/1a7nJ6Zik7Plpx2UEs7nBKDemQ40qZvpJ/view?usp=sharing 왠만하면 검색하여 해결해보려했는데 도저히 이유를 모르겠네요.. 혹시 어떤 문제인지 알고 계신가요?
-
미해결자바 개발자를 위한 코틀린 입문(Java to Kotlin Starter Guide)
리턴타입 사용시 any를 사용해도 괜찮은가요?
코틀린으로 스프링을 개발해 보고 있습니다.리턴할떄 ResponseEntity<Any> 이런식으로 Any를 사용해도 괜찮을까요?
-
해결됨코틀린 코루틴 완전 정복
Coroutine과 VirtualThread의 차이점에 대해질문드립니다
안녕하세요 Coroutine 강의 잘듣고있는 수강생입니다 (_ _)최근 JDK21의 VirtualThread관련해 찾아보게 되었는데요 Coroutine과 유사하게 Os단의 Thread를 점유하지 않고 Software적으로(?) 쓰레드에 작업분배를 하는점이 유사하다고 느꼈습니다 (잘못이해했다면 첨삭부탁드립니다 ㅠㅠ)만약 제 이해가 맞다면, JVM레벨에서 제공하게되는 VirtualThread가 더 범용성이 높아보이는데 Coroutine의 사용이 유지가 될까요? 남아있게 된다면 Kotlin 언어차원에서의 사용성이 좋아서 일정도일지... 아니면 Coroutine이 VirtualThread와 다르게 차별화된 장점이 있을지 궁금합니다감사합니다!
-
해결됨입문자를 위한 Spring Boot with Kotlin - 나만의 포트폴리오 사이트 만들기
@PostCunstructer 를 사용하는 이유가 뭔가요?
DataIntialize 클래스에서 메서드에 포스트 컨스트럭터를 사용하셨는데 어떤 기능인지 잘 이해하지 못했습니다.해당 클래스를 빈으로 등록하면서 같이 초기화가 이루어 지게 하는건 안되는건가요?
-
미해결[왕초보편] 앱 8개를 만들면서 배우는 안드로이드 코틀린(Android Kotlin)
프로젝스 생성 충돌 에러
프로젝트를 만들었는데 코드와 파일들에 빨간 줄이 그어져있습니다.버전이 안 맞아 안드로이드 스튜디오를 3번 정도 재 설치 한 것 빼고는 영상 그대로 따라했습니다
-
해결됨입문자를 위한 Spring Boot with Kotlin - 나만의 포트폴리오 사이트 만들기
환경변수 설정을 yml 아니라 properties로 해도 상관 없나요?
yml과 properties의 차이가 계층구조 표현의 차이만 있는거 같은데 properties로 적용해서 강의를 진행하여도 상관이 없나요?
-
미해결실전! 코틀린과 스프링 부트로 도서관리 애플리케이션 개발하기 (Java 프로젝트 리팩토링)
-
-
-
해결됨입문자를 위한 Spring Boot with Kotlin - 나만의 포트폴리오 사이트 만들기
git 사용 오류 질문 드립니다
강의 내용대로 진행 후 commit 창과 git 창을 열었을 때 제가 이전에 작업했던 파일들 (D: 루트 디렉토리 안에 있는 이전에 git에 업로드한 적 있는 모든 파일들)이 함께 보입니다파일 경로를 모두 열어보면 선택해서 진행할 수는 있지만 해당 프로젝트의 git 시작 디렉토리가 제대로 설정되지 않은 것 같아 어떻게 해결하는지 질문 드립니다
-
미해결실전! 코틀린과 스프링 부트로 도서관리 애플리케이션 개발하기 (Java 프로젝트 리팩토링)
4:28 build.gradle 수정 시 kotlin-reflect관련 implementation 추가 해야할까요?
build.gradle에 plugin만 추가하니 오류나고 아래 내용이 추가되니 오류가 사라지고 정상 동작하였습니다.implementation "org.jetbrains.kotlin:kotlin-reflect"정확한 원인은 모르겠는데 contextLoads할때 부터 error가 나서 kotlin으로 만든 Book을 Entity로 인식하지 못하는 것 같았습니다. 이렇게 해결하는게 맞는건지 궁금합니다. windows10 / java11 / intellij 사용중입니다! [오류원문]Failed to resolve parameter [com.group.libraryapp.service.book.BookService bookService] in constructor [public com.group.libraryapp.service.book.BookServiceTest(com.group.libraryapp.service.book.BookService,com.group.libraryapp.domain.book.BookRepository,com.group.libraryapp.domain.user.UserRepository,com.group.libraryapp.domain.user.loanhistory.UserLoanHistoryRepository)]: Failed to load ApplicationContext org.junit.jupiter.api.extension.ParameterResolutionException: Failed to resolve parameter [com.group.libraryapp.service.book.BookService bookService] in constructor [public com.group.libraryapp.service.book.BookServiceTest(com.group.libraryapp.service.book.BookService,com.group.libraryapp.domain.book.BookRepository,com.group.libraryapp.domain.user.UserRepository,com.group.libraryapp.domain.user.loanhistory.UserLoanHistoryRepository)]: Failed to load ApplicationContext at app//org.junit.jupiter.engine.execution.ExecutableInvoker.resolveParameter(ExecutableInvoker.java:239) at app//org.junit.jupiter.engine.execution.ExecutableInvoker.resolveParameters(ExecutableInvoker.java:183) at app//org.junit.jupiter.engine.execution.ExecutableInvoker.invoke(ExecutableInvoker.java:74) at app//org.junit.jupiter.engine.descriptor.ClassBasedTestDescriptor.invokeTestClassConstructor(ClassBasedTestDescriptor.java:355) at app//org.junit.jupiter.engine.descriptor.ClassBasedTestDescriptor.instantiateTestClass(ClassBasedTestDescriptor.java:302) at app//org.junit.jupiter.engine.descriptor.ClassTestDescriptor.instantiateTestClass(ClassTestDescriptor.java:79) at app//org.junit.jupiter.engine.descriptor.ClassBasedTestDescriptor.instantiateAndPostProcessTestInstance(ClassBasedTestDescriptor.java:280) at app//org.junit.jupiter.engine.descriptor.ClassBasedTestDescriptor.lambda$testInstancesProvider$4(ClassBasedTestDescriptor.java:272) at java.base@11.0.24/java.util.Optional.orElseGet(Optional.java:369) at app//org.junit.jupiter.engine.descriptor.ClassBasedTestDescriptor.lambda$testInstancesProvider$5(ClassBasedTestDescriptor.java:271) at app//org.junit.jupiter.engine.execution.TestInstancesProvider.getTestInstances(TestInstancesProvider.java:31) at app//org.junit.jupiter.engine.descriptor.TestMethodTestDescriptor.lambda$prepare$0(TestMethodTestDescriptor.java:102) at app//org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73) at app//org.junit.jupiter.engine.descriptor.TestMethodTestDescriptor.prepare(TestMethodTestDescriptor.java:101) at app//org.junit.jupiter.engine.descriptor.TestMethodTestDescriptor.prepare(TestMethodTestDescriptor.java:66) at app//org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$prepare$2(NodeTestTask.java:123) at app//org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73) at app//org.junit.platform.engine.support.hierarchical.NodeTestTask.prepare(NodeTestTask.java:123) at app//org.junit.platform.engine.support.hierarchical.NodeTestTask.execute(NodeTestTask.java:90) 이하 생략..
-
미해결[중급편] 코인 가격 모니터링 앱 제작 (Android Kotlin)
강의명: 코인 선택화면 Adapater 세팅 (RecyclerView) 에서
RecyclerView의 Adapter를 선언할 때,context는 어떤 용도로 생성자로 받게되는건가요? 의문포인트context를 생성자로 받지않더라도 RecyclerView의 구현에는 문제없이 되는 부분이 의아했습니다.context를 생성자로 받는것과 받지 않는것과는 어떤 차이가 있나요?[왕초보편] 앱 8개를 만들면서 배우는 안드로이드 코틀린(Android Kotlin) 강의의 RecyclerViewAdapter를 구현하실 때에는 context를 별도로 생성시 인자로 받지 않았던 것으로 기억하거든요.
-
미해결[왕초보편] 앱 8개를 만들면서 배우는 안드로이드 코틀린(Android Kotlin)
에뮬레이터 자체가 2021년 강의 것이랑 다른거같아요..
에뮬레이터 실행하는 것좀 새로 2024년 형으로 찍어서 올려주세요... 실행을 해도 만든게 적용이 안되고 그냥 핸드폰만 실행됩니다.
-
미해결[왕초보편] 앱 8개를 만들면서 배우는 안드로이드 코틀린(Android Kotlin)
ActivityMainBinding 문제 건
class MainActivity : AppCompatActivity() { private lateinit var binding : ActivityMainBinding override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) setContentView(R.layout.activity_main) binding = setContentView(this, R.layout.activity_main)e: file:///C:/Users/break/AndroidStudioProjects/Databinding_ex/app/src/main/java/com/example/databinding_ex/MainActivity.kt:16:36 Unresolved reference: ActivityMainBinding라고 오류메세지가 발생합니다..ChatGPT는 ActivityMainBinding 클래스가 제대로 생성되지 않는 이유는 주로 View Binding이 활성화되지 않았거나, 캐시 문제 또는 Gradle 동기화 문제가 있을 수 있습니다. 위의 단계를 통해 문제를 해결할 수 있을 것입니다. 라고 설명하긴 하는데, 얘가 말한대로 적어봐도 해결되지가 않네요..
-
미해결[왕초보편] 앱 8개를 만들면서 배우는 안드로이드 코틀린(Android Kotlin)
LinearLayout 오류
7분 40초 쯤에 알려주신대로 맨 윗줄과 맨 밑에 줄 내용을LinearLayout 으로 바꿨는데빨간색깔 오류가 뜹니다. 어떤 차이로 오류가 뜨는거죠??