유데미 STARTERS(스타터스) 취업 부트캠프 2기 - 프론트엔드(Android, 안드로이드) 8주차 학습 일지

Delight Yoon·2022년 12월 4일
0

웅진X유데미 STARTERS

목록 보기
10/16
post-thumbnail

Week 8 - 스프린트 1 데모


학습일지를 작성하면서 알게되었는데 벌써 스타터스에 합류한지 8주가 지났다. :) 바쁘게 지내다보니 시간이 진짜 빨리 가는 것 같다.

이번 주차는 스프린트 1을 마무리 지으며 데모하는 시간을 갖게 된다.

이번 주는 저번 주에 잠깐 맛만 보았던 카카오 소셜 로그인을 주로 진행하게 되었다. 원래 기존에 졸업작품에서 사용했던 카카오 소셜 로그인이었기 때문에, 그 때는 되게 간단하게 구현을 했었기 때문에 추정치를 낮게 잡았었는데 이게 큰 오산이었다..

하지만, 이번 회원 쪽 이슈들을 작업하면서 많은 점들을 배운 것 같고, 이 외에도 다른 UI를 작업해놓은 부분도 있기 때문에(Dummy 데이터를 사용하여 리스트에만 띄워놓은 상황) 생각보다 스프린트 1의 진행 사항은 만족스러운 것 같다는 생각이 든다.

회원 Issue 작업


이번 스프린트 1에서 주로 진행했던 작업이다.

Spring Security를 이용하기 위해서는 JWT 토큰을 발급받고 회원관리를 해야한다. 따라서, 이러한 토큰을 관리하여야 하는 부분이 정말 개발을 힘들게 하였다 😭

  • Splash 화면에서 로그인 화면으로
  • Splash 화면에서 메인 화면으로 (기존에 로그인한 적이 있다면 자동 로그인)

이 두 가지 경우를 생각하여야 했는데, 로직을 어떻게 짜야할 지, 토큰을 어떻게 갱신하고 처리해야할 지, JWT토큰에 대한 이해를 해야했기 때문에 시간이 좀 걸리게 되었다. 그리고 디바이스 내부에서도 해당 사용자의 JWT 토큰 값을 가지고 있게 되는데(Access, Refresh가 유효한지 확인하거나 토큰을 갱신하기 위함), 이러한 부분에서 기존에 사용하였던 SharedPreferences 대신에 구글에서 또는 공식문서에서 권장하는 Data Store를 새로 사용하기로 하였고 익히는 데에 시간이 좀 걸리게 되었던 것 같다.

정확히는 Preferences Data Store를 사용하게 되었는데, 이는 Flow를 사용하여 데이터를 저장하는 방식 같았다. 그래서collect 함수를 사용하면 값을 받아올 수 있는 지 알았다. 기존에 boolean 형식의 값을 collect를 사용하여 가져왔을 때 잘 가져와졌길래 collect를 사용하여 가져오는 줄 알고 있었다. 그런데 토큰 값을 받아오는 과정에서 값을 Log를 사용하여 표시했을 때, 나타나지 않았다. true , false 값은 잘 받아와지는데, String 문자열 값은 받아와지지 않는 것이었다.

이 방법은 first() 함수를 사용해서 받아옴으로써 해결할 수 있었다.

이 외에도, 프로필 사진을 등록할 때 갤러리에 들어가 이미지를 가져오는 것, 닉네임 중복확인, 로그인, 회원가입 API 연동 등 생각보다 많은 작업을 하게 되었고, Splash -> Login -> Main 이 화면 전환 간에 일어나는 로직을 꼼꼼히 고민하고, 구현하는 데에 많은 시간이 걸렸다.

그래서 아직도 회원탈퇴 부분은 API를 연동하지 못하였고, 프로필 사진을 갤러리에서 가져와지는데 가져온 URI 형식의 이미지 값을 파일 형태로 변환하여 MultiPartBody 형식으로 변환해서 서버에 전송해야 하는 등 아직 해결하지 못한 부분이 많다.

위 회원 Issue를 해결하면서 진행한 트러블 슈팅 과정이다.

결과

마무리


먼저, 본인이 담당하는 업무는 아니지만, 같이 트러블 슈팅을 통해 문제를 해결하면서 도와준 같은 안드로이드 팀원 분과 안드로이드 개발자 멘토님에게 먼저 감사함을 표하고 싶다.

만약, 혼자서 문제를 해결해야 했다면, 아직도 작업을 진행하고 있을 지도 모른다. (물론, 회원탈퇴와 프로필 이미지를 전송하는 부분을 아직 구현하지 못하였지만...) 그리고, 같은 안드로이드 파트 팀원 분께서 원래 내가 작업해야했던 마이페이지 UI를 작업해줌으로써, 로그아웃까지 편하게 이어서 구현할 수 있었다.

다음 주차에는 스프린트 2에서 진행할 이슈를 구현하기 전에회원탈퇴를 구현하기 위해서 API를 연동하고, 서버와 MultiPart 형식으로 프로필 이미지를 주고 받는 것을 제일 먼저 처리해야 할 것 같다.

이번 주차에는 Retrofit2를 사용하여 지금까지는 json 파일을 GET하는 방식만 공부하였는데, POST 방식을 어떻게 처리하는 지, json 파일이 아닌 API를 통신하는 request , response 형식에 따라 통신하는 법에 대해서 익히게 되었고, Data Store를 학습하여 적용해보기도 하고, 소셜 로그인을 Spring 백엔드 개발자 분들과 협업하여 구현하려면 어떻게 해야하는지 등 많은 것들을 배울 수 있었고, 생각보다 난관들을 잘 헤쳐나간 것 같다는 생각도 들어 자신감이 많이 생긴 것 같다. 다음 스프린트 2 잘해낼 자신있다 !!


💡 본 후기는 유데미-웅진씽크빅 취업 부트캠프 2기 - 프론트엔드&백엔드 과정 학습 일지 리뷰로 작성되었습니다.

profile
Yoon's Dev Blog

0개의 댓글