새로운 코드베이스 빨리 학습하는 법

주니어 시절 많이 했던 실수인데, 코드 베이스만 보면 숨이 턱 막혔던 기억이 나요. 일단 대학교에서 보던 코드 베이스와 규모와 복잡한 면에서 차원이 다르고요, 빨리 성과를 내야 한다는 압박감이 들더라고요. 처음에는 파일을 차례대로 보며 코드 한 줄 한 줄 다 이해하려고 했던 게 기억나는 데 너무 잘못된 방법이라는 것을 나중에 알아차렸습니다. 아랫글 읽고 공감하는 점이 있어 공유합니다. 1️⃣ 새로운 코드 베이스를 이해하려고 할 때 가장 큰 어려움 점은? 코드에 메모가 부족한 것이 아니다. 코드가 잘못 작성된 것도 아니다. 사용된 프로그래밍 언어가 문제가 아니다. 코드 베이스와 새로운 프로젝트를 이해하는 데 어려움을 겪는 가장 큰 이유는 코드 베이스의 맥락을 이해하지 못하기 때문이다. 2️⃣ 코드 베이스를 빨리 이해하려면? 코드 베이스를 빨리 이해하려면 다음과 같은 "이유"를 먼저 이해해야 한다. 첫 번째, 이 코드 베이스가 존재하는 이유는? 두 번째, 이 코드 베이스는 어떤 문제를 해결하려고 하는가? 그다음 그 문제를 어떻게 해결하는지 살펴보아라. 코드의 세부 사항을 훑어보라는 건 아니다. 시스템의 각 주요 구성요소와 이러한 구성요소가 최종 목표에 어떻게 기여하는지에 대한 큰 그림을 먼저 봐야한다. 3️⃣ 그다음에 해야 할 것? 큰 그림을 먼저 보고 이해하고 나면 다시 첫 번째 단계로 가야 한다. 코드 베이스에 있는 구성 요소 중 가장 잘 이해할 수 있는 것 한 가지를 선택한다. 자기 실력과 배경 그리고 전문 분야에 따라 다른 것을 선택한다. 그리고 그 구성 요소를 세세하게 훑어보면서 잘 이해하도록 한다. 작고 쉬운 부분부터 이해하고 나면, 거기서부터 시작해서 지식을 넓히자. 4️⃣ 막히는 부분이 있다면? 만약 특정 단계나 구성 요소를 이해하지 못한다면 다음으로 건너뛰면 된다. 대충 입력값과 출력값을 이해하고 다른 건 다 건너뛰면 된다. 📌 결국 코드 베이스를 이해하는 것도 문제 푸는 것과 같네요. 문제를 먼저 명확하게 한 다음, 문제의 큰 그림부터 먼저 본 후 세세한 부분을 보는 것처럼, 코드 베이스도 비슷한 형식으로 읽어야 쉽게 이해할 수 있습니다. 🪴 함께 읽으면 좋은 글: 2022년 깃허브 유니버스에서 발표한 새로운 기능 https://careerly.co.kr/comments/73068 11월 멘토링 취업, 코딩테스트 관련 큐앤에이 모음 https://careerly.co.kr/comments/72886

How to learn a new codebase very quickly

Medium

How to learn a new codebase very quickly

다음 내용이 궁금하다면?

또는

이미 회원이신가요?

2022년 12월 6일 오후 4:54

 • 

저장 272조회 8,370

댓글 4

  • 항상 좋은 포스팅 감사합니다. 관련해서 추가로 한 가지 궁금한 사항이 있는데요, 다음 두 가지를 이해해야 한다고 하는데, 이 두 가지를 빨리 알아채기 위한 좋은 방법이 있을까요? '첫 번째, 이 코드 베이스가 존재하는 이유는? 두 번째, 이 코드 베이스는 어떤 문제를 해결하려고 하는가?' 사실 맥락을 이해하지 못하고 코드를 먼저 보는 이유도 엄밀히 생각하면, 맥락을 알려주는 문서들이 없어서 코드를 먼저 보고 맥락을 유추해내려는 게 아닌가 싶어서요.

    @최준영 너무 좋은 질문이네요. 제 개인적인 경험과 생각이라 모두에게 맞는 방법은 아니지만 몇 자 적어봅니다. 일단 가장 좋은 방법은 회사 내 존재하는 문서를 스스로 검색해보고 찾아서 읽어보는 것이예요. 제가 주니어시절 때 이런 문서가 존재하지 않아서 당황했는데, 이때 가장 좋은 리소스는 같은 팀에 오래 근무한 개발자나 매니저와 1:1 면담을 통해 알아내는 것입니다. 이때 그냥 나만 알고 지나치지 말고, (회사에서 허용하는 경우, 기밀이 아닌 경우) 직접 문서를 직성해서 다른 팀원이나 새로 입사한 주니어에게 가르쳐 주는 것도 길게 보면 좋을 것 같아요. 가르쳐 주니까 제가 몰랐던 부분을 알게 되어서 더 파고 들게 되고 문서의 완성도를 높일 수 있었어요. 이것도 안되면 팀에서 믿을만하거나 팀 기술을 잘 알고 있고 다가가기 쉬운 사람과 미팅해서 페어 프로그래밍 하듯이 같이 훑어보는 것도 좋을 것 같습니다.

  • 저도 한줄한줄 다 이해하려고 했어서 진도는 안나가고 자괴감에 빠진 기억이 있네요. 나중에는 큰 모듈로 나눠서 입출력 먼저 보는게 좋았습니다.