1인개발 : 10개월이 지났다
150일 일기에서도 이미 리뷰했지만, 10개월 일기에서도 한번 "최초의 계획"에 대해 리뷰해보자.
"최초의 계획"
1. 언어도 익힐겸 딱 봐도 뻔한 필수 모듈 2개만 만들어 보자. 솔직히 모듈을 어떻게 분리하고(파일?함수?) 어떻게 불러와서 쓰는지도 모르지만.
2. DB라는걸 만들고 서버에 그걸 올려보자. 근데 서버는 사야하나?
3. 서버에 올린 DB에 접근해보자.
4. 슬슬 다음에 무슨 모듈을 만들고 어떻게 상호작용시킬지 막막해질거다. 이제 딱 봐도 뻔한 모듈같은건 없다.
5. 다 엎어버리고 아키텍쳐를 짜보자. 아키텍쳐링은 괜찮은 툴과 사용법을 구글링한다.
6. 요구사항 문서같은게 선행되야 하면 간단히 작성해보자. 엑셀같은데다가. 나중에 아키텍쳐랑 연결되게끔 하면 더 좋으려나. |
"150일 리뷰"
1번은 이미 지났다. 모듈의 분리와 호출은 하고 있지만, 실력이 늘면서 점점 방법이 좋아진만큼, 초반에 만든 모듈간의 관계는 엉망이다. 이는 5번과 연계될 내용.
2번, DB부분은 사실 지금 한창 필요하고 배우고 있는 부분이다. 임시로 csv스타일, json스타일, python dict스타일을 비벼가면서 버티고 있는데, 이젠 진짜 서버에서 구동할 수 있는 DB가 필요하다. 현재 후보는 단연 mysql과 mongodb.
3번. 로컬에서만 몇번 해봤다. 감당 안됨.
4번. 다음에 무슨 모듈을 만들고 상호작용 시킬지는 오히려 명쾌해졌다. 처음엔 너무 방대해서 categorizing이 관념적으로도 안됐었는데, 지금은 너무 명쾌하다. 실력과 시간만 뒤따라주면 완성은 일도 아니다. (완성과 완성도는 별개지만)
5번. 다 엎어버리고 아키텍쳐 짜기. 그렇게 까지 계층이 깊지는 않아서 적당히 손을 보면 될 것 같다. UML도 써보고, 익숙한 그래픽툴로 그려도 봤는데, 제일 중요한건 '내 머리속에 얼마나 현실적으로 자리잡고 있는지'다. 왜냐면 모든 도구들은 기본적으로 두가지 기능을 하는데, '기록'과 '소통' 이다. 1인 개발자의 경우는 '기록'만 하면 되니까, 도구의 힘은 적당히 빌려도 되고, 필요할때 급히 찾아 쓰면 된다. 이게 부족해서 효율성이 바닥을 치는 일은 없을 것 같다.
6번. 이건 사실 UI와 UX에서 오는 일이라, 내가 할 부분은 user님들께 제공할 쉽고 간단하고 효율적인 '건의사항' 양식이다. 진짜 문서로 줘도 되겠지만, 내가 살살 긁어내서 알아내도 되는 부분. |
이제 "10개월 리뷰"를 써본다.
1번은 진즉 끝났으니 넘어가고
3번. 위에서 말했듯 DB는 서버에 잘 올라가 있다. AWS의 t3.mini 서버를 쓰고있다. 대충 월 2만원 미만을 지출하는 중.
4번. ![]() 150일 일기에서 예견했듯 구상은 명쾌했고, 개발은 고독하고 참담하다. 하루가 48시간이면 좋겠고, 멘탈이 금강불괴였으면 좋겠다. (블러처리한) 그림처럼, 모듈간의 관계와 개발을 정리해보기도 한다. 작성에 큰 의미는 없고, 그냥 스스로 멘탈을 잡아나가기 위함이다. 왜냐하면, 앞으로 해야할게 많을 때는 거기에 쉽게 압도되고는 하는데, 많으면 대체 몇개나 되고, 우선순위는 어떤지, 납기일은 언제쯤인지, 등등.. 확실한게 많아질 수록 중압감은 줄어들더라.
5번.
아키텍쳐링은 포기했다. 엄밀히 말하면 아키텍쳐의 "체계화 된 기록"은 포기한 셈이다. 아직 내 프로젝트(프로그램)의 구조는 최선의 방식을 위해 살아 움직이며 자리를 잡고 있는데, 미리 공들여 만든 아키텍쳐가 아까워서 그 활동성에 제약을 걸고 싶지 않았다. 하나의 큰 시스템이 완성되고 반년 가량 그 시스템이 최적화 과정을 거치고 나면, 그 때는 타인과의 협업을 위해 아키텍쳐링을 해 볼 생각이다. 그 때 실시하는 아키텍쳐링에서는 부족한 점, 개선할 점 들이 눈에 보이게 되지 않을까 기대한다.
6번.
정말이지 다양한 방식으로 요구사항이 튀어나온다. 자다 일어나서, 신규 모듈 개발 중 다른 모듈에 대한 개선 필요성이 떠올라서, 서비스 실행되는 로깅을 가만히 들여다 보다가, 서비스를 직접 사용하는 사용자와 대화를 하다가, 등등. 요구사항의 생성은 랜덤이지만, 그 기록은 체계적으로 하고 있어서 놓치는 일은 없다. 만족. |
결론을 말하자면 10개월 전 과제로 삼았던 1~6번은 미지의 영역에서 벗어나 내재화됐다. 너무 많은 방면에서 동시 다발적으로 시작한 걸음마는 넘어지고 엎어지고 깨지는 고통을 가져왔지만, 결국 시간이 지나자 엄청난 시너지를 발휘하고 있다. 마치 자전거타기, 농구드리블, 사격술 훈련을 난생 처음이지만 한번에 받는듯한 고통의 시간이었다. 지금은 발로는 자전거를 굴리고 왼손으로는 농구공을 튀기며 오른손으로는 열심히 총질을 해대는 수준이다. 고수들이 보기에는 무엇 하나 제대로 하는게 없어보이겠지만, 10개월 전의 내 모습을 기억하는 나로써는 지금 내 모습은 거의 슈퍼맨처럼 보인다.
약 두달 뒤면 처음 계획한 전체 시스템의 개발, 테스트 및 실전 배치가 완료된다.
시스템을 적용해서 서비스를 받음으로써 사업체가 절약하게 되는 비용은 추정하건데 월 2명의 고용비용 정도이다. 세상을 바꾸는 그런 개발은 아니겠지만, 직장 생활을 하면서 생각했던 "지금 시대의 업무처리가 가야할 길"을 구현해 냈다는 사실이 새삼 뿌듯하다.
이제 수익을 창출해보자.