Search

[활동 회고록] 42를 마치며

Created
2022/09/07
Tags
회고록
42

들어가기 앞 서

2년 전 2020.10.12 ~ 2020.11.06 기간의 Piscine을 무사히 통과하고 Cadet 신분으로써 42 생활을 시작했었는데, 2022.09.06이 되어서여 42의 공통 과정을 마치면서 Alumni가 되었다.
대학교를 입학해서 공부해온 것들을 이론으로 밖에 모르면서 실질적으로 할 수 있던 건 크게 없던 내게 42는 정말로 많은 도움을 주었다.
특히 명확한 듯 명확하지 않은 각각의 과제들은 앞으로 코드를 치면서 살아가야 하는 내게 많은 것들을 시사했다. 적어도 내가 어떤 생각을 가지고 무엇을 왜 구현하려고 했는지 밝힐 수 있게 되었다. 그리고 요구 사항에 대해서 스스로 문제를 정의하고, 정의한 문제의 해결 방안을 능동적으로 찾아내는 생활을 반복하면서 내가 처한 맥락에 대해선 남에게 답을 묻지 않더라도 스스로 해결할 수 있는 기반을 다질 수 있었다. 이 과정에서 대화가 중요하여, 내 생각을 남에게 어필하여 설득하는 방법과 상대방의 의견을 경청하며 내 문제를 진단하고 그 다음으로 나아갈 수 있는 방안에 대해서도 배울 수 있었다. 코드는 내 주장을 펼치고, 내 생각을 나타내는 수단일 수 있겠다는 생각도 많이 했던 것 같다.
짧지 않은 기간동안 내가 겪었던 어려움과 소소한 성과들을 항목 별로 정리해보았다.

1. 완벽한 코드

본과정에서 42 교과 과정을 밟는 모든 Cadet들은 저마다의 어려움을 겪었을 것인데, 돌이켜보면 나도 어려움들을 적지 않게 겪었던 것 같다. 코드를 짜면서 완벽에 가깝게 짜내려고 했었던 적도 있었다. 능력이 된다면 최대한 실제와 같은 stdlibc, bash, printf 등을 만들고 싶었지만, (1차적으로 능력이 안 된 거 같긴한데 ㅎㅎ...) 과제에서 요구하는 것을 구현할 때 실제로 사용되고 있는 대상들과 똑같이 만든다는 것이 반드시 능사는 아니라는 것을 배웠다. 이를 통해 코드에 완벽이라는 것은 존재하기가 어려우며, 내가 정의한 선에서 잘 구동되는 완전한 코드를 작성해가는 것이 중요하다는 것도 느꼈다.
Cadet으로 지내면서 들었던 이민석 학장님의 말씀에 따르면, 프로그래밍은 오류들을 명세하고, 그 오류들이 의도한 방향으로 흘러가도록 만드는 것이라고 하셨던 것이 어렴풋이 기억난다. 이제는 내가 프로그래밍을 해가면서 완전할 수 있는 코드를 짜는데 중요한 밑거름이 된 사항 중 하나가 되었다.

2. 글 쓰기

자료 정리와 아카이빙, 글 쓰기에서도 많은 난관이 있었다. 지금 생각해보면, 42를 시작하기 이전에는 취준에 급급한 나머지 블로그를 꾸려야 한다는 강박이 있었던 것 같다. 공부를 위해 자료를 찾아보려고 검색해보면 종종 발견할 수 있는 목적 없는 글과 같이 작성을 했었고, medium, velog, tistory 등 블로그 개설 후 운영 실패에만 3번을 넘게 겪었던 것 같다. 글을 명확하게 풀어내는 법도 몰랐고, 목적에 따라 참고했던 자료들을 아카이빙하고 다시 찾아봤을 때 글이 유용하도록 만들어 내는 법도 미숙했다.
Cadet들 중에서는 컴퓨터 사이언스 전공자로써 대체로 선두에 있었기 때문에, 내가 알고 있는 것들이나, 과제를 진행하면서 느낀 것들, 혹은 꼭 알았으면 하는 것들을 풀이해가면서 글을 쓰는 능력도 많이 기를 수 있었고, 상대적으로 아카이빙에 요구되는 시간들을 많이 단축해갈 수 있었다. 글을 쓰면서 미약했던, 목적과 목표를 명확히 하면서 내 입장을 밝히는 능력이 많이 함양된 것 같다. 부수적으로 많은 분들께서 블로그를 찾아주시고, 별도로 메일도 주시면서 네트워킹을 할 수 있는 창구를 만들 수 있게 된 것도 성과라고 할 수 있겠다.

