Rain Lag

하나의 문제 로드맵: 수백 개 튜토리얼보다 ‘한 가지 진짜 문제’가 더 강력한 이유

끝없는 튜토리얼을 따라가기보다, 하나의 실제 문제를 정하고 아주 작게 시작해 그 문제를 중심으로 솔루션을 만들어 가는 편이 개발자로 훨씬 빨리 성장하는 길이다. 이 글에서는 ‘원-프로블럼 로드맵’을 통해 튜토리얼 지옥에서 탈출하는 방법을 설명한다.

하나의 문제 로드맵: 수백 개 튜토리얼보다 ‘한 가지 진짜 문제’가 더 강력한 이유

혹시 튜토리얼 지옥에 빠져본 적이 있는가? 이 강의에서 저 강의로 끝없이 옮겨 다니며, 잘 이해하지 못한 코드를 베껴 쓰고, 일주일만 지나면 거의 다 잊어버리는 느낌 말이다.

당신에게 의지가 부족한 것도 아니다.
머리가 나쁜 것도 아니다.
단지 학습을 이끌어 줄 하나의 구체적인 문제가 없을 뿐이다.

여기서 등장하는 것이 바로 **‘하나의 문제 로드맵(One-Problem Roadmap)’**이다. 수십, 수백 개 튜토리얼을 쫓아다니는 대신, 하나의 진짜 불편함(페인 포인트) 을 정하고, 그걸 제대로 해결하는 데 집중하며, 그 문제를 통해 무엇을 배우고, 무엇을 만들고, 어떻게 성장할지를 스스로 결정하는 방식이다.

이 글에서는, 하나의 문제에 깊게 집중하는 것이 왜 끝없이 컨텐츠를 소비하는 것보다 훨씬 뛰어난 개발자로 성장하게 만드는지, 그리고 그걸 오늘 당장 어떻게 실천할 수 있는지 살펴본다.


왜 100개의 튜토리얼이 당신을 100배 성장시키지 못할까?

튜토리얼을 정주행하다 보면, 보통 이런 일들이 반복된다.

  • 강사를 따라 타이핑하면, 겉으로는 다 이해한 것처럼 느껴진다.
  • 그다음 영상, 그다음 프레임워크, 그다음 디자인 패턴으로 넘어간다.
  • 막상 혼자서 뭔가 만들려고 하면, 머리가 새하얘진다.

이런 일이 벌어지는 이유는 다음과 같다.

  1. 당신은 자신의 문제를 해결하고 있지 않다. 강사가 준비한 장난감 예제를 풀고 있을 뿐이다. 뇌는 진짜로 이해할 필요가 없다. 그냥 베끼기만 하면 된다.
  2. 직접 결정해야 할 일이 없다. 개발에서 가장 어려운 부분은 문법이 아니라, "다음에 뭘 해야 할지"를 결정하는 일이다. 튜토리얼은 이 모든 결정을 대신 내려준다.
  3. 마찰을 겪지 않는다. 이상한 버그, 충돌하는 요구사항, 지저분한 제약 조건 같은 진짜 성장의 재료들을 거의 만나지 못한다.

튜토리얼은 도구일 뿐, 로드맵이 아니다. 분명 쓸모는 있지만, 그걸 어디에 써야 할지 이끌어 줄 명확한 문제가 없으면 결국 잡음이 되어 버린다.


하나의 명확한 문제가 가진 힘

하나의 잘 정의된 문제는, 20시간짜리 여기저기 흩어진 튜토리얼보다 훨씬 큰 성장을 가져올 수 있다.

왜 그럴까? 실제 문제는 당신에게 이런 것들을 강요하기 때문이다.

  • 요구사항을 명확히 해야 한다. 정확히 무엇을 하려는가? 어떤 제약 아래에서?
  • 트레이드오프를 선택해야 한다. 성능 vs. 단순성, 속도 vs. 유지보수성, 완벽함 vs. 일단 끝내기.
  • 결정을 스스로 책임져야 한다. 어떤 스택을 쓸지, 코드를 어떻게 구조화할지, 엣지 케이스를 어떻게 처리할지 직접 정해야 한다.
  • 진짜 고통을 디버깅해야 한다. 망가졌을 때, 이런 일이 일어나는지 이해하지 않으면 앞으로 나아갈 수 없다.

