문득 코딩웨일이라는 개발자 유튜브를 보다가 '일 잘 하는 개발자가 되려면 어떻게 해야 하는가'에 대해 생각해보게 되었다. 크게 두 가지의 인사이트를 얻었다. 하나는 내가 무의식적으로 생각하고 있던 부분이었고, 다른 하나는 아마 나를 비롯한 많은 신입 개발자들에게 있을 '임포스터 증후군'에 대한 위로이자 통찰이었다. 

  1. 회사에서 원하는 개발자는 개발만 잘 하는 개발자가 아니라, 개발로 문제를 해결하는 개발자이다. 
  2. 재능의 영역도 물론 있다. 하지만 소위 말하는 '잘 하는 개발자'가 되고 싶다는 거라면 이 부분은 잘 설정된 노력과 학습으로도 어느 정도 가능하다. 

✅ '나 자신'과 '회사' 모두에 대해 이해하는 개발자가 되자

이런 종류의 영상을 보면서 항상 느끼는 점이 있는데, 개발자도 결국 하나의 직업이며 이 직업의 수요나 채용은 사회와의 관계(수요와 공급) 속에서 결정된다는 거였다. 예전에 소마에서 우리 엑스퍼트님이 해주신 말씀과도 맥락이 통한다. 그때 당시에는 취업 관련 조언으로 이 말을 해 주셨는데, 지금 생각해 보면 이 인사이트는 커리어를 쌓아 나가는 과정에서도 계속 유효하다고 생각한다. (정확히는 기억나지 않지만 이런 맥락이었다.)

채용은 '나'와 '회사' 사이의 핏을 맞춰 나가는 과정이다. 그렇기에 이력서를 쓰거나 면접을 볼 때에도 내가 생각하는 '나 자신'이 있고, 내가 생각하는 '회사'가 무엇인지를 말해 주고, 이 둘이 어떻게 핏을 맞춰 나갈 수 있을지를 드러내야 한다. 왜냐하면 회사에서는 회사에서 성과를 낼 개발자를 채용하려는 것이므로, '이 개발자는 어떤 사람인지'와 '그래서 우리 회사에 맞을지'가 궁금한 것이겠다. 이 두 가지를 이력서나 면접에서 풀어내려면 내가 현재 갖고 있는 '개발자로서의 나 자신'에 대한 생각과, '내가 지원하려는 회사'에 대한 생각을 정리해 봐야 하겠다. 

 

그러니까 단순히 '나는 A라는 능력이 있다' 라는 개발자가 아니라, '나는 A라는 능력이 있고, 내가 이해하기로는 회사에서 B라는 업무를 하는데 여기서는 A라는 능력이 필요하다고 알고 있다. 그러므로 나는 회사에 적합한 인재이다' 라는 식으로 풀어나가는 것이 조금 더 맞다는 생각이었다. 

 

✅ 업무 처리 능력 != 개발 실력

그리고 잠시나마 실무를 찍먹해 본 입장에서도 위의 인사이트에 공감했다. '개발을 잘 한다'고 하면 보통 코드를 간결하거나 빠르게 만들거나, 코드를 가독성 있게 짜거나, 전공지식이 탄탄한 경우를 생각하곤 했다. 그런데 그게 항상 업무를 잘 하는 걸로 이어지지는 않는다. (물론 대체로 이런 사람들이 실무를 더 잘 하기는 하는데, 인과관계는 아니라는 뜻이다.)

 

1년차 미만 개발자인 내가 보기에 실무를 잘 하는 주니어 개발자의 특징을 정리해 보았다. (시니어 개발자의 영역은 아직은 내가 알 수 없는 영역이라 제외했다.)

  1. 요구사항이 무엇인지를 잘 파악한다. 
  2. 마감 기한을 잘 지킨다. 
  3. 커뮤니케이션을 잘 한다. 가령 여러 문제로 마감 기한이 늦어질 위기에 처하는 경우가 있을 수 있다. 하지만 이 경우 자신의 문제 상황을 잘 공유하고 피드백을 구해서 잘 적용한다. 

사실 이 정도가 생각난다. 그리고 생각보다 주니어 개발자를 평가할 때 순수한 코딩 실력으로만 이를 평가하지는 않을 것이다. 이전의 업무 경험에서는 나는 이런 피드백을 받았었다. 

  1. (두 사수분에게 모두 받았던 피드백) 모르는 것이나 어려움이 있을 때 꽁꽁 숨기지 말고, 시도해 본 다음에 안 되면 바로 질문해 줬으면 좋겠다. 그게 효율적이다. 
  2. (코드 리뷰 때 받은 피드백) 가독성이 좋게 코드를 짜는 것은 매우 중요하다. 내가 짠 코드를 후에 다른 개발자가 맡아서 작업할 수도 있기 때문이다. 
  3. (회식 때 받은 피드백) 문서화를 잘 하셔서 일이 어디까지 진행되고 있는지 알아보기가 편했다. 
  4. (마감 데드라인이 밀렸을 때 / 다른 분들이 예상하신 것보다 더 시간이 걸렸을 때) 일을 하면서 겪은 다른 어려움이 있는지 궁금하다. 작업을 방해한 다른 요소가 있는지 궁금하다. -> 책임을 물으시려는 의도가 아니었고 원인을 알아내서 같이 제거해 주려는 목적으로 여쭤보셨다. 

