Djangonaut에 합격하고 후기를 남겨본다. 

 

Djangonaut은 장고(Django)의 오픈소스 기여자를 만드는 프로그램이다. 이전부터 진행되어 왔던 프로그램인데, 이번에 좋은 기회로 이 프로그램을 알게 되어서 냉큼 지원했다. 

 

사실 합격 메일은 10월 1일에 왔는데 후기를 적는 걸 잊고 있다가 지금이라도 적어본다. 

 

요런 exciting한 메일이 온다. 같이 지원했던 팀원들은 아쉽게도 붙지 못했는데, 지원자가 제법 많았던 것 같았다. 이번 활동에 열심히 임해보고, 잘 기여해서 다음 지원 때의 팁도 잘 공유해야겠다. 

 

2024 토스 next developer 중 파이썬 개발자 포지션에 지원했었다. 내가 쭉 사용해 왔던 언어가 파이썬이기도 하고, 짧은 시간이지만 프로젝트나 직무에 사용하면서 파이썬이라는 언어 자체에 정이 들기도 했다. 또한 '언어는 결국 도구이고, 중요한 것은 문제를 해결하는 것'이라는 토스 사람들의 마인드가 멋지다고 생각해서 해당 팀에서 같이 일하고 싶은 마음도 컸다. 

 

그리고 어제(10월 5일) 2시경 과제 메일을 받았다. 

 

자세한 내용은 보안서약서 때문에 밝힐 수 없지만, 현업에서의 많은 고민과 생각이 담겨있는 과제라는 생각이 들었다. 과제의 맥락을 모르는 사람도 readme 파일을 읽으면 문제를 이해할 수 있게끔 가이드를 적어주셨다. 새삼 나의 코드는 이렇게 이해하기 쉬운지 돌아보게 되었고, 코드를 간결하게 작성하거나, 변수명을 상세히 작성하거나, 문서화를 잘 하는 것도 요즘은 개발자의 필수 스킬이라는 생각이 들었다. 

 

여튼 6시간 동안 작업한 뒤 최고의 결과는 아니지만 나름의 노력이 담긴 결과물을 제출했다. 비록 결과는 아직 아무도 모르는 것이긴 하지만, 테스트 케이스에서 많이 틀려서 면접까지는 갈 수 없겠다는 생각이 제일 먼저 들었다. 그리고 아직 더 발전이 필요하겠다는 생각도 많이 들었다. 

 

그래서 속상한 마음 반, 더 발전해야겠다는 마음 반을 담아 앞으로 어떻게 하면 좋을지에 대한 회고를 같이 작성해보려고 한다. 

 

Q1. 나는 왜, 무엇이 부족하다고 느꼈을까?

A1. 내 스스로 문제해결 과정에서 미흡함을 많이 느꼈다. 앞서 언급한 것처럼 현업에서의 고민이 많이 담긴 과제였기 때문에 단순 연산 문제처럼 명확한 정답이 있는 문제들은 아니었다고 느꼈다. 실제로 앞으로 내가 마주하게 될 코드들도 그럴 것이 분명했다. 그럴수록 '정확한 답'을 찾는 것보다 나는 무엇이 문제라고 생각하고, 왜 그렇게 생각했고, 그래서 어떤 해결방법들을 생각했는지를 한 걸음 떨어져서 생각하고 실천에 옮겨볼 수 있어야 하겠다. 막상 복잡한 현업의 문제 상황이 주어지니 문제 정의를 체계적으로 하기보다는 '어떻게 하면 테스트 케이스를 통과시키지?'에 집중해서 하는 모습을 발견했다. 그러니까, 문제를 해결하는 와중에도 '나는 현재 원인을 A라고 생각해서 B라는 방법으로 접근하고 있다'가 스스로도 좀 명확하지 않은 것 같았다. 

 

Q2. 그러면 어떻게 해야 할까? 

