회고록/[Nexters]

[Nexters] AZ - 아재트(아재 개그 앱) 프로젝트 중간 회고

NukeOlaf 2020. 8. 2. 09:02

0. INTRO

OT(7/4) - 아이디어 발제, 그리고 팀빌딩

커피우유가 모기에 물리면?
정답은 "커우유"입니다. "피"를 빨렸기 때문이죠!

* Nexters 아이디어 발표에서 내가 실제로 한 말이다...

슬랙에 모아놓고 혼자 즐기던 나의 최애 아재개그들

나는 아주 오래전부터 이런 실없는 아재개그를 참 좋아했다. 그래서 어디선가 이런 신박하고 기똥찬 아재개그를 들으면,어딘가에 적어놓거나 외우고 다니기도 했다. 그런데, 이런 아재개그를 혼자서만 알고 있는 것은 아재개그가 주는 즐거움을 전부 만끽했다고 할 수 없다. 이렇게 모아둔 아재개그들을 친구, 또는 가족들에게 써먹은 다음, 그들의 빵 터진 웃음 소리를 듣거나 멸시어린 눈초리를 받아야지만 (아무래도 후자일 가능성이 높지만) 비로소 아재개그를 온전히 즐겼다고 생각한다. 그런데 나와같이 이렇게 아재개그를 좋아하고, 아재개그를 다른사람과 공유하기를 좋아하는 사람들을 위한 서비스는 없을까?

이처럼 아재개그를 좋아하는 사람들을 위한 서비스가 있으면 좋겠다! 라는 생각에서 출발한 것이 바로 "아재트" 이다. 영어로는 AZ 라고 작성하며, 아재개그의 아지트와 같은 서비스를 표방한다는 의미를 담고 있다. 서버 개발자분의 아이디어로 만들어진 이름이다. 사실, 아재트의 정식명칭이 정해지기 전, 아재트의 가제는 "유머 투고 앱"의 준말인 "유투고"였다. 유튜브와 이름이 비슷하면, 유튜브를 검색하다가 실수로 유투고 서비스를 사용할 수 있게 되지 않을까? 라는 취지로 지어진 이름이었다. 가제였던 유투고 이름에 담긴 노련한 노림수(?)의 유쾌함이 함께 아재개그 서비스를 만들 능력있는 팀원들을 끌어들였던 것 같다. 넥스터즈 팀빌딩 세션에서 이 아이디어로 디자이너 2명, 개발자 6명 총 8명의 사람들이 모였다. 그리하여 우리 아재트팀은 두 달간 아재개그 서비스 "아재트"를 만들게 되었다.

 

디자이너님이 만드신 우리팀 사람들ㅋㅋ 유쾌하다

 

1. 서비스의 기획 수립 및 기능 정의

1주차(7/5~7/11) - 서비스의 정의 및 기획

사실 나는 구체적인 자료조사나 시장조사를 해보고 아재개그 프로젝트 아이디어를 발제한 것이 아니었다. 단순히 내가 사용하고 싶은, 그리고 동아리에서 가볍게 즐기면서 두 달 안에 완성해서 런칭까지 할 수 있는 사이즈의 프로젝트 아이디어 정도로 생각해서 발제한 아이디어였다. 그래서 이 서비스의 기획을 제대로 완성하고, 서비스에서 제공해야하는 기능을 완벽하게 정의할 필요가 있었다.

우리는 회의를 통해

아재개그를 작성하고 공유하며, 다른사람의 아재개그를 보고,
좋아요를 누르거나 댓글을 달고, 아재개그를 수집할 수 있는 서비스

라는 다소 평범한 sns 처럼 보일 수 있는 문장으로 우리 서비스를 정의했다.

아재트 서비스의 핵심 기능은 아래와 같이 설계되었다.

  • 아재개그 구경하기
  • 아재개그 작성하기
  • 아재개그 수집하기 (북마크)

아래는 3주차쯤 나왔던 아재트 서비스의 핵심 정리이다. 이해를 돕기 위해 첨부

* 그동안 안드로이드 팀에서는... (나는 안드로이드 개발자이기 때문에 개발관련 회고는 안드로이드 위주로 작성되었음을 참고 바람)

