📚 /42seoul 시리즈

그래서나는42에서무엇을배웠는가? (« click!)

1. 소개


강의, 교수, 교육비가 없는 동료 학습 기반 컴퓨터 학교

42서울은 프랑스 파리에서 시작된 혁신 소프트웨어 교육 기관인 Ecole 42의 서울 캠퍼스이다. 이 학교는 기존의 대학과 학원과는 달리 강의, 교수, 교습비가 없고, 모든 학습은 실습 프로젝트로 진행된다. 학생들은 주어지는 다양한 난이도의 코딩 프로젝트를 스스로 해결해나가면서 컴퓨터 공부를 하게된다.

이 과정의 가장 중요한 부분은 동료 기반 학습(peer-to-peer) 이다. 프로젝트를 진행하다 막히는 부분이나 이해가 어려운 개념이 있으면, 주변의 동료들과 토론하고 서로의 코드를 공유하며 함께 해결해나간다. 이 과정을 통해 서로에게 배우고 또 가르치면서 다양한 지식을 학습할 수 있다.

커리큘럼은 C언어와 Unix 시스템의 기초부터 시작해서 자료구조, 알고리즘, 시스템 프로그래밍, 등 컴퓨터 과학의 핵심 분야를 폭넓게 다룬다. 이것은 이론 강의가 아닌 실제 C 프로젝트를 통해 익혀진다.

코딩 지식을 배우는 것을 넘어, 어떻게 학습해야 하는가, 어떻게 동료와 협력하여 목표를 달성하는가 를 체득하는 곳이다.



2. 선발 방식


42 과정의 선발은 바로 라피신(La Piscine) 이라고 불리는 과정을 통해 이루어진다. 프랑스어로 ‘수영장’이라는 뜻인데, 말 그대로 수영장에 던져지듯 약 한 달간 강도 높은 집중 학습 및 평가 과정이 진행된다.

이 기간 동안 지원자들은 자기주도, 동료 기반 학습에 얼마나 잘 적응하고 스스로 학습하며 동료와 협력할 수 있는지를 평가받는다. 매일 주어지는 프로젝트를 해결하고, 밤샘 코딩을 하기도 하며, 동료들과 서로 코드를 봐주고 토론하는 과정을 반복한다. 단순히 코딩 실력만을 보는 것이 아니라, 문제 해결 능력, 그리고 동료와의 소통 및 협업 능력 등을 종합적으로 평가한다.

이 라피신 과정을 성공적으로 통과한 인원은 이제 본격적인 학습 과정인 본과정 에 합류하게 된다.



3. 본 과정


본과정은 라피신을 통과한 학생들이 42 커리큘럼에 따라 좀 더 깊게 공부하는 과정으로, 문제 해결 능력과 협력을 통해 실제 결과물을 만들어내는 역량을 완성하는 것을 목표로 하는 과정이다. 라피신과 마찬가지로 강의나 교수는 존재하지 않으며 100% 프로젝트 기반, 자기주도, 동료 기반 학습으로 진행된다.

본과정은 크게 공통과정과 심화과정으로 나누어지며, 공통과정을 마친 교육생은 자신이 원하는 분야를 더 깊게 공부할 수 있는 심화과정을 진행할 수 있다. 커리큘럼(공통과정)은 여러 레벨로 나뉘어 있으며, 각 레벨 마다 다양한 주제와 난이도의 프로젝트들이 주어진다. 기초적인 C언어 및 Unix 시스템부터 시작하여 자료구조, 그래픽스, 네트워크 등 다양한 분야를 공부할 수 있다. 정해진 학년이나 졸업 시점은 없으며, 각자의 속도에 맞춰 프로젝트를 수행하며 레벨을 올려나간다. 일반적으로 졸업까지는 2년 정도가 소요된다.


3-1. norminette

42 과정에서 일정 기간 동안은 norminette 규칙을 지켜야한다. 상당히 양이 많으므로, 실제 과제를 수행하면서 해당 규칙 때문에 자주 사용했던 것 부터 애를 먹었던 것 중심으로 정리해보았다.


3-2. 42cursus

42 과정에서는 아래의 커리큘럼을 따라 과제를 수행하고 공부한다.

공통 과정

과제 링크를 클릭하면 더 많은 내용을 확인할 수 있다.

심화 과정



4. 무엇을 배웠는가?

2024년 10월 부터 2025년 3월까지

42서울에서의 1년 반 동안. 입학할 당시만 해도 C 언어나 포인터 같은 개념은 막연하게만 느껴졌다. 하지만 실제로 프로젝트를 수행하면서 차근차근 프로그래밍을 익혀 나갔고, 지금은 시스템 내부가 어떻게 동작하는지를 조금이나마 이해할 수 있게 되었다.

특히 기억에 남는 프로젝트는 minishellft_irc였다. minishell 과제를 통해 프로세스가 생성되고 실행되는 과정을 직접 구현하며 시스템의 동작 원리를 구체적으로 알 수 있었다. 그리고 IRC 서버 프로젝트에서는 소켓 통신을 구현하며 네트워크가 어떻게 동작하는지 처음으로 깊이 있게 고민하게 되었다. 당시에는 모든 과정이 어렵고 혼란스러웠지만, 동료들과 끊임없이 의견을 주고받고 같이 문제를 해결해 나갔다.

개발에 임하는 태도도 크게 바뀌었다. 처음엔 문제가 생기면 인터넷에서만 정답을 찾으려 했다. 하지만 점점 공식 문서를 먼저 확인하고 작은 예제를 만들어 직접 실험하며 문제를 해결하는 습관을 갖게 되었다. 이제는 새로운 것을 마주할 때, 막연한 두려움 대신 호기심을 먼저 느낀다. 시간을 들이면 결국 해결된다는 확신이 생겼다.

협업 과정도 큰 도움이 되었다. Git을 통해 동료들과 함께 코드를 작성하고 리뷰하면서, 어떻게 해야 협력하며 좋은 품질의 코드를 만들 수 있는지 자연스럽게 배우게 되었다.

과제 평가, 피평가 과정도 참 재미있다. 때로는 ‘무엇이든 뚫지 못하는 창 vs. 무엇이든 막지 못하는 방패’ 같은 공방이 벌어지지만, 대부분의 경우 배움과 깨달음의 기회를 준다. 나는 42 과정의 핵심이 코딩 실력뿐 아니라 코드 리뷰와 토론을 통해 타인의 생각을 존중하고 배우는 경험에 있다고 믿는다.

42서울을 마치며 여전히 모르는 것도 많지만, 필요한 지식을 스스로 찾아 배우고자 하는 태도가 몸에 배었다는 것이 가장 의미있는 변화라고 생각한다. 앞으로의 공부 역시 같은 방법으로 계속해 나갈 생각이다.



5. Reference