예를 들어 보자.

“React로 뭔가 하나 만들어 보고 싶다”는 말은 너무 막연하다.

“긴 URL을 붙여 넣으면, 공유할 수 있는 짧은 링크를 돌려주는 아주 간단한 웹 앱을 만들고 싶다”는 것은 명확히 정의된 문제다.

두 번째 문장은 곧바로 구체적인 학습 경로를 제시한다.

  • 폼 입력을 어떻게 다루는가
  • 상태(state)를 어떻게 관리하는가
  • API를 어떻게 호출하는가(혹은 직접 API를 만드는가)
  • 데이터를 어떻게 저장하고 다시 불러오는가

이제 10개의 React 튜토리얼을 떠돌 필요가 없다. 지금 당장 필요한 2–3개의 개념만 문제 자체가 알려 준다.


튜토리얼 지옥 탈출법: 바로 적용하지 않으면 잊혀진다

튜토리얼 지옥에서 벗어나는 핵심은, 튜토리얼을 완전히 끊는 것이 아니다. 규칙은 하나다.

배운 것은 반드시 즉시, 내가 주도하는 내 프로젝트에 적용한다.

튜토리얼은 이렇게 사용한다.

  1. 먼저 내 문제를 정한다. 무엇을 만들거나, 무엇을 고치고 싶은지 결정한다.
  2. 막히는 부분이 생긴다. “Next.js에서 인증을 어떻게 구현하지?” “입력 디바운스를 어떻게 하지?” 같은 질문이 나온다.
  3. 그 부분만 해결해 줄 타겟형 튜토리얼이나 문서를 찾는다. 모르는 부분을 메우기에 충분할 정도까지만 본다.
  4. 일시정지하고, 내 프로젝트에 직접 구현한다. 남의 레포를 통째로 복붙하지 말고, 내 상황에 맞게 재구성한다.

이렇게 ‘적용 우선’으로 접근하면, 뇌가 던지는 질문이 이렇게 바뀐다.

  • “어떻게 따라 쓰지?” → “이걸 내 코드에서 어떻게 동작하게 하지?”

이 사소해 보이는 맥락의 변화가 컨텐츠 소비진짜 실력 습득을 가르는 차이다.


극단적으로 작게 시작하라: 한 개념, 한 기능

자기 주도 프로젝트가 실패하는 가장 큰 이유는 단순하다. 처음부터 너무 크다.

우리는 보통 이렇게 생각한다.

“인증, 결제, 대시보드, 알림까지 다 있는 풀 SaaS를 만들어 볼까…”

2주쯤 지나면 압도당하고, 다시 YouTube로 도망친다.

대신 **‘한 기능 규칙(One-Feature Rule)’**을 써보자.

한 가지 개념이나 기능만 고르고, 오직 그것만을 중심으로 프로젝트를 만든다.

예를 들어:

  • “풀 기능 이커머스 스토어” 대신, 실시간으로 합계가 업데이트되는 장바구니(cart) 만 만든다.
  • “완전한 소셜 네트워크” 대신, 글을 올리고 삭제할 수 있는 아주 단순한 피드만 만든다.
  • “완벽한 분석 대시보드” 대신, 하나의 차트와 하나의 필터만 있는 화면을 만든다.

이 정도까지 줌인하면:

  • 범위가 충분히 줄어들어 실제로 끝까지 완성할 수 있다.
  • 구현 세부사항을 더 깊이 파고들 수 있다.
  • 퍼즐의 한 조각을 정말 몸에 익힐 수 있다.

아이러니하게도, 작은 조각 하나를 확실히 익히는 것이, 큰 것 열 개를 어렴풋이 아는 것보다 훨씬 가치 있다.


모든 프로젝트를 ‘진짜 코딩 과제’처럼 대하라