3. 오픈 소스 기여

2021년 9월에는 OKKY 개발자 허광남 멘토님께서 오픈 소스 데이터베이스 Cubrid의 개발진들과 함께 진행하는 데이터베이스 엔진 스터디를 진행할 Cadet들을 모집한 적이 있었다. 약 13 주에 걸친 스터디를 진행하면서 수행했던 것은 스터디원들을 리딩하면서 코드를 분석, Cubrid 선임 연구원들과 소통, 매주마다 분석했던 것들을 발표하는 세미나를 진행하는 것이었다. 장기간 스터디는 체력적으로 굉장히 힘들구나라는 것을 느끼기도 했지만, 오픈 소스를 기여하면서 주요하게 느낀 것은 체력적인 것만은 아니었다.
이제까지는 코드를 작성하는데 초점을 맞춰왔었다면, 스터디의 과정에서는 코드를 보는데 있었다. 코드를 기여하기 위해선 기존 코드를 이해하는 과정이 반드시 수반되어야 하고, 이 과정에서 기존 코드를 작성한 사람의 생각을 이해하기 위해 코드를 맡아왔던 분들과 많은 대화를 하는 것이 중요하다는 것도 느낄 수 있었다.
특히 프로젝트를 처음부터 시작하여 코드를 짜온 것이 아니라면 대부분은 다른 사람들이 짜놓은 코드 위에서 작업을 하고 코드를 확장시켜 나갈 것인데, 코드를 분석하고 이해하는 능력은 굉장히 중요하며 이를 풀어나갈 때 타인과 많은 소통을 하지 않으면 이해하지 못한 코드를 작성하여 차후에 더 큰 문제를 야기할 수도 있지 않을까라고 생각하기도 했다.
스터디 막바지에 들어서는 Cubrid에서 사원과 연구원분들이 어떤 식으로 일을 하는지 Flow를 대략적으로 살펴볼 수 있었는데, 여기서도 상호 간 많은 소통을 바탕으로 하는 것을 알 수 있었다. 결론적으로 코드만 잘 짠다고 끝이 아니라는 점을 느끼면서 많이 반성할 수 있었다. 이 때는 이미 Cadet으로 생활한지 1년 가까이 되는 기간이었는데, 코드를 분석하고 소통하는 시간을 많이 가지며 보내진 않았기 때문이다. 덕분에 시간 날 때마다 GitHub에서 트렌드로 뜨고 있는 레포지토리나 주변 사람들이 하고 있는 프로그래밍을 자주 자주 찾아보는 취미가 생겼다. 이로 인해 다른 개발자들과 소통할 때 자연스럽게 그들의 일상을 이해하고 적어도 비슷한 맥락 상에서 그들의 얘기를 들을 수 있다는 것도 장점으로 다가오게 만들 수 있었던 것 같다.

4. 팀플

