Do localhost para o mundo
Por muito tempo eu acreditei que programação e desenvolvimento de software como sinônimos. Na...
개요 #
코딩을 할 줄 아는 것과 개발자로 일하는 것은 같은 능력이 아니다. Bruno Freschi는 오랫동안 프로그래밍과 소프트웨어 개발을 같은 말로 여겼지만, 실무에 들어가 보니 둘이 전혀 다른 기술이라는 걸 깨달았다고 말한다. 강의를 끝내고 개인 프로젝트까지 만들어 본 사람도 막상 채용 시장 앞에서 막막함을 느끼는 이유가 바로 여기에 있다.
잘 짜인 연습문제의 세계 #
프로그래밍을 배울 때의 환경은 통제돼 있다. 시작과 끝이 분명한 연습문제 안에서 작업한다.
- 문제는 완벽하게 정의돼 있다.
- 코드는 백지에서 새로 만든다.
- 등장하는 모든 조각을 내가 알고 다룰 수 있다.
문제는 이렇게 훈련을 마쳐도 정작 일할 준비가 됐다는 느낌이 들지 않는다는 점이다. 그러다 첫 직장이 찾아오고, 함께 충격도 찾아온다.
"CRUD는 만들 수 있는데 회사 프로젝트는 도무지 이해가 안 된다. 왜 기여를 못 하지?"
이건 능력이 부족하다는 뜻이 아니다. 지금까지 '프로그래밍'을 훈련해 왔을 뿐이고, 이제부터 실제 환경에서 '소프트웨어 개발'을 시작한다는 뜻이다. 지극히 자연스러운 단계다.
Photo by RealToughCandy.com on Pexels
localhost에서 세상으로 #
첫 직장에서는 풍경이 완전히 바뀐다. 백지 화면 대신, 파일 수천 개와 라이브러리 수십 개가 얽힌 애플리케이션을 넘겨받는다. 거기엔 몇 년간 쌓인 비즈니스 규칙, 한 번도 갚지 못한 기술 부채, 그리고 이제는 회사에 남아 있지도 않은 사람들이 내린 결정이 함께 묻어 있다.
과제 자체가 달라진다. *"어떻게 해법을 만들까"*가 아니라 **"이미 존재하는 해법을 어떻게 이해할까"**가 된다.
시장에서 가장 큰 난관은 언어 문법이나 코드 작성이 아니다. 맥락을 파악하는 일이다. 첫 몇 달은 복잡한 알고리즘이 아니라 이런 질문들로 채워진다.
- 프로젝트를 어떻게 실행하지?
- 비즈니스 규칙은 어디에 있지?
- 이 API는 누가 호출하지?
- 다른 기능을 깨뜨리지 않고 이걸 고칠 수 있을까?
병목은 문법이 아니다. 생태계다.
전통적인 학습 트랙이 가르치지 않는 것 #
대부분의 강의는 기초를 다룬 뒤 곧바로 다음 같은 개념으로 건너뛴다.
- 객체지향(OOP)
- SOLID
- 디자인 패턴
모두 중요하다. 하지만 정작 다음과 같은 능력은 거의 아무도 가르치지 않는다.
- 코드를 읽는 일
- 코드베이스를 탐색하는 일
- 버그를 추적하고 애플리케이션을 디버깅하는 일
- Git을 다루는 일
- 코드 리뷰에 참여하는 일
- 불완전하거나 모호한 요구사항을 해석하는 일
실무에 들어가면 질문의 초점이 *"이 문제를 어떻게 풀까?"*에서 **"시스템 나머지를 깨뜨리지 않고 이 문제를 어떻게 풀까?"**로 옮겨 간다.
이 전환이 사고방식을 통째로 바꾼다. 개발자는 해법만 다듬던 단계를 지나, 유지보수와 영향 범위, 위험, 의존성, 변경 비용까지 함께 따지게 된다.
첫 몇 달을 버텨내기 #
이 현실을 조금이라도 바꾸려면, 실무 일상에 더 가까운 토대가 필요하다. 고립된 연습문제는 줄이고, 기존 프로젝트에 들어가 버그를 고치고, 쓰는 것보다 더 많이 읽고, 비즈니스 규칙과 씨름하는 쪽에 무게를 싣는 방식이다.
첫 직장에서의 성패를 가르는 건 디자인 패턴을 달달 외우고 있느냐가 아니다. 낯선 코드베이스에 들어가 조금씩 적응하면서, 안전하게 변경을 만들고 팀에 가치를 더할 수 있는 사람이 되어 가는 능력이다.
Bruno Freschi는 이런 장면을 좀 더 실전에 가깝게 옮겨 보고자 **"Do localhost para o mundo(localhost에서 세상으로)"**라는 시리즈를 준비하고 있다. 운영 중인 애플리케이션에서 벌어지는 문제들을 시뮬레이션하고 비슷한 도전 과제를 직접 던지는 저장소도 함께 만들 계획이라고 한다.
앞으로 다룰 내용 #
- 프로젝트 접근 권한을 받았다. 이제 뭘 하지? — 첫날, 클론하고 환경을 띄우기
- Git — 실제 흐름 속의 브랜치, 머지, 리베이스, 풀 리퀘스트
- 내가 쓰지 않은 코드 읽기 — 엔트리포인트를 찾고 흐름을 따라가며 디버거 활용하기
- 첫 번째 작업 찾기 — 카드를 이해하고, 버그를 재현하고, 영향 범위를 가늠하기
커피를 준비해 두자. 다음 글에서 만나자.
이 글은 위 출처를 바탕으로 한국 독자를 위해 재작성한 기사입니다. 원문의 사실과 수치에 근거하며, 별도의 견해를 포함하지 않습니다.

