본문 바로가기

안드로이드 개발 일기

안드로이드 개발 일기

 

어느덧 안드로이드 개발을 하면서

참 많은일이 있었던 것 같은데, 제 개인 블로그를 통해 과거 정리를 좀 해보려고 합니다.

지금 안드로이드 개발을 시작하려고 고민이신 분들에게 도움이 되길 바랍니다.

 

1) 시작 

 

처음 String, Integer... 언어의 자료형이 있다는것부터 공부할 때

과연 내가 이걸 할 수 있을까? 라는 생각이 막연했었던 것 같습니다.

 

운 좋게 회사에서 실무로 일하는 안드로이드 개발자님을 통해 1:1로 많은걸 배우기 시작했습니다.

일주일에 1번. 겨우 2시간이라는 짦은 수업 타임에 입문인 나는 많은걸 빨리 습득하기 위해서 미리 선행학습을 많이 했었어햐 합니다.

맨 처음은 많은걸 배려해주시며,, 진행했지만 열심히 했던터라.. 한 3주 쯤 됬을 무렵 머릿속에 들어오지 않았던 자료형들이 익혀지기 시작합니다. 

처음 안드로이드 스튜디오로 그나마 소질(?)이 있었던 xml가 가장 재밌었던걸로 기억합니다. 

 

입문이었던 나에게 일주일의 1번 그 2시간은 세상 너무 소중한 시간이었습니다. 그 시간에 스승님은 개발에 대한 많은 이야기를 해주셨고, 그 얘기에 뒤처지기 싫어서 밤낮 새벽 코피흘리면서 스승님이 준 과제를 보지 않고도 외울 수 있도록 노력했습니다.

 

그렇게.. 한 1달쯤 됬을 무렵에 Timer 만드는 과제가 있었습니다.

당시 나는 뭘해도 잘하고 싶다(?) 라는 순진무구한 마음에 코딩을 열심히 하고 있었던 것이었어서

재미를 느꼇다긴 보다 이 코딩을 통해 나중에 어떻게 구글플레이에서 부업을 해볼까라는

장난 스러운 마음이 더 있었던게 사실이었습니다.

 

이번 과제도 훌륭하게 맞춰서 빨리 구글 플레이에서 어떻게 돈좀 만져볼까.. 생각하던 찰나에

변수 time을 0으로 할당해놓고 1초마다 time 변수가 1씩 증가 할때, 이 1이 60이 되면 1분이 되고,

1분이 60분이 되면 1시간이 되야하는 상황이었습니다.

하지만.. 위와 같이 코드로 Timer의 시간 표시를 어떻게 해야되는지 몰랐습니다. 

 

미친듯이 검색을 해봤지만 알 수 없는 개발용어에 큰 좌절을 맛봣엇고, 그때 엄청난 삽질을 하게됩니다.

아침에 일어나서 바로 의자에 앉아서 세상에 없는 문법까지 별의별 방법을 하기도 했지만 아무런 변화가 없었습니다.

 

당시에 난..

첫번째로 드는 생각이 코딩의 소질이 없는건 분명하구나 싶었습니다.

두번째는 코딩을 관두더라도 해결을 해보자

세번째는 해결할때까지 잠 못잔다.

3가지 생각이 결합하여 시간 가는줄 모르고 매진 했습니다.

 

그렇게 2일째 새벽을 지나 새벽 6시에 바깥 참새소리가 들리기 시작 했을 무렵 

보다보니깐 코드가 눈에 익숙해진 상태였지만 더 이상 떠오르는 방법이 없자 좌절 했습니다.

한숨을 푹 쉬고 오늘도 실패인가 하고 포기하면서 이불에 누웠습니다.

 

이불에 누워서 여러가지 생각을 하던 와중에 갑자기 든 생각이 변수란건 여러곳에서 사용할 수가 있으니.. 시 , 분, 초를 담당할 변수를 만들어서 각각 적용해보자라는 생각이 드는 순간 번뜩 일어나서 해당 코드를 작성해봤습니다. 

바로 성공은 못했지만 몇번의 수정을 거치고나니

 

time의 변수를 고의로 설정해서 만든 로직에 넣어보니 시,분,초가 잘 정리되서 앱 UI에 표시가 되었습니다.

