본문 바로가기
개발자/성장 학습

공부와 실무 사이의 갭, 어떻게 좁혔나

by 나무011 2026. 8. 30.
개발자 현직자 솔직 경험담

공부와 실무 사이의 갭,
어떻게 좁혔나

인프런 강의 20개, 알고리즘 문제 300개를 풀고도 입사 첫 주에 아무것도 못 했던 이유.

부트캠프를 수료하면서 인프런 강의 20개를 넘게 들었고, 코딩테스트 대비 알고리즘 문제도 300개 넘게 풀었다. 자신감이 꽤 있었다. 그런데 첫 회사 입사 첫 주, 실제로 맡은 티켓은 "회원가입 폼에 이메일 중복 체크 로직 추가"였는데, 어디서부터 손대야 할지 몰라서 하루 종일 코드만 읽었다. 알고리즘 문제는 잘 풀었는데, 남이 짜놓은 실제 코드베이스 안에서는 완전히 다른 사람이 된 것 같았다.

공부와 실무 사이의 갭, 어떻게 좁혔나
공부와 실무 사이의 갭, 어떻게 좁혔나
300+입사 전 푼 알고리즘 문제
3일첫 티켓 완료까지 걸린 시간
4개월갭을 체감한 기간

1. 첫 번째 벽 — "코드가 어디 있는지도 모르겠어요"

강의에서는 항상 빈 프로젝트에서 시작한다. 근데 실무는 완전히 달랐다. 회원가입 폼 하나 고치려면 관련 파일이 12개가 넘게 얽혀 있었고, 어디를 고쳐야 하는지조차 감이 안 왔다.

저... 이메일 중복 체크 로직을 추가하려면 어느 파일부터 봐야 할까요?
사수 SignupForm 컴포넌트에서 시작해서, 거기서 호출하는 API 함수 따라가 보세요. 처음엔 다 낯설 거예요, 저도 그랬어요.

이 짧은 대화 이후로 "코드를 따라가는 능력"이 강의에서는 전혀 연습되지 않은 스킬이라는 걸 깨달았다. 강의는 항상 답을 알려주는 구조였지만, 실무는 방대한 코드 안에서 스스로 경로를 찾아야 했다.

⚠ 그때 느낀 것 강의에서 배운 지식은 "어떻게 만드는가"였지만, 실무에서 먼저 필요한 건 "이미 만들어진 걸 어떻게 이해하는가"였다. 이 순서가 완전히 반대라는 걸 입사 전엔 전혀 몰랐다.

2. 알고리즘은 잘 푸는데 왜 실무 버그는 못 잡을까

코딩테스트 준비하면서 자신 있었던 알고리즘 실력이 실무에서는 크게 도움이 안 됐다. 오히려 발목을 잡은 건 비동기 처리, 상태 관리, 그리고 이미 존재하는 코드와의 상호작용이었다.

코딩테스트에서 훈련한 것
알고리즘 최적화
주어진 입력값 → 정해진 출력값을 만드는 순수 함수 사고
실무에서 실제로 필요한 것
상태와 부작용 추적
여러 컴포넌트, API, 전역 상태가 얽힌 상황을 읽는 능력

이메일 중복 체크 로직을 짜면서, API 호출이 비동기로 일어나는데 그 사이에 사용자가 다른 필드를 수정하면 어떻게 되는지 같은 "실무형 예외 상황"을 전혀 고려하지 못했다. 알고리즘 문제에는 없던 변수였다.

// 처음 짠 코드 - race condition 고려 안 함 const checkEmail = async (email) => { const res = await fetch(`/api/check?email=${email}`); setIsDuplicate(res.duplicate); // 이전 요청이 늦게 와서 최신 상태를 덮어씀 }; // 사수 리뷰 후 수정 - 최신 요청만 반영 const latestRequestId = useRef(0); const checkEmail = async (email) => { const id = ++latestRequestId.current; const res = await fetch(`/api/check?email=${email}`); if (id === latestRequestId.current) setIsDuplicate(res.duplicate); };
체감 격차 비교
알고리즘 능력
 
코드베이스 탐색
 
