본문 바로가기

안드로이드

오류처리의 시작은 의미있는 로그와 그것을 부릅뜨고 관찰하는 개발자이다 꼼꼼한 오류처리 달성하셨나요? 우테코에서 진행한 Trip Draw 프로젝트의 제1 목표로 삼은것이 꼼꼼한 오류처리였다. 물론 원래도 오류처리를 좋아하지만 이번에는 혼신을 다해서 진짜 기존까지 했던 기술들을 총동원하자는 목표가 있었다. 물론 우테코 특성상 레벨 3가 끝난 2023.08.22 시점에 Crashlytics 를 통한 모니터링 환경 구축(추가 작업 필요), sealed class 로 경우의 수를 나눈 callAdpater, callAdapter를 거쳐나온 코드의 보일러 플레이트를 제거하며 default handler 를 제공할 수 있는 util 함수 process 밖에 적용하지 못했다.(그래도 process 를 직접 손으로 빚어가며 만든 예쁜 내새끼라 맘에든다.) 그래서 이번 프로젝트의 오류처리에.. 더보기
안드로이드 비동기처리 어떻게하세요?(enqueue vs future) 비동기처리 뭐 쓰세요?(Thread pool은 어떻게 관리할까?) 내가 제일 좋아하는 주제가 나왔다. 내가 제일 좋아하는 "비동기처리, 오류처리, 그리고 레트로핏 라이브러리 까보기" 뭔가 이름이 ‘이브, 프시케 그리고 푸른 수염의 아내’ 같다 ㅋㅋㅋㅋㅋㅋ 어쩃든 주제가 무엇인가? 비동기처리 Thread관리에 따른 성능차이이다. // 이 글을 쓰기 시작한 시작한 날로부터 한달이 넘게 지나도록 학습하고있는 2023/07/10 기록 이 글을 쓰다가 이렇게 오래걸리고 돌아올줄 몰랐는데 이글은 결론적으로 Thread pool의 관리개념과 최적화 관련글이 되어버렸다.(얼탱이가 없네) 이 글 또한 오류처리처럼 방대한 개념을 모았고 학습기간도 오래되었기 때문에 글이 두서없을 가능성이 크다 그러므로 키워드 위주로 뽑아보.. 더보기
코루틴에 대해서 제대로 공부해보자 -1- 소셜로그인에서 401에러 처리 관련하여 coroutine exception handler 를 사용하여 에러처리를 하고있는데 그부분에 대해서 글을 작성하려다보니 코루틴에대해서 다시 검색해보고 공부할 기회가 생겼고 코루틴이 정말 이해가 잘되지않았지만 나름의 정의를 내리고 사용하고 있었는데 뭔가 확 와닿는 부분이 생겨서 그부분에 대해 정리해보고자 코루틴 관련 시리즈 글을 써보려고한다. 아 그리고 매번 글을 길게 쓰다보니 글들이 길어지고 매번 쓰다가 지치는 경향이있어서 이번은 주제를 작게잡고 짧은 글들을 써볼 예정이다. 코루틴을 처음 접한때가 작년 이맘때 쯤인거 같은데 이제서야 슬슬 이해가 되는것을 보니 역시 이해가 안되는 개념과 어려운 이야기들은 용어가 익숙하지 못해서 어려움을 느끼는 것이 크다고 생각한다. .. 더보기
소셜 로그인을 적용해보자 -1부- 자 이제 또 앱잼시즌이 도래했다 앱잼에서는 소셜로그인을 많이 쓰니까 소셜로그인의 사용법을 알아보고 기타 로그인 관련 처리는 어떻게 하였는지 그리고 예시로서 소셜 로그인 중 카카오와 네이버를 적용해볼 것이다. 일단 어느시점에 시작했는가 스파크를 할때만해도 너무 응애였기 때문에 토큰관계 이런거 하나도 몰랐고 알려들지도 않았다 그걸 뚝딱뚝딱 만들어내는 연주랑 영권이를 보면서 난 저런거 언제나 할수있냐 하면서 절망했을뿐 근데 막상해보니 별거 아니였다. 쿠쿠루삥뽕 최초로 리드미에서 네이버 로그인을 구현하였고 포토서퍼에서 카카오 로그인과 네이버 로그인을 같이 하게 되어 그 부분을 글로 정리해보려한다. 로그인에는 단순 로그인만 시키는것이 아닌 토큰이 만료되었을때 나는 에러인 401에러가 났을시 어떠한 방법으로 재 로.. 더보기
서버통신 시리즈(오류처리) 3.오류처리를 기깔나게 해보자 자 이번에 쓸글은 서버통신 시리즈 3편이다 ??? 2편도 없는데 3편? 2편으로 쓸려했던 "과연 레트로핏,okhttp 를 잘 알고 쓰는것일까?" 에 대해선 글을 쓸양이 정리하기 시작하면 너무 방대하고 그렇다고 요약하기에는 너무 양이 적었다. 그래서 이번글을 쓰면서 공부했던 내용인 오류처리를 위해서 당연히 레트로핏,okhttp 에 대해서도 다 공부하고 짚어봤지만 일단은 당장 프로젝트에 적용해서 정리하기 쉬운 3편부터 글을 작성하고 프리퀄로 2편을 작성해볼까한다. 이제 본론으로 들어가보자 글을 다쓰고 보니까 글이 너무 두서없다 하지만 진짜 이거 공부하면서 너무어려워서 과부화가 많이왔다. 그리고 내 미천한 글솜씨로는 더이상 간결하게 표현할 자신도 없기에 페르마처럼 나는 경이로운 방법으로 설명했으나 여백이 충분.. 더보기
서버통신 시리즈(레트로핏) 1.서버통신시 에러메시지를 받아보자!! 요즘 글 쓰는 주기가 부쩍 늘어났다 공부하는 내용들이 어려워서 금방금방 정리가 안된다. 그래도 정신차리고 쪼개서라도 써보자 또한 앞으로 레트로핏 관련 오류처리 공부를 시리즈로 적어볼까 생각중이다. (한번에 쓸려다가 너무 방대해서 아예글을 안쓸거 같아서 쪼개서 써야겠다) 그 중 첫번째 내용으로 오류 메시지를 뽑아봤던 경험을 정말 거지같이(시간에 쫓기며) 뽑은거에서부터 예쁘게 코드를 정돈해서 리펙토링해서 뽑은것까지에 대한 내용이 이번글의 주제이다. 이런 관련 공부를 하게된 계기는 또 스파크로부터 비롯 되었다. 일단 공부하게된 계기는 이렇다 스파크 기능을 구현하던중 코드로 방입장이라는 기능이 있었다. 어떠한 기능이냐하면 코드를 입력하면 서버통신 성공시 방에대한 정보가 오게 되는데 성공시 정보 { "status.. 더보기
기존에 사용하던 잘못된 프래그먼트 관련 사용법을 고쳐보자!! 이번공부를 하며 바보같은 시간을 너무많이 보냈다. 문다빈이 매일 말하는 이창환은 바보야가 진짜 맞는말이다. 어쨋든뭐 평생 징징거릴수도 없고 열심히 정리라도 해야겠다. 오늘의 주제는 프래그먼트이다. 너무 식상할수도 있다 왜 일상적으로 쓰던 프래그먼트가 나올까? 이사건은 솝트 30기 1주차 코드리뷰에서 시작되었다. 문서 라고 나와있는 글의 링크이다 https://developer.android.com/guide/fragments/transactions#add-remove Fragment transactions | Android Developers At runtime, a FragmentManager can add, remove, replace, and perform other actions with frag.. 더보기
무한스크롤을 구현해보자!!! 무한스크롤이란게 뭘까? 무한스크롤은 한마디로 pageination(서버쪽에서 이렇게 많이 부르는거 같다),paging 이라고 불리는 기법을 이용하는것이다. 예시를 들자면 인스타에서 피드를 계속 스크롤 해보면 한도끝도 없이 나온다. 근데 이 피드를 최초 액티비티를 켰을때 모두다 가져오는 것일까? 아닐것이다. 데이터는 진짜 끝도없이 서버에 쌓여있을테고 그걸 화면에 표시할 만큼만 들고와서 화면에 표시해주고 특정조건 즉 화면에 표시한 정보들을 사용자가 다 읽었을때 새로운 정보를 가져와서 다시 뿌려줄것이다. 물론 처음에 데이터를 왕창 가져와서 한번만 통신하고 끝낼수도있을것이다. 하지만 많이 가져오는만큼 서버와 통신하는 시간이 길어질테고 그것을 담는 메모리또한 크기때문에 메모리 리소스도 효율적으로 사용하는 방식은 .. 더보기