Rain Lag

투-티어(Task) 스택: 번아웃 없이 깊이 있는 개발과 불 끄기(파이어파이팅)를 함께 해내는 방법

개발자가 단순한 투-티어(Task) 시스템으로 깊은 몰입 작업을 보호하고, 반응형 업무의 혼란을 통제하며, 번아웃 없이 더 높은 품질의 코드를 배포하는 방법.

투-티어(Task) 스택: 번아웃 없이 깊이 있는 개발과 불 끄기(파이어파이팅)를 함께 해내는 방법

소프트웨어를 업으로 삼고 있다면, 당신의 하루는 대략 이렇게 흘러갈 가능성이 크다.

  • 핵심 기능 개발을 시작하려고 자리에 앉는다.
  • 시작한 지 20분 만에 버그 리포트가 Slack을 터트린다.
  • 프로덕트 팀이 “금방 끝나는” 수정 요청을 보낸다.
  • 동료가 디버깅 도움을 요청한다.
  • 오후 4시가 되면 10가지는 건드렸는데, 끝낸 건… 아무것도 없다.

문제는 당신의 의지가 아니다. 당신이 일하는 시스템 자체다.

이 글에서는 투-티어(Task) 스택을 소개한다. 깊은 개발 작업과 반응형(파이어파이팅) 업무를 분리해 둘 다 처리하되, 끝없는 컨텍스트 스위칭과 느린 번아웃 없이 일할 수 있게 해주는 단순하고 가벼운 방법이다.


왜 당신의 뇌는 일반적인 개발자 업무 패턴을 싫어할까

본론으로 들어가기 전에 먼저 적을 명확히 하자. 그 이름은 **컨텍스트 스위칭(context switching)**이다.

아키텍처 설계 작업을 하다가 지원 티켓에 답변하려고 전환할 때, 뇌는 순간이동하듯 바로 다른 일로 넘어가지 못한다. 뇌는 매번 다음을 수행해야 한다.

  • 현재 머릿속에 올려둔 멘탈 모델(코드, 엣지 케이스, 제약 사항)을 내려놓고
  • 완전히 새로운 컨텍스트(사용자 행동, 로그, 에러 트레이스)를 불러오고
  • 다시 원래 작업으로 돌아올 때 처음의 멘탈 모델을 재구성해야 한다.

연구에 따르면, 잦은 작업 전환은 조용히 생산성을 잠식한다. 엔지니어링 관점에서 보면 이렇게 나타난다.

  • 개발 속도 저하: 항상 ‘시작’만 하고 좀처럼 ‘완료’에 도달하지 못해 일정이 계속 밀린다.
  • 코드 품질 저하: 흐름이 끊기면서 생각이 반만 정리된 채로 끝나고, 엣지 케이스를 놓치고, 미묘한 버그가 숨어든다.
  • 기술 부채 증가: 계속 끌려 다니다 보니 “일단 내보내고 보자”는 결정을 더 자주 내리게 된다.

그리고 사람에게는 또 하나의 대가가 있다. 바로 번아웃이다. 끊임없는 방해 속에서 열심히 일했는데도 성과는 미미하다고 느끼게 되면, 좌절로 이어지기 딱 좋다.

이건 의지를 더 짜내서 해결할 수 있는 문제가 아니다. 주의력의 작동 방식에 맞게 일하는 시스템을 재설계해야 해결된다.


투-티어(Task) 스택: 개요

투-티어(Task) 스택의 핵심 아이디어는 단순하다.

  • 1티어: Deep Dev Work(깊은 개발 작업) – 기능 개발, 아키텍처 설계, 리팩터링, 복잡한 디버깅처럼 **몰입(flow)**과 지속적인 집중이 필요한 일.
  • 2티어: Reactive Firefighting(반응형 불 끄기) – 버그, 지원 티켓, 예기치 못한 장애, “잠깐만” 리더십 요청처럼 인바운드, 긴급, 인터럽트 기반으로 들어오는 일.

보통은 이 둘을 하나의 혼란스러운 할 일 목록에(혹은 더 나쁘게는 머릿속에) 다 섞어 넣는다. 대신 이렇게 한다.

  1. 1티어를 전용 시간 블록으로 계획하고 보호한다.
  2. 2티어는 모아서 한눈에 보이고 통제 가능한 상태로 만든다.
  3. 툴과 워크플로를 활용해 둘을 하나의 건강한 시스템 안에서 엮는다.

