모델하우스 이해
모델하우스는 Flutter 와 Firebase 를 사용하여 빠르게 앱을 구축하기 위한 패키지이다. 아름다운 UI 디자인 뿐만아니라 회원 가입, 게시판, 채팅, 소셜 기능을 모두 포함하는 완전한 소셜 앱 패키지로 매우 쉽게 사용이 가능하도록 해 주며 원하는대로 쉽게 커스터마이징을 할 수 있다.
모델하우스는 FireFlutter의 다음 버전이며, 본 프로젝트가 잘 진행되면 기존의 FireFireflutter를 대체하게 될 것이다.
하우스의 첫번째 버전은 FireFlutter 의 개념을 그대로 가져오고 수정, 보완하는 것인데, FireFlutter 는 Realtime Database 기반인데 개발자들이 어려워하는 경향이 있고 사용하기를 꺼려한다. 그래서, 하우스에서는 Firestore 를 메인으로 하되 꼭 필요한 부분은 Realtime Database 를 사용한다는 계획이다.
개요
- 누구나 참여할 수 있다.
- 라이센스는 MIT 이며, 누구든지 어떤 목적으로든 사용 할 수 있다.
모델하우스를 줄여서하우스라고 부른다.- 필터링(검색)이 많이 필요한 경우 Firestore 를 사용하고 단순한 입출력의 경우 Realtime Database 를 사용한다. 특히, 단순한 입/출력이 매우 빈번한 경우, 비용적인 문제가 발생하는 데, Firestore 보다는 Realtime Database 가 제격이다. 자세한 내용은 데이터베이스 설계 항목을 참고한다.
- 지원하는 플랫폼은 ANDROID, IOS, MACOS, WEB, WINDOWS 이다.
- 백엔드는 파이어베이스 함수를 사용한다. 가능한 많은 것을 플러터에서 하되, 벡엔드가 꼭 필요하면 파이어베이스 내에서 모든 처리를 하기 위해서 파이어베이스 함수를 사용한다.
참여 방법
가장 먼저 협업하는 방법에 대해서 배워한다. 협업을 하기 위해서는
- Git 을 알아야하고, Dart 스타일 가이드,
- Flutter 스타일 가이드을 잘 알고 있어야 한다.
- 또한 필수적으로 문서화를 잘 해야 한다. 문서화는 소스 코드에 하고 Markdown 파일에 해야 한다.
- 소스 코드 포멧의 통일을 위해서 편집기는 VSCode 만 사용한다. VSCode 를 사용해서, 각종 설정 까지 공유를 한다.
- 모델하우스 코드 컨벤션을 통해서 통일성있는 코드를 작성해 나간다.
Git
팀 작업을 위한 Git 명령어 사용법을 꼭 익혀야 한다.
예를 들면 fork 후 pr 을 하고, origin 에서 업데이트 된 내용을 local 로 받아오는 등의 작업이 필요하므로 이에 대한 이해를 충분히 해야 한다.
문서화
패키지로 만들어 공개하고 많은 개발자들이 이용하기를 바란다면 문서화를 잘 해 놓는 것이 가장 중요하겠다. 같은 맛이면 보기 좋은 떡이 점수가 더 높은 법이다.
그래서 가장 먼저 해야 할 것이 문서화를 어떻게 하는 것이다.
소스 코드 내에 문서화를 하는 방법과 Markdown 에 문서화를 하는 두가지 방법을 배워야 한다.
소스 코드 업데이트 방법: fork 와 pr
협업을 하는 가장 일반적인 방법 중 하나가 fork 후 pr 이라고 하겠다. 아래와 같이 하면 된다.
- 프로젝트 홈페이지: https://github.com/thruthesky/model_house 로 접한다.
- fork 한다.
- fork 한 것을 clone 한다.
- 자신 만의 branch 를 만든다.
- branch 에서 작업하고 push 한다.
- pr 한다.
- pr 이 완료되기 까지 기다린다 또는 핵심 개발자에게 요청한다.
그리고 업데이트가 있을 때마다 origin 에서 다운받는다.
코드 리뷰
코드 리뷰의 목적은 pr 을 accept 하기 전에 하우스 개발 가이드에 맞게 작성되었는지 확인을 받는 것이다.
핵심 개발자
- 핵심 개발자는 git repo 의 collaborator 로 등록되는 개발자를 말하며, 참여도가 높고,
하우스를 잘 이해하는 개발자이면 된다. - 핵심 개발자는 주로 핵심 기능을 개발하고, 코드 리뷰를 하며, PR 을 머지하는 역할을 한다.
- 핵심 개발자 신청은 thruthesky@gmail.com 으로 연락을 하면 된다.
하우스 스타일가이드
참고: 하우스 스타일가이드