이러한 것들이 생각난다. 여기서 느낀 점은, 생각보다 주니어에게 대단한 무언가를 기대하지는 않는다는 거였다. 네 개의 피드백 모두 어떻게 보면 커뮤니케이션 영역과 관련이 깊었다. 입사 후 바로 조직에서 성과를 낼 수 있는 주니어면 정말 좋겠지만, 내가 생각하기에 나는 그런 '슈퍼 신입'은 아니었다. 그걸 인정하고 다시 피드백을 보니, 최소한 조직이 돌아가는 방식이나 협업 프로세스를 빨리 파악하고 여기에 적응하는 주니어를 선호하는 것은 분명해 보였다. 

 

그래서 나는 '슈퍼 신입'이 되려는 대신 전략을 바꿨다. 

 

✅ 임포스터 증후군 극복하기

많은 신입들이 가면 증후군이 있다고 한다. 가령 '나는 회사의 기대를 충족할 만큼 잘 하고 실력 있는 사람이 아닌데, 근데 그걸 어떻게 잘 숨겨서 뽑힌 것이다. 내 실제 실력을 알면 실망할 것이다'와 비슷한 생각이다. 나도 이 가면 증후군이 있었고, 여전히 있다. 

 

내가 실력이 좋아서 뽑힌 것은 아니라고 생각한다. 그저 괜찮아 보이는 몇 가지의 조건들이 충족되어서 서류를 통과했고, 면접관 입장에서는 크게 부정적인 방향으로 눈에 띄는 사람은 아니었기에 면접을 통과한 것이라고 생각한다. 절대 내가 잘 해서 뽑힌 게 아니라고 생각하고, 살면서 나는 이런 면에서 꽤 객관적이었던 만큼 실제로도 그럴 것이라고 생각한다. 

 

그래서 불안하냐고 하면 그건 맞는데, 그래도 앞으로 어떻게 할지가 더 중요하다는 답을 내렸다. 그 전에 '나는 어떤 개발자가 되고 싶은가'에 대한 답을 내려야겠다. 

  1. 문제를 기한 안에 해결하는 개발자
  2. 소통이 잘 되는 개발자

나는 1번 영역에 대해서 더 자신이 없다. 예상했던 것보다 일을 늦게 처리한 경험이 몇 번 있었기에, 오히려 1번 영역이 나의 콤플렉스에 가깝다. 그리고 지금까지 나는 문제를 기한 안에 해결하는 것 자체가 코딩을 잘 한다는 것이고, 나에게는 없는 재능이며, 순수한 재능의 영역이라고만 생각했었다. 

 

그런데 발전시킬 수도 있지 않을까?

 

앞서 언급한 코딩웨일 유튜브를 보고 그런 생각이 들었다. 모두가 천부적인 재능으로 개발자를 하는 게 아니라면 나도 가능하지 않을까? 

 

다만 깃털 같은 희망만을 품어서 될 일은 아니었다. 어떤 노력을 해서 이 능력을 좀 끌어올릴 수 있을지를 생각해 봤다. 내가 생각하기에는 나의 부족함을 빨리 맞닥뜨리는 연습이 필요한 것 같다. 가령 안 풀리는 부분이 있으면 빨리 공유해서 이에 대한 피드백을 받고, 새로운 방법을 모색하는 것이겠다. 

 

그동안은 도움을 요청한다는 것 자체가 내가 혼자 해결해야 할 일인데 남에게 도움을 요청한다는, 어찌 보면 의존적이라는 생각이 들어서 잘 요청하지 못했었다. 그런데 아이러니하게도 주니어 개발자의 경우, 혼자 시도한 다음에 풀리지 않는 일이라면 피드백을 요청하고 그 피드백을 잘 수용하려고 노력하는 과정을 통해 더 빨리 발전할 수 있겠다는 생각이 들었다. 

 

그러니까 이를 위해서는 나의 완벽주의를 좀 버려야 하겠다. 잘 하는 것처럼 보이고 싶고, 혼자 일을 완벽하게 해내고 싶은 마음을 잘 눌러야겠다. 열심히 시도해 보다가 모르면 현재의 나는 이걸 잘 모른다는 것을 겸허히 인정한 뒤 내가 할 수 있는 다른 방법, 피드백을 요청하는 것을 기꺼이 해야겠다. 

 

회사 입장에서 중요한 것은 '내가 문제를 느리더라도 처음부터 끝까지 혼자 해결하는 것'이 아니라 '내가 효율적으로 빠르게 문제를 해결하는 것'일 테니 말이다. 일하면서 나 자신뿐만 아니라 '동료'와 '회사'가 나와 같이 일하고 있다는 것을 잃지 말자. 

 

그리고 그렇게 나의 부족함을 계속해서 발견하고, 부끄럽고 민망하겠지만 이에 대한 조언이나 피드백을 구하고, 그걸 적용하려는 연습을 하다보면 분명 혼자 꽁꽁 싸매던 예전의 나보다는 더 빨리 발전할 수 있을 것이라는 확신이 든다. 

 

이번주의 나의 활동도 별다른 게 없다...! 블로그라면 꾸준히 써 왔었는데 그마저도 3일 동안은 끊겼다. 최종합격을 하고 내가 치열하게 살았는지를 문득 생각해 보았다. 그 질문에 대한 답은 잘 모르겠지만, 적어도 일은 꾸준히 손에 안 놓고 해왔던 것 같았다. 그런데 그게 좀 지쳤던 것도 같았다. 

 

