![](https://blog.kakaocdn.net/dn/cgXK9Y/btqWWsllctO/0EFlDqd6sQE6W1wVb9I7Y0/img.png)
![](https://blog.kakaocdn.net/dn/b3FrZ0/btqWVRTbVcg/Pm5fe52QqV9zLjhmVpDgIk/img.png)
🗓 개발 기간 : 2020.06.28 ~ 2020.07.18
🔎서비스 이름 : placepic
📌서비스 한줄 소개 : 우리들끼리 공유하는 최애 장소, 플레이스픽
✏️사용한 언어 / 구조 : Swift, MVC
📇깃헙 주소 : priviate
📍앱스토어 주소 :
서론 :
대학생 IT벤처창업동아리 SOPT iOS파트로 참여한 두번째 해커톤입니다.
첫번째에서 쓰디쓴 실패를 맛보았기 때문에,,, 열심히 칼을 갈아서 두번째 앱잼(해커톤)을 준비했습니다.
![](https://blog.kakaocdn.net/dn/b8Wefj/btqWUqh222R/hgnJl2NpOzVR8EQJ36Uk91/img.png)
제가 하고있던 iOS 스터디는 매주 토요일에 있었습니다. 토요일을 주목해주시면....커밋이 1개씩 있는것인데요
그때 당시에는 학원일을 하고있던지라 토요일 오전에 학원일을 마치고 강남으로 달려갔었고 (추억회상)
2시 스터디가 시작이었는데 대략 한시쯤 도착해서 카페에서 밥 먹고... + 블로그 포스팅까지!
물론 한시간만에 글을 썼다는것은 아니고, 그 블로그 한개에 일주일의 대부분을 갈아넣었어야 했습니다.
또, 사이드프로젝트와 해커톤 등등에 참여하면서 주니어 레벨로의 도약을 위해 열심히 살았었던것 같습니다
*이전까지는 주니어도 아니었단 뜻
그리고 정말 감사하게도 이번 프로젝트에서는 혼자 iOS 개발을 하지 않았고 iOS팀원이 무려 세명이나 되었습니다. 정말 감사...
대표 기능 소개
플레이스픽은 <그룹 내의 장소공유 플랫폼>입니다. 여기에서 그룹이란 회사가 될 수도 있고, 회사 내의 팀이 될 수 있고, 친구들끼리 그룹을 만들수도 있습니다. 어뷰징이나 광고형태를 최대한 막아 신뢰성있는 정보공유를 하는 서비스입니다.
![](https://blog.kakaocdn.net/dn/dBcYJQ/btqXxetuoDK/vzqsiVHS81C60JiGfHbIU1/img.png)
![](https://blog.kakaocdn.net/dn/bejb1I/btqXBXkqZQV/u4U38Ui0HKRzrYA0vcf4Ak/img.png)
검색, 필터링 등 기능구현을 열심히 해냈습니다. 방금 보고 왔는데 조금 버그가 있네요 ^-^;; 시간날때 고치겠습니다
어려웠던 점
이런 서비스이고, 가장 어려웠던 것, 그리고 아직도 버그가 있는 뷰는 바로 내 정보 탭입니다.
![](https://blog.kakaocdn.net/dn/TML8m/btqXwdn3N5H/rh7QJKjMWIKJpGRxXu46z1/img.jpg)
인스타그램의 마이페이지와 같은 구성입니다.
지금은 아니지만 초기에는 이 뷰를 컬렉션뷰로 구현했습니다.
(가장 바깥 Vertical 테이블 뷰 ----> Horizontal 컬렉션뷰 -----> Vertical 컬렉션뷰)
서버리스하게 동작이 잘 되나, 서버를 붙이면 문제가 생겼습니다. 구조가 너무 어려워서 유지보수도 안 될것 같았습니다.
장소를 저장하거나 글을 쓰고 나면 해당 탭에 새로운 Cell이 생기면서 nested된 컬렉션뷰들의 셀 사이즈가 변동이 생기게 되는데
그 경우를 관찰해서 동적으로 사이즈를 크게 또는 작게 하지 못하는 문제가 생겼습니다.
그때 당시 알고 있었던 비동기 사이즈 변경 방법이란 `reloadData()` 류들의 메서드 뿐이였고
리로드로는 깔끔하게 문제를 해결할 수 없고 문제가 해결되지 않아서 뷰를 새로 구성했습니다.
그런데 그것도 문제가 있습니다(...) 똑같은 문제.
문제 고찰을 꽤 많이 해보았습니다. 잘 들여다보면 이 뷰에서 서버통신을 할 구석이 총 3군데입니다.
![](https://blog.kakaocdn.net/dn/Go2v3/btqXb2aMcvS/svTe1RKOnMTRtmmkurzxqk/img.jpg)
첫번째, 두번째, 세번째 총 세개의 서버통신을 해야 하는데, 당연히 서버통신이 언제, 어느것이 먼저 끝나는지 보장할 수 없고
서버통신이 끝나고 뷰를 그리는 그 시점에 메인 큐에 들어가는 순서 또한 일정하게 유지가 되어야 한다고 생각합니다.
따라서 단순히 reload()로는 뷰를 정상적으로 그려내기 어렵다고 생각했습니다.
(생글) << 의 해결방법을 링크합니다. 같은 구조와 같은 라이브러리를 사용했습니다.
2021/02/28 - [프로젝트 후기] - [생글] 개발 후기
마치며
처음으로 팀을 이뤄서 했던 프로젝트입니다. 3인 팀 프로젝트였습니다.
앱잼을 하면서도 학원일을 하고 있어서 평일에 밤이 되어야 숙소에 돌아올수 있었고 주말에는 갑자기 학생분들 시험기간 대비로 끌려가기도 했던 등 개발쪽에 집중을 온전히 하지 못했습니다. 항상 생각한만큼 개발이 되지는 않는다라는 것을 몸소 겪은 프로젝트이기도 합니다.
3명 중 iOS 팀 리드로 참여하다보니 개발 외적으로도 일이 많았습니다. iOS 팀 회의, 개발팀 회의, 전체 팀 회의 회고 등 많은 회의가 있었고 git-flow를 사용해서 최대한 컨필릭트가 안날려고 했지만 하루이틀을 통째로 날려버린 컨필릭트도 있었고(...)
팀프로젝트를 해보지 않으면 겪지못할 일을 많이 겪고 열심히 성장한 것 같습니다.
앞으로 작성할 글이 많은데, 시간 순서로 작성하고 있습니다. 오늘도 읽어주셔서 감사합니다!
'프로젝트 후기' 카테고리의 다른 글
[Tost] 개발 후기 (2) | 2021.02.28 |
---|---|
[애플워치 프로젝트] 개발 후기 (2) | 2021.02.28 |
[생글] 개발 후기 (2) | 2021.02.28 |