그 순간 기대하지 못했던 희열과 카타르시스를 맛봣고 새벽 6시에 동네방네 소리지르고 다녔습니다. 

바로 그 순간부터 이 코딩이 내가 가야할 방향이란걸 알았고 그때부터 더 좋은 소프트웨어를 만들 연구를 하기 시작합니다.

 

2) 학습

희열을 느낀썰.TXT 를 스승님에게 말해줫더니 개발자가 천직이라는 증거라는 답변을 주셔서 (장난 이신건진 모르겠다.) 내길이 맞다 라는 확증을 느꼈습니다. 

하지만 당시 그래봤자 1개월차.. 열심히 스승님이 내준과제와 혼자 만들어보고 싶었던 개인앱 두개를 하면서 개발로인한 삽질 + 공부를 동시에 했던거 같습니다. 그렇게 2개월..3개월이 지났고 빠른 성장에 놀랐던 스승님이 한마디 해주십니다.

"대학교 4년과정을 3달만에 끝냈어요.." 

응?? 

농담이신진 몰라도 그만큼 열심히 했다는 말이라고 생각합니다.

그 시즌쯤에 이 재밌는 코딩을 같이 즐길 사람이 없는지 돌아다니다가

안드로이드 개발자가 모인 단톡방에 들어가게 됩니다. 

당시 2주에 1개씩 토이프로젝트를 끝냈던걸로 기억합니다. 

3개월 차 쯤 지났을때 4개월 차부터 설계라는 개념을 이야기 해주셧고,

나의 코드를 잠깐 리뷰를 해주면서 고쳐야될점 등등 피드를 주셨습니다.

 

그렇게 당시 진행했던 개인 앱 2개도 만들게 되었고 4~6개월쯤 설계 설명에 감명을 받아

설계나 안드로이드 라이브러리인 aac에 푹빠지게 됩니다.

(이상하게 그 당시 설계가 이해가 잘됬다. 왜냐하면 다른 분야에서 비슷한 경험을 했었기 때문이 아닐까..)

 

3) 공모전

개발 시작한지 코드가 익숙 해질때,

개발에 푹빠져서 엄청난 식사량을 어디다 풀어낼곳이 없었던 내 몸은 엄청 살이 불어났습니다.

아침에 눈을 뜨면 코드를 먼저 보고 싶을정도로 중독(?)이 되어 있었던 찰나에

 

평소 대외활동에 관심 있었던 나는 gdg korea에서 개최한 작은 해커톤에 개인참가를 하게 됩니다.

그리고 어깨넘어로 배워오던 선생님의 습관을 따라해서,, 코딩을 절대 먼저하지 않고 공책을 펴서 어떤 주제로 할건지,

화면당 간단한 와이어프레임 및 기능들을 정리하기 시작했고,,

 

그 결과 나로썬 당시 감당하기 힘든 개인앱을 만들기로 결심합니다. 제작기간은 21일,, 많은 것이 처음이었던 나에게 더많은 시간이 필요했지만 일단 도전하기로 마음 먹습니다. 

Room,RetroFIt2,ViewModel,LiveData,Corutine등등을 사용했던 앱이었던 것 같습니다.

주제는 아웃싸이더를 위한 앱이었는데, 카톡 UI를 완전히 똑같이 배껴서

(당시 내폰은 아이폰 UI라서 IOS버전 카카오톡 UI)

마치 누군가 카톡을 하는것마냥 속이거나, 

전화가 실제로 오지않았는데 전화가 온척, 근처 혼밥하기 좋은 맛집 검색, 

감성 아싸를 위한 명언집(갑자기?), 아싸들을 위한 트렌드 등등 개인으로..

짦은 시간 대비 구현해야할 것이 매우 많았습니다.

 

하지만 나는 개발에 미쳐있었고 성공할진 모르지만

지옥을 다녀오면 레벨업을 한다는것이 내가 살면서 느껴왔던 것이기 때문에 도전합니다.

그렇게 ... 가짜 카카오톡 기능 하나만 만드는데 17일이 걸렷습니다. 

당시에 아직도 기억이 나는게.. 아침에 일어나서 다음날 오후에 잤습니다.

하루가 지나서 개발을 하니까 뇌가 멈춘거 같지만 최대한 멘탈을 끌어올려서 손을 억지로 움직였습니다.

