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

Delight Yoon·2022년 12월 25일
0

웅진X유데미 STARTERS

목록 보기
13/16
post-thumbnail

📌 Week 11- 스프린트3 첫 주차

벌써 스프린트3이다. 믿기지가 않는다. ㅠㅠ 너무 바쁘게 지냈던 나머지 시간이 가는 줄 몰랐다. 진짜 프로젝트 기간은 시간이 너무 빨리 가는 것 같다.

이번 주차에 닫은 PR 내용이다.


장소 추가 API(Google Places API)

먼저, 장소 추가 화면 Feature 구현을 하였는데, 나머지는 내용을 입력 받는 부분이라 크게 어려움이 없었는데 크게 장소를 검색 받는 기능, 다중 이미지를 처리하는 부분에 시간이 걸렸던 것 같다.

Google Places API를 사용하여 검색 후, 검색한 결과에 나오는 장소를 등록하는 기능이었는데, 이 부분은 저번 주말에 진행해보았는데, 맞게 코드를 입력한 것 같은데 계속 안되었었다.

검색 창에 글자를 치면 App이 팅김.

혹시나 Google 프로젝트에서 제공받은 App keyPlace API가 등록이 되어있지 않았나 해서 월요일에 Google 프로젝트를 만든 팀원분께 다시 검토를 요구하였는데, 이는 문제 없었고, 계속해서 진행해본 결과, 구글 프로젝트에 결제 정보가 등록이 되지 않아 생기는 오류였다.

결제 정보를 등록 후, 해결하였다. 월 무료 요청 횟수가 있는데, 이를 넘지 않게 조심해야겠다. ㅋㅋㅋㅋ 만약 요금이 부과되면 팀원분들과 n빵 하기로 했다.

다중 이미지 처리

저번 주차 학습일지에서도 언급하였듯이, 커스텀 갤러리를 필요로 해야했다.

1. 이미지 선택 개수 제한 (최대 10장)
2. 다중 이미지 선택 가능
3. 이미지 선택 순서
4. 사진 추가 버튼을 눌렀을 때, 이미지 피커에 이미 선택되어 있는 이미지가 다시 선택되어 있어야 함.

등과 같은 기능을 할 수 있는 이미지 피커가 필요로 하였는데, 직접 구현하는 방법이 어려울 뿐더러, 시간이 많이 오래 걸릴 것이라고 생각하여 멘토님과 팀원과의 고민 끝에 이미지 피커 라이브러리를 사용하기로 하였다.

멘토님의 추천으로 라이브러리를 찾는 사이트 Android Arsenal과 여러 사이트를 통해 여러 이미지 피커 라이브러리를 찾아보았는데, 진짜 원하는 기능이 모두 있는 라이브러리인 Ted ImagePicker 로 선정하게 되었다.

Ted ImagePicker를 적용하는 부분에서, gradle.propertiesandroid.enableJetifier=true 라는 속성을 넣어줘야 했는데, 이 속성은 AndroidX 버전 이전에서 지원하는 라이브러리를 AndroidX 이상에도 적용가능하게 할 수 있는 속성 값이라고 들었다.

이 부분에서 Jj 소문자로 쓰는 바람에 계속해서 권한이 자동으로 거절되는 등 여러 에러가 발생하였는데, 팀원 분이 찾아주어서 다행히 잘 해결할 수 있었다. 하마터면 내 잘못인지 모르고 지원이 안되는 줄 알고 라이브러리를 사용하지 못 할뻔했다.

API 연결

그리고, 자기 자신이 좋아하는 여행지를 지역 별로 볼 수 있는 여기 좋아 부분, 장소 정보를 볼 수 있는 장소 상세 부분, 그리고 장소를 추가하는 부분을 API를 사용하여 서버 통신을 연결하였다.

여기 좋아 부분같은 경우에는, 사용자가 추가한 지역에 따라 동적으로 탭이 생기게끔 해야하는데 좀 걱정이 된다. 유저 상세 부분에서도 이와 같은 지역 별로 여행지를 나타내는 기능이 있는데, 이 부분은 동적으로 칩 버튼을 추가하는 것이라 레퍼런스를 찾기는 했는데, 동적으로 탭 아이템을 추가하는 것에 대해 좀 걱정이 된다. 그리고 팀원 분께서는 지역의 순서는 어떻게 할 것인지에 대해서도 고려해봐야 할 듯 하다고 하였는데, 이 부분은 좀 걱정이 된다. 다음 주차에서 얼른 마무리를 해서 배포를 할 수 있도록 해야할텐데 말이다..

여기 좋아 클릭 버그

이 버그 같은 경우는, 클릭한 여행지의 tripId 값을 ViewModel에서 관리하도록 코드를 짰는데, 이 부분에서 전에 선택되었던 여행지가 호출되는 황당한 에러가 발생하였다. ViewModel 에서 관리하는 것이 아니라 UI Layer에서 Observing 하는 변수에 tripId를 전달해줘야 했는데, 이 부분을 내가 간과했던 탓이었다. 이 부분을 수정하였다.

유저 상세 화면 UI

다음은 유저 상세 부분 UI를 작업하는 이슈를 진행하게 되었는데, 초기 기획 단계에서 그렸던 화면 설계서와 동일하게 진행하려 하였지만, 참 마음에 들지 않았고, 우리 여기다 서비스만의 특별한 느낌을 전달해주고 싶었다. 메인 블루와 화이트 색깔의 조합과 뭔가 여행 앱 답게 Fresh한 느낌을 전달해주려고 참 고민이 많았다. 그래서 다른 유사 서비스들을 찾아보고, 참 고심끝에 만들었다.


📌 마무리

아직 구현해야 할 기능들이 많이 남았다. 다음 주면 스프린트3을 마치고, 그 다음 스프린트인 스프린트4에서는 배포된 App을 사용하는 유저들에게 피드백을 받고, 버그를 수정하고, 테스팅을 진행하려고 하였는데, 그게 되려나 잘 모르겠다.

중간 중간 시간이 오래 걸리는 작업에는 ProgressBar도 적용하여야 하고, 초기 컨텐츠 데이터도 작성해야 하고, 모든 기능 구현도 완료해야 하고, 배포 전에 그래도 어느정도 기능이 원할하게 동작하게끔 테스팅도 해야하고, 걱정이 좀 많다. 이번 주차에도 시간 조절을 잘 못했던 것 같다. 시간 조절을 잘 못한 것도 있지만, 컨디션 관리를 잘 못해서 이번 주는 너무 아파서 프로젝트에 집중을 잘 하지 못하였던 것 같다..

이번 주차에 프로젝트에 잘 참여하지 못한 것 같아, 이번 주말에 시간을 내어 작업을 해보려 했지만, 서버분들과 얘기를 통해 API가 좀 더 수정이 필요한 작업이 많다고 생각이 들고 다음 주면 배포인데 컨디션 조절 잘해서 당장 내일부터 빠르게 달려야 겠다는 생각이 든다.

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


📌 References

profile
Yoon's Dev Blog

0개의 댓글