아재트 안드로이드팀의 자세한 작업 내용이 궁금하다면...
AZ-Android 레포 -> https://github.com/nukeolaf/AZ-Android

나는 아재트 팀에서 안드로이드 개발자 포지션을 맡고 있다. 그래서 기획이 완성되고 디자인이 하나라도 나오기 전에는 본격적으로 개발을 시작할 수 없었다. 그래서 이렇게 기획과 디자인이 차근차근 이루어지는 2주차 동안, 안드로이드 개발팀은 개발 시작에 앞서 몇가지 기본적인 규칙들을 정의하고, 사용할 아키텍쳐에 대해 논의했다.

먼저, 협업의 가장 기본이라 할 수 있는 Git Commit & PR & Branch Rule 을 정의했다.

또한, 아키텍쳐에 대해 논의했는데, 거의 내 멘토라고 부를 수 있는 다른 안드로이드 개발자분께서 우리 프로젝트에 Multi-Module 을 도입해보자고 하셨다. 그래서 안드로이드팀은 아재트 기획과 디자인이 완성되기 전에 2주동안 Multi-Module 로 간단한 샘플 프로젝트를 만들어보고, 초기 세팅을 해두기로 결정했다.

 

2. 본격적인 아재트 프로젝트 시작!

2주차(7/12~7/18) - 와이어프레임 완성과 안드로이드 아키텍쳐 정립

디자인팀에서 와이어프레임이 완성되었다. 아무래도 사용자가 글을 작성하고, 댓글을 다는 등의 행동을 하는 서비스이다보니, 글 또는 댓글 작성을 위해서는 로그인 기능이 필요했다. 하지만 사용자 접근성 확보를 위해 (이외에 몇가지 이유로 인해) 로그인을 하지않더라도 다른 사용자들이 작성한 게시물은 볼 수 있도록 되었다.

디자이너분께서 만드신 아재트 와이어프레임

* 그동안 안드로이드 팀에서는...

그 동안 안드로이드 팀에서도 놀고 있지는 않았다. 우리는 안드로이드 프로젝트를 MVVM 형태로 모듈화한 Multi-Module 샘플앱을 제작했다. 2주차때 회의에서는 bottom navigation 으로 UI 를 구성한다고 해서 bottom naviation 으로 화면을 움직일 수 있도록 베이스를 완성했다. 샘플앱을 만들면서 참고한 프로젝트는 아래와 같다.

그런데 droidconKE 앱에서 SAA 라는 아키텍쳐를 사용하고 있었다. SAA(Single Activity Architecture)는 하나의 Activity 를 애플리케이션의 단일 진입점으로 사용하고 UI 는 Fragment 를 통해 보여줌으로써, 안드로이드 프레임워크와 분리될 수 있는 코드들을 Activity 에서 최대한 분리하는 아키텍쳐라고 할 수 있다. 우리는 요즘 구글에서 밀고있는 SAA 또한 우리 프로젝트에 적용시키기로 결정했다.

아래 링크는 2018년 Android Dev Summit 에서 Single Activity 를 강연한 영상이다.

https://www.youtube.com/watch?v=2k8x8V77CrU&feature=youtu.be

 

3. UI 완성과 UT 진행

3주차(7/19~7/25) - UT

시간이 정말 후딱 지나갔던 것 같다. 디자인팀에서는 서비스 UI 가 완성되었고, 안드로이드팀은 완성된 UI 를 바탕으로 레이아웃 개발을 시작했다. 내가 안드로이드 개발자이기 때문에 안드로이드 팀 위주로 작성하고 있지만, ios 개발자분도 레이아웃 개발을 시작하셨다. 서버 개발자분들은 MVP 개발이 거의 완성되어가고, AWS 로 서버 인프라를 구성하여 배포할 것이라고 하셨다.

우리팀 디자이너분들이 갈린 흔적이 고스란하다