'지금 못 쉬면 앞으로 몇 달간은 적응하느라 바쁜데 언제 쉴까?' 라는 생각이 스멀스멀 들어서, 3-4일동안 개발을 내려놓았었다. 아예 블로그를 안 썼다. 게임을 하고, 집에서 간단한 스쿼트 운동만 했다. 잠을 12시간씩은 잔 것 같다. 새로운 웹툰을 정주행하고, '스타듀밸리'라는 농장 키우기 게임도 4시간씩은 한 것 같다.

 

덕분에 밀려있는 일들을 외면하느라 좀 힘들었다.

 

그리고 이렇게 쉬어도 내 마음이 완전히 편하지는 않았다. 뭐랄까, 자유도 어느 정도의 제약이 있어야 자유인 것이지 한없이 풀어진 상태에서는 그저 폐인처럼 사는 것 같았다. 그래서 어제부터 다시 블로그를 조금씩 잡아 보았다. 이번 주에도 느긋이, 야금야금 IaC 설정 이슈를 잡고 있었다. 그러다 문득 진척이 너무 안 나는 것 같아서 오늘에서야 IaC를 조금 내려놓고 커스터마이징으로 설정을 해 보기로 했다. (설정은 손으로 했지만 이렇게 설정한 것을 terraform 데이터로 갖고 있어 볼 생각이다..!)

 

팀원들과도 프로젝트를 계속 살려보자는 얘기를 했는데, 정작 시간이 제일 많이 남았을 내가 이러고 있어서 조금 마음의 부채감도 든다. 그러나 겨우 조그맣게 남은 시간인데 어떡하랴. 일단은 이대로 가 보는 수밖에 없다. 어차피 서비스의 운영도 꾸준함이 중요하니 말이다. 

 

결론은 밍기적거리는 일상에 대해서 조금의 죄책감과 부채감이 들었지만, 갑자기 달리다가 멈춰선 순간에 오는 쉬어가는 타이밍이라는 것도 알기에 어쩔 수 없는 일상 같다. 다만 이 일상을 '폐인'이 아니라 '여유로움'이라고 정의할 수 있도록, 나에게 필요한 최소한의 것들은 놓지 말아야 하겠다. 어떤 것들이 있을지만 적어보자. 

 

  1. 운동. 요즘은 날이 추워서 러닝은 못 하고 하루 20개씩 3세트 스쿼트 운동으로 대신하고 있다. 
  2. 매일 블로그 쓰기. 어제부터 잡고 시작해봤다. 꼭 매일이어야 하는 건 아니지만, 일주일에 3-4개 정도는 써 보도록 하자. 
  3. 바깥생활. 나는 겨울이 되면 특히 더 몸이 가라앉는다. 그렇기에 광합성을 하듯이 햇빛을 매일 쐬 주자. 

이렇게 다음 한 주까지 또 잘 지내보자:)

 

4월부터 지금까지 오랜 시간이 흘렀다. 12월을 조금 넘기고 있는 시점이라 싱숭생숭할 때 마침 후기를 적으면 좋을 것 같아 글을 올려본다. 
 

✅ 개인적인 회고

소마에서 얻어갈 수 있는 것은 '사람'이라는 말을 많이 들었다. 나도 크게 다르지 않은데 다만 얻을 수 있는 것은 크게 두 가지가 있다고 생각한다. 첫 번째는 같은 팀원들과 멘토님들 및 오며가며 알고 지내던 연수생분들을 모두 포함한 열정 있는 좋은 사람들, 두 번째는 구르고 엎어지는 등 수많은 서사가 쌓인 완벽하지 않은 프로젝트이다. 
 
나는 인증을 하였냐면 그건 아니다. 창업을 하지도 않았고, 막바지에 취업에 성공한 케이스이다. 실제로도 우리 팀은 창업 or 취업 중에서는 취업을 목적으로 한 팀이었다. 소마를 수료하면서 참 행운이고 다행이었다고 생각했던 점들이 있고, '그럼에도 이건 더 잘 해볼걸'이라는 후회가 남는 점도 있다. 뿌듯함, 아쉬움, 시원섭섭함 등등 여러 감정이 교차하는 만큼 위에 언급한 두 가지에 대해서 적어보고자 한다. 
 

🍀 열정 있는 좋은 사람들 (Special Thanks)

우선 프로젝트를 끝까지 마쳤다는 점이 너무 다행이고 운이 좋았다고 생각했다. 이는 물론 나의 노력도 있지만 팀원들과 멘토님들이 없었더라면 매우 어렵지 않았을까 싶다. 개발 프로젝트를 하면서도 이렇게 긴 기간동안 프로젝트를 해본 적이 없었다. 그래서 열심히 하고자 하는, 의지를 가진 사람들과 팀을 함께하는 것이 얼마나 중요하고 또 어려운 일인지를 실감했다. 
 
먼저 우리 팀원들에게 고마움의 말을 전하고 싶다. 이런 긴 프로젝트에서 팀장을 맡아본 적은 처음이라 분명히 미숙한 점도 많았을 것이다. 그래도 잘 믿고 따라와 줘서 너무 고맙다. 덕분에 팀장은 단순히 일을 잘해야만 할 수 있는 것이 아니라, 팀원들과 좋은 관계를 유지하면서도 어떻게 하면 팀의 성과를 끌어올릴 수 있을지를 둘 다 고민해야 하는 영역임을 알 수 있었다. 그리고 사실 나는 일할 때 그렇게 분위기를 잘 풀어주는 성격은 아니라서, 아마 나와 같은 사람들 세 명이 모였다면 일은 어찌저찌 잘 해낼 수 있었겠으나 팀 분위기가 엄청 화기애애할 것 같지는 않았다. 회의도 하면서 중간중간 얘기를 조잘조잘 해 준 팀원들 덕분에 분위기가 더 좋았던 것 같아서 고맙다. 실제로 이런 분위기라 다른 연수생 분은 우리 팀을 '동물의 숲 주민들' 같다고 해주셨고, 우리 멘토님은 '어떻게 이렇게 무해한 사람들만 모으셨나요'라고도 해주셨다...ㅋㅋㅋㅋㅋㅋ 암튼 그만큼 화기애애하게 지냈던 기억이 많다. 
 
