묻고 답해요
156만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
미해결[2023 코틀린 강의 무료제공] 기초에서 수익 창출까지, 안드로이드 프로그래밍 A-Z
mutable과 var의 차이점
컬렉션 부분을 배우면서 한가지 이상한 점이 생겨서 질문드립니다. 강의 초반 var / val의 차이점을 알려주시면서 읽기, 쓰기 가능 혹은 읽기만 가능 이라고 알려주셨는데 val로 List을 만들면 당연히 각각의 변수의 값을 바꿀 수 없는 거 아닌가 싶어서요또, val로 만든 List가 mutable을 붙이면 값이 변화할수 있다는게 조금 이해가 되지 않습니다 추정을 조금 해보자면 List을 만들면 List자체가 하나의 변수가 되어 val { } 안에 들어있는 값을 읽어오고 그 값을 List에 새롭게 저장하는 방식인가요? 만약에 그런 방식이 아니라면 이해가 되지 않는 부분입니다반대로 생각하면 var로 선언한 변수들로 immutableList를 만들었을때 값이 변화가 안되는건가요?
-
미해결[왕초보편] 앱 8개를 만들면서 배우는 안드로이드 코틀린(Android Kotlin)
BTS 앱 만들기 강의에서 사진들의 ID 저장 관련 질문있습니다.
사진들의 id 를 각각 activity 의 xml 파일이 아닌 activity_main.xml 에 저장하는 이유가MainActivity 에 있는 코드 중 findViewById<ImageView>(R.id.btsImage1) 에서 ImageView 는 activity_main.xml 에 있는 ImageView 를 의미하기 때문이라고 이해한 게 맞게 이해한건지 여쭤보고 싶습니다!
-
해결됨입문자를 위한 Spring Boot with Kotlin - 나만의 포트폴리오 사이트 만들기
문법질문입니다.
코드를 제가 잘 이해하고 따라가는지 궁금합니다.질문1리포지토리에서 활성화가 되어있는 프로젝트만 가져와서 projects에 리스트 형태로 넣어서 다시 ProjectDTO 형태로 넣어서 컨트롤러에서 처리하게끔 해주는건가요? 질문2여기서 제가 이해한게 맞다면 return 할떄 projects.map을 왜 이용하는건가요? map은 키와 값으로 이루어 져있는 배열로 알고있는데 ProjectDTO가 키와 값으로 이루어져서 그런건가요?질문3ProjectDTO(it) 여기서 말하는 it은 무엇을 의미하는지 알수있나요?
-
미해결[왕초보편] 앱 8개를 만들면서 배우는 안드로이드 코틀린(Android Kotlin)
파이어베이스 연결 문제에 관해
파이어베이스 연결까지 다 끝냈지만, 사진에서처럼 MainActivity에서 에러가 발생합니다...
-
해결됨입문자를 위한 Spring Boot with Kotlin - 나만의 포트폴리오 사이트 만들기
섹션3 컨트롤러테스트 오류
안녕하세요. 강의노트와 강의를 보면서 수정해 보았는데 resume에서만 test가 실패합니다. 제가 보기엔 resume가 JSON이 null이라서 그런것 같은데 어느 부분을 봐야할지 모르겠습니다. Datainitiallizer.kt를 봐도 잘 안보이네요. 아래는 에러 메세지와 코드입니다.java.lang.NullPointerException: Cannot invoke "org.json.JSONArray.length()" because the return value of "org.json.JSONObject.optJSONArray(String)" is null at com.dogu.portfolio.presentation.controller.PresentationApiControllerTest.testGetResume(PresentationApiControllerTest.kt:66) at java.base/java.lang.reflect.Method.invoke(Method.java:569) at java.base/java.util.ArrayList.forEach(ArrayList.java:1511) at java.base/java.util.ArrayList.forEach(ArrayList.java:1511) @Test @DisplayName("resume") fun testGetResume() { //given val uri = "/api/v1/resume" //when val mvcResult = performGet(uri) val contentAsString = mvcResult.response.getContentAsString(StandardCharsets.UTF_8) val jsonObject = JSONObject(contentAsString) //then Assertions.assertThat(jsonObject.optJSONArray("experiences").length()).isPositive() Assertions.assertThat(jsonObject.optJSONArray("achievements").length()).isPositive() Assertions.assertThat(jsonObject.optJSONArray("skills").length()).isPositive() }
-
미해결[초중급편] 안드로이드 데이팅 앱 만들기(Android Kotlin)
혹시.. 지금 최신 환경 상, 강의 내용대로 진행이 안 되는 걸까요?
선생님 ㅠ card-stack-view를 외부 라이브러리에 설치하는 것부터 막히네요 ㄷㄷ
-
해결됨깡샘의 쌩초보 안드로이드 One Day Class – Part5 컴포넌트 이해하기
Dispatchers.Defult
먼저 유사한 질문이 있는지 검색해보세요.학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요!인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요. Dispatchers.Dafault 뒤에 + Job()을 붙이는 이유는 뭔가요?
-
해결됨입문자를 위한 Spring Boot with Kotlin - 나만의 포트폴리오 사이트 만들기
mutableListOf
강의를 들으면서 코틀린 문법도 같이 병행하면서 듣고있는데 이부분 질문을 하고 싶습니다!mutableListOf 로 감싸줘서 넣어져야지 코드가 오류 없이 되는지 궁금합니다. jpa 특성상 그런건가용?
-
해결됨자바 개발자를 위한 코틀린 입문(Java to Kotlin Starter Guide)
안녕하세요 scope function 에 receiver 가 없는 경우
- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! - 먼저 유사한 질문이 있었는지 검색해보세요. - 서로 예의를 지키며 존중하는 문화를 만들어가요. - 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요.아래 처럼 receiver 없이 사용이 가능하더라구요? 근데, apply 시그니처는 분명히 확장함수인데, receiver 를 안주는 경우, SomeTest 클래스의 인스턴스가 receiver 로 되는거 같아요. 아무리 찾아봐도, 이런 동작에 대해서는 공식문서상에 안보이는거 같은데, 왜 이런건지 알 수 있을까요? (레퍼런스도 같이 제공해주시면 저도 한번 보고싶습니다 ㅠㅠ) class SomeTest { @Test fun test() { val found = apply { hello() val user = User("kim") println(user) } } fun hello() { println("hello") } } data class User( val userName: String, )
-
미해결[왕초보편] 앱 8개를 만들면서 배우는 안드로이드 코틀린(Android Kotlin)
파이어 베이스 연결이 되지않습니다.
영상에서 설명주신대로 firebase연결을 시도하였지만위와 같은 오류가 계속 뜹니다.이를 추가하기위해서는 안드로이드 스튜디오나 gradle의 버전을 낮추어야하는걸까요?
-
미해결[왕초보편] 앱 8개를 만들면서 배우는 안드로이드 코틀린(Android Kotlin)
데이터바인딩 설명 강의가 보이지 않아요
다른 강의들은 잘 보이는데 데이터바인딩 강의가 보이지 않습니다. 확인 부탁드립니다.
-
미해결자바 개발자를 위한 코틀린 입문(Java to Kotlin Starter Guide)
코틀린 싱글톤 질문
강사님께서 코틀린으로 서버를 만드실 때 object로 싱글톤 만드는 방법을 사용하지는 않는다고 하셨는데 실제 현업에서 이러한 방식으로 싱글톤을 많이 안만드나요? 혹시 이러한 방식을 사용하는 현업에서의 예제가 있다면 어떤게 있나요?
-
미해결[왕초보편] 앱 8개를 만들면서 배우는 안드로이드 코틀린(Android Kotlin)
AVD가 보이지 않아요..
안녕하세요. 사진처럼 AVD가 보이지 않아요.....ㅠ 최신 버전이여서 안보이는걸까요..?
-
미해결자바 개발자를 위한 코틀린 입문(Java to Kotlin Starter Guide)
가변인자 외에 추가로 다른 타입의 인자를 받는 경우에는 어떻게 하나요?
가변인자 외에 추가로 다른 타입의 인자를 받는 경우에는 어떻게 하나요?
-
미해결모던 안드로이드 - Jetpack Compose 입문
깃허브에 있는 MemoryTodoRepository 는 룸을 사용하는게 아닌 메모리에 저장, 수정, 삭제 하는건가요?
Room처럼 내부저장소에 저장하는 것이 맞다면,Room을 사용 하지 않는 방법인데 작동되는 건 아예 똑같은 건가요?아니면 저장되는 곳이 다르다거나 저장방식은 다른데 같은 역할로써 쓰일 수 있는건가요?
-
미해결[초급편] 안드로이드 커뮤니티 앱 만들기(Android Kotlin)
웹뷰 AVD 실행안됨
팁 페이지 만들기 부분에서 연결되는 웹페이지만 다르게 하여 페이지를 구현 중인데, AVD를 실행시키니까 계속 로딩되다가 Timed out after 300 seconds waiting for emulator to come online.라는 에러메시지가 뜨면서 아예 실행이 안됩니다.. 웹url부분이 너무 큰 용량을 차지하는 걸까요? 이럴 땐 어떻게 하면 좋을까요..?그리고 이런 오류가 나기 전에 한 번 실행은 됐었는데 그때는 웹뷰가 제대로 안 뜨고 흰 화면만 계속 뜨는 현상이 나왔습니다.. 찾아보니까 ssl 인증을 무시하는 코드를 쓰면 된다는데 그렇게 하면 해결이 될까요? 일단 AVD가 실행이 안돼서 확인이 안됩니다..
-
미해결[왕초보편] 앱 8개를 만들면서 배우는 안드로이드 코틀린(Android Kotlin)
네비게이션(Navigation) 만들어보기, 프래그먼트(Fragment)에 대한 이해 강의에서 navigation android resource file만들 때
안녕하세요 네비게이션(Navigation) 만들어보기, 프래그먼트(Fragment)에 대한 이해 강의에서 navigation android resource file만들 때 Add Project Dependency 팝업이 뜨는데 강의의 팝업과는 좀 다릅니다. This operation requires the libraries androidx.navigation:navigation-fragment-ktx:+, androidx.navigation:navigation-ui-ktx:+. Problem: Inconsistencies in the existing project dependencies found. Version incompatibility between: - androidx.appcompat:appcompat:1.7.0 and: - androidx.core:core-ktx:1.13.1 With the dependency: - androidx.lifecycle:lifecycle-common:2.3.1 versus: - androidx.lifecycle:lifecycle-common:[2.6.2] The project may not compile after adding these libraries. Would you like to add them anyway? 라고 뜨는데 version 충돌나서 compile이 안될 수 있다는 뜻으로 보이는데요. 그냥 진행해도 괜찮을까요?Android Studio 버전은 Koala | 2024.1.1 쓰고 있습니다.
-
해결됨깡샘의 쌩초보 안드로이드 One Day Class – Part2 코틀린 이해하기
val로 선언한 List는 변경이 가능한가요?
val list1 = mutableListOf(10,20) 으로 list를 선언했는데, 이때 val로 선언을 하면, int type의 변수는 변경이 불가능한데 List type은 변경이 가능하나요?
-
해결됨입문자를 위한 Spring Boot with Kotlin - 나만의 포트폴리오 사이트 만들기
org.junit.jupiter.api.extension.ParameterResolutionException: Failed to resolve parameter
테스트 코드 실행시 의존성 주입이 안되는 듯한 에러가 있습니다...org.junit.jupiter.api.extension.ParameterResolutionException: Failed to resolve parameter [com.mkim.portfolio.domain.repository.ExperienceRepository experienceRepository] in constructor [public com.mkim.portfolio.domain.repository.ExperienceRepositoryTest(com.mkim.portfolio.domain.repository.ExperienceRepository)]: Failed to load ApplicationContext for [MergedContextConfiguration@41120e48 testClass = com.mkim.portfolio.domain.repository.ExperienceRepositoryTest, locations = [], classes = [com.mkim.portfolio.PortfolioApplication], contextInitializerClasses = [], activeProfiles = [], propertySourceDescriptors = [], propertySourceProperties = ["org.springframework.boot.test.autoconfigure.orm.jpa.DataJpaTestContextBootstrapper=true"], contextCustomizers = [org.springframework.boot.test.autoconfigure.OverrideAutoConfigurationContextCustomizerFactory$DisableAutoConfigurationContextCustomizer@15bb5034, org.springframework.boot.test.autoconfigure.actuate.observability.ObservabilityContextCustomizerFactory$DisableObservabilityContextCustomizer@1f, org.springframework.boot.test.autoconfigure.filter.TypeExcludeFiltersContextCustomizer@34be3d80, org.springframework.boot.test.autoconfigure.properties.PropertyMappingContextCustomizer@854e4b26, org.springframework.boot.test.autoconfigure.web.servlet.WebDriverContextCustomizer@7a35b0f5, [ImportsContextCustomizer@165a5979 key = [org.springframework.boot.autoconfigure.transaction.TransactionAutoConfiguration, org.springframework.boot.autoconfigure.data.jpa.JpaRepositoriesAutoConfiguration, org.springframework.boot.test.autoconfigure.orm.jpa.TestEntityManagerAutoConfiguration, org.springframework.boot.autoconfigure.cache.CacheAutoConfiguration, org.springframework.boot.autoconfigure.orm.jpa.HibernateJpaAutoConfiguration, org.springframework.boot.autoconfigure.sql.init.SqlInitializationAutoConfiguration, org.springframework.boot.test.autoconfigure.jdbc.TestDatabaseAutoConfiguration, org.springframework.boot.autoconfigure.flyway.FlywayAutoConfiguration, org.springframework.boot.autoconfigure.jdbc.DataSourceTransactionManagerAutoConfiguration, org.springframework.boot.autoconfigure.liquibase.LiquibaseAutoConfiguration, org.springframework.boot.autoconfigure.jdbc.JdbcClientAutoConfiguration, org.springframework.boot.autoconfigure.jdbc.DataSourceAutoConfiguration, org.springframework.boot.autoconfigure.jdbc.JdbcTemplateAutoConfiguration]], org.springframework.boot.test.context.filter.ExcludeFilterContextCustomizer@7bd7d6d6, org.springframework.boot.test.json.DuplicateJsonObjectContextCustomizerFactory$DuplicateJsonObjectContextCustomizer@2a8448fa, org.springframework.boot.test.mock.mockito.MockitoContextCustomizer@0, org.springframework.boot.test.context.SpringBootTestAnnotation@4d8dfd98], contextLoader = org.springframework.boot.test.context.SpringBootContextLoader, parent = null] @Autowired 도 잘 넣은듯한데 왜 해당 에러가 발생하는지를 파악을 못하고 있습니다...test를 하려하는 타겟 레포지토리도 하위 경로에 잘 존재합니다.interface ExperienceRepository : JpaRepository<Experience, Long> { fun findAllByIsActive(isActive: Boolean): List<Experience> }현재 플러그인과 디펜던시는 아래와 같습니다.plugins { id("org.springframework.boot") version "3.3.0" id("io.spring.dependency-management") version "1.1.5" kotlin("plugin.jpa") version "1.9.24" kotlin("jvm") version "1.9.24" kotlin("plugin.spring") version "1.9.24" } dependencies { implementation("org.springframework.boot:spring-boot-starter-data-jpa") implementation("org.springframework.boot:spring-boot-starter-thymeleaf") implementation("org.springframework.boot:spring-boot-starter-validation") implementation("org.springframework.boot:spring-boot-starter-web") implementation("com.fasterxml.jackson.module:jackson-module-kotlin") implementation("org.jetbrains.kotlin:kotlin-reflect") runtimeOnly("com.h2database:h2") runtimeOnly("com.mysql:mysql-connector-j") testImplementation("org.springframework.boot:spring-boot-starter-test") testImplementation("org.jetbrains.kotlin:kotlin-test-junit5") testRuntimeOnly("org.junit.platform:junit-platform-launcher") }제가 확인해야할 부분을 잘 못찾고 있는듯합니다... 혹시 제가 놓치는 부분이 있을까요?
-
미해결2시간으로 끝내는 코루틴
Job 질문이 있습니다
이전 강의 설명에서 아래의 코드가 실행될 때 launch로 만든 코루틴이 바로 실행되지 않고 다음 코드로 넘어간다고 했는데fun main(): Unit = runBlocking { println("START") launch { newRoutine() } println("END") }왜 아래의 코드에서는 job 객체를 변수에 담으면 다음 코드로 넘어가는게 아니라 바로 실행이 되는건가요?fun main(): Unit = runBlocking { val job = launch { (1..5).forEach { printWithThread(it) delay(500) } } delay(1_000L) job.cancel() }