우아한테크코스/Level 4

우아한테크코스/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 이상의 기기에서는 플레이스토어 인앱 업데이트를 지원한다...

우아한테크코스/Level 4

[만들면서 배우는 DI] DI 미션 5단계

💡 Intro 5단계는 하지 않을 것 같다고 했지만.. 이대로 끝나는 것은 아까워서 내가 만든 di 라이브러리를 걷어내고 힐트를 적용해보았다. 이미 한 번 프로젝트에 적용한 상태지만 그 때와는 또 다른 부분에 시야가 트는 좋은 기회가 되었다. ❗️ 기능 요구 사항 지금까지 만든 쇼핑 장바구니 앱에 적용된 DI 라이브러리를 Hilt 코드로 교체한다. 기존에 만들어 둔 모듈과 테스트 코드를 삭제하진 않아도 된다. 이전 요구사항을 동일하게 만족해야 한다. 🔎 Hilt 적용하기 힐트를 적용하면 1~4단계까지의 고민이 무색해질 정도로 쉽게 구현이 가능하다. 또, 코드가 굉장히 깔끔해진다. 힐트는 어떻게 만든걸까.. 진짜 신기하네 어떻게 적용했는가, 그리고 그 과정에서 어떤 것을 느꼈는가에 더 집중하기 위해 Mai..

우아한테크코스/Level 4

[만들면서 배우는 DI] DI 미션 4단계

💡 Intro 레벨 4 첫 미션인 만들면서 배우는 DI도 어느덧 막바지를 향해 가고있다. 1단계, 2, 3단계, 4단계.. 5단계까지 있는 미션이긴하지만 감사하게도 선택사항으로 남겨주셨다. 5단계는 내가 만든 의존성 주입 라이브러리를 걷어내고 힐트로 바꾸는 것이다. 팀에서 진행하고 있는 프로젝트에서 힐트를 사용해볼 수도 있기도 하고, 내가 만든 라이브러리를 걷어낸다면 결국 무엇이 남는단 말인가.. 그래서 5단계는 하지 않을 것 같다. (마감이 오늘까지인데 하나도 안했다. ㅋㅋㅋ) 이번 미션이 끝나고 다음 미션은 어떤 것일지 매우 기대가 되지만 한편으로는 걱정도 조금된다. 이 정도의 난이도가 또 나온다면 나는 프로젝트에 얼마나 시간을 투자할 수 있을 것인가. 실제로 레벨 4 한 달동안 프로젝트의 진전은 굉..

우아한테크코스/Level 4

앱 배포 후 Hotfix..

💡 Intro 앱을 호기롭게 업데이트 했다. 그런데 2가지 치명적인 문제가 발견되었다. 먼저, 기존에 앱을 가지고 있던 사용자가 플레이스토어에서 업데이트를 요청하는 경우 다음과 같은 화면이 발생하며 업데이트가 되지 않는 문제가 있었다.. 처음 보는 문제이고, 내가 직접 겪은 것이 아니라 사용자가 나에게 이러한 문제가 있다고 알려주어서 상당히 곤란했다. 그래도 이러한 문제가 뜨고, 다시 한 번 업데이트 요청을 했을 때는 문제없이 동작한다고 한다. 두 번째 문제는 앱이 지속적으로 비정상종료 되는 것! 정상적으로 앱을 실행하기 위해서는 기존에 존재하던 앱의 캐시와 데이터를 모두 삭제해야만 했다. 그러면 정상적으로 실행이 되었지만 과연 개발자가 아닌 일반 사용자가 앱의 캐시와 데이터를 지우는 작업을 할까? 절대..

우아한테크코스/Level 4

[만들면서 배우는 DI] 2, 3단계 리뷰반영

💡Intro 2, 3단계 리뷰를 받은 뒤에 프로젝트의 구조를 대대적으로 수정하게 되었고, 생각보다 내용이 길어져 리뷰 반영에 대해서만 다루려고 한다. 레벨 1, 2와는 다르게 레벨 4는 크루들이 서로의 코드를 리뷰해준다. 좀 엉망인 코드긴 하지만 빨리 제출한 편에 속했고, 덕분에 레아가 리뷰를 해주셨다. 그래서 아마 이에 대한 반영 내용이 주가 될 것 같다. 미션에 허덕이는 것이 싫어서 더 고민하지 않고 제출했었는데, 이렇게 득이 되어 돌아와 기분이 아주 좋다. 내 딴에는 열심히 생각하고 괜찮은 것 같은데? 라고 생각하면서 완성한 구조이지만 문제가 있다는 피드백을 받아 개인적으로는 마음이 조금 아프긴 하다. 😂 (문제가 있다고 직접적으로 언급하시지는 않았지만 임시방편인 느낌이라는 부분에서 문제가 있지만 ..

우아한테크코스/Level 4

[만들면서 배우는 DI] 2, 3단계

💡 Intro DI 미션 1단계에 이어 2, 3단계에 대한 글이다. DI 미션 1단계는 레아가 수업에서 라이브 코딩으로 다뤄주셔서 거지 딱다구리 같은 나의 코드들을 분리수거 해버리고 수업에서 진행했던 코드들을 되새김질 하며 많이 인용했다. 아니 거의 똑같이 구현했다. 2, 3단계는 그런 것도 없다. 그래서 또 힘들었고(이 양반은 같은 미션에서도 단계마다 어렵다고 하고 있네-_-), 리뷰를 받고 반영하면서 현재 구조가 문제가 많이 있음을 깨달았고, 구조를 한 번 뒤집어 엎었다. 한 번 들어가보자. ❗️ 만들면서 배우는 DI 2단계 2단계 요구 사항은 다음과 같다. 필드 주입 ViewModel 내 필드 주입을 구현한다. Annotation 다음 문제점을 해결한다. 의존성 주입이 필요한 필드와 그렇지 않은 필..

우아한테크코스/Level 4

[만들면서 배우는 DI] 1단계

💡 Intro 어느덧 프로젝트에 집중하던 레벨 3이 지나고 레벨 4가 시작되었다. 이 글을 작성하기 시작한 오늘(9월 19일)을 기준으로 레벨 4가 시작한지 22일이나 되었다. 그런데 이제야 첫 글을 쓴다. 왜 벌써 22일이나 지난거지? 그리고 67일이 남았다. 시작할 때만 해도 9개월 남짓의 시간을 잘 버틸 수 있을까에 대해 걱정했는데, 이제는 끝이 다가오고 있음에 걱정하고 있다. 시간은 정말 빨리 지나간다. 무튼 각설하고 세상에서 제일 어렵고 힘들었던 레벨 4의 첫 미션에 대해 기술하려고 한다. 이놈의 주인장은 뭐 맨날 세상에서 제일 어렵다고 하냐라고 할 수 있겠으나 정말 어렵다. 주제는 “만들면서 배우는 DI” 무엇이 어려웠고, 어떤 요구사항을 만족하기 위해 어떤 고민을 했었는가에 대해 최대한 자세..

Krrong
'우아한테크코스/Level 4' 카테고리의 글 목록