비동기·상태 감각
 
입사 전 학습으로 다져진 영역 입사 후 처음 마주한 영역

3. 갭을 좁히기 위해 실제로 한 것들

막막함을 느끼고 나서, 무작정 다시 강의를 듣는 대신 방법을 바꿨다. 실제로 4개월 동안 시도한 것들을 정리하면 이렇다.

1개월 차
새 기능 추가 대신, 기존 코드에 있는 사소한 버그 티켓만 골라서 자원했다. 코드를 읽는 연습이 우선이라고 판단했다.
2개월 차
사수의 PR을 정독하는 습관을 들였다. 내 PR이 아니어도, 왜 이렇게 짰는지 궁금한 부분은 따로 메모해뒀다가 물어봤다.
3개월 차
사이드 프로젝트를 접고, 회사 코드베이스의 오래된 컴포넌트 하나를 골라 리팩토링을 자원했다. 실전 코드로 연습하는 게 훨씬 효과적이었다.
4개월 차
처음으로 복잡한 기능(장바구니 동시성 처리)을 큰 도움 없이 완료. 코드베이스 탐색 속도가 눈에 띄게 빨라졌다.
💡 실전 팁 입사 초반엔 새로운 걸 만들기보다 "이미 있는 코드를 고치는 티켓"을 먼저 맡는 게 훨씬 빠른 성장 경로였다. 기존 코드를 읽는 근육이 먼저 생겨야, 이후에 새 기능을 만들 때도 코드베이스에 자연스럽게 녹아드는 코드를 짤 수 있었다.

4. 지금 와서 돌아보면 — 공부 방식 자체를 바꿔야 했다

입사 전으로 돌아간다면, 강의 개수를 늘리는 대신 오픈소스 프로젝트의 실제 코드를 읽는 시간을 늘렸을 것 같다. 알고리즘 공부가 무의미했다는 게 아니라, 실무에 필요한 능력의 절반 정도만 채워주는 공부였다는 게 뒤늦게 보였다.

입사 1주 차 — 자신감2 / 10
 
입사 2개월 차 — 자신감4 / 10
 
입사 4개월 차 — 자신감7 / 10
 
4개월 후 결론

공부와 실무 사이의 갭은 지식의 양이 아니라 "어떤 종류의 지식인가"의 문제였다. 알고리즘, 문법, 프레임워크 사용법은 강의로 채워졌지만, 코드베이스를 읽고 기존 시스템과 조화롭게 코드를 얹는 능력은 오직 실전에서만 길러졌다.

"공부는 재료를 준비하는 과정이었고, 실무는 그 재료로 요리하는 법을 배우는 과정이었다."
2026년 현재는 신입 온보딩 과정에서 처음부터 실제 버그 티켓을 부여하고 기존 코드 리딩을 우선 훈련시키는 팀이 점점 늘고 있다는 이야기를 여러 회사 개발자들에게 듣고 있다. 다만 온보딩 방식은 회사와 팀 문화에 따라 차이가 크므로, 신입이라면 자신이 속한 팀의 온보딩 방식에 맞춰 유연하게 학습 계획을 조정하는 게 좋다.

결론

강의와 문제풀이로 쌓은 실력이 헛되지 않았지만, 그것만으로는 실무의 절반밖에 준비되지 않는다는 걸 뼈저리게 느꼈다. 진짜 갭을 좁힌 건 이미 존재하는 코드를 꾸준히 읽고, 사소한 버그부터 차근차근 고쳐나가는 시간이었다. 지금 취업을 준비하고 있다면, 강의 개수를 늘리기보다 실제 오픈소스나 사이드 프로젝트의 코드를 소리 내어 읽어보는 연습을 함께 해보길 권하고 싶다.

여러분은 그 갭을 어떻게 좁히셨나요?

공부와 실무 사이에서 겪은 시행착오나 갭을 좁히는 데 도움이 됐던 방법이 있다면 댓글로 공유해주세요. 지금 취업을 준비 중이거나 갓 입사한 분들께 큰 도움이 될 것 같습니다.


소개 및 문의 · 개인정보처리방침 · 면책조항

© 2026 나무핀