그 다음은 우리 멘토님들이다! 사실 4월에는 팀원 매칭 다음이 바로 멘토 매칭으로 이어져서 스케줄이 정말 빡셌다. 덕분에 파워 J인 나도 멘토 세 분을 각각 어떤 포지션으로 모실지에 대해서 청사진을 그리지는 못했고, 최대한 여러 분을 만나뵈면서 '이분이다..!' 라는 느낌이 드는 분을 모시려고 했다. 이름을 언급하면 특정이 될 수 있으니 멘토님들의 역할과 특징으로 언급해 보겠다.
 
헤드 멘토님은 항상 일관된 조언을 주셨고, 나는 이분 덕분에 개발자로써 구체적인 내 진로를 고민해볼 수 있었다. 취업만 하면 다가 아니구나, 완벽한 개발과 완벽한 커리어라는 것은 없구나, 일단 해보고 뭔가를 깨닫고 고치는 거구나, 라는 깨달음을 이분 덕분에 얻었고 여전히 체화 중이다. 곰돌이 멘토님은 AI와 백엔드 멘토님이셨는데 프론트 디버깅까지도 하시는 능력자셨다. 항상 우리가 어떤 문제를 말씀드려도(심지어 프론트 코드를 냅다 보여드린 적도 있다...) 뚝딱뚝딱 솔루션을 같이 찾아주셨던 점이 너무 감사했고, 스타트업의 CEO이신데도 항상 편안하게 우리를 대해 주셨다. 이분 덕분에 '개발자는 나중에 어떤 직급을 맡게 되어도 개발을 할 수 있어야 하고, 문제를 해결할 수 있어야 하겠구나'라는 깨달음을 얻었다. 마지막으로 프론트 멘토님은 항상 열정 있게 우리를 대해주시고, 회사 업무를 하면서 사이드 프로젝트도 하시면서 우리 멘토링도 해 주시는 시간의 마법사셨다. 프론트 지식을 따로 정리해서 멘토링도 해 주시고, vscode로 직접 라이브코딩을 하면서 문제에 대해 조언을 주셨어서 온오프라인에 관계 없이 뵐 때마다 든든했던 기억이 있다. 이분 덕분에 '나도 저렇게 취업한 이후에도 계속해서 뭔가를 해 나가는 열정 있는 개발자가 되고 싶고, 꾸준히 회고하고 지식을 공유하는 개발자가 되고 싶다'는 새로운 지향점을 얻었다. 
 
그 다음엔 소마에서 오며가며 뵈었던 모든 연수생들이다. 나는 그렇게 발이 넓은 편은 아니라 엄청 많은 분들과 알며 지내지는 못했다. 아마 6월까지 학교를 다니고 7월부터 센터를 많이 나와서 그렇게 된 부분도 컸던 것 같다. 그럼에도 몇 분들과는 오며가며 뵙고 종종 안부를 물으며 지냈다. 소마 센터에 꾸준히 나오시는 분들은 대부분 이 프로젝트에 열정이 있고, 개발이나 기획에도 열심히 참여하시는 분들이 많았다. 덕분에 잠시 열정을 잃어버렸을 때 다른 분들과도 얘기를 나누며 그 열정을 조금 더 받아갈 수 있었다. 오며가며 날 보신 분들이 계시다면 덕분에 열정 있고 재밌는 소마 생활을 할 수 있었어서 감사하다는 말씀을 전하고 싶다. 
 

🎓 완벽하지 않은 프로젝트

분명 소마를 붙고 활동을 시작하기 전에는 기깔나는 프로젝트를 만들어서 내 포트폴리오로 삼아야겠다는 취준생의 세속적인 생각이 있었다. 지금도 그런 생각이 아예 없다고는 못 하겠는데, 이 완벽하지 않은 나의 프로젝트를 만나면서 이 생각에 하나의 전환점이 생겼다. 완벽한 것은 앞으로도 없을 것이고, 문제를 마주하고 고치는 과정 자체를 즐겨야 내가 개발자로서 성취감 있고 재밌게 살아갈 수 있겠다는 생각이었다. 
 
이 프로젝트에 나름의 노력을 다했었다. 그리고 최고라고는 못 하겠지만 매 순간 나름대로 생각하는 최선이라는 선택을 했었다. 당연하게도 이 프로젝트는 완벽하지 않았다. 사용자를 거의 모으지 못했고, 최초에 기획했던 것을 전부 다 구현하지는 못했으며, 성능 이슈도 있다. 그럼에도 불구하고 나한테 가장 기억에 남는 프로젝트임은 확실하다. 모든 것을 결정하는 과정에 나름의 이유와 과정이 있었기 때문이다. 
 
가령 우리 프로젝트에는 동기화 기능이 있다. 사용자가 태블릿이나 스마트폰 등 여러 기기에서 앱을 동시에 사용할 때 동기화가 되도록 구현해 놓았다. 다만 '동기화'하면 생각나는 '웹소켓'이나 '롱 폴링(long polling)'을 쓰지는 않았다. 우리는 백그라운드 푸시 알림으로 동기화 기능을 구현했다. 이유는 명확했다. 최대한 빠르게 구현하기 위해서였다. 
 