빨리 성장하려면, 어떤 프로젝트든—아무리 작아 보여도—그냥 가볍게 해보는 실험이 아니라 진지한 코딩 챌린지로 다뤄야 한다.

이 말이 과도하게 오버엔지니어링하라는 뜻은 아니다. 대신 이렇게 하라는 의미다.

  • 퀄리티에 책임을 진다. “대충 돌아가니까 됐다” 에서 멈추지 말고, 지금 내 실력으로 생각해 낼 수 있는 최선까지 시도해 본다.
  • 스스로의 선택을 의심해 본다. 왜 이 자료구조를 썼는가? 왜 이런 API 디자인인가? 왜 이건 localStorage에 두고, 저건 DB에 두는가?
  • 다듬고, 다시 다듬는다. 일단 동작하면, “여기서 뭘 정리할 수 있지? 함수로 뺄 수 있을까? 까다로운 부분에 테스트를 붙일 수 있을까?”를 자문해 본다.

예를 들어, 당신의 한 가지 문제가 이렇다고 하자.

“페이지를 새로고침해도 데이터가 날아가지 않는 간단한 할 일(Task) 목록 앱을 만들고 싶다.”

이 문제를 가지고 이렇게 성장할 수 있다.

  • 먼저, 메모리 상태만 쓰는 버전을 만든다.
  • 그다음 localStorage를 붙여 저장/로드를 처리한다.
  • 이후, 빈 제목, 중복 태스크, 잘못된 입력 같은 엣지 케이스를 다룬다.
  • 마지막으로, 코드를 더 읽기 좋고 모듈화되게 리팩터링한다.

겉으로 보면 아주 작은 앱이지만, 이제 이건 당신에게 이런 것들을 가르쳐 주는 진짜 과제가 된다.

  • 상태 관리
  • 데이터 영속성(persistence)
  • 입력 검증(validation)
  • 리팩터링과 코드 구조화

프로덕트 관점으로 생각하라: 진짜 불편함에서 시작하기

‘하나의 문제 로드맵’은, 출발점이 그냥 “재밌어 보이는 아이디어”가 아니라 실제 사용자(혹은 자신)의 불편함일 때 가장 잘 작동한다.

여기서 필요한 사고방식이 프로덕트 디스커버리(product discovery) 다. 코드를 한 줄이라도 쓰기 전에, 다음을 자문해 보자.

  1. 이건 누구를 위한 것인가? 나 자신? 친구? 어떤 특정한 니치 그룹?
  2. 그들은 반복해서 어떤 일에 짜증을 내는가? 매일 혹은 매주 겪는 불편을 찾아라.
  3. 그 불편을 조금이라도 줄여 줄 수 있는, 내가 만들 수 있는 가장 작은 것은 무엇인가? 그 사람의 인생 전체를 해결하려 하지 말고, 딱 한 가지 페인 포인트만 줄이는 데 집중한다.

예를 들어, 이런 것들이 실제 불편함일 수 있다.

  • 버그를 고칠 때마다 어떤 명령어를 썼는지 자꾸 까먹는다.
  • 비개발자인 친구가 매일 같은 이메일 템플릿을 수동으로 복붙해 보낸다.
  • 팀원이 어떤 API 엔드포인트를 이미 테스트했고, 어떤 건 안 했는지 계속 헷갈린다.

이 각각은 곧바로 초점이 잘 잡힌 개발 프로젝트가 될 수 있다.

  • 자주 쓰는 쉘 명령어를 저장하고 태그할 수 있는 작은 CLI 도구
  • 사전에 작성해 둔 이메일을 정해진 시각에 보내 주는 마이크로 툴
  • 엔드포인트 목록과 상태를 관리할 수 있는, 미니멀한 API 테스트 보드

문제가 진짜이면, 다음과 같은 일들이 자연스럽게 따라온다.

  • 프로젝트를 끝까지 마무리하고 싶어진다.
  • 실제 사용에 중요한 디테일을 더 다듬고 싶어진다.
  • 시간이 지나도 이 솔루션을 다시 열어 개선하고 싶어진다.

