42 Seoul 캠퍼스가 문을 닫는다는 소식을 접했다. 아쉬운 소식이었다. 하지만 그 소식을 계기로, 지난 42서울에서의 시간을 한 번 정리해 보고 싶어졌다.
42서울을 돌아보며
42서울에 10기로 2023년 10월에 입과했다. 시간으로는 그로부터 2년 반 가까이 흘렀지만, 실제로 가장 밀도 있게 활동한 시기는 2025년 6월 무렵까지였다. 그래서 이번 글은 단순히 재적 기간 전체를 돌아보는 글이라기보다, 내가 실제로 부딪히고 배우며 보냈던 시간을 정리하는 기록에 가깝다.
그동안 한 번쯤은 정리하는 시간을 가져야겠다고 생각했지만, 지나온 시간을 충분히 돌아보지는 못했다. 이번 글에서는 42서울에서 무엇을 배웠고, 어떤 태도를 익히게 되었는지 차분히 돌아보려 한다.
라피신
라피신. 말 그대로 수영장이다.
물에 던져 놓을 테니 알아서 살아남아 보라는 뜻에 가깝다. 물에서 버티려면 결국 스스로 헤엄치는 법을 배워야 한다. 그런 점에서 42서울의 라피신은, 무엇을 해야 하는지 아무도 자세히 알려주지 않은 채 ‘클러스터’라는 컴퓨터만 가득한 공간에 들어가 버티는 시간이었다.
내 경우 라피신에 들어갔을 때 터미널, C언어, 알고리즘, 메모리 구조가 완전히 처음인 것은 아니었다. 하지만 C로 작은 유틸 함수들을 직접 구현하면서, GC가 없는 언어에서 메모리 관리를 고려해 코드를 짜는 경험은 분명 새로웠다. 직접 할당하고 해제하면서, 그 과정에서 생기는 문제를 스스로 추적하는 일은 이전과는 다른 종류의 감각을 요구했다.
라피신 기간 동안 나는 클러스터 출입 기록 기준으로 약 420시간을 보냈다. 중간중간 잠깐 눈을 붙인 시간도 포함되어 있겠지만, 그 시기 라피신은 생활의 거의 전부였다. 그만큼 오랜 시간을 문제 앞에서 보내면서, 모르는 것을 대하는 태도도 조금씩 바뀌었다.
무엇보다 기억에 남는 것은 동료평가였다. 동료평가의 가장 큰 특징은, 좋든 싫든 상대방의 코드를 직접 읽고 이해해야 한다는 점이었다. 라피신 기간 동안 100회가 넘는 피어리뷰를 진행했고, 그 과정에서 다른 사람들이 문제를 바라보는 방식과 사고 흐름을 가까이에서 볼 수 있었다. 같은 문제를 두고도 누군가는 구조를 먼저 잡았고, 누군가는 예외 케이스를 먼저 챙겼고, 누군가는 일단 돌아가게 만든 뒤 정리했다. 간단해 보이는 문제도 접근 방식은 꽤 달랐다.
방통대에서 컴퓨터과학을 공부했던 내게는 주변에 개발자나 전공자가 많지 않았다. 그래서 비슷한 고민을 가진 사람들과 하루 종일 이야기하고, 같은 문제를 붙들고 씨름하는 시간 자체가 무척 흥미로웠다. 그때 맺은 인연 중 일부는 지금까지도 이어지고 있고, 서로 도움을 주고받는 관계로 남아 있다.
본과정
본과정에 들어오고 나서는 라피신 때와는 또 다른 어려움이 있었다.
라피신이 짧고 강한 밀도로 몰아치는 시간이었다면, 본과정은 더 길고 꾸준하게 자기 페이스를 관리해야 하는 시간에 가까웠다. 누가 커리큘럼을 하나하나 챙겨주는 것도 아니고, 내가 어떤 속도로 무엇을 공부할지 스스로 정해야 했다.
처음에는 이 자율성이 꽤 막막했다. 마감이 정해져 있지 않은 작업은 사람을 쉽게 늘어지게 만들었다. 과제 하나에 얼마만큼 시간을 쏟을지, 어디까지 파고들지, 어느 정도 수준에서 마무리할지 모두 스스로 판단해야 했다. 정해진 기한이 없는 만큼 자유롭기도 했지만, 그만큼 쉽게 느슨해질 수도 있었다.
또 문제 해결이 잘되지 않아 오래 붙들고 있을 때도 많았다. 그럴 때면 문제의 핵심을 정확히 파고들기보다, 빨리 답을 얻기 위해 주변의 그럴듯한 해결책만 좇고 싶을 때가 있었다. 하지만 결국 오래 남는 것은 겉도는 요령이 아니라, 문제를 정확히 정의하고 쪼개는 힘이라는 점도 그 시간 동안 몸으로 배웠다.
지나온 시간을 돌아보면 모든 순간이 떳떳하지만은 않다. 아깝게 흘려보낸 시간도 있었고, 충분히 몰입하지 못한 시기도 있었다. 그래도 전체적으로 보면, 분명 내 방식대로 치열하게 부딪히고 배우려 했던 시간이었다고 생각한다.
얻은 것
42서울에서 얻은 것 중 가장 큰 것은 사람이었다. 과제를 혼자 하는 시간도 많았지만, 결국 혼자만으로는 오래 버티기 어려웠다. 구현 방식에 대해 이야기하고, 서로 이해한 내용을 설명하고, 막힌 지점을 함께 디버깅하는 과정은 생각보다 훨씬 중요했다.
42의 평가 시스템도 내게 적지 않은 영향을 줬다. 남의 코드를 읽고, 내 코드를 설명하고, 질문을 주고받는 과정에서 내가 얼마나 대충 알고 있었는지가 자주 드러났다. 알고 있다고 생각했던 개념도 막상 설명하려 하면 제대로 말이 나오지 않는 경우가 많았다. 그 경험이 반복되면서, 이해한다는 것은 결국 다른 사람에게 설명할 수 있는 상태에 가깝다는 생각을 하게 됐다.
또 다양한 배경을 가진 사람들을 만날 수 있었다는 점도 좋았다. 전공자도 있었고, 비전공자도 있었고, 완전히 처음 시작한 사람도 있었다. 그래서 더 자주 자극을 받았다. 누군가는 기술적으로 날카로웠고, 누군가는 꾸준함이 대단했으며, 또 다른 누군가는 협업할 때 인상적일 만큼 배려 깊었다. 그런 사람들을 보면서 나도 자연스럽게 배우게 되는 부분이 많았다.
아쉬운 것
좋았던 점만 있었던 것은 아니다. 돌이켜보면 나는 종종 조급했다. 빨리 다음 단계로 넘어가고 싶었고, 뒤처지고 싶지 않았고, 다른 사람들과 비교하면서 괜히 마음이 급해질 때가 많았다. 그러다 보니 어떤 시기에는 이해를 충분히 다지기보다 진도를 나가는 데 더 집중하기도 했다.
또 하나는 기록의 부족이다. 분명 많이 배웠는데, 그때그때 부딪히며 익힌 것들을 충분히 정리해 두지 못했다. 당시에는 이해한 것 같아도 시간이 지나면 흐려지는 것들이 많았다. 지금 블로그에 글을 남기려고 할 때마다, 그 순간의 고민과 시행착오를 조금 더 잘 기록해 둘걸 하는 아쉬움이 남는다.
그리고 체력과 생활 리듬의 중요성도 비교적 늦게 체감했다. 오래 앉아 있는다고 해서 항상 생산적인 것은 아니었고, 오히려 컨디션이 무너지면 판단력도 함께 무너졌다. 오래 공부하고 오래 개발하려면 결국 집중력, 체력, 감정 관리까지 포함해 자기 자신을 운영하는 능력이 필요하다는 점을 뒤늦게 배웠다.
배운 것
42서울에서 내가 배운 것은 단순히 C언어나 시스템 프로그래밍에 대한 지식만은 아니었다. 물론 그런 기술적인 기초도 분명 얻었다. 하지만 더 크게 남은 것은, 모르는 문제를 마주했을 때 겁먹기보다 하나씩 쪼개어 접근하는 태도였다.
예전에는 모르는 것이 많으면 쉽게 위축되곤 했다. 그런데 여기서는 모두가 어느 정도는 모르는 상태에서 시작한다. 중요한 것은 처음부터 잘하는 것이 아니라, 끝까지 파고들어 결국 이해하는 쪽으로 가는 일이었다. 그 과정을 여러 번 겪고 나니, 예전보다 낯선 문제를 덜 두려워하게 됐다.
또 협업은 단순히 착하게 대하는 것만으로 이루어지지 않는다는 것도 배웠다. 상대방이 이해할 수 있게 설명하는 것, 내 생각을 분명하게 말하는 것, 모르는 것은 모른다고 인정하는 것, 도움을 받았으면 나중에 다른 사람에게 다시 돌려주는 것. 이런 것들이 결국 좋은 협업을 만든다고 느꼈다.
나아갈 것
42서울에서의 시간은 내게 어떤 완성된 상태를 준 것은 아니었다. 오히려 내가 아직도 많이 부족하다는 사실을 더 선명하게 보여줬다. 다만 예전보다 무엇이 부족한지는 조금 더 정확히 알게 되었다. 그리고 그 부족함을 채워가는 과정 자체가 공부이자 성장이라는 점도 배웠다.
앞으로도 여전히 배워야 할 것은 많다. AI가 급격하게 발전하는 지금의 흐름이 기대되기도 하고, 한편으로는 두렵기도 하다. 그런 불명확한 미래를 조금이라도 더 잘 지나가기 위해, 지금 이 시점의 기록을 남긴다. 앞으로는 배운 것과 고민한 것을 그때그때 더 자주 바깥으로 꺼내 놓으려고 한다.
42seoul은 이제 역사 속으로 사라진다. 그 시간들이 나에게 중요한 밑거름이 된 시간으로 훗날 기억되면 좋겠다.