당시 프로젝트의 사용자가 없었고, 중요한 것은 일단 빠르게 구현해서 배포를 하는 것이었다. 물론 이 방법을 선택했음에도 다른 문제들이 있어서 결과적으로 빠른 배포가 되지는 않았었다. 그리고 웹소켓과 롱 폴링이라는 방법도 완벽한 방법은 아니었다. 단지 문제를 해결하는 하나의 방법일 뿐이었다. 지금은 사용자가 없으니 가장 간단한 방법으로 동기화를 구현해 볼 뿐이었다. 당연히 이 방법도 단점이 있었다. 우선은 푸시 알림의 본 목적과 다른 목적으로 동기화를 위해 사용하므로 취지에 맞지 않는다는 문제가 있었고, 백그라운드 푸시 알람이 너무 빈번하게 오게 되면 FCM 서버 등의 다른 곳에 부하가 될 수도 있었다. 그러면 그 문제가 주는 불편함이 현재의 편리함보다 더 커졌을 때 구현 방법을 바꾸면 되는 일이었다. 
 
이런 류의 여러 문제들을 마주하면서 어려운 기술을 쓰는 게 중요한 게 아니고, 어떤 문제를 풀기 위해서 어떤 기술이나 접근을 썼고, 그걸 왜 사용하였는지가 더 중요함을 깨달았다. 지금까지 나는 내가 어렵고 복잡한 기술을 쓰지 못해서 개발을 잘 못 한다고 생각했고, 더 잘 하기 위해서는 그런 기술을 알아야만 한다고 생각했었다. 그런데 그건 아니었다. 오히려 내가 자신이 없었던 이유는 매 순간 내가 무엇을 문제라고 생각했고, 그래서 무엇을 해결책으로 생각했으며, 왜 그걸 선택했고 어떤 장단점이 있는지가 명확하지 않아서였다. 물론 이 과정조차 완벽하진 않은데, 그럼에도 그런 '나만의 생각'이 없어서 내가 더 확신이 없었던 것이라고 생각한다. 개발자도 결국은 문제를 해결하는 사람의 부분집합이었다. 그 당연한 사실을 소마를 통해 조금이나마 더 깨달을 수 있었다. 
 

➡️ What's next (Solopreneur)

1월부터는 어엿한 사회인 개발자가 되어 다른 곳에서 또 개발을 이어간다. 여기서 배운 것들을 잊지 않고, 현업에서 이 마음가짐을 갖고 문제를 해결하는 개발자가 되고 싶다. 물론 나는 주니어 개발자가 맞지만, 스스로를 주니어라고 한정짓지는 말아야 하겠다. 스스로에게 주어지는 일들은 잘 해내려고 노력하고 모르면 모르는 대로 고민하고 도움을 요청하는 것도 좋지만, '나는 주니어니까 이것까지만 하면 되겠지'라는 마음가짐을 경계하자. 
 
최근에 참여한 다른 특강에서 Solopreneur, 1인 창업가라는 단어를 들었는데 인상깊었다. 'AI가 개발자를 대체할까'와 비슷한 주제의 특강에서 내가 이런 질문을 했었고, 여기에 대한 강연자분의 답변이 '1인 창업가가 되어라'는 말이었다. 

주니어 개발자는 상대적으로 대체되기 쉽고, CTO나 테크 리드는 직접 문제를 정의하는 사람이라 상대적으로 대체되기 어려울 것 같다는 인상을 받았습니다. 어떻게 하면 주니어 개발자인 상황에서도 스스로 문제를 정의하는 개발자로써 기능할 수 있을까요? 일단 생각되는 방법은 주니어 개발자인 상황에서도 꾸준한 성찰과 회고를 통해 문제를 직접 정의하는 과정을 연습해보는 것인데, 혹시 또 다른 좋은 방법이 있을지 궁금합니다.

 
정말로 1인 창업을 하라는 말씀이었을 수도 있지만, 모두가 회사를 안 다닐 수는 없지 않을까? 나는 이 말을 이렇게 해석했다. '아직 스스로가 회사에서는 주니어 레벨이어도, 혼자 사이드 프로젝트를 하면서나, 주니어로 임하면서도 마치 창업을 하고 있다고 생각하면 그 깊이를 끝까지 달려볼 수 있다.' 스스로의 역할을 주니어 개발자라고 한정짓지 말고, 만약 사이드 프로젝트를 한다면 이 사이드 프로젝트에서만큼은 내가 기획자이고, 개발자이고, 동시에 마케터도 되는 것이다. 결국 중요한 것은 문제를 해결하는 것이니 말이다. 개발자의 본질도 결국은 문제 해결이라고 느꼈다. 
 
그러나 이 때문에 현업을 소홀히 하는 것 또한 있어서는 안 될 일이었다. 어떻게 하면 밸런스를 맞출 수 있을까? 멘토님께 여쭤봤더니 일단 한 회사에 몸담고 있는 상황에서는 그 조직에서 내가 맡은 일을 잘, 효율적으로 해내는 것이 목표가 되어야 한다고 하셨다. 그리고 그러한 일을 잘 하면서도 여유 시간이 남는다면, 그때 시도해 보는 것은 괜찮을 것 같다는 조언을 해주셨다. 그래서 일단은 이렇게 해보려고 한다. 아마 이렇게 호기롭게 말을 했어도 이후 몇 달간은 신입으로써 적응하는 데 시간을 많이 쓸 것 같고, 그 영역도 분명 내가 생각하는 것보다 훨씬 더 넓고 깊은 세계일 것이다. 그때 가서 내가 너무 무모했나 싶은 허탈한 마음의 자책성 회고가 올라올 수도 있겠다... 그래도 일단은 이 마음을 잊지 말자. 
 

