묻고 답해요
161만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
미해결2시간으로 끝내는 코루틴
코루틴 dispatcher IO관련 질문
안녕하세요 강사님? 강의 잘 듣고 있습니다. 듣다보니 몇가지 궁금증이 생겨서 질문드립니다. 너무 쉬운 질문들도 있겠지만, 선생님의 답변을 통해 확신을 얻고 싶은 마음이 있어 질문드립니다 __)동기적 호출을 전제하는 동작, 예를 들 FeignClient기반의 호출을 다른 스레드(DISPATCHER.IO)에위임하지 않고 기존 스레드에서만 코루틴형태로 동작시키면, 이때에도 여전히 의도와 다르게 블락킹될 것 같은데 맞을까요? 강의에서 보여주신 예시중에 아래와같은 예시가 있는데, 이 경우에는 하나의 스레드만 사용하시는 것 같아 혹시나 하는 마음에 여쭤봅니다. // Async 사용 fun main(): Unit = runBlocking { val time = measureTimeMillis { val job1 = async { apiCall1() } val job2 = async { apiCall2() } printWithThread(job1.await() + job2.await()) } printWithThread("소요시간 : $time") } // 출력 결과 [main] 소요시간 : 1030 IO를 효율적으로 진행하기 위해서는 결국 Dispatcher I.O의 스레드들에게 위임해야 할 것 같은데그렇다면 애초부터 Dispatcher I.O의 스레드들은 ‘블락킹당해도 괜찮다’를 전제로 만들어진 스레드들(스레드풀)인걸까요?그러면 결론적으로 Dispatcher IO는 블락킹 당해도 괜찮을 수 있도록 어떤식으로 처리되어 있는 건지 궁금합니다.
-
해결됨[왕초보편] 앱 8개를 만들면서 배우는 안드로이드 코틀린(Android Kotlin)
태그 관련 질문
imageview나 layout 등 태그를 만들면 자동으로 닫히는 태그가 안생기는데 어떻게 하신건가요???
-
해결됨[왕초보편] 앱 8개를 만들면서 배우는 안드로이드 코틀린(Android Kotlin)
오리엔테이션
선생님4:20 에서 나오는 빨간 버튼?이 안 나와서 타이핑으로 진행했는데 나오게 하는 방법이 있나요???
-
해결됨입문자를 위한 Spring Boot with Kotlin - 나만의 포트폴리오 사이트 만들기
한번만 도와주세요 오류를 못찾겠습니다.
사이드 바에 skill이랑 project만 페이지 오류가발생합니다. skill 들어갔을떄 오류 로그는 project 들어갔을떄 오류 로그 깃허브 주소:https://github.com/kimauto/portfolio-kimauto이렇게 오류가 뜨면 No static resource admin/skill저는 skill 컨트롤러,서비스,DTO 가서 제가 코드 실수를 했나 먼저 확인하고 용백님 깃헙 소스코드랑 비교하면서 오류 체크를 했습니다. 이렇게 오류를 접근하는 방식이 맞나요? 무슨 문제일까요?
-
미해결깡샘의 쌩초보 안드로이드 One Day Class – Part7 파이어베이스와 연동하기
R.string.default_web_client_id 설정을 어떡해 해야하는지 알고 싶습니다.
val gso = GoogleSignInOptions .Builder(GoogleSignInOptions.DEFAULT_SIGN_IN) .requestIdToken(getString(R.string.default_web_client_id)) .requestEmail() .build()R.string.default_web_client_id 를 설정하지 않았다고 계속 에러가 떠는데, 어떡해 해야 하는지 알고 싶습니다. 그리고 GoogleSignIn이 현제는 deprecate 되었는데, 참고할 만한 자료가 있는지 알고 싶습니다.
-
해결됨[입문편] 안드로이드를 위한 코틀린(Kotlin) 문법
키보드관련 문제
안녕하세요. 플레이그라운드나 안드로이드 스튜디오에서 코틀린을 사용 문제인데요, 어느날은 방향키가 잘 먹히는데 어느 날은 방향키가 안먹히는 날이 있더라구요. 방향키 뿐만 아니라 문제가 생긴 날에는 엔터키 오른쪽에 있는 부분이 안먹히는 문제가 발생하는데 왜 그런건가요
-
미해결[왕초보편] 앱 8개를 만들면서 배우는 안드로이드 코틀린(Android Kotlin)
트와이스 앱에 bts앱 연동 문의
안녕하세요.유용한 강의 덕에 안드로이드 스튜디오 공부가 재밌어지네요!공부하던 중 갑자기 궁금한 사항이 생겼는데트와이스 앱을 구현하여 1번 이미지를 눌렀을 때 전에 배웠던 bts앱 초기 화면으로 이동하는 방법이 있나요?아예 bts프로젝트 앱을 이동시키는 방법이요.구글 검색에서는 프로젝트 앱 하나가 아닌 이미지 화면 이동만 보여서요..혹시 intent fillter를 사용하면 될까요?
-
미해결[초급] 찍어먹자! 코틀린과 Spring Security + JWT로 회원가입 만들기
4.1강 마지막 회원가입 실행
모든 코드를 다 작성하고 db실행도 다 한 상태로 send룰 눌렀는데 이렇게 빈 실행화면이 뜨고 디비에 회원정보가 생기지 않습니다. 오탈자가 있나 살펴보았지만 도저히 찾지 못하였습니다.
-
미해결[2023 코틀린 강의 무료제공] 기초에서 수익 창출까지, 안드로이드 프로그래밍 A-Z
Locationmanager로 타입캐스팅 실패 문의
아래와 같이 타입캐스팅이 안되는 이유가 무엇일까요??private fun isLocationServicesAvailable() : Boolean{ // LocationManager로 타입캐스팅 val locationManager = getSystemService(LOCALE_SERVICE) as LocationManager return (locationManager.isProviderEnabled(LocationManager.GPS_PROVIDER) || locationManager.isProviderEnabled(LocationManager.NETWORK_PROVIDER) }
-
미해결[2023 코틀린 강의 무료제공] 기초에서 수익 창출까지, 안드로이드 프로그래밍 A-Z
Todo리스트 dao 구성 시 todo 질문
해당 코드에서 todo : TodoEntity를 사용하잖아요?여기서 todo는 어디서 나온건가요?? 변수인건가요?@Dao interface TodoDao { @Query("SELECT * FROM TodoEntity") fun getAllTodo() : List<TodoEntity> @Insert fun insertTodo(todo : TodoEntity) @Delete fun deleteTodo(todo : TodoEntity) }
-
미해결[2023 코틀린 강의 무료제공] 기초에서 수익 창출까지, 안드로이드 프로그래밍 A-Z
룸 데이터베이스 구성 시 dao 에러 문의
영상이랑 똑같이 했는데 자꾸 문법이 틀렸데요. 소스코드 첨부합니다. package com.example.todolist.db; import androidx.room.Dao; import androidx.room.Delete; import androidx.room.Insert; import androidx.room.Query; @Dao public interface TodoDao { // get All @Query("SELECT * FROM TodoEntity") fun getAllTodo() : List<TodoEntity> @Insert fun insertTodo(todo : TodoEntity) @Delete fun deleteTodo(todo : TodoEntity) }
-
미해결[2023 코틀린 강의 무료제공] 기초에서 수익 창출까지, 안드로이드 프로그래밍 A-Z
버튼모양 질문 소스코드 첨부
강의대로 소스코드 입력했는데도 원으로 나옵니다.<?xml version="1.0" encoding="utf-8"?> <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent"> <!--레이아웃 기준으로 배치하기--> <Button android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_alignParentStart="true" android:text="parent\nstart"/> <Button android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_alignParentEnd="true" android:text="parent\nend"/> <Button android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_alignParentBottom="true" android:text="parent bottom"/> <Button android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_alignParentBottom="true" android:layout_alignParentEnd="true" android:text="parent bottom\n + parent end"/> <Button android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_centerInParent="true" android:text="parent\ncenter"/> <Button android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_centerHorizontal="true" android:text="center\nhorizontal"/> <Button android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_centerVertical="true" android:text="center\nvertical"/> </RelativeLayout>
-
해결됨입문자를 위한 Spring Boot with Kotlin - 나만의 포트폴리오 사이트 만들기
ProjectSkill과 Skill 객체 생성 관련 질문있습니다.
테스트코드 작성하는 강의를 막 마치고, html '/test' 생성하여 확인하는 강의를 진입하여 듣던중,test만 돌리다 오랜만에 datainitilizer가 불리도록 run을 하니,org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'dataInitializer': Invocation of init method failedCaused by: org.hibernate.TransientPropertyValueException: Not-null property references a transient value - transient instance must be saved before current operation : com.mkim.portfolio.domain.entity.ProjectSkill.skill -> com.mkim.portfolio.domain.entity.Skill 이런 에러가 발생하였습니다.테스트코드 작성 강의전에는 정상적으로 datainitializer 호출되었고, 테스트 케이스도 전부 패스한 상황이라 무엇이 문제인가 계속 확인을 하는데 이해한 바로는 ProjectSkill이 Skill 엔티티를 참조해야하지만 아직 생성이 안된 상태라 발생하는것처럼 이해하였는데, val java = Skill(name = "Java", type = SkillType.LANGUAGE.name, isActive = true) val kotlin = Skill(name = "Kotlin", type = SkillType.LANGUAGE.name, isActive = true) val python = Skill(name = "Python", type = SkillType.LANGUAGE.name, isActive = true) val spring = Skill(name = "Spring", type = SkillType.FRAMEWORK.name, isActive = true) . . . skillRepository.saveAll( mutableListOf( java, kotlin, spring, . . . ) . ... ..... project1.skills.addAll( mutableListOf( ProjectSkill(project = project1, skill = java), ProjectSkill(project = project1, skill = spring), ProjectSkill(project = project1, skill = mysql), ProjectSkill(project = project1, skill = redis) ) )이렇게 작성하여 부르면 에러가 나지만val skills = mutableListOf( Skill(name = "Java", type = SkillType.LANGUAGE.name, isActive = true), Skill(name = "Kotlin", type = SkillType.LANGUAGE.name, isActive = true), Skill(name = "Python", type = SkillType.LANGUAGE.name, isActive = true), Skill(name = "Spring", type = SkillType.FRAMEWORK.name, isActive = true), Skill(name = "Django", type = SkillType.FRAMEWORK.name, isActive = true), Skill(name = "MySQL", type = SkillType.DATABASE.name, isActive = true), Skill(name = "Redis", type = SkillType.DATABASE.name, isActive = true), Skill(name = "Kafka", type = SkillType.TOOL.name, isActive = true) ) skillRepository.saveAll(skills) . ... ..... project1.skills.addAll( mutableListOf( ProjectSkill(project = project1, skill = skills[0]), // Java ProjectSkill(project = project1, skill = skills[3]), // Spring ProjectSkill(project = project1, skill = skills[5]), // MySQL ProjectSkill(project = project1, skill = skills[6]) // Redis ) ) 이와 같이하면 에러가 살아집니다...무엇이 달라 차이를 만드는지가 너무 궁금하여 질문 남겨요감사합니다, 전체 현재까지 코드 깃허브
-
해결됨입문자를 위한 Spring Boot with Kotlin - 나만의 포트폴리오 사이트 만들기
테스트코드 실패
안녕하세요, 테스트코드 결과가 계속 실패되는데... 이유를 찾지 못하여 질문 드립니다. BeforeAll에서 projects를 디버그찍어 skills안의 skill확인 하면 제대로 들어간것이 보이는데, 테스트에 진입을 하면 skills가 0이 되는데...다른 변수들은 다 들어가고 skills만 0이 되는 상황입니다... 어디서 부터 실수를 만든건지 파악이 안되어 도움을 요청드립니다. 아래 현재 문제가 있는 코드 남깁니다.Git 저장소
-
미해결[2023 코틀린 강의 무료제공] 기초에서 수익 창출까지, 안드로이드 프로그래밍 A-Z
레이아웃 구성할떄 저는 버튼모양이 원으로 나와요
width를 0dp로 주고 weight를 1로 줬는데도 네모가 아닌원형태로 되어있어 버튼 사이마다 여백이 존재해요. 어떻게 된건가요?
-
미해결[2023 코틀린 강의 무료제공] 기초에서 수익 창출까지, 안드로이드 프로그래밍 A-Z
싱글톤 패턴 구현중 코드가 강의와 일치하지 않습니다.
AddTodoActivity.kt에서Appdatebase.getInstance(this)를 쓰라고 강의에 나와있는데 Appdatabase.getInstance를 쓰면 오류가 납니다. 그래서 코파일럿을 통해 문제점을 확인해보았는데 AppDatabase.appDatabase!!.getInstance(this)로 바꿔서 쓰라는 답변을 받았습니다 이렇게 써도 문제가 없는 건가요?AppDatabase.kt 와 AddTodoActivity.kt 파일을 보시고 제가 잘못되었다면 어느부분이 잘못되었는지 알려주시면 감사하겠습니다 이부분이 사용된 MainActivity에서도 db를 선언할때 유사하지만 다른 부분이 보여서 질문드립니다AddTodoActivity.ktMainActivity.ktAppDatabase.kt
-
미해결[2023 코틀린 강의 무료제공] 기초에서 수익 창출까지, 안드로이드 프로그래밍 A-Z
MainActivity 파일안에 setContencView가 없습니다..
영상대로 따라했는데..없어요안드로이드 스튜디오 버전은 2022.1 그래핀이에요
-
미해결[2023 코틀린 강의 무료제공] 기초에서 수익 창출까지, 안드로이드 프로그래밍 A-Z
room database 설치 질문
room 데이터 베이스의 의존성 주입을 하고 있는데 계속 에러가 났습니다. 근데 viewBinding 부분을 지우니 해결이 되었습니다 무슨 문제였을까요?
-
미해결[초중급편] 안드로이드 데이팅 앱 만들기(Android Kotlin)
auth.currentUser?.uid.toString() 가 null 이 나와요
auth.currentUser?.uid.toString() 가 null 이 나와요잘나왔었는데 몇시간뒤에 하니까 null 이 나옵니다. 로그인 -> 어플종료 -> 다시 어플 키면 uid가 나오는데MypageActivity가면 uid가 null입니다. firebase는 이상없이 작동합니다 package com.example.sogating.setting import android.os.Bundle import android.util.Log import android.widget.ImageView import android.widget.TextView import androidx.activity.enableEdgeToEdge import androidx.appcompat.app.AppCompatActivity import androidx.core.view.ViewCompat import androidx.core.view.WindowInsetsCompat import com.example.sogating.R import com.example.sogating.auth.UserDataModel import com.example.sogating.utils.FirebaseAuthUtils import com.example.sogating.utils.FirebaseRef import com.google.firebase.database.DataSnapshot import com.google.firebase.database.DatabaseError import com.google.firebase.database.ValueEventListener class MyPageActivity : AppCompatActivity() { private val TAG = "MyPageActivity" private val uid = FirebaseAuthUtils.getUid() override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) setContentView(R.layout.activity_my_page) getMyData() } private fun getMyData() { val myImage = findViewById<ImageView>(R.id.myImage) val myUid = findViewById<TextView>(R.id.myUid) val myNickname = findViewById<TextView>(R.id.myNickname) val myAge = findViewById<TextView>(R.id.myAge) val myCity = findViewById<TextView>(R.id.myCity) val myGender = findViewById<TextView>(R.id.myGender) val postListener = object : ValueEventListener { override fun onDataChange(dataSnapshot: DataSnapshot) { // Get Post object and use the values to update the UI Log.d(TAG, dataSnapshot.toString()) val data = dataSnapshot.getValue(UserDataModel::class.java) // myUid.text = data!!.uid // myNickname.text = data.nickname // myAge.text = data.age // myCity.text = data.city // myGender.text = data.gender } override fun onCancelled(databaseError: DatabaseError) { // Getting Post failed, log a message Log.w(TAG, "loadPost:onCancelled", databaseError.toException()) } } // why null ? Log.d(TAG, uid) FirebaseRef.userinfoRef.child(uid).addValueEventListener(postListener) } } package com.example.sogating.utils import com.google.firebase.auth.FirebaseAuth class FirebaseAuthUtils { companion object { private lateinit var auth: FirebaseAuth fun getUid() : String { auth = FirebaseAuth.getInstance() return auth.currentUser?.uid.toString() } } } 자세한 소스 입니다. https://github.com/dongmyoungLee/sogating_app
-
미해결[2023 코틀린 강의 무료제공] 기초에서 수익 창출까지, 안드로이드 프로그래밍 A-Z
kts로 공부하는 학생도 있는데 갑자기 설명도 없이 kt로 설명하면..
강의에는 스크레치도 해도된다고 했는데 main이 없는데 어떻게 실행시키나요?..아님 확장자 kt 만드는법도 보여주셔야죠..