깊은 스킬 vs. 얕은 스킬: 왜 하나의 문제가 이긴다고 말하는가

얕은 학습은 보통 이런 식이다.

  • React 영상 20개
  • Node 튜토리얼 5개
  • 디자인 패턴 강의 3개

이러면 여러 가지에 대해 들어는 봤지만, 정작 혼자서는 뭘 제대로 만들기 어렵다.

반대로 깊은 학습은 이렇게 보인다.

“2주 동안 인증, 레이트 리미팅(rate limiting), 간단한 분석 기능까지 갖춘 URL 단축기를 하나 만들었다.”

이 한 프로젝트를 통해 당신은 이런 부분들을 건드리게 된다.

  • HTTP와 라우팅
  • 요청 검증(request validation)
  • 데이터 모델링과 영속성
  • 기본적인 보안과 각종 엣지 케이스
  • 성능과 UX 사이의 트레이드오프

그리고 이런 전이 가능한 스킬을 얻게 된다.

  • 큰 문제를 작은 조각으로 쪼개는 능력
  • 문서와 레퍼런스를 효과적으로 검색하고 읽는 능력
  • 처음 보는 에러를 디버깅하는 능력
  • 가상의 시나리오가 아니라, 실제 사용자를 염두에 두고 설계하는 능력

이 능력들은 앞으로 어떤 언어, 어떤 프레임워크, 어떤 스택을 쓰든 그대로 따라온다.


오늘 당장 ‘하나의 문제 로드맵’을 시작하는 방법

시작 방법은 세 단계로 충분하다.

  1. 진짜 페인 포인트를 하나 고른다.
    가장 좋은 소스는 당신의 일상이다. 어떤 작업이 매번 어색하고, 반복적이고, 귀찮게 느껴지는가?

  2. 거의 말도 안 되게 작아 보일 때까지 줄인다.
    여전히 “완성형 앱”처럼 들린다면, 아직 충분히 줄인 게 아니다.

  3. 한 문장으로 성공 기준을 정의한다.
    “이 버튼을 누르면 X가 일어나고, 그 덕분에 하루에 Y분을 아낄 수 있으면 성공이다.”

그다음에는 이렇게 실행한다.

  • 막힐 때만 튜토리얼을 본다.
  • 배운 것은 반드시 내 코드에, 내 상황에 맞게 구현한다.
  • 그 문제가 “이제 진짜 해결됐다”라고 느껴질 때까지 계속 다듬고 반복한다.

마무리: 더 많은 튜토리얼이 아니라, 더 좋은 문제가 필요하다

개발자로 빨리 성장하는 길은 컨텐츠를 더 많이 보는 게 아니라, 더 좋은 문제를 선택하는 것이다.

  • 하나의 명확하게 정의된 페인 포인트는, 연결성 없는 튜토리얼 100개보다 훨씬 값지다.
  • 배운 것을 내 프로젝트에 바로 적용하는 순간, 튜토리얼 지옥에서 벗어나기 시작한다.
  • 극단적으로 작은 범위에서 시작하면, 얕게 넓게가 아니라 깊게 파고들 수 있다.
  • 모든 프로젝트를 진지한 코딩 과제로 대하면, 쌓이는 것은 ‘지식’이 아니라 전이 가능한 실력이다.
  • 프로덕트 디스커버리 관점으로 접근하면, 나와 다른 사람들에게 실제로 의미 있는 문제를 풀게 된다.

이제 할 일은 단순하다.

하나의 문제를 고르라.
그 문제를 더 작게 쪼개라.
그리고 그걸 제대로 해결하는 데 끝까지 책임져라.

그 하나의 문제가 당신의 로드맵이 되게 하라.
그러면 성장 속도가 얼마나 빨라지는지 곧 체감하게 될 것이다.

하나의 문제 로드맵: 수백 개 튜토리얼보다 ‘한 가지 진짜 문제’가 더 강력한 이유 | Rain Lag