포스팅 썸네일 이미지

학습

deprecated된 firebase dynamic link 없이 Firebase email link authentication 구현하기 - 2

이전 글https://dodobest.tistory.com/120 deprecated된 firebase dynamic link 없이 Firebase email link authentication 구현하기 - 12025년 8월 25일부터 Firebase dynamic Link(FDL)가 deprecated 되어 사용할 수 없게 됩니다. Deprecation 문서에 따르면 신규 프로젝트 생성자는 FDL을 사용할 수 없고, Firebase email link authentication에 한해서 고객센dodobest.tistory.com  이전 글에서 사용자가 입력한 이메일로 인증 메일을 발송하는 코드를 작성했습니다.이번 글에서는 인증 메일의 확인 여부를 관찰하는 코드를 작성해보겠습니다.Android Kotli..

2024.09.16 게시됨

포스팅 썸네일 이미지

학습

deprecated된 firebase dynamic link 없이 Firebase email link authentication 구현하기 - 1

2025년 8월 25일부터 Firebase dynamic Link(FDL)가 deprecated 되어 사용할 수 없게 됩니다. Deprecation 문서에 따르면 신규 프로젝트 생성자는 FDL을 사용할 수 없고, Firebase email link authentication에 한해서 고객센터에 문의하면 FDL을 사용할 수 있다고 합니다. (문서와 다르게 신규 프로젝트도 Firebase Console에서 Run 탭 하위의 Dynamic Links에서 사용할 수 있습니다.) Q. I need to onboard onto Firebase Dynamic Links to enable email link auth in Firebase Authentication. What should I do?A. It curren..

2024.09.11 게시됨

포스팅 썸네일 이미지

코딩테스트

Kotlin 카카오 주차 요금 계산 - ConcurrentModificationException, HashMap, hashing

ConcurrentModificationException https://school.programmers.co.kr/learn/courses/30/lessons/92341 프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.kr    자동차의 주차장 출입 누적 시간을 기록한 후, 비용을 계산해서 반환하면 되는 문제이다.아래는 처음에 작성한 답안이다. 어떤 문제가 있을까? /** 누적 주차 시간이 기본 시간 이하라면 기본 요금 누적 주차 시간이 기본 시간을 초과하면 초과한 시간에 대해 단위 시간 마다 단위 요금 초과한 시간이 단위 시간으로 나누어 떨어지지..

2024.09.04 게시됨

포스팅 썸네일 이미지

학습

Safe Navigate Action

문제 상황 및 해결방법 상단의 사진 권한 변경 영역을 클릭하면 Navigation Action을 이용해 ModalBottomSheetFragment가 실행되어 ModalBottomSheet가 보이도록 설정했습니다.   천천히 눌렀을 때는 문제 없었으나, 매우 빠르게 연속해서 누를 경우 아래와 같은 exception이 발생했습니다.내용을 요악해보면, 현재 ModalBottomSheetFragment에서 호출한 Action이 없기 때문에 처리할 수 없다는 뜻입니다.Process: com.bestapp.rice, PID: 12707java.lang.IllegalArgumentException: Navigation action/destination com.bestapp.rice:id/action_profileI..

2024.08.22 게시됨

포스팅 썸네일 이미지

TIL

240821 TIL - 면접

오늘 면접을 보고 왔다. 과제테스트 30분 + 기술면접 1시간으로 진행했다. 과제테스트는 맥북을 이용해서 진행했는데, 나는 지금까지 맥북을 이용해본적이 없다. 맥마우스도 제공됐는데, 오른쪽 클릭 하는 방법을 몰라서 터치패드를 이용했다, 맥북 터치패드도 처음 써봐서 그런지 오른쪽 상단을 두번 눌러도 오른쪽 클릭이 잘 안 됐다.그 외에 한영 전환, IDE 단축키 등 윈도우랑 다른 것이 너무 많아서 주어진 문제 조건을 다 만족하지 못한 것 같다.... 맥북 사야할까.....🤔 OS와 무관하게 과제테스트를 완료하지 못한 이유가 2가지 있다. 1. Activity LifecycleScope Activity에서 DB에서 데이터를 가져오는 함수를 호출하고 있었고, 시간이 5초 이상 소요되어 exception이 발생..

2024.08.22 게시됨

포스팅 썸네일 이미지

학습

Flow, Channel, ChannelFlow, CallbackFlow