A2. 이 문제는 꾸준한 개발과 프로젝트(코딩)가 답이라고 생각했다. 그런데 그냥 아무 생각 없이 코딩만 하면 되는 건 아니고, 계속해서 '왜'를 질문하는 연습을 많이 해야겠다. 왜 이 기술을 썼는지, 왜 이 방법을 시도했는지에 대해서 설령 더 나은 방법이 있을지언정 내가 고민하고 노력한 흔적이 있는 것이 중요하다는 생각이 들었다. 이렇게 하다 보면 지금처럼 현업의 문제 상황이 과제로 주어졌을 때도 습관처럼 '왜'를 고민하면서 문제에 접근할 수 있을 것이고, 그러면 설령 지금과 비슷하게 테스트 케이스를 다 풀지 못하더라도 스스로가 조금 더 납득할 수 있는 결과로 이어질 것이다. 결국 더 실력이 좋은 개발자가 되려면 코딩을 많이 하는 수밖에 없구나 싶다. 취준 때문에 소홀해진 프로젝트에 다시 집중을 해보자..!

 

Q3. 너무 스스로를 비판만 한 것 같다. 그래도 잘 해나가고 있는 것이 있다면 어떤 것일까?

A3. 뭐가 문제였던 것인지를 안 것, 그리고 그걸 조금씩 고쳐나가고 있다는 점에서 방향은 잘 설정한 것 같다. 소마를 시작하기 전에는 개발을 잘 하는 사람들에 대해 막연한 오해나 환상이 있었다. 완벽한 답안이 있을 것이라고 생각했고, 문제를 빠르고 완벽하게 푸는 것이 개발을 잘 하는 것이라고 여겼고, 나는 그에 비하면 늘 많이 부족하다고 생각했었다(물론 계속 발전이 필요하긴 하다...!!). 그런데 팀원들과 소마를 하면서 정작 얻은 것은 완벽한 프로젝트가 아니라 완벽하지 않지만 동작은 하는, 고생의 서사가 담긴 프로젝트였다. 막상 현업에 종사하게 되어도 이는 변하지 않을 것이라는 생각이 들었고, 내가 잘못 생각하고 있었던 것을 소마에서 조금이나마 깨닫고 가는 것 같아서 다행이라는 생각이 많이 들었다. 

 

Q4. 그럼 앞으로 뭘 해야 할까?

A4. 멘토님이 늘 말씀하시는 것과 같다. 코딩과 꾸준한 회고, 그리고 멘탈을 위한 운동이다. 그런데 이렇게만 적으면 파워 J인 나의 적성에 차지 않는다. 코딩과 회고와 운동을 얼마나 해야 잘 한 것인지에 대해서 기준을 세워야 제대로 지킬 수 있다. 코딩은 매주 TIL을 최소 4개 이상 쓰는 것, 회고는 매주나 격주에 한 번씩, 운동은 최소 일주일에 세 번씩(20분 러닝이나 홈트 15분도 인정해 주자...) 하기로 결정했다. 

 

이렇게 다음 시즌까지 잘 버텨보자!

 

'회고' 카테고리의 다른 글

데브시스터즈 지원 후기  (0) 2024.10.10
Djangonaut 합격 후기  (1) 2024.10.07
20241004 TIL: day off 대신 쓰는 중간 회고  (0) 2024.10.04
20240901 TIL: day off 대신 쓰는 중간 회고  (3) 2024.09.01
20240830 회고  (4) 2024.08.30

 오늘 배운 것

오늘은 의도치 않게 쉬는 날이 되어버렸다. 사실 OneStep 개발은 좀 쉬더라도 내일 있을 토스 next 과제전형에 대비해서 뭐라도 좀 해 놓으려고 했다(내가 알고 있는 django 지식 정리를 해 보려고 했다). 그러나 오늘 점심에 분당으로 먼 길을 떠나 면접을 간 이후로 왜인지 모르게 의욕이나 기운이 잘 안 났고, 이 상태로 뭔가를 하다가 스트레스를 더 받을 것 같다는 생각이 들어 오늘은 좀 쉬어가기로 했다. 

 

