1. 우리는 힘들다 그렇지만 해보자
개발 공부하기 참 힘든거 100% 공감합니다. 100% 뒤에 더 꽉채울 수 있는 숫자가 있다면 그만큼 공감합니다.
어떤 순간에는 내 생각대로 동작해서 뿌듯하기도하고, 또 어떤 순간에는 배우는게 어렵고 나만 못하는 것 같고 그래서 노트북을 닫기도 합니다.
필자는 웹 개발자입니다. 웹이 아닌 다른 필드에서 활동하시는 분들도 마찬가지겠지만, 배울게 참 많습니다.
HTML을 처음 접하고 웹 브라우저에 레이아웃을 잡아보고, CSS로 색깔도 입혀보고 요소들을 올바른 위치로 옮기기도하고 애니메이션도 넣어봅니다. 본격적으로 내 웹사이트에 기능을 불어넣어주기 위해 Javascript를 배우고 계산기, 메모장, 장바구니 등을 만들면서 연습해보기도 합니다.
어느정도 Javascript에 익숙해졌다면, React 혹은 Vue.js, Nest.js와 같은 자바스크립트 라이브러리 혹은 프레임워크에 대해 공부해보는 시기가 옵니다.
무언가 외울 것 투성이인 것 같고, 이 많은걸 기억해서 과연 내가 스스로 프로젝트에 적용할 수 있을지 의문이 들기도하며, 다른사람들의 코드를 보고 이해가 되지않는 나를 보고 아직도 부족한가라는 생각이 들기도 합니다.
더 이상 강의를 듣는것도 지치고, 이론 공부하는 것도 의미가 없다고 느껴지지만 스스로 무언가를 만들어 서비스하기에는 실력이 부족하다고 느껴져 백지에 코드를 두드리는 것이 두렵다면 일단 나는 무엇을 만들고 싶은지에 대한 고민을 해봅시다. 고민이 끝났다면 내일부터 당장 강의를 듣는것을 멈추고 프로젝트를 만들어보세요.
API 명세서, 스토리보드, 기능명세서 등 개발에 있어서 언젠가는 필요한 것들이지만, 지금은 아닙니다. 프로젝트를 완성하는데 있어 지금 당장 필요한 것은 기획서가 아닌 노트북을 두드리고 있는 손입니다.
2. 프로젝트를 완성하고 얻는 것
자신만의 프로젝트를 만들고나면 얻는 것은 크게 두가지라고 생각됩니다. 자신감과 스토리 이렇게 두개입니다.
자신감은 실력이 뒷바침 되주면 알아서 생기게 됩니다. 위에서 강의를 듣는 것을 멈추고 프로젝트를 만드는 것을 시도하라고 말씀 드렸습니다. 이는 공부를 멈추라는 뜻이 아닙니다. 프로젝트를 만들면 100에 80은 강의에서 배웠던 내용이 나오게 될 것입니다. 하지만 강의에서 다루기 까다로운 내용이거나, 학생들에게 전달하기는 어려운 레벨 등의 이유로 모든 기능을 강의에서 다루기에는 무리 일 것입니다. 각각의 프로젝트마다 적용되는 기능은 다를 수 있기때문에, 나머지 20은 스스로 찾아서 공부해야합니다.
강의에 나왔던 80을 따라치는 것이 아닌 내 프로젝트에 적용해가면서 조금씩 바꾸는 과정에서 제대로 복습할 수 있고, 나머지 20을 찾고 공부하며 실제 서비스에 적용시키는 과정을 겪다보면 나는 100만큼 단단해질 수 있습니다. 20을 채우는 과정은 상황에 따라 비교적 쉬울 수 있으며, 한달이상이 걸릴 수도 있습니다.
저의 경우로 예를들면 React로 정적웹사이트를 만드는 것에는 조금 익숙해져 있는 상태였으나, 서버와의 통신은 어떻게 해야하고, 유저가 작성한 글을 DataBase에 어떻게 저장해야하며, 이것을 또 어떻게 불러와야 하는지, 또 정적웹사이트가 아닌 동적으로 작동하는 웹사이트는 어떻게 배포해야하는지 몰랐습니다. 그런데도 마음이 답답해서 시작했습니다.
돌이켜보면 지금은 한달도 안되서 만들 수 있을 것 같은 프로젝트들도 당시에는 3개월이 훌쩍넘는 시간동안 끙끙거리면서 매달렸던 것 같습니다. 만들면서 서버를 구축하는데 필요한 정보를 공부하고, 로컬에 이미지와 같은 파일들을 저장해서 파일을 불러온 후 이렇게 하는 방법이 잘못되었음을 깨닫고 AWS의 S3에 이미지 파일을 저장할 버킷을 생성 후 버킷에서 가져오는 코드 수정을 하는 등 정말 많이 헤메었습니다. 프로젝트를 겨우겨우 완성하고 나서 netlify를 통해 쉽게 배포할 수 있었으나, 장기적으로 운영할 것이기 때문에 AWS기반으로 돌아가는 netlify는 AWS보다 상대적으로 가격이 비싸기 때문에 AWS 배포하려고 했습니다. 그럼 배포를 할때 어디다가 어떤 파일을 올려야하는지 제대로된 가이드를 찾기 어려워 한달이 넘는 시간을 헤메기도 했죠.
그럼에도 불구하고 처음부터 끝까지 다해보았습니다. 남들이 흔히 이야기하는 경제적 자유 지표인 월천만원에는 한참 못미치는 수준이지만, 유의미한 수익을 내고있기도 합니다. 그리고 이러한 과정속에서 정말 많은 것들을 알게되고 구현 난이도가 쉽던 어렵던 뭐든지 혼자서 만들어 낼 수 있다는 자신감을 얻었습니다.
스토리를 얻는다는 것은..
흔히 '평생 술안주'라고 이야기하는 것은 흥미로운 나만의 이야기가 생겼다는 것을 의미하기도 합니다. 술자리에서 누구에게나 할 수 있는 이야기는 아니지만 적어도 같은 공감대에 있는 사람들에게 해줄 수 있는 이야기가 생기는 것은 좋은 무기가 될 수 있습니다. 그게 내가 유튜브에서 공감대가 같은 다른사람들에게 해 줄 수 있는 이야기가 될 수도 있고, 취업을 위해 개발면접을 볼 때도 작용할 수 있습니다.
프로젝트를 수행하면서, 또 완성하고 운영하면서 사람마다 정말 다른 경험을 하게 될 것입니다. 내가 맞닥뜨리는 문제도 다를 것이고, 그 문제를 해결하는 과정도 다를 것이고, 프로젝트를 왜 만들게 되었는지 등 다양한 생각과 경험이 그 곳에 있을거라 생각합니다. 내가 문제를 겪고 해결하는 과정은 누군가에게는 흥미롭지 않은 이야기가 될 수 있지만, 같은 공감대를 가지고 있는 사람들이 내 이야기에서 흥미를 가질 부분은 무엇이고, 이것을 어떻게 활용하면 좋을지에 대한 고민을 할 수 있는 기회가 생기기도 합니다.
회사에 취업하기 위해 포트폴리오 용도로 프로젝트를 만든 것이 아닌 돈을 목적을 두고 프로젝트를 만들었고, 돈을 초점에 두다보니 수익성을 극대화 하기위해 웹사이트를 어떻게 수익에 최적화하게 둘지에 대한 고민은 다른 개발자보다 조금 많이 했던 것, SPA 웹사이트의 구글 애드센스 통과를 위해 시도했던 다양한 방법들 등 사람들에게 설명할 수 있는 흥미로운 저만의 스토리들이 프로젝트를 완성하고 생겼습니다
3. 물 웅덩이에 돌을 던져야할 때
'아무것도 하지않으면 아무일도 일어나지 않는다' 이런 생각을 가지고 하루하루를 살아가는 것 같습니다. 내가 공부하지 않으면 누구도 나를 대신해서 공부해주지도 않고, 내가 만들지 않으면 나를 대신해서 프로젝트를 누군가 만들어주지 않습니다. 누구도 나를 위해 돈을 대신 벌어다주지않습니다.
사회는 놀랍도록 나에게 관심이 없습니다. 그러니 스스로 돌을 던져 물결이 일렁이는 웅덩이를 만드셨으면 좋겠습니다. 하루가 매일같이 두근거리지는 않지만, 적어도 생산적인 무언가를 하고 있는 자신을 좀 더 사랑하게는 될 것입니다. 당연한 이야기로 무언가를 시도해야 시도하지 않았을때는 볼 수 없는 것들이 나에게 다가오게 됩니다.
'개발관련 > 마인드' 카테고리의 다른 글
내가 생각하는 웹 개발자의 장점 (0) | 2023.10.13 |
---|---|
웹사이트 처음부터 끝까지 스스로 만들 수 있을 때 | 풀스택 개발자 장점 (0) | 2023.09.04 |
1인 개발을 준비하고 있다면 알고가야 할 점 (0) | 2023.08.03 |
전공자 입장에서 본 비전공 개발자와의 차이? (1) | 2023.07.31 |
풀스택 개발자 - J커브로 코딩실력이 늘었던 내 이야기 (0) | 2023.07.20 |