요즘 회고가 뜸했던 것 같다. 찾아보니 지난 회고를 3주 전에 썼더라.... 반성하고 앞으로는 다시 꾸준히 써 보자.

 

오늘은 3주만에 회고를 쓰는 만큼 1주일 동안의 일을 KPT 회고로 점검하기보다는, 지난 3주간 어떤 일이 있었고 앞으로는 어떻게 하면 좋을지를 점검해 보면 좋을 것 같다. 

 

우선 3주 동안 많은 일이 있었다. 소마 최종발표가 끝났고, 확정은 안 됐지만 우선은 고도화 신청도 해 보고, 마지막 남은 최종 면접을 본 기업의 결과 발표를 기다리고 있다. 그러면서도 원서를 틈틈이 넣고 있다. Djangonaut도 물론 꾸준히 하고 있다. 지난 2주 동안은 소마 최종발표 이슈로 기여가 뜸했기에, 딱 이번주까지만 쉬어 보고 다음주부터는 Djangonaut 기여의 비중을 올려 봐야 하겠다. 

 

기분이 싱숭생숭하다. 소마가 끝나면 올해 6개월 간을 차지했던 큰 프로젝트가 막을 내리는 것이라서 정말 모든 것들이 끝나는 줄 알았는데, 그렇지는 않았기 때문이다. 프로젝트의 고도화 과정도 신청하게 되었고, 이때 쯤이면 뭔가 결정나 있겠지 싶었던 취준도 아직 결과 발표가 안 나왔다. 한 마디로 정해지지 않은 것들 투성이였다. 

 

그리고 약 한 달 동안은 최종발표를 향해 달려왔었는데, 길을 잃은 느낌도 든다. 이제는 무엇을 다시 목표로 잡아야 하지? 라는 물음이 든다. 번아웃인 것 같기도 하다. 번아웃 자가진단 리스트에서 본 물음인데, '내가 뭘 얼마나 했다고 지치지?' 라는 물음이 든다. 그런데 그 물음이 드는 것도 증상일 수 있다고 한다. 일단은 번아웃이 왔다고 가정하자. 

 

일단은 지금까지 소마를 하면서 등한시해 온 것들이 눈에 밟혔다. 대표적인 것이 운동과 나의 여유이다. 사실 바쁜 삶과 여유를 둘 다 얻을 순 없다... 그래도 운동은 같이 병행했어야 하는데, 라는 점에서 후회와 아쉬움이 남는다. 하지만 어쩌겠나. 일단 다시 해보는 수밖에 없다. 

 

이 글을 쓰는 이유는 회고 겸 동시에 싱숭생숭한 마음을 글로 풀어서 다음 일주일 동안은 내가 무엇을 중심으로 생활하면 좋을지 스스로 생각을 정리하기 위함이다. 

 

조금은 지친 상태이고, 그러나 지금 하고 있는 모든 것을 놓을 수는 없는 상태이다. 마치 무중단 배포처럼(비유가 맞나 모르겠다) 시스템을 계속 운행 중인 상태로 두되, 쿨다운을 하고 모드를 바꾸는 작업이 필요하다. 중간에 모든 걸 다 멈추면서 쉬어버리면 다시 잡을 수 없을 것 같았기 때문이다. 

 

그럼 모드를 바꾸려면 어떻게 해야 할까? 우선순위 재조정이 필요하다. 그 전까지는 소마 최종발표나 다른 취준이 '최우선'이었다면, 이제는 '우선'인 여러 과제들을 생각해 보자. 일단은 운동이 있을 것이고, 그동안 못 해왔던 게임 같은 여가생활도 조금은 넣어볼 수 있겠다(오랜만에 컴퓨터를 켜서 해 봤더니 재밌었다... 왜 내가 1년 전에 그 게임을 봉인시켰는지 바로 알 것 같았다). 그리고 취준을 하면서 챙기지 못했던 코테와 프로젝트의 세세한 부분들도 챙겨보자. 그리고 Djangonaut도 챙겨 보자. 

 

그리고 노션에 기록을 세워보자. 이렇게 12월을 잘 버텨보자..!

 

이번주의 나의 활동은 어땠는지를 점검하고 이를 KPT(keep-problem-try) 회고로 작성해 보자.

 

 뭘 했는가

프로젝트 관련해서는 11월 2일, 애플로그인을 드디어 드디어 해결했다!! 당시 회식에 갔다가 팀원들끼리 해결해야 할 것들이 있어서(광고 및 iOS 출시 관련) 다시 몸을 이끌고 선릉으로 향했었다. 되었으면 좋겠지만 설마 되려나? 싶었는데, 며칠 간 발목을 잡던 이슈도 해결되면서 ios 에뮬레이터에서 처음으로 메인 투두 화면을 볼 수 있었다. (캡처를 못 한게 한이다...)

 

Djangonaut 관련해서는 드디어 조금의 진전이 있었다! 우선 드디어 첫 기여를 했다. 팀 navigator 분의 도움을 정말 많이 받았다. 어떻게 이런 뉴비가 해결 가능한 이슈를 들고 오시는지 의문이다... 너무 감사하면서도, 나도 나중에 djangonaut이 끝나고도 계속 기여할 수 있도록 노하우를 익혀 두어야겠다는 생각을 했다. 

 

