이녁 흥신소-개발자 주간미션 1
안녕하세요. 이녁 흥신소팀 PM 김상열입니다.
지금부터 저희의 갬성(?)적인 서비스에 대한 소개와 짱짱한 팀원들을 소개하겠습니다.
- 프로젝트 소개
저희 팀은 색을 통해 감정을 기록하고, 캐릭터와 노티 등으로 과거의 감정을 리마인딩 할 수 있는 서비스 “가제: Colary(Color + Diary)”를 만들고 있습니다.
팀원은 총 8명으로 서버 파트 2명, iOS 파트 2명, Android 파트 2명, 디자인 파트 2명으로 구성되어 있습니다. - 핵심 기능
서비스의 컨셉이 단순하기 때문에 레이아웃이 많지 않은 간단한 앱을 만들고 있지만 저희 서비스의 핵심 기능(?)은 사용자가 인터넷이 연결되지 않았을 때도 정상적으로 앱을 이용할 수 있는 온/오프라인 서비스입니다.
저희의 경우 오프라인 서비스를 위해 서버와 클라이언트 모두 각각의 DB를 가지고 있고, 서로의 DB를 일관성 있게 유지하기 위해 동기화 기능이 중요합니다. DB 동기화를 위해서는 오프라인 일 때 클라이언트에서 일어난 글 작성 등의 이벤트를 서버도 알아야 하기 때문에 클라이언트 사이드에서 Job Queue와 Worker를 통해 요청을 가지고 있다가 인터넷이 연결되면 동기적으로 서버(Nginx)에 요청을 보내는 로직을 구현하고 있습니다. - 개발 환경:
Server
- IDE: Visual Studio Code
- 개발 언어: Javascript, Node.js
- 프레임워크: Express.js
- 데이터베이스: MySQL, RDS(예정)
- 협업 툴: Git, Github
- ETC: Nginx, Docker
iOS
- IDE: Xcode 10.3
- 개발 언어: Swift
- 라이브러리: FSCalendar, Lotti
- 데이터베이스: Realm
- 협업 툴: Git, Github
Android
- IDE: Android Studio 3.4.2
- 개발 언어: Kotlin
- 라이브러리: Databinding, RxAndroid, Rxjava, Retrofit, Glide, Lotti
- 데이터베이스: Realm
- 협업 툴: Git, Github - 브랜치 전략 및 컨벤션:
기본적으로 Git Flow를 지향하지만 파트마다 상이합니다. (Release 또는 Feature 브랜치를 사용하지 않고, 단순히 개인 브랜치와 Master 브랜치 만으로 작업하는 경우도 있습니다.) - 협업 툴:
KakaoTalk(갓), Slack, Google Docs
모두가 공유해야 하는 내용은 카톡과 슬랙 Notice 채널을 통해 동시에 전달하고 있습니다. 브레인스토밍이 될 수 있는 자유로운 대화 역시 카톡과 슬랙에서 같이 이루어지고 있고, 서비스 또는 각 파트 별로 논의가 필요한 경우에는 슬랙에서 대화하는 것을 지향하고 있습니다.
API 명세나 DB 서버 접속 등 문서화가 필요한 부분은 Google Docs를 사용하고 있습니다.
역할 분담:
- 김상열: 팀에서 PM 겸 서버 개발자를 맡고 있습니다. 모든 개발자 및 디자이너 분들이 기획에 적극적으로 참여해주셔서 PM으로서는 주로 잡일을 맡고 있고, 다행히 서버 파트가 존폐 논의를 거쳐 살아 남았기 때문에 서버 파트 개발도 함께 하고 있습니다.
서버 파트에서는 Node.js, AWS, Docker 등 서버와 인프라 개발을 담당하고 있습니다.
인턴을 하면서 넥스터즈를 함께 하고 있는데 팀 개발자들은 토, 일에 모두 모여서 모강코(모여서 강제로 코딩)를 해야 하기 때문에 주 7일 코딩을 하고 있다는 소문이 있습니다..
- 박주훈: 서버 파트 개발자를 맡고 있고, 기존에 Spring으로 주로 개발을 해왔었지만 서비스가 간단하기 때문에 Node.js를 배우면서 해도 충분하다는 PM의 말에 속아 규모가 점점 커지고 있는서버 개발의 대들보를 맡고 있습니다.
개발은 주로 API와 DB 개발을 하고 있습니다. (쿼리의 신)
- 강인혁: 안드로이드 개발자로 팀명의 주인공과 함께 팀의 브레인을 맡고 있습니다. 코딩은 머리가 하고 노트북은 단순히 코드를 치는 자판에 불과하기 때문에 모강코를 하는 날 노트북을 가지고 오지 않은 이력이 있습니다.
안드로이드 파트에서는 전체적인 개발에 대한 총괄과 함께 백, 프론트를 넘나다니는 역량을 보여주고 있습니다.
- 김윤진: 천재 개발자 “인혁”을 믿고 따르는 안드로이드 개발자로 사용해보지 않은 언어 “Kotlin”을 공부하면서 개발에 참여하고 있을 정도로 열정이 넘치고 엄청나게 많은 양질의 피드백을 자랑합니다.
개발은 주로 레이아웃 등 프론트를 담당하고 있습니다.
- 신명섭: 팀에서 가장 어린 iOS 파트에 속해 있는 멤버로 오티 때 부산에서 서울까지 올라올 만큼 넥스터즈에 대한 열정(?)이 대단하고, 정기 세션과 함께 일요일에 진행되는 모강코도 인천에서 서울까지 올라오는 모습을 보여주고 있습니다.
프로젝트의 규모가 커지고 있는 상황에서 계속해서 배우면서 참여하려는 모습이 인상적인 멤버입니다.
iOS 파트는 따로 영역을 나누지 않고 함께 개발하고 있기 때문에 특별히 정해진 개발 파트는 정해져 있지 않습니다.
- 우민지: 팀에서 막내를 담당하고 있지만 타 팀의 리얼 막내(00..)의 존재감에 가려져 막내 타이틀을 조심스러워 하고 있으며 모강코에도 지치지 않고 스스로 매일 야작을 하는 엄청난 체력과 열정을 보여주고 있습니다.
PM이 노트북을 부술뻔 했다는 특이한(?) 이력을 가지고 있고, 1년 무상 수리 개런티를 받았다는 소문이 있습니다. (ㅠ_ㅠ 미안..)