이번 주차에서는 UT (User Test) 라는 것을 진행하였다. 개발자인 나는 처음 들어보는 생소한 용어였는데, 디자이너들에게는 서비스를 만드는 과정에서 아주 당연하면서도 중요한 과정인것 같았다. UT, 즉 사용성 테스트는 디자이너들이 완성한 UI, UX 가 디자이너가 생각한대로 사용자들에게 경험을 제공하는지, 그 과정에서 문제점은 없는지, 그밖에 개선 상항이 있는지 등을 테스트하는 것을 말한다. 디자이너분들은 피그마로 완성된 UI 로 프로토타입 앱을 만들어서 사용자(테스터)에게 사용해보도록 했다. 그리고 그분들께 사용자 경험과 관련해 미리 만들어둔 설문지를 작성하게 하고 인터뷰 했다. 나는 UT 에 따라가서 사용자가 우리 앱을 테스트하는 과정을 영상으로 촬영하는 역할을 맡았다.

UT 결과는 꽤 괜찮았던것 같다. 우리 서비스가 전달하고자 했던 "유쾌한" 분위기는 사용자들에게 충분히 잘 전달되었다. 서비스의 핵심 기능을 사용하는 과정에서도 사용자들은 큰 어려움 없이 기능을 사용했다. 하지만 사용성 측면에서 수정되어야 할 몇가지 낙은 경험들이 있다고 판단되어, 기존에 완성되어 있던 UI 에 수정이 들어갔다. 하지만 이 부분은 프론트엔드 개발자들(안드로이드, ios)에게 매우 예민한 일이다. UI 가 수정되면 기존에 만들었던 레이아웃을 수정해야하고, 심한 경우는 아예 처음부터 다시 만드는 것이 나을수도 있기 때문이다. 그래도 우리팀은 프론트 개발자와 디자이너가 소통이 잘되었다. 그래서 프론트 개발자가 개발을 아직 시작하지 않은 부분과 개발이 완료된 부분을 디자이너분들께 공유하는 식으로 일을 진행했다. 그래서 디자이너는 개발이 아직 시작되지 않은 부분은 바로바로 UI 를 수정했고, 개발자가 개발을 해둔 부분은 개발자에게 연락을 취해 의견을 조율하여 UI 수정을 결정했다.

* 그동안 안드로이드 팀에서는...

그동안 안드로이드 팀에서는 베이스 앱의 아키텍쳐 정립이 완성되었다. 우리 프로젝트의 아키텍쳐는 다음과 같이 설계되었다. 안드로이드 팀은 이 아키텍쳐를 기반으로 하여 개발을 본격적으로 시작했다.

 

4. 중간발표

4주차(7/26~8/1) - 중간발표

사실 이 시점부터는 각자 포지션에 맞춰 맡은 일을 착착 해나가면 되기 때문에 팀 전체적인 부분에 있어서 이렇다할 특별한 이슈는 없었다. 이번 프로젝트를 하면서, 그리고 지금까지 프로젝트를 몇 가지 해오면서 느낀점이 있다면, 프로젝트의 시작이 어떻느냐에 따라 프로젝트의 전반적인 분위기나 진행 속도 및 업무 효율성이 달라지는 것 같다는 것이다. 그런 측면에서 아재트 프로젝트는 첫 단추를 잘 꿰었는지 나름 스무스하고 빠릿빠릿하게 잘 진행되고 있는 것 같다. 아마도 우리 팀원들이 능력있고, 소통도 잘되고 단합도 잘되서 그런 것 같다. 팀원들을 너무 잘 만나서 행운이라는 생각이 든다. 또 한편으로는 내가 아직 많이 부족한 부분이 많아서 팀원분들께 폐를 끼칠까봐 걱정되서 더 열심히 하려고 노력하게 된다.

5주차 정기세션에서는 한달동안 진행한 프로젝트의 중간 발표를 한다. '우리 팀 프로젝트가 어디까지 진행되었어요~' '이제 앞으로 어떤것을 할꺼에요~' 하고 발표하는 자리이다. 우리는 성공적으로 발표를 마쳤다. 이제 마지막 남은 한달동안 열심히 달려서 아재트를 출시할 것이다! 아재트 팀 화이팅!!!!

아재트 팀 로고 자랑