02.05.2024
0. 사담
본인은 현재 졸업생이고, 팀 멤버에 초대받았을 당시에는 gdsc에 가입되어있지 않은 평범한 재학생이었다.
학교 gdsc 멤버인 1학년 후배가 프론트엔드가 필요하다고 해서 조인하게 되었는데 그때도 지금도 감사하게 생각한다.
1. 진행 과정
공식적으로는 12월-2월, 3개월의 개발의 시간이 주어졌지만 기말고사 + 개인 일정 조율 불가로 인해 우리 팀을 포함한 거의 모든 gdsc 팀이 1-2월, 두달도 안 되는 짧은 기간동안 주제를 정하고 개발을 진행했다.
어느 프로젝트가 그렇듯이, 백엔드가 먼저 배포를 하고 프론트는 그동안 비쥬얼적인 부분을 기획/구현하는데 생각보다 백엔드팀 서버 세팅 및 배포가 예상보다 더 시간이 걸려 중후반에는 조금 쫄렸던 것 같다..ㅎㅎ
2. 깃헙
깃헙 링크: https://github.com/Solution-Challenge-stress-solution
현재 글을 쓰는 기준 deadline까지는 8시간이 남은 상태고, 우리 팀은 이미 제출을 한 상태이다.
깃헙 리드미를 이렇게 자세하게 꾸며본 건 처음이라서 재밌기도 했고, 좋은 경험이 된 것 같다.
3. 아쉬운점 / top 100에 올라간다면
top 100에 올라갈 퀄리티인지는 잘 모르겠다 다른팀과 아이디어가 겹친 부분도 있기도 했고..
다만 정말 만약에 top 100에 올라간다면 새로운 기능과 함께 프론트(모바일)는 리팩토링 / 테스트 부분을 추가할 예정이다.
3-1. 리팩토링
구조적인 리팩토링도 고민했었지만, 가장 시도하고 싶었던 건 컬러 리팩토링이다.
현재 모바일에서 쓰인 색은 각각 2가지의 accent 컬러와 sub 컬러로 나뉘어져 있는데 따로 클래스를 만들지 않고 그냥 rgb를 붙여넣었다.
코드퀄리티보다는 완성을 우선순위에 두었기 때문에 하드코딩을 고집했는데, 후반에 갈수록 못마땅했다.
아마 이부분은 top 100에 선정되지 않더라도 judgement가 끝나고 결과가 발표되면 나중에 리팩토링하지 않을까 싶다.
3-2. 테스트
테스트코드를 쓰는게 귀찮아서 그리고 단기간 프로젝트라 테스트 코드는 계획에 넣지 않았지만 지금은 필요성을 느끼고 있다.
프로젝트 중후반 즈음 백엔드 쪽에서 로그인 구현이 딜레이되어 jwt을 받지 못해 토큰을 요구하는 api는 사용자체가 불가능했다.
프론트는 요청을 보내서 요청이 잘 왔을때, 잘 오지 않았을 때의 동작과 뷰를 확인해야하는데, 그냥 임의의 테스트 데이터를 만들어서 주석을 쳤다 지웠다 하니까 매우 불편하고 시간도 오래걸리고 무엇보다 '야매' 느낌을 지울 수 없었다.
다만 아무리 작은 프로젝트라도 이미 unit들이 꽤 되기때문에 테스트는 top 100에 올라간다면 구현하지 않을까 싶다.
3-3. 새로운 기능: 누적 스트레스
우리 팀은 아이디어나 UI/UX보다는 머신러닝에 치중이 되어있기 때문에 프론트에서 단독으로 추가할 부분은 거의 없다.
다만 누적 스트레스 api 또는 기능을 추가해 사용자가 daily, weekly, monthly, yearly로 스트레스 레벨을 추적할 수 있도록 하는 것이 우리 전체 팀의 목표이다.
4. 느낀점
첫 Flutter 프로젝트 + 프론트 혼자 + 짧은 기간 등의 어려움이 있었고, 플러터를 공부했다기 보단 trial and err 방식으로 프로젝트를 진행했다.
모바일과 웹이 비슷한 부분도 있었고, 생소해서 어려웠던 부분도 있었지만 (보통은 oversize이슈) 완성에 의의를 두어서 개인적으로는 만족하고 있다.
학과 안드로이드와 swift 개발 수업을 들은 이후로 앱개발은 세 번째이다.
앱개발이 웹에 비해 조금 더 쉬운 느낌이지만서도 잘 안맞는다고 느꼈던 것 같다.
컬러 하나하나, 텍스트 하나하나까지 클래스화 되어있는게 리액트를 다루며 함수형에 너무 익숙해져있어서 그런 게 아닐까 싶다 ㅎㅎ
이 프로젝트를 핑계로 글을 거의 2-3주 동안 못 썼는데 이제 프로젝트가 마무리 되었으니 후련한느낌..!
이제 조금 여유롭게 자바스크립트/리액트/넥스트 공부를 다시 시작하고 그에 관한 블로그 글도 올리려고 한다.
'Project > Google Solution Challenge 2024' 카테고리의 다른 글
[Flutter] Error: RenderFlex overflowed by Infinity pixels (0) | 2024.01.27 |
---|---|
[Flutter] Error: uses-sdk:minSdkVersion 19 cannot be smaller than version 21 (0) | 2024.01.23 |