그런 개발자로 괜찮은가 - '환경' 편
(필자의 과거 경험을 미루어) 개발자로서 회사에서 일을 하다 보면 가끔 CRUD(Create, Read, Update, Delete) API를 찍어내는 기계(?)가 되는 느낌을 받을 때가 있다. 일정은 촉박한데 사람은 부족하고, 기술 부채가 복리로 늘어나는 게 눈에 훤히 보이지만 개선할 시간이나 여유조차 없어 자신도 모르게 점점 “돌아가게만” 개발하는 상황들. 기술적인 고민을 할 시간은 점점 없어지고, 코드를 설계하는 측면이나 테스트 코드, 책임과 관심 같은 생각들은 하지 못한 채 편의만 추구하며 코드를 작성한다. 그러다 이직을 해야겠다 마음먹고 이력서를 작성할 때나 연말 평가를 위해 한 해 무엇을 했는지 돌아보면 회사일은 불철주야 정말 열심히 했지만 회사를 벗어나 개발자로써 본인 스스로를 위한 건 회사일 대비 아주 극소수에 불과하는 삶이 계속된다.
개인이 스스로 진행하는 프리랜서나 사업가를 제외하고 선 대부분 회사라는 집단에 소속되어 살아간다. 그러한 회사의 가장 중요한 목표는 돈을 벌기 위한 사업을 하는 것이다. 회사에서는 직원들에게 어느 정도의 처우는 보장해 줄 순 있지만 개개인의 인생을 책임져주진 않는 게 현실이다. 그걸 알면서도 지금 다니고 있는 회사에서 성장을 하지 못한다며 이직을 준비하거나 어쩌면 나를 위한 게 아닌 회사를 위한 일만 해오고 있는 건 아닌가 스스로를 되돌아보게 된다.
개발자로써 지금의 삶이 너무 행복하고 만족스럽다면 이 글을 읽지 않아도 좋다. (어쩌면 우물 안 개구리로 살아가고 있는 건 아닌지 묻고 싶다. 물론 그 우물마저 따뜻하다면 패스하는 것으로.) 오랜만에 쓰는 이 글에서는 회사라는 의존을 벗어나 스스로 우뚝 설수 있는 ‘환경을 바꾸는 이야기’를 하려 한다. 몸짱이 되기 위해 헬스장을 가고 그것도 모자라 비싼 PT를 끊는다거나, 허리가 좋지 않아 스탠딩 책상으로 바꾸는 것처럼 개발자로 살아가면서 내가 제어할 수 있는 ‘환경’을 바꾸면서 앞서 이야기 한 ‘본인 스스로를 위해 성장하는 시간’을 만들었으면 하는 바람이다.
시간관리
하루를 시작하면 세상 모든 사람들에게 공평하게 주어지는 게 바로 시간이다. 누구나 24시간을 쓰는데 어떻게 쓰는지는 본인이 선택하기에 달린 문제다. 밤늦게까지 컴퓨터 앞에 앉아 공부를 하고 출근이 늦는답시고 아침 늦게 일어나는 선택, 퇴근하고 집에 오면 피곤해서 아무것도 하기 싫어 TV나 SNS를 하다 잠에 드는 선택, 회사에서 하는 개발은 어느 정도 할 줄 아는 수준까지 되었으니 굳이 다른 개발 공부는 하지 않아도 된다는 선택. 여기서 중요한 건 선택이 다를 뿐이지 잘못된 선택은 없다. 선택에 대해 책임을 질수 있다면 그것으로 OK. 하지만 시간이 부족하다는 핑계를 대고 있다면 시간관리부터 잘 할 필요가 분명히 있다.
필자는 하고 싶은 게 너무나 많다. 그와 비슷한 양으로 꼭 해야 하는 것도 많다. 그렇기에 매월 1일이 되면 메모장에 한 달의 청사진을 그려본다. 정확하게 그릴 수 있는 것도 있지만 추상적으로 적는 경우도 많다. 그러고는 매주 일요일 저녁이 되면 다음 일주일에 대해 좀 더 자세한 계획을 작성하고, 매일 저녁이 되면 내일의 하루를 미리 정리해 본다. 시간 단위로 작성하는 경우도 있고 계획 중에 우선순위를 점검하며 빠짐없이 시간을 알차게 보내려고 애를 쓰는 연습 중이다.
MBTI의 맨 마지막 문자가 대문자 J라서 그런지 계획하는 걸 선호하지만 막상 계획대로 시간을 보내다 보면 그래도 시간이 부족한 경우가 많다. 제한된 시간 내에서 최대한 시간을 확보해 보려 여러 가지 노력을 해봤다. 저녁 늦게까지 책상 앞에 앉아서 시간을 확보하기도 해봤지만 늦게 자게 되니 다음날의 체력에 지장을 줄 수밖에 없던 구조였다. 반대로 아침에 일찍 일어나는 건 워낙에 아침잠이 많은 체질이라 너무나도 힘들었지만 시간을 확보할 수 있다는 희망 아래 ‘미라클 모닝’을 시작하게 되었다.
미라클 모닝은 그저 아침 일찍 새벽에 일어나기만 하는 것으로 정의하기엔 다소 무리가 있다. 정확히는 아침에 시간을 확보해서 하고자 하는 무언가를 한다는 것에 목표가 있다고 생각한다. 5시에 일어나고 출근을 9시에 한다면 약 4시간이라는 시간을 확보가 가능하다. (물론 최소 5~6시간을 자기 위해 일찍 잠에 들려는 노력도 포함하여…) 확보된 시간 동안에는 개발자로 살아가며 부족할 수밖에 없는 인문학적 소양을 기르기 위해 기술서적이 아닌 책이나 신문 기사를 읽기도 하고, 직업의 특성상 오랫동안 책상에 앉아 있어야만 하기에 점점 떨어져가는 체력을 올리려 헬스나 조깅을 하기도 한다. 아주 가끔 못다 한 회사일을 하는 경우도 있고 평소에 궁금해하던 기술을 살펴보는데 시간을 사용하기도 한다. 그러면서 슬쩍 창문 밖을 보면 아직 해가 뜨지 않았는데도 출근버스를 타기 위해 졸린 눈 비벼가며 기다리는 사람들, 몇 시에 일어나셨는지 거리를 깨끗이 청소하고 계시는 청소 미화원분들, 나이가 꽤 있어 보이시는 분들인데도 새벽같이 운동하는 모습을 보고 열심히 살자며 하루를 다짐하기도 한다. 사람마다 다를 순 있다고 생각되지만 시간을 확보하고 하루를 시작할 때 동기부여를 얻는다는 점에서 미라클 모닝은 필자에게 꽤 많은 변화를 주고 있다.
커뮤니티와 스터디
꼭 회사를 다니고 있는 사람뿐만 아니라 취업을 준비하는 분들에게도 추천하는 것 중 하나가 바로 커뮤니티다. 이미 꽤 여러 가지 온라인/오프라인 커뮤니티들이 많아 조금만 노력하면 쉽게 찾아볼 수 있어 그러한 환경에 본인을 위치 시키는 것만으로도 꽤 많은 긍정적인 변화를 얻을 수 있다고 생각한다. 여기서 말하는 커뮤니티는 특정 기술에 대해 이야기하는 모임이나 컨퍼런스, 세미나 같은 것을 의미한다. 같은 목적을 가지고 있는 사람들끼리 모여있다 보니 모르고 있던 부분이나 알았는데 잘못 알고 있던 기술적 지식들에 대해 대해 반강제적으로(?) 접할 수 있고, 기회가 된다면 그러한 환경에서 발표를 한다거나 토론을 하며 새로운 인적 네트워크를 만들어 갈 수도 있다. 아래는 필자가 알고 있는 커뮤니티의 일부이다. 이 외에도 찾아보면 무궁무진하다.
- https://www.inflearn.com/community/studies
- https://okky.kr/community
- https://www.facebook.com/groups/springkorea
- https://dev-event.vercel.app/events
다 그런 건 아니지만 회사에서 함께 일하는 동료들이 자신이 관심 있어 하는 기술에 관심이 부족할 수 있다. 앞서 이야기 한 것처럼 회사는 개발 공부를 하는 학원이 아니기에 각자의 관심사가 다른 건 잘못되거나 이상한 게 전혀 아니다. 그렇기에 회사에서는 회사원으로써 주어진 임무에 최선을 다하고 회사 밖에서 찾아보는 것도 방법이 된다. 커뮤니티를 통해 관심이 있던 기술에 대해 여러 가지 방안으로 활동을 할 수도 있고 마음 맞는 사람들끼리 스터디를 할 수도 있다. 회사 안에서 스터디를 하는 것보다 회사 밖에서 스터디를 하게 되면 아무래도 회사의 이름을 걸고 하는 것 같은 괜한 압박이 스터디를 더 긴장감 있게 도와주기도 하고 그러한 스터디가 없다면 직접 만들어 사람을 모아서 스터디를 운영하는 방법도 있다. 몇 달 전에 사람들을 모집하여 자바/백엔드 관련된 스터디를 시작했는데 벌써 2회차가 진행 중이다. 이름하여 “JSON 상하차 스터디”. 생각보다 많은 배움을 얻기도 하고 회사별로 다르게 사용하는 기술 컨벤션에 대해 공유를 받을 수 있는 점이 가장 좋은 것 같다. (직접 사람들을 모집하고 운영하는 괜한 책임감에 더 잘 해보려는 환경이 만들어진 건 덤~)
개발 슈퍼파워 3종 세트 : 토이 프로젝트 + 기술 블로그 + 이력서
다른 글에서 여러 번 이야기했지만 그럼에도 불구하고 이번 글의 주제인 ‘환경’을 바꾸는 것에 가장 좋은 무기인 슈퍼파워 3종 세트를 이야기하지 않을 수가 없다. 인터넷 강의나 책을 통해 개발 지식을 배울 때는 다 알고 다 할 것 같지만 막상 처음부터 무언가를 만들어 보려면 또 새로운 것이 기술인 것 같다. 작게라도 무언가를 만들어 본다는 그 자체가 엄청난 ‘환경’의 변화라 생각을 해본다. 그렇게 무언가를 만들어 보면서 어디서도 얻지 못한 본인만의 소중한 경험을 얻을 수 있고, 이러한 내용들을 블로그에 적으며 무언가를 구현하려 했거나 문제를 해결하는 과정을 자세히 적다 보면 정확한 내용을 적는 과정 속에서 강제로 지식을 학습하게 되는 효과를 얻을 수 있다. 이렇게 기술 블로그라는 강제로 공부하게 되는 장치를 마련해 두고 하나둘씩 본인만의 기술 성장 스토리를 만들어 가는 것도 본인에게 적지 않은 ‘환경’의 변화이기 때문이다. 마지막으로 스스로를 잘 표현하는 거울과도 같은 이력서를 주기적으로 업데이트를 해 간다면 그야말로 성장할 수 있는 환경을 구축했으니 실행에 옮기기만 하면 되지 않을까 하는 생각을 해본다.
- 토이 프로젝트 : 작은 것부터 살을 붙여나간다는 생각으로 시작
- 기술 블로그 : 정답형 블로그(A는 B)가 아니라 본인의 개발 이야기가 담긴 내용으로 구성
- 이력서 : 3단계(상황-과정-결과) 기준으로 최대한 자세히, 그러나 최대한 요약하는 게 중요
마치며
나에게 딱 맞는 회사를 고르기란 꽤 어려운 부분이 있다. 우선 면접에 합격을 해야 하고 그 뒤에 함께 하는 동료들과의 케미 등 여러 가지 부분들이 잘 맞아야 하는데 사실 이런 부분은 본인이 바꾸지 못하는, 이미 결정된 부분에 있어 선택할 수밖에 없는 영역인 것 같다. 물론, 물 한 방울 없는 사막에 가도 화초를 심어 꽃을 피울 수 있는 사람이 된다면 다른 이야기가 될 수 있겠지만 일반적으로 환경에 적응을 하며 살아가곤 한다.
취업을 하여 개발자로 살아가고 있던지 취업을 하기 전이라면 내가 컨트롤할 수 있는 영역에서 환경부터 바꿔보는 건 어떨까? 어질러진 책상에서 공부를 하는 것보다 깔끔하고 정돈된 책상에서 공부하는 게 더 집중도 잘 되는 것처럼 변화된 환경 속에 자신을 위치시키는 것 자체가 꽤 유의미하다고 생각을 해본다. 잘 생각해 보면 대부분 본인 스스로에게 답이 있다. 좀 더 괜찮은 개발자가 되기 위해 다른 것에 탓하지 말고 우선 환경부터 바꿔보자.
Buy me a coffee