안녕하세요.
퇴근 후 취미로 개발을 하고 있는 웹 개발자 입니다.
요즘 일 또는 학습과는 별개로 그리고 순수한 재미로 토이 프로젝트를 만드는 등 개발을 취미처럼 하시는 분들이 많아진 것 같습니다.
(사진: 이연복 셰프님이 요리사가 집에서 요리한다고 말하면 '백수거나 거짓말이다'고 말하는 장면)
하지만 요리사가 집에서 취미로 요리를 한다? 화가가 집에서 취미로 그림을 그린다? 마찬가지로 직업이 개발자인데 취미로 개발한다는 것이 취미인지? 일인지?에 대한 모호한 경계가 있습니다.
그래서 1년 넘는 시간 동안 퇴근 후 취미로 하나의 서비스를 개발하기까지의 경험과 정말 즐기기 위한 저 나름의 팁을 정리해 볼까 합니다.
(링크에 들어가시면 이 글을 제가 만든 서비스로 보실 수 있습니다.)
TL;DR
-
계기
현업에서 내맘대로 할 수 있는게 없다는 좌절감+내맘대로 뭔가를 만들고 싶다는 창작 욕구
-
우선 코딩 취미 장점
- 돈이 안든다
- 지식과 경험 축적
- 무지성 하드코딩으로 힐링
- 디지털 안에서는 무엇이든 만들 수 있고 결과물을 보면서 느끼는 만족감 큼
-
코딩 취미를 즐기기 위한 팁
- 막만들어도 뭐라 그럴사람 없다. 최대한 쉽고 간편하게 접근하자.
- 자동화 그리고 설정 과정은 꼭 기록
- 노션으로 개발 관리: 노션을 활용하여 2주 단위의 마이너 버전업 기준으로 1주 단위의 스프린트를 만들어 관리
계기
여러 가지가 있겠지만 가장 큰 트리거는 욕구불만이었던 것 같습니다.
갑의 요구사항대로 또는 협업관계에서 생기는 의견차로 인해 '내 맘대로' 할 수 있는게 없다는 좌절감과 '내 맘대로' 만들고 싶다는 창작 욕구가 생겨났고, 이러한 욕구를 충족시키기 위해 집에서 키보드를 두드렸던것 같습니다.
물론 서비스에 대한 제 생각이 틀린 경우도 많겠지만, 이것은 취미이기 때문에 어떻게 만들어도 괜찮지 않을까요^^
우선 코딩 취미 장점
돈이 안든다
첫번째 장점인것 같습니다. 컴퓨터만 있다면 어디서든 가능합니다. 요즘은 정말 많은 무료 클라우드 서비스들이 있기 때문에 간단한 정도는 무료로 서비스를 만들수 있습니다. 그리고 찾아보면 질 좋은 무료 강의와 자료들이 참 많습니다. 예전에는 거의 불가능에 가까웠던 중국이나 일본 자료도 번역이 어느 정도 가능해졌기 때문에 무료로 배우고 혼자 서비스를 만들어 내기 좋은 세상이 된 것은 틀림없습니다.
자연스러운 지식과 경험 축적
지식과 경험은 부수적인것이라고 생각합니다. 만약 학습에 목적을 둔다면, 어딘가에 정리하고 연습하고 이런 과정들이 번잡하게 덧붙겠지만 목적이 재미와 자기만족이다 보니 부수적인 느낌이 듭니다. 그렇기에 현업에서 생각지도 못한 것들에 대한 경험과 문제 해결 과정에서 얻는 지식을 자연스럽게 축적할 수 있다는 장점이 있습니다.
무지성 하드코딩으로 힐링
불멍을 보듯 모니터를 보고 아무런 압박감과 걱정 없이 키보드를 두드리다 보면 힐링을 얻으실 수 있습니다.
만들고 난 뒤 보기 좋더라
디지털 화면 안에서는 무에서 유를 창조해 낼 수 있습니다.
그렇기에 코딩 취미는 자신의 생각을 무엇이든 온전히 표현하고 만들어 낼 수 있다는 장점이 있습니다.
저같은 경우에는 빌드 후 생각대로 돌아가는 모습을 보면서 만족감을 매우 많이 느꼈던것 같습니다.
코딩 취미를 즐기기 위한 팁
막만들어도 뭐라 그럴사람 없다. 최대한 쉽고 간단하게 접근하자.
천천히 가는것을 두려워하지 말고 제자리에 머무는것을 두려워하라는 중국 속담이 있다고 합니다.
현업에서 프로젝트를 진행한다면 분석과 설계 등 처음에 해야 할 일들이 많습니다. 그리고 잘 만들어야한다는 부담감 또한 갖고 있습니다.
마찬가지로 취미로 개발을 한다해도 "잘 만들고 싶다"는 생각이 먼저 듭니다. 그러다보니 이것도 하고 싶고 저것도 하고 싶고 계획만 세우다 지쳐, 일이 흐지부지 되는 일들이 많습니다.
저 또한 처음부터 잘 만드려고 하다가 밑그림 조차 그려 보지 못하고 구도만 잡고 그만두는 일들이 많았습니다.
확실히 처음부터 설계하고 만들어야 나중에 작업을 두 번하지 않습니다. 여러사람과 협업한다면 말이 달라지겠지만 이것은 단지 취미일 뿐 어렴풋하고 단순한 아이디어를 발전시키는 과정에서 코딩을 통해 재미를 느끼려는것이 목적입니다.
그래서 아이디어가 떠오르면 먼저 하드코딩으로 빠르게 기능을 그려보고 괜찮은 아이디어인지 확인부터하는 방법을 사용하기 시작했습니다.
지금 만든 서비스를 예로 들자면 에디터부터 만들었습니다. 첫 단계로 좌측 '라인 에디터'에 입력을 하면 우측 미리보기 화면에 글씨가 써지는 것을 만들고, 다음 단계로는 커서가 다음 라인으로 이동하면 미리보기 화면도 다음 라인의 글자로 변경되는 것을 만드는 순서로 기능을 확장시켰던것 같습니다.
단순한 목표를 세우고 하드코딩으로 하나씩 만들어 나갔습니다. 처음부터 이 컴포넌트를 재활용 해야겠다는 생각으로 고민하면서 만든것이 아니라, 말 그대로 무지성 하드 코딩으로 만들었습니다.
그리고 어느정도 동작하는것을 보며 "이게 돼네?" 라는 성취감과 함께 어떻게 만들까? 더 깊이 고민하면서 즐겁게 기능을 발전시켰습니다.
아이디어가 있다면 코드가 더럽더라도 고민하지 말고 일단 기능을 구현해보는것도 한가지 방법이라 생각합니다. 코드는 그 다음에 정리해도 괜찮다고 생각합니다.
물론 코드를 더럽게 만들라는 말은 아닙니다. 고민하다가 그만 둘거라면 이렇게라도 하는것이 좋다는 의견입니다.
자동화 그리고 설정 과정은 꼭 기록
이거 취미인데 뭘 하기가 이렇게 귀찮아?라는 생각이 들지 않도록, 그리고 아이디어가 떠오르면 팍팍 시작할 수 있도록 어느 정도 필수 과정은 준비해 두었습니다.
- GitHub Actions나 GitLab CI Pipeline 꼭 이용하세요. Git을 사용하고 있고 서비스를 배포하려면 GitHub Actions나 GitLab CI Pipeline을 꼭 이용하세요. 빌드 배포 과정을 자동화해두면 편하게 배포 할 수 있습니다. 이거 안 해 두고 배포하려면 정말 귀찮은 반복 작업이 늘어납니다.
- 설정 과정은 잘 기록해 두자. 저는 개발 노트 정리를 꼼꼼하게 해두지 않는 편이지만 처음 설정 과정은 꼭 캡쳐하고 기록 합니다. 저 같은 경우 AWS의 서비스를 많이 사용하는데 프로젝트를 다시 만들때 마다 어떻게 초기 설정을 하는지 다시 찾아보는 경우가 자주 생겼던 것 같습니다. 또한 업데이트로 옵션이 추가될 경우 '이런게 있었나?'하는 기억과 함께 더 혼란스러워질 수도 있기 때문에 설정 과정은 꼭 기록해 뒀습니다.
노션으로 개발 관리
아이디어는 계속 떠오르면서 추가시키고 싶은건 많고, 퇴근 후의 시간은 짧았습니다. 그래서 자는 시간을 깎아가면서 만들기 시작했고, 결국 어느 순간 삶이 피폐해지는 것을 느꼈습니다.
처음엔 따로 개발 일정 등에 관한 관리를 하지 않고 에버노트에 기능 목록만 써놓고 하나씩 추가 했었습니다. 그러다 할 일이 늘어나면서(개발 외에 그림 그리기, 스토리 쓰기, BGM 만들기 등) 관리가 필요해 졌습니다. 그래서 할일과 노트를 한곳에서 관리 할 수 있는 노션으로 넘어왔습니다.
위 Git 캘린더를 보면 중간에 그림 그리느라 빠진 부분이 있지만 확실히 노션에서 할 일을 관리하기 시작한 올해부터 더 꾸준하게 개발한 것을 확인 할 수 있습니다.
처음에는 이쁘게 노션을 사용해보겠다고 이것 저것 했지만 혼자 사용하다 보니 관리 포인트를 줄이고 실용적인 측면으로 사용하게 된 것 같습니다. 저 같은 경우 2주 단위의 마이너 버전업 기준으로 1주 단위의 스프린트를 만들어 관리하였습니다.
각 버전 별 페이지에는 업데이트 할 기능 리스트를 체크박스로만 관리했습니다. 마찬가지로 스프린트도 할일 리스트를 체크박스로만 관리했습니다.
그리고 위의 이미지에는 보이지 않지만 다음 버전들에 대한 기능들도 페이지를 미리 만들어 두고 기간 동안 체크 못한 기능들은 그대로 다음 버전으로 옮겨 가는 식으로 개발 했습니다. 이번 스프린트의 적당량?을 분배하여 올라온 리스트는 반드시 그 기간내에 끝내자라는 생각은 취미 생활이 아니라는 생각에 그런 방법을 선택한 것 같습니다.
긴 글 읽어주셔서 감사합니다.
인*런 말씀하시는건가요? 직접 들어보지 않아 말씀드리기가 어렵습니다ㅠ
저는 유튜브와 페이지로 작성한 글 위주로 많이 보는것 같습니다.
마치 밤에 쓴 연애편지처럼
다음에 소스를 열었을때 오는 자괴감은 덤이구요.
원래 본인이 짠 소스도 일주일이면 기억에서 사라지는거 아닌가요. ㅋㅋ
그냥 고양이가 와서 짰구나 하면서 욕하시면 됩니다.
덕분에 어서 시작해 봐야겠다는 생각이 드네요. 감사합니다. ㅎㅎ
근데 AWS를 많이 사용하시면 비용 부담은 없나요?
사양 낮은것을 선택했는데도 다 합치면 한달에 10만원 안으로... 나오고 있습니다...
말씀하신 취미로 개발하는 사람에 저도 들어갈듯 합니다.
업무 자동화에 관련된 기능들을 만들고, 이 과정을 유튭으로 남기고 있습니다.
지금까지는 각각의 기능 구현에만 신경쓰고 있는 수준으로, 체계적인 코드 관리를 하고 있지는 않았습니다.
※ 지난 3월에 올렸던 PPT 매크로 모음 관련해서는 워낙 응원을 많이 받아서 감동 했었다는... ^^
조만간 저도 이곳에 중간 산출물(?!)을 공개할 계획인데,
GitHub는 실천해 봐야 겠네요. 좋은 조언 감사드립니다. ^^
유튜브로 남기고 계신다고 하셨는데, 공유 좀 부탁드려도 될까요? ♡
아래 주소가 제 유튜브 채널입니다. '업무의 잔머리'
https://www.youtube.com/channel/UCYMUmX07NkceYUV31xhYkSw
그리고, 저도 오늘 자료실에 글 하나 추가로 올렸습니다. ^^
감사합니다. ㅎ
투자라기보단 놀이가 되어야하는데 이게 잘 안되는 것 같기도 하네요 ㅎㅎ
문서화 공감합니다ㅋㅋ 초기 설정이나 db암호를 뭘로 했는지 맨날 헤맸어요ㅋㅋ
저는 월패드 통합연동 프로그램 작업하는데 언제쯤 공개할수있으련지...
공신력있는 자료 임니다!
휴가 나온 군복 칼주름과 같은 의미가 아닐까요
체크 남방 등의 강력한 디버프가 복합적으로 작용한......
제 생각도 우리나라에서는 캠핑 비용이 스키이상은 될거 같은데요...
존경스럽네요
저녁준비하고 밥먹고 설거지하고 집안일하고 씻으면 10시넘던데요 ㅠㅠ
인스턴트 요리하눈 재미가 있어요 ㅋ
대단하십니다. ㄷ
키크고 잘생긴 놈들이 하는거라 그런가 ㅠㅠ
제가 취미 농구만 20년 넘게 했는데 농구장에서 여성분은 전직 농구선수 말고는 본적이 없네요.
ㅜㅜ
우연히 클릭했는데
만드신 홈피 정말 대단하네요.
마치 게임하는듯한...뭔가 재밌을것 같네요.
많은 수요가 있을듯 합니다. 잘 되셨으면 좋겠네요!
피드백 정말 감사합니다!
스트레스가 없으니 아 좋아~
문제생기면 개발자에게 이거 맡아주세요.
나 개발자 아님 :)
그분들 아직 현업에서 잘 살아남았나 모르겠네요. ㅎㅎㅎ
독학으로 배움에 있어 효율이 좀 떨어지는 단점은 있지만, 뭐 어떻습니까.. 제대로 짚지 않은 곳은 다시 빠꾸해서 다시 관련자료 찾아보고.. 천천히 힐링하면서 하고 있는 중입니다.
그리고 키보드 키감 좋으면 그 리듬 타는 재미도 있지요 ㅎ
저는 노션같이 철저하게 관리하는 것 보단 블로그에 약간씩 올려서 정리하는 편입니다.
아무나 코딩 배우고 싶은 사람도 검색해서 제 자료를 보고 참고할 수도 있구요 ㅎ
제 분야가 아니라 말씀드리기 어려운 부분이 있지만, 유니티와 C# 많이 사용하시는것 같습니다.
특히 RPG라면... "쯔꾸르 게임 만들기" 구글 검색이 참고가 되지 않을까 생각됩니다.
글도 매우 깔끔하게 정리하시고...
게을러서 집에서 이런 취미는 못 가질 거 같아요 ^^;;;;;;
건전하고 좋은취미라고 생각합니다
이해는 가면서도 취미로 즐기기는 어려운 개발자입니다. ㅠ
멋져요
말하는 듯이 보이는 글이라 신기하네요
피드백 감사합니다!bb