분류 전체보기

Android

DiffUtil 톺아보기

💡 Intro DiffUtil은 RecyclerView의 리스트를 업데이트 할 수 있는 방법 중 하나다. 우테코를 하면서 이 녀석의 존재를 알고 있긴 했는데 정확히 어떤 녀석이고 어떤 방법으로 리스트를 변경하는지는 몰랐다. 마침 지금 진행하고 있는 프로젝트에서 DiffUtil을 사용하고 있으니 자세하게 알아보려고 한다. RecyclerView 데이터 업데이트 방법 DiffUtil을 사용하지 않아도 RecyclerView의 리스트를 업데이트 하는 방법은 많다. 대표적인 메서드로으로 notifyDataSetChanged가 생각날 것이고 이외에도 notify 로 시작하는 메서드들이 많다. notifyDataSetChanged에 대해서 공식문서를 살펴보면 해당 메서드는 최후의 수단으로 사용하라고 한다. 데이터 ..

Android

AdapterPosition과 LayoutPosition 뭐가 달라요?

💡 Intro 리사이클러뷰를 사용하다보면 유저가 특정 아이템을 클릭했을 때 처리를 해줘야 할 필요가 있다. 이를 구현하는 방법은 여러가지가 있겠지만 나는 Activity → Adapter → ViewHolder로 람다를 전달하는 방식으로 구현한다. 이렇게 구현하면 어댑터나 뷰홀더가 어느 함수에 강하게 결합되어 있지 않기 때문에 재사용하기 좋아진다. 그런데 아이템을 클릭했을 때 해당 뷰홀더가 가지고 있는 데이터를 사용하여 어떤 작업을 하기 위해서는 약간의 처리가 더 필요하다. 클릭한 뷰홀더에 바인딩 되어있는 String을 사용해야 한다고 가정하자. 그러면 Activity → Adapter → ViewHolder로 전달하는 람다가 다음과 같이 될 것이다. Activity → Adapter : (String)..

우아한테크코스/Level 5 ~

[우테코] 우아한테크코스 어땠어요?

우아한테크코스가 끝난지 3주차다. 아직까지는 톡방이나 디스코드도 활발하고 오프라인 스터디도 하고 있어서 그런지 진짜 '끝났다'는 생각은 잘 들지 않는 것 같다. 끝..났나? 22년 겨울 작년 초쯤 학교 선배에게 우아한테크코스라는 것이 있다고 들었다. 그 때는 그런 교육 프로그램이 있구나 하는 가벼운 생각을 하며 흘려들었던 것 같다. 22년 10월 운이 좋게도 선배를 따라 지원한 회사의 최종 면접을 보고왔다. 행복회로를 돌리지 않는 사람이기도 하고 기대하지 않으려 노력했지만 '최종'이라는 글자는 그런 나에게도 기대감을 주기에 충분한 단어였다. 하지만 예상했던 것처럼 떨어졌고, 운동으로 스트레스를 풀어보려했지만 디스크가 터져 그마저도 힘들었다. 나에게 가혹한 시간이었다. 무엇을 해야 할까. 무엇을 할 수 있..

스터디/기술면접 질문 정리

기술면접 질문 정리 - 네트워크

이하 내용은 기술면접대비 CS 전공 핵심 요약집의 내용을 참고하였으며 스터디원들과 나누고 정리한 내용이기 때문에 틀린 부분이 있을 수 있습니다. 💡 데이터 캡슐화란 무엇인가요? 계층간 데이터를 전달하며 정보를 담은 헤더나 트레일러가 붙는 과정을 말합니다. 💡 그렇다면 데이터 캡슐화를 하는 이유는 무엇인가요? 수신부의 같은 계층에서 데이터의 호환성을 높이고 오류의 영향을 최소화하기 위함입니다. 💡 프로토콜은 무엇인가요? 프로토콜은 컴퓨터 내부에서, 또는 컴퓨터 사이에서 데이터의 교환 방식을 정의하는 규칙 체계를 의미합니다. 💡 OSI 7계층에 대해 설명해주세요. 네트워크 통신이 이뤄지는과정을 7단계로 나눈 네트워크 표준 모델입니다. 응용 계층 : HTTP, FTP 등의 프로토콜을 응용 프로그램의 UI를 통..

우아한테크코스/Level 5 ~

레벨 3에서 진행한 예외처리 적용기