목표는 파이어파이팅을 없애는 게 아니다. 그건 불가능하다. 목표는 울타리를 쳐서 깊은 작업 시간을 끊임없이 침범하지 못하게 만드는 것이다.


1티어: 깊은 개발 작업을 위한 플로우 보호하기

딥워크(Deep Work)는 진짜 레버리지가 생기는 곳이다. 핵심 기능을 배포하고, 복잡성을 줄이고, 기술 부채를 갚는 일들이 여기에 속한다. 이런 일에는 방해받지 않는 시간 블록이 필수다.

1. 딥워크 세션을 먼저 일정에 넣어라

집중을 ‘운’에 맡기지 말고, **시간을 박스(timebox)**로 만들어 둔다.

  • 하루에 1–3개 세션, 각 세션은 보통 60–120분 정도로 잡는다.
  • 이 시간은 본인과의 미팅처럼 취급하고, 별 일 없으면 함부로 옮기지 않는다.
  • 캘린더와 상태 메시지(Slack, Teams 등)에 명확히 표시한다.

이 블록이 1티어 시간이다. 이 시간 동안에는 **진짜로 긴급한 상황(예: 프로덕션 장애)**이 아닌 이상 반응형 업무를 하지 않는다.

2. 계획을 귀찮지 않게 만드는 가벼운 도구 사용하기

계획 시스템이 또 하나의 일이 되면 오래 못 간다. 목표는 가볍고 반복 가능한 방식이다.

Jira, Linear, Asana, ClickUp 등 프로젝트/태스크 관리 도구에서:

  • 오직 깊은 작업만 올려두는 1티어 보드 또는 리스트를 하나 만든다.
  • 아침이나 오후에 하루를 계획할 때, 그날의 딥워크 블록에 맞게 1–3개의 태스크만 고른다.
  • 큰 작업은 한 세션 안에 끝낼 수 있는 슬라이스로 쪼갠다.
    • 예: “서비스 레이어 구현” vs. “전체 기능 구현”

시간 추적도, 마찰이 적다면 도움이 된다.

  • 도구에 내장된 타이머나 간단한 ‘시작/중지’ 플러그인을 활용한다.
  • 모든 미세 활동이 아니라 태스크 단위로만 기록한다.

목표는 완벽한 회계가 아니다. 목적은:

  • 실제로 깊은 작업 시간이 어디에 쓰이는지 보이게 하고,
  • 앞으로 비슷한 작업의 예측 정확도를 높이는 것이다.

3. 플로우의 경계를 지켜라

플로우를 유지하려면 다음을 신경 쓴다.

  • 1티어 세션 동안 중요하지 않은 채널은 음소거 또는 알림 끄기를 한다.
  • “방해 금지(Do Not Disturb)” 설정이나 “딥워크 중: 11:30에 복귀” 같은 상태 메시지를 사용한다.
  • 머릿속에 떠오르는 다른 생각이나 아이디어는 바로 처리하지 말고 **스크래치패드(메모장)**에 적어둔다. 그래야 컨텍스트를 바꾸고 싶은 충동이 줄어든다.

플로우는, 뇌가 “중요한 걸 잃어버리지 않을 거야”라고 믿을 때 잘 유지된다.


2티어: 반응형 파이어파이팅 길들이기

반응형 업무 자체는 나쁜 게 아니다. 버그는 고쳐야 하고, 사용자는 도움을 받아야 한다. 문제는 이 일들이 Slack, 메일, 복도 대화 등 온갖 곳에 흩어져 있으면서, 깊은 작업을 끊임없이 방해할 때다.

2티어는 이런 반응형 업무에 전용 차선을 만든다.

1. 모든 것을 한 곳에 모아라

첫 번째 규칙: 채팅이나 머릿속에만 있는 일은 없게 만든다.

  • 작업/프로젝트 도구 안에 2티어 리스트나 보드를 만든다.
  • 버그, 지원 티켓, “잠깐만” 요청 등 반응형 항목이 생길 때마다 태스크로 만든다.
    • 명확한 제목
    • 짧은 설명
    • 우선순위와 마감일(필요하다면)