현재 교과 과정대로라면 42 과제에서는 팀플이 4개가 있다. MiniRT, MiniShell, Webserv, Transcendence라는 과제들이다. 각각은 Ray Tracing, Shell, Nginx, Web Service를 구현하는 과제들이다. 내가 42에 재학 중일 땐 MiniRT가 팀플 과제가 아니었기에 3개의 팀플을 거치며 42를 마무리 지었는데, 본격적으로 팀플이라는 것을 해본 과제는 마지막 과제인 Transcendence 였다. 그리고 이 때 팀플의 가치를 조금이나마 이해하면서 MiniShell, Webserv라는 두 과제를 수행했던 내 모습을 반성할 수 있었다.
2022.07.18에 시작했던 마지막 과제를 진행하면서 겪었던 부분들은 프로젝트를 리딩하면서 겪은 것이 대부분이었다. 자세한 상황을 풀이하지는 않겠지만, 코드를 단순히 치는 것과 팀원들의 상황을 이해하고, 제 시간 내에 목표해뒀던 프로젝트를 마감하는 것은 또 다른 문제라는 것을 배웠다.
각자가 느끼는 감정들을 솔직하게 공유하고 반영하고 공감하면서 프로젝트를 무사히 마칠 수 있도록 하는 것도 중요하다는 것을 많이 느꼈다. 쌓아두는 감정만큼 나쁜 것은 없는 것 같았다.
그리고 능력차이가 있다고, 모든 것을 내가 떠안으려는 마음 가짐 보다는 팀원이 할 수 있는 일을 찾아서 위임하고 부족한 부분을 채워주는 식으로 팀원에게 등을 맡기는 방법도 조금은 배웠다. MiniShell과 Webserv에서는 이러한 마음 가짐 없이 팀플인데도 솔로 플레잉을 했다. 어떻게 보면 너무 배려심이 없었던게 아닐까 하고 반성을 많이하곤 한다.
앞으로 필드로 나가서도 연차가 조금씩 쌓이다보면 리딩 포지션을 자연스럽게 맡게 될텐데, 조금이라도 더 성숙한 리딩을 할 수 있도록 소프트 스킬을 많이 길러야 하는 것도 많이 느꼈다. 협업하는 상대방이 업무를 맡아본 적이 있는 사람이냐 아니냐에 따라서, 나와 대화했을 때 느끼는 감정이 다르다는 것을 여실히 느낄 수 있었다. 신입 혹은 초심자에게는 조금 더 유하면서도 위화감을 느끼지 않을 수 있는 워딩을 골라 쓰는 것도 능력이구나를 많이 느꼈다. 덕분에 최근에는 커뮤니케이션 스킬이나 프로젝트 관리 관련 책들에 관심을 많이 두게 된 것 같다.

5. 마음 가짐

2022년 이전의 jseo는 지금보다 더 나약했던 것 같다. 총 6서클로 구성된 교과 과정에서 4서클에 위치해 있었던 나는 더 이상의 과제가 가치가 없을 것이라고 어림 짐작했다. 그래서 교과 과정을 더 이상 밀지 못하는 inactive 상태로 빠질 계획이었다. 이 때 현재 같이 팀원으로 일하고 있는 taeskim과 honlee의 도움을 많이 받았다. 취준 쪽으로 마음을 굳히고 있었던 내게 먼저 손내밀어 Oli라는 서비스를 함께 해보지 않겠냐는 말에 결국 함께 하게 되었고, 이들과 함께 생활하면서 교과 과정을 끝내는 것이 맞다는 결론에 다다랐고, 굳게 마음을 먹었다.
그간 일정 제약 없이 느슨한 행태로 과제에 임했던 것과 달리 이들과 함께 일하면서 2022년에는 꽤나 전투적인 태세로 프로그래밍에 임했다. 과제 1개만 진행하던 2021년의 나와는 달리 2022년에는 서비스 운영과 42 교과 과정 그리고 대학교를 병행하며 보냈다. 덕분에 서비스 런칭은 성공적으로 이뤄지고 현재까지 총 10개월간의 운영을 하고 있으며, 42 교과 과정도 마무리를 지었고, 대학교도 계속 장학생으로 막학기를 보내고 있다.
이 모든 것의 기반은 내가 하는 작업을 시간적으로 값을 매길 수 있냐 없냐에서 시작된 것 같다. honlee의 가치관으로부터 영향을 많이 받았는데, 어떤 작업을 수행할 때 목적과 목표를 정하고 이를 언제까지 마무리 할 수 있는지 기간을 산정하는 습관을 두게 되었다. 특히 개발자로써 기간은 무조건 엄수라는 전제 조건을 목숨과 같이 여겨야하고, 실력자라면 실력자에 걸맞는 결과를 보일 수 있어야함을 많이 느꼈다.
글로 표현이 매우 어렵긴 하지만, 열심히 산다고 살았던 2021년의 나태함과는 많이 달라진 모습으로 살아가고 있음에 감사하고 있다. 문제가 문제인지도 모르고 살아갈 뻔했는데, 좋은 사람들을 많이 만나서 극복할 수 있었던 것 같다. 덕분에 마음 가짐이 흐트러지거나, 부딪히는 것들이 두려워 회피하려고 할 때마다, 자주 되뇌면서 마음을 다잡을 수 있는 말을 찾기도 했다. 도망친 곳에 낙원은 없고, 언젠가는 마주해야 한다는 것이다.