그래서 냅다 Djangonaut 팀 채널에 질문을 올려 보았는데, 감사하게도 답변을 해 주셨다..! 적절한 이슈를 찾기 위해서 알려주신 유튜브 영상의 노하우를 참고해 봐야겠다. 

 

그리고 같은 팀의 Djangonaut인 Tai와 pair programming도 했다. 두 번째 이슈(정확한 해결 방법인지 확신을 못 해서 아직 PR은 안 올렸다)를 해결하기 위한 온라인 미팅이었는데, 첫 페어프로그래밍을 모국어가 아닌 영어로 하려니 처음에 좀 긴장을 했다. 그런데 Tai도 나도 둘 다 영어가 모국어가 아니라서, 모르는 단어를 서로 잘 풀어가며 페어프로그래밍을 했었다..! 암튼 이번 주에 진전이 좀 많았다. 

2024/10/31 첫 페어프로그래밍!

 

취준 관련해서는 늘 그렇듯 조금씩 잔잔바리로 원서를 넣는 중이다. 안 좋은 걸 알지만 나는 아직은 FOMO가 원동력인 사람이기에, 원서를 안 넣어서라기보다는 완급 조절을 못 하는게 주로 문제가 되었었다. 그런데 이번주는 나름 잘 자제하고 몇 개만 원서를 넣은 것 같아 잘 절제해서 뿌듯하다. 아닌가?

완급조절 실패

 

그런데 문제는 아직 원서를 넣을 예정인 것들도 꽤 많다는 것이다... 어차피 이제 하반기 공채도 끝물이라 이 시즌이 지나가면 상반기를 기약해야 한다. 그래서 조오금만 더 욕심을 내 보고, 소마 발표도 잘 마치고, 12월에 짧게 여행도 가면 취준의 결과가 어떻게 되든 올해도 무사히, 나름 잘 마무리하게 될 것 같다. 

아직 남은 녀석들

 

그리고 어제(11월 2일) 멘토님께서 알려주신 오픈소스 커뮤니티 기여(정확한 명칭이 헷갈린다) 프로그램에 참여했었는데, 거기서 영문->한글로 번역도 하고, django에서 이슈를 발견하신 다른 개발자분도 만나고, 소마 내년 모집에 관심이 있으신 개발자분도 만나서 신기했다. 그리고 초면인 분들과 회식을 따라가게 되었는데 낯설고 신기하면서도 재밌었던 경험이었다. 

 

모임에 계신 대부분의 분들은 직장인 개발자 분들이셨다. 그분들을 보면서 나도 내 한 몸을 건사할 수 있는 직장인이 되고 조금의 여유를 갖게 된다면, 남게 될 나의 퇴근 후의 시간을 어떻게 쓸지 고민해보게 되었다. 성취감을 느끼면서도 미래의 나와 내 커리어에도 도움이 되고, 또 여러 사람들을 만나볼 수 있는 활동을 찾아보고 싶었다. 

 

Keep - 이번 주에 잘 해온 것

Djangonaut 이슈에 기여한 것과, 프로젝트에서 애플로그인을 끝낸 것을 잘 했다고 생각한다. 그리고 이번 주는 오늘의 가족 여행으로 일에 스며든 마음을 제법 많이 회복했다! 가서 거의 산행을 했는데, 역시 잡다한 생각을 날려주는 데는 운동과 걷기만한 게 없었다. LGTM인 여행이었고, 오랜만에 가족들과 하루를 온전히 보낸 것도 좋았다. 

 

 Problem - 문제점

프로젝트 중 내가 맡은 부분의 성취율이 좀 지지부진했다는 점이 마음에 들지는 않는다. 근데 또 막상 지금 와서 타파할 방법은 생각이 안 나는게, 며칠간 거의 억까 이슈(expo 설정 관련이라 알아차리기 매우 까다로웠던 이슈)에 잡혀 있었기 때문이다. 그래서 '그래도 틈틈이 방법을 찾아보았으니 이건 어쩔 수 없다'고 결론을 내렸다.

 

그리고 저번 주에 Try로 뽑았던 스위치를 키고 끄는 시간을 잘 정하는 것도 도움이 되었다. 이게 막 성취율을 엄청 올려 주지는 않았는데, 에너지의 누수는 좀 막아 주었다. 그리고 일주일에 반나절이나 하루 쯤은 일을 머릿속에서 잠시 내보내는 시간도 꼭 필요함을 이번 여행으로도 느낄 수 있었다. 

 

 Try - 시도할 것

놀랍게도... 없음! 내가 보기엔 나름 잘 하고 있다. 11월 3주차까지가 소마 프로젝트 + 취준 + 여행 계획 세우기로 무지무지 바쁠텐데, 그 때 동안만 멘탈을 잘 유지해 보자. 

 

이번주의 나의 활동은 어땠는지를 점검하고 이를 KPT(keep-problem-try) 회고로 작성해 보자. 

 

뭘 했는가

애플 소셜로그인에서 막히던 것을 겨우겨우 해결한 한 주였다. 프로젝트 기준으로는 내가 한 게 애플 소셜로그인만 있었다. 생각해 보면 이슈가 참 많았는데 말이다. 

 

