iOS

[iOS] 망고 플레이트 클론 코딩

Haena 2021. 4. 21. 19:06

모의외주를 마치며..

 망고 플레이트 클론 코딩이 끝난지 벌써 한 달이 지났다.. 모의 외주가 끝나면 블로그를 시작하려했는데 막상 끝나니 쉬고 싶어서 쉬고, 정처기 실기 공부도 하느라 시작하지 못했다. 지금부터라도 내가 배웠던 것들과 앞으로 공부할 내용들을 정리해 이 곳에 정리해 볼 생각이다. 

 

망고 플레이트 클론 코딩은 소프트 스퀘어드의 6주 간의 교육 기간이 끝난 후 모의 외주 기간이라 불리는 2주 동안 진행되었다. 2주라는 짧은 시간 동안 어플을 제작해야 했기에 잠도 거의 못자고 빡셌지만 그만큼 집중적으로 제작하고, 배운 것을 적용해 볼 수 있어서 좋았다. 

 

모의 외주 기간이 시작 되면 제일 먼저 제작할 어플과 팀원이 공개 된다. 대부분 클라이언트와 서버 1:1 또는 1:2로 진행되었다. 이번 모의외주의 어플은 망고플레이트, 번개장터, 마켓컬리, 당근 마켓의 총 4개로 진행되었다. 나는 망고 플레이트에 배정 되었고 서버 한 분과 같이 프로젝트를 진행하게 되었다. 

 

모의외주 기획서

모의외주 설명과 팀 배정을 진행한 모의 외주 세미나가 끝난 후 당일 3시 까지 모의 외주 기획서를 제출해야 했다. 기획서를 작성하는데만 꽤 시간이 오래걸렸다. 기획서에는 개발 범위, 개발 우선수위, 개발할 기능 및 화면 캡쳐, 1주차 까지 작업해올 범위, 만약 서버가 2명이라면 서버 역할 분담까지 작성하면 된다.  2주라는 짧은 기간 동안 프로젝트를 진행해서 어플의 모든 기능을 다 구현하기는 어렵기 때문에  개발 범위를 잘 생각해서 정해야 한다. 모의 외주 기획서를 작성한 다음날 서버분과 한 번 만나서 개발 범위에 대해서 한 번 더 정하였는데, 서버분께서 어플 기능을 상세하게 쫙 적어오셔서 되게 놀랐다. 아무래도 서버는 기능을 직접 구현해야 되니까 꼼꼼하게 파악해 오신것 같은데, 그래도 정말 대단하다고 느꼈다. 아래는 우리 팀이 작성한 모의외주 기획서인데 작성한것 중에 몇개는 구현하지 못하였다.

 

모의 외주 기획서

 

어려웠던 점

클라이언트인 내가 맡은 부분은 크게 나누면 각 화면 UI 제작, API연동, 뼈대 레이아웃 구성이었다. 앱을 최대한 똑같이 만들어야 했기 때문에 사소한 부분에서도 디테일하게 하느라 시간이 오래 걸렸다. 예를 들면 글자가 입력 되었을 때 버튼이 활성화 된다거나, 키보드와 같이 올라오는 버튼을 만든다거나 하는 부분에서 시간이 오래 걸렸다.  API연동도 처음에는 오래걸렸는데 다 비슷하게 작성하면 되서 적응이 됐다. 

API 연동은 서버분께서 작성해주신 api명세서를 보고 하면 된다. 초반에 서버가 불안정해서 api연동을 많이 해보지 못해서 아쉽다. 나중에 서버를 고쳐주셨지만 그 이후에도 됐다안됐다 해서 아예 UI를 만드는데만 집중했다. 서버가 잘 됐어도 시간이 부족해서 연동은 많이 못했을 것 같긴 하다.

 

API 명세서

피드백 내용

프로젝트 중에는 총 2번 개발 팀장분께 피드백을 받았는데, 이 때 궁금한거를 물어 보면 상세하게 잘 알려주셨다. 또 기본 교육 시간 때는 질문을 할 수 있는 slack 채널에 글을 올린적이 없었는데, 모의 외주를 하면서 몇번 글을 올렸었다. 글을 올릴 때마다 고수 분들이 빠르게 답변해주셔서 프로젝트를 진행하는데 많은 도움이 됐다. 혼자서 해결할 수 없는 부분을 물어볼 수 있어서 좋았다. 피드백 때는 변수명 작성 형식, 자동 로그인 api 적용 논의, firebase 적용 여부 논의, 앱 퍼블리싱, git commit 메세지에 대한 피드백을 받았다. 

 

프로젝트 제출 영상

아래는 프로젝트 최종 제출 영상이다.

 

 

화면 전환시에 네비게이션뷰가 보이는 것과 안보이는 것을 고려해서 화면 전환을 구성해야 하는 것과  컬렉션 뷰 안에 또다른 컬렉션 뷰를 넣는 작업, api를 통해 받아온 데이터를 어디에 저장할지, 또 여러 개의 페이지에서  데이터를 보내야 할 경우 어떻게 해야하는지 등이  프로젝트를 진행하면서 어렵다고 생각한 부분이다. 

 

이번 망고플레이트 클론 코딩 프로젝트를 통해 바텀바, 옵저버, 컬렉션뷰, 레이아웃, 페이지 전환, 어플리케이션의 기본 뼈대, api연동, 네이버 지도 등을 다뤄볼 수 있었다. 또한 서버에 대한 지식이 거의 없었는데 이번 프로젝트를 통해 서버쪽에서 하는 일과 통신에 대해서 알게되었다. 뒷 화면이 어두워 지면서 뒷 배경 움직임 없이 올라오는 모달과 하단 탭바, 필터에서 라디오 버튼은 라이브러리를 사용해서 구현했기 때문에, 나중에 라이브러리 없이 만들어 볼 생각이다.