본 글은 프로젝트를 마치면서 쓴 회고록입니다.
.
사실 프로젝트의 시작은 막연한 생각에서 시작되었다.
아니.. 모든 프로젝트 스터디가 서울에서 대면인거야 ㅡㅡ 왜 꼭 만나야 해?
모여서 카페에서 코딩을 하면 너무너무 좋다. 하지만 나는 지방에 살고 있다.. 스터디 때문에 백수인 나로서는 서울에 집을 구해서 살 순 없다. 그래서 다음과 같은 생각이 자연스럽게 든다.
까짓거 내가 만들면 되는거 아냐?
맞다. 내가 만들었다.
"그래! 내가 만들자!" 라는 생각으로 무작정 마음을 먹었다.
"사람들을 어떻게 모을까?" 라는 생각이 다시 들어서 고민을 했다. 고민의 결과는 다음과 같다.
일단 나와 함께 프로젝트를 하고싶은 마음이 생기게 하자!
위와 같은 결과를 위해서는 체계적이고 확실하게 보여야 한다. 그래서 자료조사와 주변 지인에게 물어서 프로젝트의 시작단계에 대해서 알아보기 시작했다.
그리하여 번지르르한 내용의 팀원 모집 글이 완성되었다.
구인을 한 곳은 인프런, 카카오톡 오픈 채팅이다. 인프런에서 연락오지 않았고 오픈채팅에서 주로 연락이 왔다. 많은 분들이 감사하게도 연락을 주셨다. 연락주신 분들의 실력을 내가 감히 가늠할 수가 없기 때문에, 적극적으로 참여해주시고 열정이 있는 분들을 골라서 뽑게되었다.
그렇게 모집한 인원은 백엔드 1명, 프론트엔드 2명이다.
디스코드에서 원격으로 모였다. 모집된 사람들은 대화에는 적극적으로 참여하셨다. 하지만 참여한 입장이셔서 프로젝트 리드 면에서는 말씀이 없으셨다. (이해한다. 처음하고 참여한 입장에서 어떻게 나댈 수가 있나..)
그래서 내가 나댔다.
미숙하지만 누군가는 이끌어야 프로젝트가 진행되기 때문에 프로젝트를 오픈한 본인이 나설 수 밖에 없는 것이다.
사실 그럴 생각이었고, 책임감도 느껴져서 흐지부지, 횡설수설이 싫어서 자료조사를 엄청했다.
자료 조사는 다음 내용들을 했다.
물론 너무나 부실하고 부족했지만, 그 조사 덕분에 팀을 이끌 수 있었다.
그렇게 제대로 시작하게 되었다. 시작하면서 우리가 진행한 내용은 수없이 많다.(하루에 6~9시간 회의를 했다.)
위의 작업을 하면서 우리가 수행한 내용은 마인드맵, 요구사항 명세서 작성, 각종 다이어그램 작성, ERD 그려보기, 화면 설계서 작성, API 명세서 작성이 있다.
마인드맵을 작성하면서 프로젝트의 컨셉에 대한 생각을 수렴했다. 수많은 대화를 나누면서 확실히 모두가 같은 방향을 볼 수가 있었다.
마인드맵을 통하여 같은 방향을 보았다면, 다이어그램을 작성하면서 방향에 나아가는 과정을 구체화 및 통일화 시킬 수 있었다.
ERD를 초반에 그렸지만 우리가 아직 미숙하고 언제 바뀔지 모르는 이유때문에 버전2에서 멈춘 것 같다.
여기서 문제가 생겼다. 모두 코드는 칠 줄 알지만 다같이 그림을 그리고 나니까.... 사이트 디자인이 너무 조잡하고 별로네..?
우리 디자이너도 뽑아보자!!!
그래서 무작정 UX/UI 디자인 오픈채팅에 들어가서 구인 글을 올렸다.
어... 디자인 방에서는 개발자가 주적이네..?
글을 올렸는데 "개발자 4명에 디자인 1명? 지옥이네.." 라는 글을 보았던 거 같다..ㅋㅋㅋㅋ
나는 개발자 오픈채팅에만 참여를 해보아서 개발자가 커뮤니케이션이 되지 않는 디자이너를 싫어한다는 것을 안다.
근데 디자이너도 개발자를 싫어했었네..?
그렇게 많은 야유를 들었지만 많은 분들이 채팅을 주셨다.
이번에도 열정이 있으신 분들을 내 나름의 기준으로 뽑았다.
모든 컨셉과 과정이 정해졌고 코드를 작성해야하는 단계가 왔다.
Git Hub를 이용했지만 그 누구도 제대로된 Git Hub의 사용법을 모른다..
친구야!!!!! SOS SOS SOS SOS 헬프 헬프 헤협(help) 헤협(help)
개발을 잘하는 친구에게 "Git Flow" 전략과 Git 관리 요령이 있다는 것을 듣게되었고 해당 사항을 공부했다.
그렇게 Git 레포지토리를 공유했고 각자 브랜치를 파서 코딩을 할 수 있는 환경을 맞추었다.
API 명세서를 토대로 로직들을 구현했다.
우리 가장 먼저 회원 도메인부터 해볼래?
체계적으로 하는 것을 목표로 하였지만 막상 구현을 들어가니까 막무가내, 주먹구구식 개발이었다.
그래서 "뒤에 다른 내용은 모르겠고! 회원에 한해서만 먼저 수행해보자!"라고 결정이 났다.
이번엔 사람의 문제다.
프로젝트를 진행하면서 백엔드 1분과 각자 기능단위로 구분하여 협업을 시작했다.
스프링에 대해서 다소 서툰 분이었다. 그래서 시간이 조금 걸려도 기다리면서 코딩을 했다.
간단한 컨트롤러 구현인데 2주가 걸리시는 것이다..
사람마다 이해의 깊이가 다르고 구현함에 있어서 시간이 걸릴 수 있다고 생각하여 2주를 기다렸다.
근데 사건이 벌어졌다.
디스코드에 들어가면 그 분이 항상 리그오브레전드(탈론 정글.. 탈론장인 인듯하다.)를 하고 계신 것이다.
게임을 많이 즐기시는 분이구나 생각을 했다. 하지만 회의를 하는 와중에도 게임을 하고 계시네..?
안되겠다 말씀을 드려야겠다.
"기분 나쁘시라고 하는 말은 아니지만.. 아무래도 다같이 취업을 바라다보니까 조금만 빨리 해주실 수 있을까요..? ㅎㅎ"라고 이야기를 했다.
"알겠습니다!" 라고 말씀하셨다. 다시 한번 믿었다.
또 회의에 탈론 정글을 하신다.
그래서 같이 하기 힘들다는 판단이 생겼다.
"미안해요.. 이미 제가 너무 많은 로직을 작성했고 따라오시기엔 너무 가버린것 같아요. 다음번에 기회되면 꼭 같이 해요!"라고 말하고 백엔드 팀원이 나가게 된다.
새로운 팀원을 뽑기에는 너무나 많이 진행이 되었다. 누군가 새로들어오면 모든 것을 설명해야한다. 거기에 따른 시간 소비와 감정 소비가 존재할거라 생각했기 떄문에 누군가 뽑기가 겁이 났다.
내 친구 중에 정말 잘하는 친구 있는데 한번 같이 해볼래?
고맙게도 개발을 잘하는 그 친구가 자기 지인에게 우리 프로젝트를 소개해주었다!
그래서 그 사람을 영입하게 된다.
새로 들어온 팀원이 잘하는 사람이었다. 그래서 내가 이미 짜둔 로직에서 많은 문제점을 발견하셨다. 그래서 밑바닥부터 수정작업을 들어가게된다.
공든탑이 무너지는 기분이었지만 어차피 무너질 탑이었다면 빠르게 보수공사를 하는 것이 좋다고 판단되서 "오케이!!"하고 새롭게 작업을 시작했다.
프로젝트를 진행하면서 가장 불편하다고 느낀 것이 백-프론트 간의 테스트였다.
실제로 두 서버를 돌려서 테스트를 해보고 싶었지만 양쪽 다 만들어져있는 상태가 아니어서 한명의 컴퓨터에 두 서버를 설치해서 로컬환경에서 구동했다.
프론트엔드는 VS Code에 모듈들을 명령어로 주르륵 설치만 하면 끝나서 백엔드 사람 중에서 한명이 해보자고 했다.
백엔드는 MySql, Java 등등 설치하고 환경세팅을 많이 해야 한다 ㅠ
그래서 내 컴퓨터 로컬로 테스트를 진행하게 되었다. 여기서 문제가 생긴 것이다.
프론트엔드 입장에서 매번 확인할 수가 없어서 항상 나를 불렀다. 내가 최대한 시간을 내어 테스트를 같이 진행했다. 하지만 어느 순간부터 나의 눈치를 보기 시작한다.(아무래도 나를 부르고 부탁해야하니..) 그래서 많이 불편하셨을 것이다.
그래서 이 문제를 어떻게 해야하는가에 대한 고민을 시작했다. 조사를 해보니까 이러한 문제를 해결하기 위해 Docker(도커)가 존재하더라!
다음 프로젝트에서는 도커를 적극적으로 활용을 해볼까 한다.
처음에는 6~9시간 회의를 하며 모든 사람들이 열정적으로 프로젝트에 참여했다. 하지만 어느정도 구현이 완료되었을 때, 모두가 슬럼프가 온 것이다. 그래서 팀원들을 불러서
많이 힘들겠지만 우리 같이 조금만 열심히 해봐요!! 끝내야죠!!
라고 이야기를 하고 마음을 다질 수 있었다.
프로젝트를 장차 5개월 간 진행하면서 수많은 시행착오를 경험했다. 그리고 수많은 내용을 공부하고 큰 성장?을 한 기분이 든다.
내게 시간이 더 주어진다면 좀 더 확실하고 제대로된 프로젝트를 수행하고싶다.
힘들다고 생각하면 너무나도 힘든 프로젝트였지만 너무나 재밌고 좋았다.
무엇보다
끝까지 열정적으로 최선을 다해서 참여해준 팀원들한테 감사하다.
내가 인복이 있었던 것 같다. 또 이런 팀을 만날 수 있을까라는 의문도 든다.
고생했어요 !!!
고생했다는 이야기를 나누고 인사를 했다.
그리고
서울에서 혹시나 기회가 된다면 맥주 한 잔 해요!!
맥주 먹기로 했다. 한번도 만나보지 못하고, 얼굴도 모르지만 이미 친구가 된 기분이다.. ㅋㅋㅋ
너무나 미숙하고 서툰 부분이 많았다.
코드 테스트, 로직 최적화, 커뮤니케이션, 기타 내용들..
엄청나게 자료를 찾아보고 조금이나마 흉내라도 내보려고 노력했다. 이것이 정말 완벽하게 했다는 확신도 없다. 하지만 노력했고 더 성장하고 싶고 더 배울 것이다.
그래서 가장 먼저 기업에 취직을 하게 되면 내가 궁금했던 부분들을 해소하고 싶다.
어디에 소속해서 프로젝트를 제대로 공부해보고 싶은 사람이 있을 것이다. 근데 요새는 괜찮은 곳이면 경쟁률이 엄청나다. 그래서 조금 서툴러도 되니까 스터디를 제대로 진행해보기를 추천한다.
본인이 애매한거 싫으면 제대로 할 것이고 제대로 공부할 것이다. 거기에서 성장이 엄청나게 뒤따른다.
싸피, 42서울, 소마 등등 너무나 좋고 너무나 가고싶다.
근데 우리 누군가가 떠먹여줘야 성장하는 수준 아니자나요? 혼자 쳇바퀴를 돌려서 성장할 수 있자나요!!!
구글에는 기술에 대한 내용도 있지만 수많은 정보가 존재한다. 무서워하지말자. 구글한테 물어보면 그만이다.
끝.
영호 님의 커뮤니케이션 능력 즉, 이야기를 풀어내는 스토리텔링 능력과 그것을 글로 정리하는 능력에 대한 개인적인 견해 (문과적 소양)
소프트웨어 다루는, 컴퓨터 관련 전공자들이 이 '커뮤니케이션 능력'이 부족하여, 회사들이 애를 먹는다 들었습니다. 그런데 이에 반해, 영호 님의 글은 컴퓨터에 대하여 문외한인 이른바 문돌이인 저도 대략 이해가 가능할 정도로 쉽게 쓰여져, 가독성이 좋은 글 같습니다.
영호 님의 컴퓨터에 대한 전문성과 열정 등에 대한 개인적 견해 (이과적 소양)
영호 님의 컴퓨터 쪽에 대한 열정과 실력은 이 벨로그의 나머지 200여 개의 글이 철저히 입증할 것으로 보입니다. 차근차근 읽어보겠습니다. 이렇게 공을 들여서 꾸준히 활동하다 보면 '상승의 모멘텀'이 머지 않은 날에 찾아올 것으로 보입니다.
신(구글)이 아직 영호 님을 스카웃하지 않은 이유
문, 이과적 소양을 두루 겸비한, 두말할 것 없이 훌륭한, 무궁무진한 잠재력을 갖춘 이런 인재를 구글에서는 왜 아직 채용하지 않은 걸까요? 인재도 이런 인재가 없는데, 구글은 영호 님 안 잡아가고 뭐하나......!
제 사견으로는, 구글이 아직 영호 님의 존재를 모르고 있거나, 아니면 마지막 테스트를 암암리에 진행하고 있을 거라 봅니다. (구글이라 특정짓지 않아도 영호 님이 가고 싶어 하는 회사들 중 대부분이 이 가능성 안에 존재하리라 생각.)
다만 신(구글)께서는 미국인이다 보니, 영호 님께서 영어로 의사소통이 가능한지 여부를 궁금해 하시는 것 같습니다. 그리고 이것은 구글 입사의 마지막, 최종 관문이 아닐까 하는 생각이 듭니다.
이 벨로그에서 가장 자신 있는 글들은 영어로 번역해 놓는다면, 그리고 알고리즘을 통해 이 벨로그가 뜬다면, 신(구글)의 권능에 도전할 만 하다, 이 벨로그의 독자는 그렇게 생각합니다.