사실 오늘 쉬지 않으면 주말에 제법 빡센 일정을 소화해야 하기에 조금 쉬어가야 할 것 같았다. 

 

그래도 기록이 끊기는 건 제법 아쉬운 일인지라 뭘 쓰면 좋을까 하다가, 문득 9월 1일에 중간 회고를 한 지로 한 달이 벌써 지났다는 걸 알았다. 그때는 어떤 마음이었을까 하고 보니 지금과 큰 차이는 없다가도, 그때가 좀 더 취준에 대해서 막연한 불안감은 많이 느꼈었던 것 같다. 왜냐하면 9월은 이제 막 공고가 열리는 시점이었기 때문이다. 

 

그리고 나름 반성되는 점도 생각났다. 분명 그때 회고에 '주 15시간 이상은 취준에 쓰지 않기'라고 되어 있었는데... 지금 하는 걸 보면 취준 반 프로젝트 절반인 것 같아서 팀원들에게 미안한 마음이 들었다. 9월에 폭풍 지원을 하고 난 뒤로 채용 절차의 무서움을 느껴서 지금은 지원 소강 상태이긴 하지만, 그래도 벌여놓은 일이 있어서 수습은 해야 할 것 같다. 그러면서도 내 스스로는 분명 소마 프로젝트에 생각보다 시간을 덜 썼다고 여겼기에 이 부분에 대해서도 팀원들과 얘기해봐야 할 것 같다.

 

그리고 생각보다 채용 프로세스가 길고 복잡한 기업들이 많은 것 같았다. 막상 지원할 땐 어떻게든 되겠지, 붙기만 한다면 뭐든 할 수 있겠다는 마인드였지만 인적성 검사, 코딩테스트, 1차 면접, 컬처핏 면접 등을 겪어보면 이 모든 걸 뚫어야 하나의 기업에 간신히 합격한다는 생각도 많이 든다. 이래서 다른 분들도 지원은 신중하게 해야 한다는 조언을 주셨구나 싶다. 

 

그래도 나는 후회가 덜한 소마 생활을 하고 싶다... '후회가 덜하다'의 기준은 무엇일까? 11월 말까지 나는 무엇을 해야 그래도 나름 내가 이 과정을 잘 마쳤다고 여길까. 답은 지금 내가 상대적으로 소홀해진 소마 생활이었다. 

 

핵심 기능은 개발된 상황이라 할 것이 많지는 않은 것 같다가도, 이제부터가 고도화의 시작이라는 생각이 많이 든다. 세세한 부분을 고치고 발전시키는 일은 얼핏 보면 긴급하지 않아 덜 중요하게 보이다가도, 막상 프로젝트를 하면서 내가 그런 식으로 발전시킨 부분이 많이 없었다는 점에서 항상 부족함을 느껴 왔었다. 지금이 그걸 보완할 기회였던 것이다. 

 

그러면 나는 이제 어떻게 해야 할까? 이제 이걸 알았으니 보완을 해 보고 싶다. 어떻게 하면 지금 내가 벌인 일들을 놓치지 않고 수습하면서도 프로젝트에도 적절히 시간을 쏟을 수 있을까? 다 하려는 것이 욕심일지도 모르겠다. 하지만 욕심을 좀 부려본다면 어떻게 해야 할지 고민이 많다. 어쩌면 멘토님이 말씀하셨던 것처럼 답은 꾸준한 운동과 회고에 있을지도 모르겠다. 우선은 내가 해볼 수 있는 일들을 하나씩 처리해 보자. 

 

 오늘 배운 것

오늘은 별도로 개발 일을 하지는 않았다. 대신 앞으로 어떻게 하면 좋을지를 생각해 보았다. 

 

