Sunny's Project

MY융소

AhnSunnyYoung 2020. 7. 17. 11:22

github: https://github.com/unolife/FirstAndroidProject

 

기간: 2018년 12월(대학교 1학년 마친 후 겨울방학)~2019년 2월(2학년 1학기 개강 전)

 

요약: 안드로이드 네이티브 앱 개발

 

이야기를 시작하기 앞서, 이 프로젝트는 무려 2년도 더 된 프로젝트라서 기억도 잘 안 날 뿐더러 굉장히 미숙하고 완성도를 꺼내기도 민망한 프로젝트지만 그래도 나의 "첫 프로젝트"라는 의미를 앞세워 기록하려고 한다...


1. 무모한 도전

대학교 1학년.

내가 원하는 학과에 내가 원하는 코딩을 배우며 아버지와 교수님께 계속 들었던 단어는

 

'프로젝트의 중요성'

 

이었다. 아는 거라고는 대학교에 진학하고 배운 기초적인 python과 java. 그 지식을 가지고 무작정 프로젝트를 시작하자고 친구들(wisdomin, svivs 라고 표시하겠음)에게 말하였고, 친구들에게서 흔쾌히 "그러자" 라는 답변을 받았다. 그렇게 우리는 우리의 공통점인 "명지대학교 융합소프트웨어학부"를 주제로 학우들에게 편리한 어플을 만들어보자고 정했다. (안드로이드 스튜디오는 만져보지도 못했고 자바도 아주 기본적인 문법만 할 때였다)

 

- 조력자 구하기

친구들과 간단한 회의 끝에 나온 결과는 워드 문서 한 장도 되지 않는 계획서였다.

첫 회의 후 작성한 MJ융소 기획안.(이름은 후에 MY융소로)

역시나 굉장히 막막한 상태,,,

이제 프로젝트를 어떻게 진행해야 할지 고민하고 있던 중, "프로젝트의 중요성"을 말씀하셨던 교수님이 문득 생각났다.

그렇게 추진력의 끝판왕 Sunny는 교수님께 곧장 서투른 메일을 보냈다.

참고로 프로젝트를 한다는 사실은 미리 교수님께 말씀드린 상태.
교수님의 빠른 답변!!

그렇게 신속히 첫 미팅 날짜가 잡혔고, 의지가 마구 불타오르던 나는 친구들에게 이것저것 안드로이드 강의 유튜브를 보내며 간단히 개발환경구축과 작은 프로그램 실습을 한 뒤 첫 미팅을 가게 되었다.


2. 본격적인 Start

강남 스터디룸에서 첫 미팅을 하였고, 우리가 무슨 어플을 만들고 싶은지 간단한 설명 뒤 우리는 조교님의 말씀에 따라 "요구사항 정의서"를 작성하였다. (지금에서야 소프트웨어공학 수업을 들어서 요구사항 정의서의 의미를 알지만 이 때는 진짜 아무것도 몰라서 감 잡기 아주 힘들었다는...) 

MY융소 요구사항 정의서.

어디에 어떤 기능을 넣을 것인지, 어떤 데이터베이스를 이용할 것인지, DB 종류는 어떤 게 있는지 천천히 질문과 답변을 들었고, 우리는 firebase를 사용하기로 했으며 기능별로 역할분담을 하여 UI도 그리고 System Flow도 구성하기로 했다.

 

역할 분담

Sunny - 융소 자유게시판

Wisdomin - 학과 설명

Svivs - 졸업 학점 계산 프로그램

Unolife - 로그인 기능(구세주처럼 후에 등장한 4학년 슨배님)

 

UI

차례로 sunny, wisdomin, svivs의 UI 그림. (서투른 손그림ㅋㅋㅋㅋ)

Flow Chart

또 다른 서투르게 그린 화면 flowchart.


3. 이제야 코딩 시작.

이렇게 계획을 꽤나 오래 짜고, 이제야 코딩을 시작...!

 

하기 전에 우리는 처음으로 Github을 사용하게 되었다.

이 때만 해도 Github의 중요성과 앞으로 내가 얼마나 많이 사용하게 될지 정말 몰랐다.ㅋㅋㅋㅋㅋㅋㅋㅋ

 

Github을 처음 사용한 건 협업을 위해서였다. 물론 정말 처음이어서 잦은 충돌과 사용방법도 미숙했지만 그래도 개발자로서의 Github 첫 사용은 큰 의미가 있었다. 

 

그리고 이제 진짜 코딩을 시작했다. 

 

지금 생각하면 우리가 만드려고 하는 건 아주 기본적인 것들이라서 다른 멋진 분들이 만드신 코드를 참고해서 만들면 됐었는데 뭐가 그렇게 어려웠는지 고민하고, 에러 뜨고, 뭔가 추가하고, 에러 뜨고... 안드로이드 스튜디오가 너무 무겁게 돌아서, 또 에러는 무섭게 나와서 되게 힘들었던 기억이 난다. 

 

그리하여 조금씩 나온 우리의 허접한 UI들...

firebase 기반 로그인 기능과 아이디/비밀번호 찾기 기능(보안 취약).
메뉴화면과 학점 계산기.
학부 소개 1.
학부 소개 2.
게시판 추천 기능, 글쓰기, 댓글 기능.


4. 프로젝트를 마치며...

느꼈겠지만,,, 코딩 후 바로 결론이 나오는 조금 급전개의 상황이다.

뭔가 앱을 만들었고, 뭔가를 하기는 했지만 결과물에 대해서는 큰 감흥이 없었던 것 같다.

왜냐하면,,, 계획할 때 어디가 완성인지, 그래서 이걸 어떻게 할 건지에 대한 건 쓰지 않았기 때문인 것 같다.

그저 뭔가 만들자! 에만 집중이 되어 있어서 마무리를 할 정신도, 생각도 없었다.

그렇게 생각보다 흐지부지하게 프로젝트가 끝났고, 이 후에 담당해주신 교수님께서 프로젝트 발표를 하라는 지시 하에 그제서야 프로젝트를 정리하게 되었다.

 

우리가 이 프로젝트로 얻은 건 어플이 아닌 기본 지식이다.

1. Android Studio 사용 경험.

2. Github의 첫 시작.

3. Firebase를 통한 Database의 첫 사용.

4. 협업의 과정.

다른 것보다 이 경험에 대한 성취감과 자부심이 이 때는 아주아주 컸다. 발표를 할 때도 뭔가 된 것 마냥 굉장히 기뻤고, 행복했다. 

 

나의 첫 프로젝트는 "무모했지만 행복한 경험" 이었다고 할 수 있다.

조금 다듬어야 할 부분은 마무리를 계획하는 것과 더 많은 지식을 쌓아서 의미 있는 결과를 내 보는 것이겠지만 그래도 굉장히 만족하고 성취감이 컸던 경험이었다.