6. 학생 관성

서비스를 운영하면서 느낀 것인데, 학생으로써 학업과 업무로써의 학습은 사뭇 다르다는 것을 알게 되었다. 서비스에서의 일정 진행은 굉장히 타이트하게 이뤄졌고, 때문에 어떤 것을 습득하려고 스터디를 하더라도 학생 때처럼 기한 없이 무작정 스터디를 할 수는 없었다. 모든 것이 근거가 필요했다. 어떤 스터디가 필요하다면 업무 시간 외에 수행할 수 있는지 없는지 부터 판별하게 되었다. 업무에 꼭 필요하다면 해당 스터디가 업무에 어떤 영향을 줄 수 있고 어떤 문제 때문에 꼭 필요한지 설득할 수도 있어야 했으며, 스터디 기간도 최소한으로 쳐낼 수 있도록 산정하는 능력이 필요하다는 것도 알게 되었다. 이렇게 공부해본적이 없다보니 처음에는 굉장히 힘들었다. 근거를 만드는 것도, 근거를 통해 다른 사람을 설득하는 것도, 스터디 기간이 얼만큼 필요한지도, 그 기간 내에 스터디를 마쳐내고 업무에 적용해가는 것도 모든 것이 어려웠다. 요행은 없었던 것 같다. 결국 하나씩 부딪히면서 겪어보니 숙련되고 내가 어떤 상태인지 이전보다는 명확하게 인지할 수 있었다.
이렇게 근거를 둬가는 것이 좋았던 또 다른 점은 기술 만능 주의에서 벗어날 수 있었다는 점이다. 무조건 좋은 기술, 무조건 어려운 기술을 이해하려 하고 이걸 어필함으로써 취업하려고 했던 기존의 사고 방식과는 달리, 현재 처한 상황에서 적절한 것을 찾아내고 적용하는 것이 중요하다는 것을 많이 배웠다. 비로소 다른 멘토님들께서 처음 프로젝트를 시작할 때는 쿠버네티스보다는 일단 ec2 인스턴스를 띄우는 것으로부터 시작하라는 말씀에 공감할 수 있었다. 내가 작업하고 있는 프로젝트에 도입하려는 기술이 왜 필요한지 생각하지 않으려는 것은 적재적소에 무엇이 필요한지 판단하지 않겠다는 소리와 같다는 것을 깨달을 수 있었다.
이 외에도 내가 하고 있는 일의 가치를 수치로 매기려고 많이 노력했다. 아직 부족한 부분이지만 taeskim과 honlee로부터 여전히 많이 배우고 있다. 이들이 일을 하는 방식에는 다른 직장인들처럼 프로페셔널이 녹아 있다. 내게는 부족한 것들이 많은데, 그중에 특히 내 가치를 매기는 것에서 때때로 많은 인사이트를 받곤한다. 코드를 통해서 수입을 얻는단 것이 굉장히 큰 부담으로 다가온적도 있지만, 지금은 그만큼 책임감을 많이 느끼면서 일하고 있다.
(아직 졸업은 안하긴 했지만 ㅎㅎ...) 학생 때는 느끼지 못했던 것들, 가지지 못했던 시야들을 조금씩 얻어가며 학생 관성을 벗겨내고 있다. 조금 더 성숙한 사람으로써 사회에 내 가치를 기여할 수 있었으면 좋겠다.