💡 Intro https://krrong.tistory.com/entry/예외처리 위 글을 작성하며 프로젝트에서 예외처리를 어떻게 하면 잘 할 수 있을까 고민을 많이 했고 제이슨의 도움으로 이론적인 해결의 실마리를 찾았다. 이번 글에서는 어떤 고민을 하면서 프로젝트에 적용했는지 적어보려 한다. 항상 생각하고 있는 것이지만 이론적인 것을 아는 것과 그 이론을 프로젝트에 적용하고 코드로 녹여내는 것은 정말 다른 영역인 것 같다. ❓ Before 지금도 예외처리를 안하고 있는 것은 아니다. 그 처리가 체계적이지 않고 어떤 예외인지 한 눈에 알 수 없는 형태일뿐이다. 코드를 실행했을 때 예외의 메시지를 통해 어떤 예외인지는 알 수는 있다. 하지만 구현하는 동안은 어떤 예외가 발생할 수 있을지 생각해보고 이에 맞..

우아한테크코스/Level 5 ~

[우테코 프로젝트] 리프레시 토큰 뜯어고치기

문제 상황1 현재 Interceptor가 굉장히 살이 많이 쪄있다. 만료된 액세스 토큰을 리프레시 하는 기능을 모두 Interceptor안에 몰아두었기 때문인데 이를 역할과 책임을 적절히 분배할 것이다. 현재 프로젝트에는 AuthRepository가 이미 있기 때문에 액세스 토큰의 리프레시 로직을 AuthRepository가 가지고 있는 것이 적절하다고 생각한다. 그러기 위해서는 Interceptor가 AuthRepository를 들고 있어야 한다. 이 것이 적절할까? 에 대해서 많이 고민하긴 했는데, 역할과 책임을 적절히 분배한다 라는 관점에서는 이게 맞는 것 같기도 했고, 이렇게 구현한 레퍼런스가 아예 없는 것도 아니기에 생각을 밀고 나가보기로 결정했다. (팀원의 생각이 다르다면 받아들여야지 하는 생..

우아한테크코스/Level 4

UI State와 Flow 적용기(1) - UI State

💡 Intro 위와 같은 화면을 만들기 위해 어떤 방법을 사용해야 할까 많이 고민했다. 보여줘야 하는 데이터는 읽은 쪽지와 등록한 쪽지다. 그런데 우리가 가진 API는 다음과 같다. letterlogs?gameId={}&logtype={READ/WRITE} 특정 게임의 아이디를 통해 읽은 쪽지를 받아오거나 등록한 쪽지를 받아오거나. 그러니까 읽은 쪽지 + 등록한 쪽지를 모두 가져오려면 총 두 번의 요청이 필요하다. 어? 그러면 읽은 쪽지와 등록한 쪽지 모두를 가지고 있는 상황에서만 뷰를 띄워주어야 하는 것이 아닌가?🤔 하는 생각이 들었다. 그러면 UI State를 통해 성격이 다른 두 개의 데이터를 하나의 클래스안에 캡슐화하고, UI State가 뷰에 표시될 준비가 되면 뷰에서 보여주면 되겠다!😎 는 생..

우아한테크코스/Level 4

Firebase remote config

💡 Intro 레벨4 프로젝트를 진행하고 있는데 출시했던 앱에서 로그인 기능 문제가 생겼다. 앱을 사용하는 사용자의 입장에서 생각해보면 내가 사용하던 앱이 비정상종료가 계속된다? 그러면 나는 그 앱을 더 사용하지 않을 것 같다. 슬프게도 실사용자가 있는 앱은 아니지만.. 굉장히 불편한 요소 중 하나이며 무조건 고쳐야 하는 버그라고 생각한다. 고쳤다는 가정을 해도 한 가지 문제가 더 남는다. 만약 사용자가 고치기 이전 버전을 사용하고 있다면? 사용자가 플레이스토어에 들어가 직접 앱을 업데이트 하지 않는 이상 발생했던 문제는 사라지지 않는다. 이를 해결하기 위해 많은 앱에서 업데이트를 강제하는 방법을 사용하는 것 같다. 공식문서를 보면 API레벨 21 이상의 기기에서는 플레이스토어 인앱 업데이트를 지원한다...

Krrong
'분류 전체보기' 카테고리의 글 목록 (3 Page)