구토도 하고 코피도 쏟고 잊을수 없는 경험이었습니다.. 문제는 카카오톡 카피 기능 하나만 했는데 17일정도 걸린 바람에 나머지 많은 기능을 4일만에 해야했습니다. 막연함이 앞섰습니다. 카카오톡 카피기능도 Room을 상당히 잘못된 방식으로 사용했는데.. 신경쓰지 않고 진행했습니다.

남은 4일은 이틀은 5시간 짦으면 2시간의 쪽잠을 자고 마지막 이틀은 잠을 안잤습니다.

마지막날 포기할까 생각도 들었지만.. 생각하지 않고 코드를 작성했습니다.

그렇게 21일이 되었고 결과는.. 앱이 처참했습니다. 온갖 버그가 난무했고 어디서 부터 손봐야할지 몰랐습니다. 
(만약 설계에 대해 하나도 몰랐다면 더 큰일 날뻔)  도저히 제출할 수 없는 앱이라고 생각했고, 큰 패배감을 가지며 제출날 저녁에 누워서 멍한 상태로 그저 안드로이드 단톡방을 쳐다봤습니다.

 

단톡방에서 내 이야기를 했는데 그중 친한 개발자가 그래도 제출라고 격려를 해주셧고, 그 말을 듣고 제출 시간이 지난 다음날 "개인개발이라 서럽다 ㅋㅋ", "죄송하지만 보낸다" 등등 구구절절한 사연(?)을 적어서 앱과 이메일을 보냈습니다.

 

이 공모전을 통해서 느낀건

1. 소프트웨어는 기능 구현만 생각하면 안된다. 반드시 유지보수를 고려해야만 앞으로의 기능을 추가하기 수월하다.

2. 감만 생긴다면 구글링에 의존하지 않아도 어느정도 코딩이 가능하다.

(막바지에는 거의 구글링을 하지 않아도 될정도로 감을 익혔다. )

3. 마음이 급해서 빠르게 방법을 찾는것보다. 문서를 다 읽은다음 개념을 알고 쓰는게 더 문제해결이 빨랐다 

4. 혼자는 고독하다.

 

이 4가지를 경험으로 통해 느껴서 앞으로 내 코딩 라이프에 많은 영향을 끼치게 됩니다.

결과 제출후 3주 뒤 참가팀 50팀중에 8팀만이 상을 받았는데, 

내가 불쌍해보였는지 8팀중에 저도 포함되어있었습니다.

 

4) 협업 3팀 개최 및 참가

 

되돌아 생각해보면 민폐였었던 것 같지만.. 단톡방 방장의 허락(?) 없이 멋대로 사이드 협업 같이할 사람들을 구인하기 시작했었습니다. (죄송해요)

 

공모전에서 지옥을 맛본 나는 혼자 개발하는 것보다 사람들과 같이 하기를 원했습니다.

깃허브 사용법 및 협업 능력을 키우고 싶었고 개발에서 협업이 무엇이 중요한지 알고 싶었습니다. 

 

단톡방에서 은근히 사이드 협업을 하고자 하는분들이 많아서 놀랐습니다.

어떤 분은 안드로이드를 회사에서 혼자 담당해서 만들기도 하고, 어떤 분은 취준생이라서 한번 경험해보고 싶었다. 

등등 다 입장이 달랐습니다.

 

그렇게 협업을 주최하게 되었고 Slack 이나 github를 사용하기 시작합니다.

그리고 나는 원래 2팀만 참여하려고 했으나 욕심이 생겨서 3팀다 개발에 참여하게 됩니다. 

3개의 팀중에 한팀은 Leader를 맡았고

다른 두팀까지 리더 맡기에 부담이 될거 같아서 다른 분들에게 부탁했습니다.

 

협업을 하면서 느낀건.. 사이드 협업은 반드시 이끌어가야하는 사람이 필요합니다.

개발 진행사항이나 기획을 기억하고 있을 사람이 필요했습니다.

 

그렇다고 누가 개발능력이 뛰어나다는 것이 중요한게 아니라 

컨벤션 약속을 잘 지킴과 동시에 변경 사항 및 이슈공유 소통을 하거나

맡은 역활을 충실히 하는것이 훨씬 더 중요합니다.

 

개발 협업은 독고다이로 하는 다 처리하는 사람보다 축구선수 처럼

