전체 글

Never stop acting like the new one on the team
Android/Development Tips

간단 Tips. Lottie 가 Android, iOS, Web, Window 등 에서 다르게 보인다면?

https://lottiefiles.com/supported-features Lottie Supported Features Lottie does not support all features of Adobe After Effects; please refer to the list below for details. lottiefiles.com 에서 각각 플랫폼에서 제공하는 Feature 들을 확인해보자! (저의 경우에는 Layer Effects 를 Android 에서 제공하지 않는 것이 문제 였습니다)

Android/Development Tips

간단 Tips. KotlinxSerialization 를 사용하여 Date 를 파싱하는데 에러가 난다면?

DateDto( @SerialName("created_at") var createdAt: Instant?, @SerialName("updated_at") var updatedAt: Instant? ) Instant 클래스를 타고 들어가서 보면 ? ISO-8601 를 사용하는 것을 알 수 있고 2020-12-09T09:16:56.000124Z 와 같은 예시도 볼 수 있다. 역직렬화 화는 과정(deserialize)에서 pase 하는 과정중에 포맷이 맞지 않는다면 DateTimeParseException 을 던지는 것도 알 수 있다. 항상 코드에 답이 있다! 혹시나 서버에서 다른 포맷으로 내려주고 파싱해야 한다면 KSerializer 를 상속받는 클래스를 만들고 직렬화, 역직렬화를 구현해주면 된다는 정보도 ..

한달에 교양 책 한권

면접을 위한 CS 전공지식 노트

요즘 핫한 책이라고 개발자 오픈카톡방에 올라와서 궁금해서 읽어봤습니다. 300 페이지 이하로 출퇴근 혹은 주말에 가볍게 읽어볼 수 있는 책이였습니다. 디자인패턴/네트워크/운영체제/데이터베이스/자료구조/포트폴리오와 면접 으로 구성되어 있고, 대학교 CS 에서 배우는 것들중에 가장 중요하다면 중요할 수 있는 주제들을 가볍게 정리해둔 노트 같은 느낌입니다. 대략적인 키워드와 그에 관한 가벼운 설명들을 얻어갈 수 있습니다. 간단하게 설명되기 때문에, 필요하다면 해당 키워드로 웹서핑을 지식을 습득해야할 것 같습니다. 특히 네트워크에서는 그간 모르거나 잊고 있었던 것들에 대해 알 수 있어서 좋았습니다. 다음은 리뷰 이벤트에 당첨되어 좋은코드, 나쁜 코드를 리뷰해볼 예정입니다.

Android/Development Tips

Domain 모듈에서 Paging, Room(RemoteMediator) 라이브러리 의존성 해결하기

오늘 이야기 하는 Tips 은 거의 활용되기 뻘팁이 될 확률이 높고, 그냥 "이렇게도 가능하다" 정도로만 이해해주시면 감사합니다. 해당 프로젝트 주소는 하단에 적어두었습니다. 일반적으로 Domain 은 Pure Java/Kotlin 으로 하는 경우가 많습니다. 따라서 Paging3 를 사용하다보면 도메인에 PagingSource, PagingData 등의 자료구조를 활용하지 못하기 때문에 고민에 빠지게 됩니다. 거의 대부분 아티클을 보면 // alternatively - without Android dependencies for tests implementation "androidx.paging:paging-common:$paging_version" 를 추가해서 사용해라 라는 이야기가 많습니다. 하지만 ..

한달에 교양 책 한권

함께 자라기

이전에 추천 받은 기억이 있어서, 서점에서 그냥 지나칠수 없어서 앞부분만 읽어 봤다가," 경력, 그 견딜 수 없는 무거움" 에 공감이 가서 구매 했습니다. 약 200 페이지로 길지 않은 책 입니다. 기억에 남는 문장이 있다면, 두려워도 중요하다면 시도해봐야 한다.(실패할 각오를 필요하다) 어떤 일을 진행할 때, 의식 해야 한다(어제의 나보다 나아지기를 희망한다) 애자일은 불확실한 상황에 대한 접근법이니, 애자일을 시작할 때, 무엇을 도입해야 할지, 먼저 해야할지 명확하게 안다는 것 자체가 모순적일 수 있다.(따라서 동료들과 주변을 탐색하며 더 나은 방법을 찾아가는 모습이 DFS + BFS 을 합친 알고리즘의 모습이 스쳐갔다) 실수는 예방하는 것이 아니라, 관리하는 것이다. 소위 높은 평가 받는 개발자는 ..