우선 앞으로의 취준과 프로젝트의 경우, 멘토링을 하면서 생각해 보니 일단 프로젝트를 최대한 고도화 시키고, 나중에 소마가 끝나고 나서 해당 프로젝트를 스프링으로 옮겨도 좋겠다고 생각했다. 다행히 내가 소마 끝나기 전에 꼭 취업을 해야 하는 상황은 아니기 때문에, 우선은 스프링 사이드 프로젝트를 잠시 중단하자. 그리고 내년 상반기까지를 1차 목표로 잡자. 

 

또 생각해 보면 소마라는 샌드박스 같은 좋은 환경에 있을 때 어떻게든 성과를 내고 뭔가가 확정이 되면 좋겠다는 생각이 들어서 더더욱 여러 가지를 한 번에 병행하려고 했던 것 같다. 물론 모든 걸 완벽하게 병행할 수 있으면 좋았겠지만 내가 한 번에 할 수 있는 것은 한계가 있기 때문에 우선순위를 잘 생각해야 할 것 같다. 

 

그리고 이런 샌드박스 환경이 끝나면, 뭔가 내가 추진력을 잃을까봐 걱정이 되고 불안했던 것 같다. 그래서 11월 안에 승부를 보려고 했던 것 같다. 물론 되면 너무 좋겠지만, 내가 11월 안에 취업이 안 된다고 이후에도 취업이 안 되는 것은 아니기 때문에 이것 역시 불안해서 그랬던 것 같다. 그렇다면 소마가 끝난 뒤에 만약 취업이 확정되지 않은 상황에, 어떻게 하면 소마에 있었을 때처럼 덜 불안해하면서 추진력을 이어갈 수 있을까? 일단 생각나는 것은 꾸준히 블로그 쓰는 거랑 운동인데 또 다른 방법이 있을까? 아니면 팀원들이나 다른 연수생들과 뭔가 스터디를 이어가는 방법도 있으려나? 나중에 멘토님들께 조언을 구해봐야겠다. 

 

우선 소마가 끝나기 전까지는 소마 프로젝트의 배포와 고도화 기능 개발, 그리고 기술 고도화를 하는 데 신경을 써야겠다. 그러면서도 원서를 틈틈이 계속 넣을 것이다. 여기서 관건은 코딩 테스트와 면접 준비이다. 여기에는 분명히 시간이 들어간다. 그리고 여기에 대해서 팀원 모두가 합의한 공동의 룰을 정해야겠다는 생각이 든다. 일단 내가 생각한 룰은 다음과 같다. 

 

1. 주 최대 15시간만 취준에 쓰기

2. 어디에 원서를 썼는지는 공유 안 해도 되지만, 코테나 면접 일정 등 다음 스텝이 정해지면 일정을 공유해 주기. 그리고 특히 면접의 경우 전 2일 동안은 면접 준비에 모두 할애할 수 있도록 해 주기(이건 다른 소마 친구한테 들었던 룰인데 괜찮아 보여서 가져와봤다)

 

면접 준비의 경우에도, 기본 CS 지식을 물어보는 경우와 프로젝트와 관련된 기술 경험을 물어보는 경우가 조금 나뉜다고 생각했다. 하지만 이를 한 번에 준비할 수 있다고 생각했다. 내가 생각한 것은 '자기가 아는 걸 정리해보는 것'이다. 예전에 영어학원에서도 백지 공부법으로 이번에 배운 걸 다 백지에 적게 하는 시험이 있었는데 그게 생각났다. 처음에 자기 프로젝트가 뭐고 뭘 했는지를 스스로 설명해 본 다음, 그 안에서 분명 질문이 나올 만한 포인트가 있을 것이다. 

 

이 부분으로 한번 내가 아는 지식을 정리하면 코테랑 면접 준비가 될 것이고, 매일 한 문제씩 코테를 풀면서 코테 준비도 될 것이다. 그리고 나머지 시간을 프로젝트에 투자해 보면 어떨까? 내일 팀원들과도 얘기를 나눠봐야겠다. 

 

궁금한 점

1. 11월 이후 소마가 끝나면 또 어떻게 추진력을 갖고, 덜 불안해하면서 프로젝트와 취준을 이어갈 수 있을까? 