스택에서 지원한다면, 메시지를 한 번 클릭으로 태스크로 전환하는 연동 기능을 활용한다.

2. 반응형 업무도 시간 블록으로 묶어라

들어오는 대로 바로 처리하는 대신, 묶어서(batch) 처리한다.

대표적인 패턴은 다음과 같다.

  • 리액티브 윈도우(reactive window): 하루 2–3개의 시간대(예: 10–11시, 15–16시)를 2티어 업무 전용으로 잡는다.
  • 로테이션: 온콜(on-call)이나 “인터럽트 담당”을 돌려가며 정해, 그날/그 주에는 한 명이 대부분의 반응형 업무를 맡고 나머지는 보호해 주는 방식.

2티어 윈도우 동안에는:

  • 리스트를 우선순위 순서대로 처리한다.
  • 새로운 딥워크 태스크를 시작하지 말고, 빠르게 끝낼 수 있거나 범위가 명확한 항목 위주로 처리한다.

3. 긴급함은 ‘느낌’이 아니라 ‘규칙’으로 명시하라

스트레스의 상당 부분은 암묵적인 긴급함에서 온다. 뭐든지 즉시 답해야 할 것 같은 압박감 말이다.

팀과 함께 간단한 규칙을 정한다.

  • “진짜 긴급하면 전화나 페이지를 날리고, 아니면 2티어 리스트로 보낸다.”
  • 무엇이 ‘긴급’에 해당하는지 정의해 둔다.
    • 예: 프로덕션 장애, 심각한 데이터 손실, 보안 이슈 등

이렇게 하면 2티어에는 여전히 중요한 일이 쌓이지만, 1티어인 양 위장해서 들어오지는 못하게 된다.


두 티어를 가로지르는 컨텍스트 스위칭 최소화하기

투-티어 스택을 갖추면, 이제 어느 모드에 있는지 의식적으로 선택할 수 있다.

  • 1티어 모드: 시스템 설계, 핵심 기능 개발, 높은 인지 부하가 필요한 일.
  • 2티어 모드: 장애 대응, 지원, 작은 수정 작업.

컨텍스트 스위칭을 줄이려면:

  • 같은 시간 블록 안에 두 티어를 섞지 않는다.
  • 정말 긴급해서 어쩔 수 없이 스위칭해야 할 때는, 떠나기 전에 루프를 닫고(close the loop) 간다.
    • 지금 무엇을 하고 있었는지, 다음에 무엇을 할 것인지, 열린 질문이 무엇인지 짧게 메모로 남긴다.
    • 작업 내용을 커밋하거나, 최소한 stash 해서 안전하게 중단할 수 있게 만든다.

이 작은 습관들이, 나중에 딥워크로 돌아올 때 드는 재진입 비용을 크게 줄여 준다.


프로젝트/워크플로 소프트웨어로 두 티어를 자연스럽게 엮기

툴은 시스템을 복잡하게 만드는 게 아니라, 뒷받침해 줘야 한다. 대부분의 현대 개발 워크플로는 약간의 설정만으로 투-티어 구성을 쉽게 지원할 수 있다.

1. 두 티어를 도구 안에서 명확히 표현하기

메인 도구(Jira, Linear, ClickUp 등)에서 다음 중 하나를 선택한다.

  • 라벨/태그 사용: tier1-deep, tier2-reactive 같은 태그를 붙인다.
  • 또는 두 개의 전용 보드/리스트를 운영한다: “Deep Work”와 “Reactive”로 나눈다.

이 구분이 눈에 잘 띄어야, 필터링과 계획 수립이 빠르게 된다.

2. 티어 단위로 계획하기

스프린트나 주간 계획을 세울 때는:

  • 팀 상황에 맞게 각 티어에 용량(capacity) 예산을 분배한다.
    • 예: 1티어 60–70%, 2티어 30–40%
  • 1티어 업무는 스프린트 계획에 명시적으로 끌어온다.
  • 2티어는 예기치 못한 항목을 수용하려고 약간 덜 채워 둔 상태로 유지한다.