7. 그 외에 좋았던 점

학교 다니면서도 정말 책을 안 읽었다. 전공 책을 사도 책장에 꽂아두는 전시용으로 써왔다. 막상 42 과제를 헤쳐나가다보니, 그리고 서비스 운영을 해보다보니 정말 부족함을 많이 느꼈다. 필요한 정보를 블로그에서 찾는 것으로는 한계가 있음을 어렴풋이 느꼈다. 많은 고민 끝에 내가 하고 있는 작업의 인사이트가 부족한 것은 아닐까하는 결론에 다다랐다. 특히 새로운 개념을 정립할 때 블로그를 이용하게 되면 보통 책에서 참고한 자료를 요약하여 제공하는 것을 많이 볼 수 있었는데, 작성자의 워딩에 따라 정보 획득의 질이 달라질 수 있다는 것을 많이 느꼈다. 또한 비슷한 카테고리의 정보를 얻을 때 여러 번의 검색을 거치는 것보다는 책을 통해 파악하는 것이 아주 괜찮다는 것을 알게 되었다.  (물론 검색도 많이합니다 ㅎㅎ...) 덕분에 연간 독서량 0이었는데, 없는 시간 쪼개면서 현재 내게 필요한 책들을 많이 완독할 수 있었다. 최근에는 시간이 생기면 서점을 기웃거리곤 한다. 진작에 왜 책 읽는 습관을 들이지 않았을까 싶다.
또 다른 점은 42 내에서 다른 도메인에서 일하던 사람들을 많이 만나면서, 그들이 바라보는 관점이 다양하다는 것을 직접적으로 느낄 수 있었다. 그러면서도 좋은 사람들을 정말 많이 만났다. 앞으로 필드에서 일을 하면서도 종종 소식 전해들을 생각하니 굉장히 설레기도 한다. 함께 헤쳐나갔던 동료들 모두 좋은 개발자가 되어, 도태되지 않고 끝까지 남아 있었으면 좋겠다. 특히 taeskim님, honlee 님 같은 분들을 만날 수 있어서 굉장히 좋았고, 두 분께 매우 감사하다. 이제까지 협업을 하면서 누군가에게 의지하거나 해본적이 없었는데, 나도 처음으로 누군가에게 등을 내주고 두분도 내게 등을 내주면서 일을 할 수 있어서 굉장히 뿌듯했다. 나를 신뢰하는 만큼 더 좋은 결과 낼 수 있도록 노력하고 싶다.

8. 나아갈 방향

2022.09 지금도 학교를 병행하고 있고 막학기를 보내고 있다. 이번 년도 하반기는 대체적으로 내가 집중하고 있는 것들이 마무리 되는 시기이다. 그 중에 42를 먼저 마무리 할 수 있어서 정말 기쁘다. 당분간은 학업에 정진하면서, 현재 운영하고 있는 서비스에 집중할 생각이다. 다른 팀원들처럼 Fulltime으로 시간을 쏟고는 있지만, 생각보다 업무의 집중도가 흩어졌던 것이 사실이다. 그리고 이런 점들을 이제까지 팀원들이 메꿔주고 있었다. 매우 감사하게 생각하고 여유가 생긴만큼 원래 내가 했어야 하는 일들에 더 집중할 계획이다.
올해 말까지는 더 나은 성과를 만들어서 내년에도 지속할 수 있었으면 좋겠고, 향후에는 내가 하고 싶은 일들을 찾아서 할 수 있는 상황이 될 수 있도록 열심히 하고 싶다.
많이 부족하지만 더 부족했던 나를 끌어줬던 42 생활과 교과 과정, 그리고 그 안에서 만난 사람들에게 모두 감사하다.