각각 포지션을 충실하게 이끌어 가는것이 더 빛나보였습니다.

 

내가 주최자 라서 내가 선행을 하거나 룰이나 규칙을 미리 정하고 임해야 했었습니다.

다행히도 초반에 내 노력을 빛을 발했는지 나중가서 다른 멤버들이 잘 도와주었습니다.

 

5) 작은 외주 경험

나의 활동을 보는 한 지켜보는 A개발자가 있었는데 어느날 부터 나한테 자주 연락을 취하기 시작했습니다.

그러던 어느날 한 어플의 유지보수 건을 부탁했습니다.

나는 혼쾌히 그 일을 수락했는데, 문제는 남의 코드를 뜯어서 고치는게 골치아픈일인지 몰랐던 겁니다.

 

그 앱은 10년차 안드로이드 개발자가 만들었다는 얘기해주셔서 기대를 했는데 (현재는 치킨집을 하고계신다고..) 막상 뚜껑을 열어보니 매우 정리가 안된 코드에 한숨부터 나왔습니다.

변수도 button1, 2 이런식으로 네이밍이 되어있어서 뭐가 뭔지 알아볼수가 없는 형태였고 ,, 핸들러와 스레드를 무지막지하게 썻기 때문에..

 

늘 비동기가 그렇듯이 알아보기 힘들었습니다. 게다가 서버는 Firebase RealTimeDatabase를 사용하고 있었는데 (유틸성 앱이라서 간단히 파베쓴듯) 그래서 더 클라 코드가 더더욱 더러워지는 최악의 상황에서 문제를 찾아 유지보수를 해야했습니다.

일단 가독성 떨어지는 스레드 핸들러 비동기보다, 비동기를 동기처럼 코드를 읽게되는 코루틴으로 일단 바꿔보자 라는 생각을 해서 

 

스레드나 핸들러 쓰는 부분들을 코루틴으로 바꿔 사용했습니다. 

그렇게... 파이어베이스에 있는 유저db들을 날려먹습니다. 

 

입에 침이 마르고 입맛이 사라집니다. 하늘은 핑돌며.. 어쨋든

이 사태를 나에게 일을 맡겨준 A개발자님에게 전달했습니다. 그 A개발자님은 당연히 백업db가 있을거니 

신경 안써도 된다길래 한시름 낫지만.. 저녁에 백업 db가 없다는 충격적인답변을 듣게 됩니다.

 

그렇게 복구 방법이 없나 파이어베이스 문서를 하나하나 다 찾기 시작합니다.

하지만 데이터 복원에 대한 얘기는 일절 없어서 포기해야하나 싶었습니다.

그러던 중 유지보수 받은 첫날에 파이어베이스 db 이것저것 만저보다 우연히 json 으로 db를

뽑았던게 기억났는데 

(어느 테이블은 클라에 없어서 json to kotlin 쓸려고..)

 

마침 다운로드 폴더안에 json 파일이 있어서 json 파일을 이용해서 복구했습니다.

 

그렇게 유지보수 일을 끝내고,, 개발 능력으로 처음 돈을 벌게 됩니다. 그 후로 첫 외주를 연결해준 A개발자님이

나에게 소소한 외주를 계속 주셧습니다. 대전대학교 길찾는 앱,, 구글플레이 서비스중인 웹앱 유지보수 일 등등..

여러가지 일을 그분 덕분에 많이 경험했던 것 같습니다.

 

6) 앱개발 대회 수상

협업 3팀 + 소소한 여러 외주들 사이로 바쁜 상황 속에서 다시 앱개발 대회 소식을 듣게 됩니다.

이번에는 규모가 컸습니다.

과학기술정보통신부 와 ioc 라는 단체에서 공동 주최로 연다는 소식을 들었습니다.

이번에는 팀으로 나가서 상을 받아보는 마음이 굴뚝 같았습니다. 

 

4명으로 팀을 만들었고 참가 신청했습니다.

대회 규정상 개발기간 7일밖에 안되는 상황속에서

우리 팀은 기간대비 고효율을 내야하는 상황이었습니다.

문제는 4명중에 2명이 회사원이라서 작업하는 시간에 제한이 있었고

나를 포함한 두명은 시간조율이 가능한 상황이었습니다. 

 