물론 가장 중요한 이슈는 애플 소셜로그인이 맞았다. 그리고 생각해 보면 프로젝트 외에서도 다양한 곳에서 interrupt가 들어왔어서 프로젝트를 잘 하지 못한 것인가도 싶었다. 실제로 방해되는 작업들은 아니고 모두 중요한 작업들이지만(Djangonaut과 취준 활동), 순수 프로젝트 입장으로만 보자면 interrupt가 맞았다. 

 

Keep - 이번 주에 잘 해온 것

모든 일을 100% 쳐내지는 못했지만, 우선순위 기반으로 다른 것들이 조금 밀리더라도 가장 중요한 것들에만 집중했다. 프로젝트 면에서는 가장 중요한 애플로그인만 잡고 있었고, 취준 면에서는 팔랑귀 때문에 여러 채용 공고에 솔깃하더라도 딱 두 개만 집중해서 원서를 썼다. (하나는 제출했고, 나머지 하나는 아직 쓰는 중이다.)

 

프로젝트와 취준에 비해 약간 우선순위가 밀린 것이 Djangonaut이다. 오픈 소스 컨트리뷰트를 하고 싶은데, 주에 겨우 최소 시간인 4시간만 할애하는 것 같아서 죄책감이 든다. 어떻게 하면 좋을까? (절대 그만두고 싶지는 않고, 균형 잡기가 필요한데 어떻게 할 수 있을지를 고민하게 되었다.) 즉 잘한 것은 어느 하나에만 몰빵하지 않고 나름 균형을 추구한 것, 그리고 각각의 영역 중에서도 가장 중요한 것에만 선택과 집중을 한 것 같다. 

 

Problem - 문제점

문제점은 프로젝트와 Djangonaut에만 있다. 취준은 선택과 집중을 하는 현 상태가 맞다고 느끼고, 아예 원서를 안 넣는 상황도, 너무 많이 넣어서 허덕이는 상황도 아니었기 때문에 만족 상태에 있다고 보았다. 그렇다면 취준에 그렇게 많은 시간을 쓴 것 같지는 않은데, 왜 남은 시간들이 프로젝트와 Djangonaut에 온전히 쓰일 수 없었는가에 대해 생각해봐야 하겠다. 

 

지금 현 상황은 고3 입시 상황과 비슷하다. 취준이 입시는 아니지만, 나는 종종 묘한 데자뷰를 느낀다. 항상 일 모드에 대한 스위치가 켜져 있고, 소마 센터에서 집까지 왔다갔다 하는 것도 하루에 2시간 이상이 걸리며, 집에서조차 잘 회복하고 있다는 생각은 잘 들지 않았다. (관심사가 제한되고, 뭔가 충분히 리프레시되는 느낌이 잘 없었다.) 

 

그리고 이러한 상황에서는 일을 추가적으로 늘리는 것보다 범위를 조금 줄여서라도 '어떻게 성취율을 높일 수 있을까'를 고민하는 것이 맞다고 보았다. 일을 늘린다고 완성하는 일이 그만큼 비례해서 늘지는 않기 때문이다.

 

시간을 효율적으로 쓰고 있지 않고, 그럭저럭 큰 문제는 없지만 잘 회복하고 있지는 않으며, 현재 목표로 한 것들에 비해 성취율은 다소 낮다는 것이 현재 상황의 문제점인 것 같다. 

 

Try - 시도할 것

Problem을 참고해서 시도할 점을 정해보자. 시간을 효율적으로 써야 하지만, 헤르미온느의 시간표처럼 빈 시간 없이 빡빡한 시간표를 쓰면 안 되겠다. 하루에 필수적으로 쉬는 시간과 잠 자는 시간을 정해두자. 그리고 그 나머지 시간에서만 효율을 찾아보자. 아무래도 10시 넘어서는 본격적으로 쉬고, 오전 8시에는 일어나는 삶이 제일 바람직하겠다. 그리고 10시에 쉬려면 적어도 8시 반에는 센터에서 집으로 돌아와야 하겠다. 

 

이렇게 된다면 쉬는 시간에는 일 스위치를 꺼서 회복에 집중할 수 있고, 나머지 시간에서는 조금 더 추진력을 얻어볼 수 있겠다. 나의 원인은 이도 저도 아닌 상태에서 에너지를 뺏겼던 것이었기 때문이다. 마치 고3 때 시험이 얼마 남지 않았어도 자기들의 멘탈 회복을 위해 짧게라도 코노를 가던 친구들처럼, 나도 매일 조금씩은 그런 시간을 내야 하겠다. 

 

그리고 프로젝트의 범위도 너무 무리해서 잡지 말자. 우선순위를 정하고, 11월 최종발표를 위해서 해야 할 최소한의 것을 정해보자. 그리고 그것을 낱낱이 주간별로 쪼개보자. 당연히 해야 할 것은 많은데, 어차피 11월 이후에도 어떻게든 이 프로젝트는 계속 이어나갈 것이기 때문에 굳이 완성을 11월 전까지 해야 할 필요는 없겠다. 그래야 프로젝트를 하면서 취준과 Djangonaut도 병행할 수 있겠다. 

 

Djangonaut의 경우도 마찬가지다. 프로젝트와 취준이 아무리 중요해도, 나는 여기에 컨트리뷰터로 참여하는 만큼 최소한의 시간은 내야 할 의무가 있다. 오늘부터 매일 한 시간씩 Djangonaut에 할당하자. 가령 7시에서 8시는 누가 뭐래도 Djangonaut에 기여하는 시간으로 빼 두자. 그래야 나머지 취준과 프로젝트에 우선순위를 아예 뺏기지 않을 것 같다. 

 

+ Recent posts