이렇게 하면, 반응형 업무량이 기능 개발 일정에 영향을 준다는 사실을 이해관계자에게 투명하게 보여 줄 수 있고, 실제 데이터로 설명할 수 있다.

3. 워크플로는 가볍게 유지하기

시스템이 ‘관리 비용’처럼 느껴지면 오래 못 간다. 다음 정도만 지킨다.

  • 칸반 보드 컬럼 수는 최소한으로 유지한다.
  • 자동화할 수 있는 것은 자동화한다.
    • 예: Slack 메시지 → 태스크, GitHub 이슈 → 2티어 보드
  • 주 1회 정도 짧게 리뷰한다.
    • 뭐가 잘 작동하는지
    • 뭐가 시끄럽고 거슬리는지
    • 무엇을 더 단순화할 수 있는지

검증 기준은 단순하다. “이 시스템 덕분에 하루가 더 예측 가능하고 관리하기 쉬워졌는가?” 만약 아니라면, 과감히 덜어낸다.


번아웃 없이 반복 가능한 시스템으로 만들기

영웅적인 노력에 의존하는 프로세스는 반드시 실패한다. 투-티어 스택은 컨디션이 좋지 않은 날에도 돌아가야 한다.

지속 가능하게 만들려면:

  • 작은 의식(ritual)을 표준화한다.
    • 하루 시작 또는 끝에 10–15분 정도를 써서, 내일의 1티어 태스크와 2티어 윈도우를 정한다.
    • 주 1회 짧은 리뷰로 두 티어 간의 업무 균형을 다시 맞춘다.
  • 지금 내가 어느 모드인지 공유한다.
    • 팀에, 언제 딥워크 모드이고 언제 리액티브 모드인지 알리고
    • 진짜 긴급 상황일 때는 어떻게 연락해야 하는지도 함께 정의한다.
  • “지금(now)” 대신 “언제(when)”를 기본으로 답한다.
    • 바로 반응하는 대신 이렇게 답한다.
      • “이건 오늘 오후 3시 리액티브 윈도우에 처리할게요. 그때까지 기다리기 어렵다면 알려 주세요. 더 일찍 전환하겠습니다.”

이렇게 하면 기대치가 자연스럽게 조정되고, 과도하게 경직되지 않으면서도 집중력을 지킬 수 있다.


결론: 코드를 설계하듯, 주의력 시스템도 설계하라

깊은 개발 작업과 반응형 파이어파이팅은 엔지니어링에서 항상 공존한다. 질문은 이것뿐이다. 둘이 무질서하게 경쟁할 것인가, 아니면 사람의 인지 구조를 존중하는 시스템 안에서 공존할 것인가.

투-티어(Task) 스택은 다음을 가능하게 해준다.

  • 플로우를 위한 보호된 공간을 만들어, 더 적은 버그로 더 높은 품질의 코드를 배포하게 한다.
  • 인터럽트 처리에 질서를 부여해, 긴급한 일은 처리하되 나머지 모든 것을 탈선시키지 않게 한다.
  • 가볍고 반복 가능한 워크플로로, 번아웃을 줄이면서도 관리 부담은 최소화한다.

일주일만 이렇게 시도해 보자.

  1. 내 역할에서의 1티어와 2티어를 정의한다.
  2. 하루에 1–2개의 딥워크 세션을 캘린더에 먼저 박아 둔다.
  3. 모든 반응형 업무를 모으는 단일 수집 지점을 만들고, 이를 처리할 전용 시간 블록을 정한다.

그리고 관찰해 본다.

  • 더 의미 있는 일을 완료하는 횟수가 늘어났는가?
  • 하루가 덜 혼란스럽게 느껴지는가?

그렇다면, 계속 다듬어 가면 된다.

당신은 이미 사용자와 인프라를 위한 견고한 시스템을 설계하고 있다. 투-티어(Task) 스택은 당신 자신의 주의력을 위한 견고한 시스템을 설계하는 일이다. 그래야 번아웃에 소모되지 않고, 최고의 엔지니어링을 오래도록 이어갈 수 있다.

투-티어(Task) 스택: 번아웃 없이 깊이 있는 개발과 불 끄기(파이어파이팅)를 함께 해내는 방법 | Rain Lag