Lumpy Space Princess - Adventure Time
대외활동/유데미 STARTERS 2기

유데미 STARTERS 취업 부트캠프 2기 - 프론트엔드 9주차 학습 일지

yaebb_82 2022. 12. 11.

 

 

저번 주에 데모데이 1차를 끝내고 꽤나 많은 멘붕을 받았던 것 같다. 로그인/회원가입 기능을 Sprint 1 때 끝내기로 했었는데 로직이 많이 변경된 것도 있었고, 발표 직전에 카카오톡 소셜 로그인 API 연동한 것 마저 뻑이 나가는 바람에 그나마 해놨던 것 마저 흐지부지가 되어버렸다😇 팀원들에게 민폐를 끼치기 싫어서 최대한 해갈 수 있는 것들은 해가자 라는 마인드로 그 주 토요일, 일요일 모두 코딩으로 불태웠다. 그래서 카카오톡 소셜 로그인 API 연동해놓은 코드를 갈아 엎어서 다시 정상 작동하게끔 수정했고, 스플래시 화면도 안드로이드12에 대응할 수 있도록 수정했다.

Where is 내 주말...

 

 

 

이제 Sprint 1이 끝나고 2가 새롭게 시작되기 때문에, 개발하기에 앞서 팀원들과 회의를 해서 이번 Sprint 2 동안 구현해야 하는 기능들에 대해서 리스트업을 해보았다. 일단 Sprint 1 동안 못한 로그인/회원가입 기능 업보빔을 이번 Sprint 2에 맞게 되었다... 이외에도 스플래시에서 처리해야 하는 것들이 상당히 많았고, 로그아웃과 회원탈퇴도 같이 진행하면서 전체적인 로직이 잘 돌아가는지 확인이 필요했다. 로그인/회원가입 및 로그아웃/회원탈퇴 모든 기능들이 정상적으로 잘 작동이 된다면 회원정보 수정까지 하는 것이 이번 Sprint 2 목표이다.

 

 

 

벌써 Sprint 2가 시작된지도 일주일이 흘러버렸고, 지난 한 주를 돌이켜 생각해보면 수많은 에러와 이슈들로 가득했던 한 주였던 것 같다.

 

먼저 스플래시에서는 자동로그인네트워크 상태 체크 기능 구현을 완료한 상태이다. 일단은 네트워크 체크를 먼저 한 후에, SharedPreference에 JWT 값의 유무에 따라서 자동로그인을 진행하도록 구현해놓은 상태이다. 하지만 JWT의 기간이 유효한지 체크하는 로직이 추가될 예정이며, 네트워크 체크를 하기 전에 알림 권한도 받을 예정이다.

 

네트워크 체크 기능을 구현할 때 꽤나 많이 고생을 했었다. 네트워크 체크를 하고 연결이 되어있지 않으면 dialog를 띄우는 방식으로 진행되는데, 안드로이드 12 이상 버전에서 내가 생각했던 대로 dialog가 띄워지지 않는 이슈가 발생하게 되었다. 여러 방법으로 시도를 해보았지만, 안드로이드 12 이상 버전에서 진행되는 스플래시 화면에는 dialog를 띄울 수 있는 layout이 별도로 존재하지 않기 때문에 어쩔 수 없이 안드로이드 12 이상 버전의 스플래시가 나타나고 → 안드로이드 12 미만 버전의 스플래시 layout 위에 dialog가 나타나게 되는 이슈를 안고 가기로 결정했다. 팀원들에게도 물어보니 시중에도 아직 안드로이드 12 버전의 스플래시를 대응하지 않은 앱들도 많고, 현재 이슈가 그렇게 이상하다고 생각되지는 않는다며 이대로 진행해도 괜찮을 것 같다고 했다.

 

 

로그인에서는 400번대 에러 처리를 완료하였다. 기존에는 에러 처리를 해두지 않은 상태였는데, 수요일까지 백엔드분께서 에러 처리를 해두시겠다고 하셨다. 그래서 로그인 관련된 에러는 1개밖에 없는 것 같아서 그 부분은 처리를 해두었다.

 

 

회원가입 부분에서 사용자 닉네임 및 프로필 설정하는 부분도 내가 맡았었는데, 사용자 닉네임 부분에서 중복확인 API 연동을 하지 않았었다. 그리고 닉네임 입력한 값에 대해서 정규식 처리를 해줬으면 좋겠다는 의견이 나와서 이 부분도 반영을 하기로 했다.

 

처음에는 애초에 닉네임을 입력하는 란에 정규식을 직접 설정해주어서 한글/영어 대소문자/숫자 만 입력 가능하도록 하고, 다음 버튼을 눌렀을 때 중복확인이 진행되도록 처리를 했었다. 이렇게 했을 때, 사용자 입장에서 중복된 닉네임인지 확인을 다음 버튼을 눌러야만 볼 수 있다는 점에서 불편할 것 같다는 생각에 입력하는 즉시 확인할 수 있도록 변경하였고, 한글 같은 경우에는 모음과 자음이 따로따로 분리가 되어도 회원가입이 가능하게 되는 이슈가 발생하게 되어서 정규식을 수정하게 되었다. (수정하면서 닉네임 길이도 2자 이상 13자 이하로 변경하게 되었다.) 만약 중복된 닉네임이거나, 형식에 맞지 않는 닉네임을 입력했을 경우에는 EditText에 에러 메시지를 띄울 수 있도록 처리하였다.

 

