모임관리앱을 만들어보자

이전 Next.js로 리액트를 시작해본다에서 마지막으로 모임관리앱을 만들어 보기로 했다. 그냥 아무생각없이 내가 포함된 모임들이 관리가 체계적으로 되고 있지 않다는 생각이 불현듯 들어서 막 정했다. 이렇게라도 시작을 해야 뭐라도 만들고 끝나지 안그러면 생각만 하다가 아무것도 안하게 된다. 이건 다들 ㅇㅈ할꺼다.

요구사항

토이프로젝트라도 뭔가 만들려면 뭘만들지에 대한 요구가 필요할 것이다. 우린 이러한 것들을 사회적으로 ‘요구사항’이라고 하기로 합의했다. 모임관리앱에서 필요한 기능들은 뭐가 있을까? 앱에 필요한 기능을 요구해보자.

  1. 모임을 개설할 수 있어야 된다.
  2. 모임은 모임장과 모임원으로 구성되어야 한다.
  3. 내가 개설한 모임은 공개, 비공개를 설정할 수 있어야 한다.
  4. 모임원들은 자신이 속한 비공개 모임을 열람할 수 있어요. 하지만 속하지 않은 비공개 모임은 열람할 수 없어야 한다.
  5. 이러한 기능들을 이용하기 위해서는 회원가입이 가능해야 한다.
  6. 회원가입은 이메일로 가입, 카톡으로 가입이 있다.
  7. 회원으로 등록이 된다면 로그인을 할 수 있어야 한다.
  8. 회원의 정보는 이메일, 비밀번호는 필수로 입력되어야 한다.
  9. 이름, 나이, 생년월일은 선택으로 입력할수 있어야 한다.
  10. 회원이 모임장이 될 수 있다.
  11. 비회원은 해당 서비스에서 공개 모임에 대한 열람만 가능한다.
  12. 모임장의 권한은 모임내에서 여려명이 가질 수 있다.
  13. 모임장은 모임장 권한을 추가 지정하거나 양도할 수 있다.
  14. 모임장은 모임원을 블럭할 수 있다.
  15. 모임안에서는 모임에 관련한 일정을 관리할 수 있다.
  16. 일정은 모임원들에게 일부 혹은 전체에게 공유할 수 있다.
  17. 위에서 공유는 이메일로 가입한 회원에게는 이메일로 카톡으로 가입한 회원에게는 카톡으로 전송된다. 이메일로 가입한 회원이 카톡을 연동하면 카톡공유를 우선으로 한다.
  18. 모임 게시판 기능이 있다.
  19. 게시판은 모임원들만 등록이 가능하다.
  20. 게시판의 수정은 등록자만 가능하다.
  21. 게시판에서 모임장은 특정게시물을 공지로 지정할 수 있다.
  22. 게시글에는 댓글기능이 존재한다.
  23. 대댓글기능이 존재한다. 그이상은 존재하지 않는다.
  24. 게시글이나 댓글에서는 모임원을 멘션할 수 있다.
  25. 멘션이 된 모임원은 알림을 받는다.
  26. 멘션이 되면 멘션된 게시글 정보가 별로도 기록된다. 해당기록은 해당 회원의 마이페이지에서 열람이 가능하다.
  27. 위 기록은 해당 회원의 마이페이지에서 삭제가 가능하다.
  28. 위 기록을 클릭하면 해당 정보가 기록된 위치로 이동한다.
  29. 게시판은 일반 글작성, 설문지 작성이 있다.
  30. 모임장이 모임 설정에서 생일공지를 체크하면 게시판에서 생일날 생일인 모임원에 대한 공지가 올라온다. 해당 공지는 오전 9시에 등록되며 등록과 동시에 생일자를 제외한 모임원들에게 공유가 자동으로 발생한다.

그냥 생각나는대로 작성해보니 한도 끝도 없이 늘어나고 나의 상상력도 점점 커지고 있었다. 계속 쓰면 엄청난 대 프로그램이 나올 것 같아서 멈췄다. 아무튼 다시 읽어보니 이 정도만 만들어도 쓸만 할 것 같다. 저 중에서 가장 필요한 기능은 개인적으로 모임원 생일 자동 공유기능으로 내가 참여해 있는 모임에서 항상 생일을 못챙겨주고 넘어가서 민망한 상황이 발생하는 것을 커버해 줄 수 있을 것으로 생각된다.

화면설계

요구사항이 정의되었으니 이제 화면이 어떻게 나와야 할 지 생각을 해봐야 될 것 같다. 화면설계를 하면서 요구사항이 수정될 수도 있을 것 같다. 의뢰받아서 수행하는 프로젝트라면 요구사항을 의뢰자의 요구를 바탕으로 작성하기 때문에, 수정을 위해서는 의뢰자의 컨펌이 필요하지만 이건 나혼자 만드는 토이프로젝트! 그냥 내맘대로 하면된다.

화면설계를 뭘로 하면 좋을까?

피그마같은 툴을 사용해도 되지만.. 귀찮다. 종이에 그리듯이 그냥 나의 아이패드미니 혹은 아이패드프로를 이용해서 작성하기로 결정한다.

본격적으로 화면설계를 하기전에 생각해봐야할 것이 있다.

  • 모바일, 태블릿, 데스크탑 어느기기까지 지원할 것인지?

2개 이상의 기기를 지원한다면, 반응형으로 설계를 하는 것이 좋다.(편하다)

내 용도로는 데스크탑만 지원하면 될 것 같지만 혹시 모바일에서도 볼수 있을 수 도 있으니까 모바일과 데탑을 지원하는 반응형으로 작성하되 테블릿에서는 데탑과 동일하게 출력되면 될 것같다. 그러면 화면이 시원시원하게 뽑히면 될 것으로 보인다. 모바일은 모바일대로 나오면되고 데탑용은 테블릿에서 잘보이는 것을 위주로 나오면 될 것이다.

메인페이지

회사에 애플펜슬을 두고 왔다. 갑자기 하기 싫어진다. 이런 느낌 다들 알 것이다. 도구가 있어야 일이 된다. 오늘은 기분이 안난다. 그러니 다음편에 이어서 작성하겠다.