저는 현재 대학교를 다니고 있으며 컴퓨터 관련 전공을 공부하고 있습니다. 시스템 개발 및 서비스에 관심이 있어 아무것도 모르고 혼자 다양한 서비스를 제공하기 위한 공부를 시작했고, 처음에는 앱에 관심이 생겨서 전역 후 무작정 Android를 공부하고 앱을 출시했었습니다.
- 입대 날짜, 전역 날짜를 토대로 남은 군복무를 계산해주는 프로그램
- 남은 휴가를 계산해주는 프로그램 (사실상 계산기 기능밖에 못함)
이 앱을 출시 할 당시에는 DB와 서버에 대한 개념이 아예 없었습니다.
지금은 많이 알고 있다는 것은 아닙니다. 현재 아는 것은 간단히 firebase나 mongoDB정도..
그러므로 사용자의 정보는 저장할 방법이 없었고, 로그인 구현은 애초에 제외하고 출시한 앱 이었습니다.
훌륭한 서비스 제공보다 앱을 출시하는 것이 목표였던 프로젝트 였기 때문에 퀄리티는 낮았고,
당연히 사용자는 두 자리수에도 들지 않았지만 나름대로 열심히 진행했던 공부였습니다.
지금 생각해보면 프로젝트라고 말하기도 부끄러운 공부였던 것 같습니다.
이렇게 앱을 출시한 후 복학을 하고 잠시 프로젝트를 공부하는 것은 접어두었습니다. 그러다 친구의 소개로 1일 1커밋을 알게 되었고 익숙하지 않은 github 활용, 코드 공부 등 복합적인 요소를 고려하여 친구들과 같이 1일 1커밋을 시작하게 되었습니다.
- 하루에 공부한 내용, 코드를 github에 commit한다.
- github에 commit한 부분을 캡쳐해서 카톡방에 올린다.
- 한 달 주기로 commit을 하지 못한 날을 계산하고 그에 맞는 벌을 받는다.
현재 학교 공부에 무리가 가서 1주일에 5커밋을 목표로 진행중
1일 1커밋을 진행하면서 친구들의 commit한 날짜를 계산 할 목적이 생겼고, 필요한 부분은 구글 sheet를 통해 관리했습니다. 당연히 commit을 하고 github에 들어가서 캡쳐하고 그걸 카톡방에 올리고 구글 sheet에 변경이력을 저장하는 것은 귀찮고 복잡한 일 이었습니다.
그래서 생각한 방법은 github API를 통해 github 정보를 받아오고, 그 정보를 토대로 사용자의 commit 현황을 정리해주는 프로그램을 개발하자고 생각하게 되었습니다. 단순히 commit정보만 받아서 목적에 맞는 사이트를 개발 할 수 있었지만 추후 업데이트, 상용화를 염두에 두고 사이트 개발을 진행하기로 했습니다.
- github에서 commit 내역을 가져와 그룹 내 commit왕, 이 달의 꼴찌를 찾아줌.
(private는 따로 승인요청)- 추후 확장성을 고려해 다양한 챌린지를 만들 수 있게 구성.
현재 진행중인 프로젝트 입니다.
github에서 commit 내역을 받아오고, 그 data의 내용, 횟수, 날짜 등을 바탕으로 서버에서 관리하는 것입니다. 또한, github commit내용 뿐만 아니라 다양한 목표를 설정할 수 있도록 제작하고 인증(면제)를 통해 해당 날짜에 활동 내역을 저장하고 관리해주는 서비스입니다.
대략적인 목표를 정하고 우리가 정해야 할 항목들은 다음과 같았습니다.
이 중에서도 시작하기 전에 정해야 하는 것, 시작하면서 불편하면 도입할 수 있는 것 들을 따로 구분하여 정하기 시작했습니다. 각각의 항목에 다양한 것들이 있어 어떤 이유로 정하게 되었는지를 설명하면 포스트가 길어질 것 같아서 무엇을 이용해서 개발을 시작했는지 다음 포스트에서 얘기하도록 하겠습니다.