중복확인 API를 연동하는 과정에서도 어려움을 겪었었다. 처음에 연동할 때에는 생각보다 간단한 기능이라 금방 끝낼 수 있을 줄 알았는데, 계속되는 에러들로 인해서 많은 시간이 지체되어버렸다. API 연동을 위해서 API 명세서를 확인해보니 GET이였고, 내 닉네임을 보내서 중복인지 아닌지 확인하는 응답값(true/false)을 받는 것이었다. 나는 서버분들과 작업하면서 한번도 GET으로 Body에 보내본 적이 없었어서 너무 당연하게 닉네임을 보낼 때 Query로 보낸다고 생각을 했었다. 사실 API 명세서 상에는 Query로 처리하는 것은 아니었는데, 내가 알고 있는 것은 Query 밖에 없어서 일단 Postman으로 확인을 해봤고, 응답값이 너무 정상적으로 잘 나오는 것을 확인했다. 이걸 보고 나는 당연히 Query로 하는게 맞구나 라고 생각을 하고 코드를 짰는데 에러가 발생하였다. 도저히 원인을 모르겠어서 직접 서버분께 찾아가서 확인을 해보니 Body로 JSON 형태로 보내달라고 하셨다. POST로 보내는 것과 동일하게 보내면 된다고 해서 똑같이 구현을 했는데 또 에러가 발생했다. 다른 팀에게도 조언을 구해봤더니 해당 API는 POST로 처리하거나 GET으로 Query보내는 것이 좋아보인다는 의견을 듣게 되어서 서버분께 POST로 수정해달라고 요청해서 바꾸게 되었는데, POST로 하는 과정에서도 에러가 발생해서 다른 서버분과 해당 API를 구현하신 서버분을 모셔서 다같이 확인하는 작업을 해보았다. 알고보니 나는 200번대로 보내고 있었고, 서버쪽에서는 400번대로 처리가 되고 있었다.

 

 

간단한 작업임에도 시간이 오래 지체되었다는 사실에 마땅한 해결책이 필요하다는 생각이 들어서 전체 회의를 하게 되었고, 서버 분들과 소통함에 있어서 필요한 부분들을 리스트업 해서 말씀을 드렸다. 교육장에서 Wifi가 2개가 있는데, Wifi 별로 base url이 변경되다 보니 매번 이걸 맞추는 과정이 비효율적이라고 생각되었다. 그래서 Wifi를 하나로만 고정할 수는 없는지, 그리고 해당 Wifi에 대한 base url을 API 명세서 상단에 써줄 수는 없는지 질문을 드렸는데, 전에 안드로이드 팀원분께서 남는 노트북이 있어서 그걸 가져오시겠다고 하셨어서 그 노트북 하나로 고정해서 사용하면 이런 과정이 줄어들 것이라고 하셨다. (속마음은 노트북을 안쓰고 빨리 배포가 되었으면 좋겠다...) 그리고 이번 일로 명세서의 중요성을 알게 되어, 명세서 작성을 자세히 해주셨으면 좋겠다고 요청을 드렸고 알겠다고 하셨다. 이렇게 회의를 통해 소통함으로써 서로의 의견을 조율해나가는 과정이 정말 꼭꼭꼭 필요하다는 것을 이번 기회로 잘 알게 되었다.

 

 

그리고 이번 주 금요일에 오랜만에 오프라인으로 안드로이드 멘토링을 진행하게 되었다. 저녁식사(닭갈비) 후에, 멘토님께서 직접 교육장에 찾아오셔서 코드를 봐주시겠다고 하셨다. 일단 현재 진행상황을 보고 싶다고 하셔서, 앱 시연을 먼저 했는데 카카오 소셜 로그인에서 또 터져버렸다🤯 이번에는 제대로 코드를 작성했다고 생각했는데 이렇게 에러가 터져버리니 식은땀이 줄줄이었다. 멘토님께서 보시고는 해시키를 나 말고 다른 사람들 것도 모두 등록을 해야 한다고 하셔서, 안드로이드 팀원들 해시키를 모두 받아서 등록을 하니 이후에는 잘 작동하는 것을 확인할 수 있었다. (이렇게 또 하나 배워갑니다...)

 

회원가입 과정에서 사용자 프로필 설정 화면에서 초기 이미지가 잘못 들어가는 이슈가 있었는데, 이 부분은 초기화를 시켜주는 부분을 수정하면 될 것 같다며 문제점을 짚어 주셨고, 내 파트는 아니지만 칩 버튼 관련 이슈에 대해서는 직접 코드를 작성해주시면서까지 해결해주셨다. 해당 부분을 맡은 팀원분께서 정말 몇날몇일을 끙끙앓던 부분이었는데 단번에 해결하시는 것을 보고... 넘모 멋있었다...그저 빛...✨ 그 외에도 에러 처리 관련해서 여쭤볼게 있어서 따로 질문을 드렸는데, 어떤 식으로 서버분과 얘기를 해보면 좋을지 말씀해주셨다. 다른 파트 멘토님들은 모르겠고 안드로이드 멘토님 최고...🫶

 

 

아직 구현하지 못한 부분들은 남은 일주일동안 빡세게 해서 빨리 해치울 예정이다. 이번에는 저번처럼 구현한 기능을 시연하지 못하는 불상사만은 피하고 싶다. 남은 기간 동안에도 파이팅..🔥

 

 

 

+ 이번 주는 샐러드 먹은 횟수가 많았다. 그래서 샐러드는 사진 찍는 것이 의미가 없을 것 같아서 연어 샐러드 먹을 때만 찍었다. 가면 갈 수록 바빠지다보니 나가서 먹을 일이 줄어들게 되어 음식 사진을 많이 못찍어 속상하지만... 어쩌겠나...😞

 

 


 

 

* 유데미 바로가기 : https://bit.ly/3SFlXDy 

* 유데미 STARTERS 취업 부트캠프 공식 블로그 보러가기 : https://blog.naver.com/udemy-wjtb 

 

 

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

 

 

 

반응형

댓글