하지만 시작부터.. 좋지 않는 분위기가 진행되었습니다.

팀원간의 작은 오해나 마음이 상하는 일도 있었고 저는 뒤에서

트러블을 중재하거나 좋은 흐름으로 가기 위해 이끌어야 했습니다.

 

그리고 역활 분담이 문제였는데 부족한 개발 기간에 가장 많이 시간을 할애할 수 있는

내가 중요한 로직들을 구현하도록 맡았습니다.

다른 한명은 기획 혹은 발표 및 기술에 대한 폭넓은 지식이 있어서 대외활동을 맡겼습니다. 

 

다른 두명은 내가 로직을 구현하기 쉽게 모듈을 만들어 주거나

UI를 만들어줬습니다. 

 

나는 핵심 로직에만 집중하면 되는 상황이었습니다.

 

우리는 Beacon이라는 iot기기를 가지고 앱 과 연동해서

시각장애인이 앱을 사용시 버스가 다가오면 다가온다고 알려주는 기능을 만들고 있었습니다. 

iBeacon4 라는 기기를 사용했던것 같은데 그 회사에서 지원해주는 Sdk 가

백그라운드 기능을 지원해주지 않아서 서비스로 한번 랩핑을 해서 사용했습니다.

문제는 비콘 반응시 패러미터가 항상 1차원 배열 형식으로 받는데

db 필드안에 배열이 존재하는 구조라서

사실상 2,3차원 배열을 계산해야하는 상황이었습니다.

 

그리고 장애인이 말하면 기계가 반응하도록 STT와 TTS를 같이 썻는데, (

STT로 텍스트로 입력후 이에 기기가 반응해서 답변을 TTS로 해주는 상황)

TTS와 STT동시 사용하면 STT가 TTS의 말을 읽어서 오작동 하는경우가 많았습니다.

이에대한 예외처리 등등 신경써야할게 매우 많았습니다.

 

시간이 충분하다면 팀원들에게 SOS 를 청했을 탠데,

팀원들은 회사생활로 바빳고

팀원들은 예상치 못한 부분들 때문에 나에게 많이 미안해 하기도 했습니다.

 

하지만 좋은 기획과 좋은 팀웍으로 잘 진행이 되었고,

끝맺음을 맺어줄 기획 및 발표담당 팀원도 있어서

우리팀을 믿고 끝까지 진행했습니다.

 

결과물 제출 하루전에 남자 4명에서 모텔에서 마무리해야 할일을 했습니다.

멤버중 한명은 홍드로이드라는 유투브 채널을 하고 있는데

소소하게 라이브방송을 하거나 맥주를 마셨던게 추억에 남았습니다.

 

마지막에 핵심기능은 완성되었고, 야외에 나가 발표용 PPT에 쓸 자료들을 촬영하기도 했으며

마무리는 다른 멤버들이 잘 끝내주었습니다. 

 

그렇게 우리 앱은 최종 본선팀에 들었고,

나와 발표를 맡은 팀원와 함께 본선 발표장에 가서 발표를 했습니다.

 

끝내 참가팀 117팀 중에 2등을 하게 되었고, 개발을 더 사랑하게 된 추억으로 기억합니다. 

 

7) 고객사, 개발사 큰 규모의 프로젝트 제작

처음 외주를 줬던 A개발자가 어느날 갑자기 다시 연락이 왔습니다.

A개발자가 작은 외주 말고 규모가 있는 일이 있다며 이 일을 소개를 해주었습니다.

 

해당 프로젝트의 aos를 맡아달라고 부탁을 받았습니다.

 

자세한 사항은 아직 미공개 라서 블로그로 말할 수는 없지만

고객사의 리소스,기획, 디자이너,서버개발, Ios, aos,pm, 개발팀장

이렇게 팀빌딩이 되어있는 프로젝트 였었는데

처음에 기획서를 받고 드는 생각이 "하고 싶다" 였습니다.

 

 악재생과 위치기반이 같이 함께하는 어플인데,

지정된 해당 위치에 가면 좌표를 읽고 음악이 재생되고

그와 관련된 컨트롤러 및 설명들을 뛰어줍니다.

그외에 따로 음악플레이어처럼 듣는 기능, 결제 기능 등등이 섞여있었습니다.

 

처음 좋은 프로젝트를 맡았다는 생각에 정말 혼자서 열심히 앞서서 진행했었던걸로 기억합니다.