Flow와 Channel의 목적 Flow : 데이터를 생성하고 처리하는데 사용할 수 있습니다.Channel : 코루틴 간에 데이터를 주고 받는데 사용할 수 있습니다. Flow & Channel 비교 Flow는 비동기적으로 생성된 데이터를 전달하는 스트림으로, 관찰자가 없으면 데이터를 생성하지 않는 Cold source 입니다.기본적으로 Flow는 생성된 데이터가 collect 함수에 의해 소비될 때까지 다음 데이터를 생성하지 않습니다. 단, buffer 함수를 통해 버퍼를 설정하면, 버퍼 크기 + 1 만큼의 데이터를 미리 생성할 수 있습니다. 버퍼가 있는 Flow는 Hot source 입니다. onBufferOverflow 파라미터를 이용해 버퍼가 꽉찼을 때 동작을 정의할 수 있으며, 다음의 3가지 종류..

2024.08.15 게시됨

포스팅 썸네일 이미지

학습

RecyclerView Itemdecoration 올바르게 사용하기

1. 구현 요구 사항 프로필 화면에서 사용자들이 모임에서 찍었던 사진을 GridView 타입으로 보여줄 수 있는 UI가 필요했습니다.이때, 인스타그램과 같이 사진 사이에 동일한 Margin이 필요했습니다. 2. 구현 방법 사진들을 표시하기 위해 구현한 RecyclerView 입니다.한 열에 여러 이미지를 표시하기 위해 GridLayoutManager를 이용했으며, 개수는 3개로 설정했습니다.  ViewHolder에서 사용한 XML 입니다.RecyclerView에서 한 열의 아이템을 3개로 설정했기 때문에, 3개의 아이템이 모든 width를 차지하도록 Layout의 width를 match_parent로 설정했습니다.이미지가 정사각형으로 표시되도록 Style을 정의해 설정했습니다.아이템 사이의 세로 방향 M..

2024.07.24 게시됨

포스팅 썸네일 이미지

후기

내일배움캠프 Android 3기 자세한 후기

이전에 작성한 시점으로부터 2주가 지난 시점에 더 자세한 후기를 작성해보고자 한다. https://dodobest.tistory.com/113 240629 TIL - 1주 남은 시점에 작성하는 내일배움캠프 Android 3기 후기TIL을 안 쓴지 2개월이 된 것 같은데, 수료까지 일주일 남은 시점에 후기를 작성해보려고 합니다. 장점 - 교육 시간 내내 상주하시는 다양한 튜터 님들 이 부분이 내일배움캠프의 가장 큰 장점이dodobest.tistory.com  1. 참여 계기 2022년 하반기에 네이버 부스트캠프 7기 Andorid 과정에 참여한 경험이 있으나, 학습 방향에 있어서 어려움을 겪었다. 코드몽키가 되지 않으려면 단순히 기능만 구현하는 것이 아니라 이해하고 사용해야 한다는 영상을 보고, 필요하지 ..

2024.07.14 게시됨

포스팅 썸네일 이미지

TIL

240629 TIL - 1주 남은 시점에 작성하는 내일배움캠프 Android 3기 후기

TIL을 안 쓴지 2개월이 된 것 같은데, 수료까지 일주일 남은 시점에 후기를 작성해보려고 합니다. 장점 - 교육 시간 내내 상주하시는 다양한 튜터 님들 이 부분이 내일배움캠프의 가장 큰 장점이라고 생각합니다. 아침 9시부터 저녁 9시까지 다양한 튜터 님들이 온라인 교육 공간에 상주하고 계셔서 질문할 수 있습니다. 그런데 처음 학습하시는 분이라면 이 부분이 오히려 단점이 될 수도 있습니다. 튜터 님에게 가서 바로 질문을 할 수 있다보니, 소통 채널인 Slack 질문방에 질문이 올라오지 않았습니다.(기수마다 다를 수 있습니다.) 그래서 내가 모른다고 인지한 지식만 질문을 통해 학습할 수 있기 때문에, 개발에 대한 사전 지식이 없다면 큰 성장을 하기란 어려울 것 같습니다.네이버 부스트캠프 챌린지 과정에서 공..

2024.06.29 게시됨

포스팅 썸네일 이미지

학습

왜 repeatOnLifecycle 앞에 viewLifecycleOwner를 붙여야할까?

핵심 내용 선 정리왜 repeatOnLifecycle 앞에 viewLifecycleOwner를 붙여야할까? 공식문서 예시 코드에서 repeatOnLifecycle 앞에 viewLifecycleOwner를 붙여서 사용하고 있습니다. 왜 일까요?  class MyFragment : Fragment() { val viewModel: MyViewModel by viewModel() override fun onViewCreated(view: View, savedInstanceState: Bundle?) { super.onViewCreated(view, savedInstanceState) // Create a new coroutine in the lifecycleScope ..

2024.06.26 게시됨