2. 면접 준비와 CS 지식 준비를 위와 같은 백지 공부법으로 준비해보는 건 어떨까? 갑자기 생각난 아이디어인데 실제로 효과나 잘 적용될 수 있을지 궁금하다. 

 

 오늘의 러닝 인증

 

우선은 멘토링 전에 내가 생각했던 고민들에 대해서 정리하고, 이후에 느낀 점에 대해서 기록해보려고 한다. 

 

어떻게 해 왔는가

  • 팀 전체가 코어타임을 정해서 해당 시간에는 오프라인으로 만나서 진행
  • 작업 전에 데일리스크럼으로 현재 이슈 확인 및 세부적인 하위 이슈로는 어떻게 나눌지 확인하고 미리 나눠서 진행
  • 블로그를 작성하면서, 현재 어떤 이슈가 있고 이걸 내가 어떤 접근으로 해결하려고 하는지를 생각하면서 이슈를 해결하려고 함.
  • 한 문제에 대해서 오래(1시간 이상) 막힐 경우 멘토님께 조언 구하면서 진행함

문제라고 생각하는 점

  • 무슨 문제인지도 모르고 시간을 크게 버리는 경우는 줄었다고 생각하나, 한 문제를 풀면 또 다른 문제가 생기고, 그 문제를 풀면 또 다른 문제가 생기거나 개선해야 하고 긴급도도 높아 보이는 다른 사항을 또 발견하게 되어서 그 날이나 해당 주에 목표한 대로 이슈를 끝내지 못하는 상황
  • 이게 문제라고 생각하는 이유는, 그렇게 되어서 런칭이 늦어질 수 있기 때문이다.
  • 런칭이 늦어지면 개발에 문제가 생긴다는 것인데, 적다보니 그런 생각도 든다. ‘개발이 늦어졌다’는 기준은 무엇인가? 물론 ASAP이긴 하지만… 생각해보니 이 정의에 대해서도 합의가 필요할 것 같다.
  • 아니면 적다보니 ‘일의 진척’이라는 것이 꼭 일의 완료를 의미하는 건가..? 라는 생각도 들었다. 물론 당연히 개발이 진행되어야 하는데 하다보면 시행착오가 있을 수 있는 것도 맞아서, 어떻게 되어야 ‘그래도 일이 진행되고 있다’고 판단할 수 있을지 궁금하다. 이 부분에 대해서 잘 모르는 것 같다.

바라는 점

  • 해당 주에 목표한 대로 이슈를 끝내는 것 / 그럴 수 있을 만큼의 이슈를 잡는 것.
  • 개인적으로 느끼기에 이슈를 끝내긴 했어도 어쩌다 보니 끝내거나, 얼레벌레 끝낸 적이 꽤 많았다고 느껴지는데 어떻게 하면 이걸 줄일 수 있을지가 고민임. 메타인지 개념처럼, 내가 일주일에 풀타임을 할애할 경우 어느 정도의 이슈를 끝낼 수 있는지를 알고 싶음.
  • ‘작업/개발 업무’에 대한 메타인지를 높일 수 있는 방법을 알게 되는 것
  • 그리고 다른 팀원들의 진행상황도 중간중간 서로 공유하면서 진행하는데, 이걸 팀원들 스스로도 자기한테 적합한 업무량이 얼마인지 알고, 다른 사람들이 들었을 때도 서로에게 적합한 업무량인 것을 알 수 있었으면 좋겠다. 그러니까 우리 팀이 자기 스스로나 팀 전체가 어느 정도 해 왔고, 또 앞으로 어느 정도 할 수 있을지에 대해서 좀 더 정확히 알 수 있었으면 좋겠다.
  • 그렇게 해서 좀 더 스스로도 예측 가능한 개발을 할 수 있었으면 좋겠다. 쓰다보니 앞으로의 9월-11월의 소마 생활에서 예상 불가능한 면(취준, 프로젝트 출시, 최종평가 등)들이 많은데 이런 면에서라도 상황을 예상하고 싶다는 생각이 들어서 이런 필요성을 느낀 것 같다.