너무 욕심이 많았던 나머지 항상 혼자서 진도가 빨랐고 

일주일에 한번씩 올리는 주간보고도 성실성의껏 적었습니다.

내가 만든 aos가 가장 버그가 없었고 열심히 제작하기 때문에

aos앱을 기준으로 테스트를 많이 진행했습니다.

 

기억나는 점은 mediaPlayer를 쓰는데 (굳이 exo를 안쓰고..?)

바인드 서비스를 통해 리소스를 컨트롤하거나

백그라운드에서도 유지가 되게끔 로직을 만들던게 기억합니다.

이 프로젝트를 통해서 Service 사용은 매우 능숙해진 착각(?)이 들었습니다.

 

그외에 서버개발자님이 노션을 매우 깔끔하게 잘 정리도 해주셧고,

편하게 db도 잘 만들어주셔서

클라에만 집중하면 되는 좋은 개발(?)이었던걸로 기억을 하지만..

후반에 개발일정에 대해서 좀 트러블이 있긴했었습니다. 

 

하지만,

이일의 금액 처리가 매우 이상했습니다.

알고보니 일을 시켜준 A개발자가 돈을 대신 받고

나에게 나눠주는 형식이었는데..

이전 부터 A개발자는 다른 외주일에서 깔끔하지 않는 정산방식으로 금액을 처리했습니다.

 

이번에는 내가 가져야할 선금을 미리받았음에도

불구하고 A개발자가 멋대로 사용했으며,

(한번 나에게 들통났지만 난 바보 같이 그걸 용서해줌)

프로젝트 1차개발 막바지에 

나에게 돈을 나눠서 갚았습니다.. 점점 수상함이 느껴지기 시작합니다. 

 

 8) 공공기관 앱 제작 

A개발자가 핵심으로 제작하고 있었던 플젝이 있었습니다.

결론적으로 갑자기 나에게 안드로이드를 담당해줄 수 없냐고 부탁을 해왔습니다. 

 

개인적으로 공공기관에 대한 부정적인 인식도 있었고,

네이티브앱에 비해 페이도 상당히 적지만

외주 일을 하게 해준(?) 은혜가 있기에..

도움이라도 줄겸 안드로이드 어느정도 구현만 해주고 빠지기로 약속했었습니다. 

 

이 플젝이 서버 관리자웹 안드로이드앱 3가지로 진행이 되고 있었는데,

이걸 혼자 하고 있었던 겁니다. 

 

혼자하기에 지쳐서 안드로이드는 나에게 부탁하고

서버 관리자웹을 자신이 맡겠다는 식으로 얘기를 했습니다.

 

하지만 안드로이드앱 제작은 순조롭게 진행이 되었으나,

ui만 만들고 db 통신만 대기하는 상황이었습니다.

그런데 아무리 시간이 지나도 db구조에 대한 이야기도 없고

진행 여부를 물어보면

다른 외주가 있다는등 화제를 돌리는 것이었습니다.

 

그리고 일정이 지나도 큰 문제가 없다는등..

개발자로써 상당히 위험한 발언을 쉽게 하는것 이었습니다.

심각함을 느낀 나는 일정 막바지까지 계속 db를 달라 요구를 했지만..

결국 일정 마지막날이 되고,, 이 A개발자는 많은 사람들에게 피해를 주었습니다.

그렇게 그는 당연히 프로젝트에서 도망을 갔고,,

저는 혼자남는 상황이 되었고,,

이대로 나까지 빠지는건 상황상 매우 좋아보이지 않았기 때문에 일단 남기로 결심합니다.
(사실상 열정페이가 되어버린..)

 

PS. 

나는 A개발자가 줬던 작은 외주를 하나를 따로 진행하고 있었는데,

앱이 완성되고 구글플레이에 출시가 되어도

돈 문제가 해결되지 않아서 A개발자에게 외주를 준 회사 연락처를 달라고 요구했지만

또다시 대화 주제를 돌려서 말하는 상황

A개발자에게 언제까지 돈 줄 수 있는지 여쭤보았고 아주 당연한듯이 날짜 대답을 받았습니다.

하지만 당일날이 되어도 연락은 오지 않앗고 돈을 받아야하는 내가 직접 A개발자에게 연락을 해야하는 상황..