Android/Today I Learned

findViewTreeLifecycleOwner == null 인 경우?

이따금식 LifecycleOnwer 를 사용하기 위해, View 의 확장함수인 findViewTreeLifecycleOwner 를 사용하는 경우가 있습니다. 간혹 아무 생각 없이 사용하다보면 findViewTreeLifecycleOwner 가 null 을 반환하는 경우가 있습니다. RecyclerView 에서 사용하는 케이스는 https://pluu.github.io/blog/android/2021/09/20/lifecycleowner/ 에서 잘 설명하고 있어서 해당 글을 참고 해도 좋을 것 같습니다. RecyclerView 에서는 doOnAttach 함수를 사용하여, Lifecycle 을 얻어올 수 있지만, doOnAttach 로 해결되지 않는 케이스들도 존재 합니다. 먼저 ViewTreeLifecyc..

Android/Today I Learned

네트워크 요청 실패했는데, RunCatching onSuccess 가 호출?

TL;DR "네트워크 응답을 Result 와 같은 클래스로 래핑하면 실수할 확률이 높습니다." 상태 코드가 필요하면 awaitResponse 를 이용하고 아니라면 await 를 사용 합시다 해당 게시물은 실무에 도움이 되는 지식은 없고, 단순히 호기심으로 진행되었습니다. 회사에서 레거시 코드를 건드리는 중에, 신기한 일을 경험하였습니다. runCatching { apiCall.await() } .onSuccess { // ... } .onFailure { // ... } 와 같은 코드에서 네트워크 요청이 실패하여 400 이상 상태 코드들이 내려오는데 모두 onSuccess 를 타고 있었습니다. 문제가 있던 apiCall.await() 의 자료형은 아래와 같았습니다. apiCall 이 RxJava Sing..

Android/Today I Learned

주관적인 Compose 사용 후기

히스토리를 찾아보니, Compose 를 현업에 처음 사용한 것이 작년 11월이네요. 주기적으로 밀도 있게 쓰지는 않았지만, 시간 될 때마다 조금식 기여하여 회사 프로젝트에 20 개 넘는 화면을 Compose 로 구성하였고, QDSC(Qanda-design-system-compose) Sample App 을 만들기도 하였습니다. QDSC 는 아직 완성 단계는 아니지만, 거의 마무리 단계인듯 보이네요. 앞으로 적을 글은 매우 주관적인 내용들을 담고 있습니다. 장점1 주관적으로 생각하는 Compose 의 가장 큰 장점을 하나만 선택하자면 "직관적" 이라고 말할 수 있을 것 같습니다. 선언형이기 때문에 컴포넌트(Box, Column, Row, Chip, Lazy* ...) 의 특성을 이해 한 뒤에 이를 나열하기..

Daily & Thinking

안드로이드 면접 이야기

시간이 꽤나 지나서 잊기 전에 적어두는 2가지 면접 이야기. 시장에서의 나의 가치를 판단하는데는 면접 만큼 좋은 것이 없다고 생각합니다. 따라서 이직의사가 적어도 주기적으로 면접을 보라는 글들도 많이 접하였는데, 저도 동의합니다. 1. 지인의 추천을 받아 좋은 기회로 뤼xx 회사에 면접을 봤습니다. 서류 -> 1차 면접 -> 2차 면접으로 진행이 되었고, 추천을 받아 서류 이후 코딩 테스트는 생략이 되었습니다. 1 차 면접에서는 실무 면접을 봤고, 함께 일 할 수 있는 동료인지를 가장 중요하게 판단하는 것으로 느껴졌습니다. 면접인데도, 질문 답변 과정이나, 커뮤니케이션 하는 과정에서 상당히 즐겁고 편안하게 저의 생각 & 경험을 이야기 하는 시간을 가졌습니다. (면접관분들이 저를 잘 맞춰주신 것 같습니다)..

Nanamare
TEAM > SELF