제가 사이드프로젝트를 시작했습니다
여러분 안녕하세요. 꿈꾸는 개발자입니다. 오늘을 제가 사이드 프로젝트를 하나 준비하고 있는게 있어서 예고편 쓰려고 컴퓨터를 켜게 되었습니다. 바로 제 뒤에 보이는 화면이 지금 준비중인 사이드 프로젝트인데요. 지금 제가 준비중인 사이드 프로젝트는 세상에서 가장 따뜻하지만 느린 SNS입니다. 그동안 일 하면서 이 사이드프로젝트를 준비하느라 정말로 잠도 제대로 못자고 개발만 해왔는데 아직은 보완해야할 부분이 많지만 어느정도 뼈대는 잡힌거 같아서 조만간에 배포를 할 예정입니다. 개발 컨셉은 굉장히 단순한데요. 여러분 보틀 레터 아시나요? 가끔 만화나 영화같은데서 보면 무인도에서 구조 요청을 할 때 모래바닥에 SOS라고 쓰기도 하지만 유리병 속에 구조요청 편지를 써서 병 입구를 막고 바다에 던져서 구조를 요청하는 씬도 있잖아요. 제가 준비한 사이드 프로젝트는 거기서 영감을 얻어서 시작을 하게 됬어요. 저는 바다는 아니고 하늘이지만 뿌리는 같아요.
제가 이 사이드 프로젝트를 시작하게 된건 많은 사람들이 내면의 소리를 말했으면…하는 생각이었어요. 여러분 그거 아시나요? 우리나라가 OECD국가 중에 자살률이 1위라는 것을요. 정말 창피한 이야기인데 제가 이 사실을 안 게 얼마 안됬어요. 상상도 못했거든요. 우리나라같이 잘 사는 나라에서 자살률 1위라는게 믿어지지가 않았거든요. 사실 일본도 자살률이 낮은편이 아니거든요. 근데 일본보다 높다는 점에서 굉장히 충격이었어요. 게다가 우울증 환자도 많이 높아진 상태이더라구요. 우리가 몸에 병이 있으면 병원을 가잖아요. 누가 가지 말라고 해도 몸이 아프면 자연스럽게 병원을 가게 되어있어요. 하지만 마음에 병이 생기면 쉽사리 움직이지를 않아요. 주변사람들이 눈치채지 못할 정도의 사인을 보내지만 눈치채는 경우가 사실 드물고 그러다 어느 한계점을 넘게되면 정말로 일이 벌어지게 되는거죠. 게다가 주변사람들에게 사인을 보낸들 다른 누군가가 도와주겠지… 하는 생각에 쉽사리 적극적으로 도와주지 못하는 문제도 있고 어떻게 도와야 하는지도 모르는 경우가 많죠. 마치 현실판 무인도에 갇혀서 많은 주변사람들에게 보틀레터를 보냈지만 아무에게서도 응답이 없던거 처럼요.
그래서 저는 온라인상에서 마음에 병을 가지고 있는 분들이 더 많은 사람들에게 보틀레터를 보낼 수 있게 한다면 더 많은 사람들이 허무하게 생명을 잃는 경우는 조금 줄일 수 있지 않을까 하는 생각에서 이 사이드 프로젝트를 시작하게 됬어요. 사이드 프로젝트이긴 하지만 장기간 운영을 할 수 있게 상업화를 염두해 두고 개발을 진행했는데요. 기본적으로 편지를 보낸다는 점에서 기존의 메일과 비슷하지만 편지를 보내는 즉시 바로 도착하는 것이 아니라 어느정도 랜덤한 시간을 두고 편지가 도착하게 되요. 게다가 받을 사람도 랜덤하게 지정됩니다. 다시말해서 편지를 보내는 그 시점에서 누가 이 편지를 받을지도 모르고 언제 도착할 지도 모르죠. 편지를 받는 사람은 그 편지가 도착하지 전까지는 편지 내용을 볼수도 없고 단지 누가 언제 편지를 보냈고 언제 도착하는지만 알수 있어요. 그리고 시간이 지나서 편지가 도착을 하게 되면 내용을 볼수 있죠.
더 자세한 내용은 실제로 서비스를 배포하고 나서 여러분들에게 다시 말씀드리겠지만 배포후에 많은 분들이 서비스를 이용해 주셔서 최대한 많은 피드백을 해주셨으면 합니다. 제가 아직은 주니어 개발자이기도 하고 특히 백엔드 부분은 거의 다뤄보지 않아서 이번에 개발을 진행할 때 가장 애먹기도 했어요. 특히 제가 예전 포스팅에서도 말씀 드렸지만 디자인 부분은 거의 쥐약이여서 아마 처음 보시면 디자인이 영 맘에 안드실 수도 있어요. 제가 시작한 사이드 프로젝트이긴 하지만 여러분들의 섬세한 피드백을 해주시면 조금씩 수정해 나가면서 더 많은 사람들에게 사랑 받는 서비스로 진행해 나가고 싶습니다. 물론 이 사이드 프로젝트로 직접적인 자살은 막을 수는 없다고 생각해요. 하지만 편지가 도착을 하고 답장이 오기까지 살아계셨으면 하는 마음에서 이 사이드 프로젝트가 많이 활용되었으면 합니다.
그래도 개발자 유튜브니깐 조금 비하인드 스토리를 말씀드리자면 이번 개발은 도커와 github action, AWS beanstalk을 사용해서 배포하려고 합니다. 솔직히 도커는 정말 잘 이해가 안되더라구요. 마치 개발 처음 배웠을 때 그 막막한 느낌이더라구요. 정말 yaml파일 하나 작성하는데 수정하고 빌드하고 수정하고 빌드하기를 몇십번 반복했던거 같아요. 프론트는 리엑트로 개발을 진행했는데 그동안 vue만 사용하다가 리엑트로 개발하니깐 훅이나 라이프사이클이 조금씩 달라서 초반에 애좀 먹었어요. vue라면 간단히 될 일인데 리엑트에서는 안통하고 vue와 라이프 사이클이 비슷한거 같으면서도 코드 기술하는 부분에서 달라서 공식문서로 공부하고 어느정도 익힌다음에 사이드프로젝트로 돌아오기를 반복했네요. 지금 딱 기억나는건 컴포넌트의 마운트 되는 타이밍과 마운트 해제되는 타이밍에 로직을 심고 싶었는데 vue에서는 Mounted나 Unmounted라고 따로 훅이 있지만 리엑트는 그냥 useEffect 하나로 되서 처음에는 익숙치가 않기도 했고 vue의 watch도 리엑트에서는 useEffect로 해결 할 수 있어서 더 신선했네요. 하다보니깐 useEffect에 왠만한 로직을 다 때려 박으니깐 코드가 엄청 길어져서 자연스럽게 커리화를 했는데 useEffect가 의도했던게 이거 아닌가 싶었습니다.
제가 이 사이트 프로젝트를 통해서 지금 사이트프로젝트를 준비하고 계시는 분들에게 조금의 팁을 드리자면 사이드 프로젝트를 만들고 어필할 때는 저처럼 스토리텔링이 필요하다는 것을 말씀드리고 싶어요. 스토리텔링은 여러분들의 사이드 프로젝트에 관심을 갖게 하는 좋은 수단이거든요. 이는 면접때 상당히 유용한데요. 서류전형을 통과하고 기술면접, 인사면접을 할 때는 사이드 프로젝트에 대해서 이것저것 많은 질문을 받게 될 거에요. 그때 그 사이드프로젝트를 시작하게 된 계기가 명확하고 남을 이롭게 하고 스스로의 기술성장에 상당한 도움이 되었다면 면접관들은 여러분들의 사이드프로젝트를 통해서 회사 전력에 도움이 될 가능성이 있다고 판단할 가능성이 아주 높아요. 지금 이 포스팅을 보고계신 많은 개발자님 중에 사이드 프로젝트를 진행 중이시라면 그 사이드프로젝트는 면접시에 여러분이 팔아야 할 상품이 되고 여러분은 그 상품을 팔아야 할 세일즈맨이 되야 해요. 이 사이드 프로젝트가 얼마나 대단한지 어필할 수 있어야하는데 스토리텔링은 여러분의 사이드 프로젝트를 머릿속에 각인시키는 가장 효율적인 방법이기도 하구요. 저는 그렇게 하지 않았지만 여러분의 경험이 스토리텔링 속에 녹아있다면 더 강력한 어필을 할 수 있기도 해요.
당분간은 오픈 준비로 포스팅 길이가 짧아지게 되겠지만 최대한 더 유익한 소식 전하면서 여러분과 같은 한 사람의 개발자로서 더 성장해 나가는 모습을 보여드리겠습니다. 또한 도메인을 신청하고 여러분들이 접속할 수 있게 준비가 되면 다시 공지하겠지만 더 많은 분들에게 제 사이트프로젝트를 공유해주시고 많은 후원과 피드백을 해주시면 감사하겠습니다. 제가 준비한 포스팅은 여기까지입니다. 지금 제 youtube 채널에 오셔서 좋아요와 구독을 눌러주시면 앞으로도 더 유익한 영상을 받아보실 수 있으니 지금 꼭 눌러주시고 저는 더 좋은 포스팅으로 여러분들을 다시 찾아뵙겠습니다. 감사합니다.