성찰 및 적으면서 깨달은 점

  • 문제 상황이 단순히 ‘개발이 늦어져요’ 보다는 ‘어느 정도여야 개발이 잘 진행되고 있는지 그 합의된 기준이 명확히 정의되지는 않은 것 같아요’와 ‘우리 팀에 적합한 업무량을 어떻게 알 수 있을지 모르겠어요’로 정리된 것 같다.

두 가지의 인사이트를 얻었다. 정리하자면 다음과 같다. 

 

1. 우선순위가 무엇인지를 알고, 필요한 것은 우선적으로 하고 아닌 것은 우선순위를 낮춰 때로는 미루자. 

 

제일 중요한 우선순위(지금은 배포)가 무엇인지를 알고, 나머지 일은 미룰 줄 알아야 한다. 효율적인 일을 위한 분업이 오히려 지금은 독이 된 것 같다. 지금 가장 급한 일은 한 팀원이 맡은 배포인데, 이 배포가 늦어지지 않게 우리 모두가 이 일에 뛰어드는 것이 맞는 판단이었다.

 

그리고 이것은 비단 프로젝트성 일에만 해당되는 것이 아니었다. 회사에서의 모든 업무와 개발도 마찬가지이다. 잘 돌아가는 것처럼 보이는 서비스에서도 완성과 완벽은 없다. 일단 급한 일, 서비스와 실 유저에 우선적으로 관련된 일을 먼저 처리하고 나머지는 백로그로 넘기자. 그래야 한다. 그리고 시간이 날 때 처리하는 것이 맞겠다.

 

2. 여러가지 불안 요소로부터 나를 지키는 가장 효과적인 방법은 매일의 규칙적인 운동이다.

매일 3km씩 러닝을 해야겠다. 동생이 지금 개발자로 일하고 있는데, 매일 러닝을 꾸준히 나가는데 이미 충분히 건강해 보이는데도 그걸 꾸준히 하는 걸 너무 신경을 쓰더라. 그래서 왜 그렇게 신경을 쓰냐고 물어봤더니 '이렇게 안 하면 회사에서 버티기가 힘들다'고 했다. 그때는 그 말의 뜻을 잘 이해하지 못했는데 지금은 조금이나마 알 것 같다. 일종의 자기계발이 아니라 생존형이었던 것이다.

 

사회에서 일을 하면서는 불안이나 스트레스, 번아웃 등에 노출되기 매우 쉽다. 효과적으로 스스로를 지키는 방법은 심리상담이나 병원도 물론 있지만, 개인이 우선 해볼 수 있는 것은 운동이겠다. 나는 원래 '프로젝트'와 '최종평가'와 '취업 준비'는 별개라고 생각했다. 그런데 셋은 하나였던 것이다. 프로젝트를 잘 하면 어느 정도 좋은 최종평가 결과는 자연스레 따라오는 것이고, 취업에 대한 준비도 자연스레 되는 셈이었다. 왜 나는 셋을 다르게 보고 모든 걸 예상해서 준비하려고 했을까? 내심 불안했던 거였다. 그래서 우선은 운동을 통해 이 불안을 잘 케어해 보는 것이 맞겠다. 

 

결론

1. 우선순위를 잘 파악하자. 지금은 프론트 앱 배포에 모두가 뛰어들 때다. 그리고 분업도 당연히 필요하지만, 프로젝트의 목적을 알아야 하겠다. 만약 누군가가 하는 일이 잘 안 되고, 그것이 프로젝트의 가장 핵심 목적에 영향을 미친다면, 모두가 그 일에 뛰어드는 것이 맞다. 

2. 멘탈 관리가 중요하겠다. 여러 방법이 있겠지만 가장 핵심적인 역할은 운동이 한다. 운동을 하자. 

 

+ Recent posts