약속을 안지켯음에도 내가 먼저 연락을 해야하는 이 상황에 대해 화를 내었고

A개발자는 아무런 해답을 놓지 않은 채 잠수를 탑니다.

 

8-2) 공공기간 앱제작 - 새로 들어온 서버개발자

 

프로젝트에 남기로 결심한 저는 이어서 앱 제작을 진행 합니다.

하지만 서버개발자가 공석이라서 대기를 하려던 찰나,,

의외로 빨리 서버개발자를 데려옵니다.ㄷㄷ.. 

 

이번에 새로 오신분은 다행히도 진행은 되었습니다.

연세가 꽤 있으신 분이셔서 소통도 쉽지가 않은 부분이 있었습니다.

(들은 얘기로는 79학번이라고..)
 A같은 API를 요청하면 Z같은 API를 주신다던가.., 일 단톡방에서 

대놓고 계약 문제를 얘기를 꺼내는 등등 매우 많은 트러블이 있었습니다.

 

그리고 다른 프로젝트 때문에 기간상 더는 진행을 못한다며, 프로젝트에서 도중에 빠져야 되는 상황,,

그렇게 서버의 틀만 만들어주고 문제없이 다했다하거나, 웹의 기능들이 원활하게 잘 되지도 않았고,

디자이너님의 웹 UI를 무시하는 등등 

 

총제적 난국이 펼쳐지다가 결국 프로젝트에서 빠지게 됩니다.

 

8-3) 공공기간 앱제작 - 시니어 서버 개발자님

 

다시 새롭게 서버개발자님이 이 프로젝트에 투입하게 됩니다.

나의 요구 사항 및 수정 등등을 원활히 잘 피드를 해주셨으며,, 

당시 기능중에 채팅 기능이 하나들어갔는데 FCM+앱 내부 DB 사용 방식을 친절하게 안내해주시기도 했습니다.

 

그리고 이전 서버개발자님이 못했던 부분들은 새로오신 서버개발자님이 잘 마무리 해주셨고,,

마지막에 제대로 된 api를 뒤늦게 받는 마무리 작업들을 해야하는 상황이었습니다.

(push 기능이나, 채팅 기능도 다 이 개발자님이 오셔서 정상 작동이 되었다.)

 

이 프로젝트에 PM이나 개발팀장은 따로 없었고, 

그저 서버개발자님과 나 단 둘이었는데, 먼저 플젝에 오래 있었던 내가

서버 문제생기는 부분이나, 관리자 웹 문제 부분, 앱 문제 부분을 캐치해서 전달해야 하는 상황이었습니다.


성실히 잘 대응 해주셔서 큰 문제 없이 마무리 되나 싶었으나,, 마지막 앱 발표시

기기 파편화나, 새로운 요구사항이 있었습니다.

하지만 어쨋든 여러 고비 지나고 보니깐, 해당앱도 슬슬 마무리 조짐이 보입니다. 

 


결론

그외 GDG 스터디나, 앱개발 대회 심사위원 했던 썰, 영어개발 문서 읽기 스터디 주최,

브레이브걸스(?) 개발자 팬끼리 협업, 첫 알고리즘대회에서 쓰라린 패배 등등.. 


개발을 시작해서 너무나 많은 일들을 겪어왔습니다.

사람을 잘 만나는것이 중요하다고 느껴지는 이유가 잘못된 사람들만 봤었다면

잘못된 마인드로 개발을 해서 최악의 소프트웨어를 만들어 왔었을 겁니다.

 

다행히도 시작부터 좋은 스승님을 만났고,

좋은 인연들을 만나서 너무나 많은 추억들을 쌓아왔습니다.

 

어쩔 땐 재밌고 어쩔 땐 귀찮고 어쩔 땐 모르는 기술 말했다가 지적당해서 부끄럽고 

그러면서 좋은 소프트웨어를 만들기 위해 어떻게 방식을 최적화할지 고민하는 삶이 반복됩니다.

 

누가 이 글을 읽을지 모르겠으나 아무도 안볼 블로그에 일기장 한번 적어봤네요..

만약 보시는 분이 입문자라면 이렇게 말씀드리고 싶습니다. 

 

기본기 매우 중요하고요,, 그리고 개발을 사랑하는지 부터 확인해보세요