SingleFocus

주니어 개발자들을 위한 패턴 언어 - 혼란을 방지하고 작업의 완결성을 높이는 일인(一人) 집중의 기술

The Story 1: The Multi-Tasking Chaos vs. The Laser Focus (Programming)

두 명의 개발자, 민수와 하나가 '버그 수정과 기능 개선' 작업을 동시에 진행하고 있다.

민수의 작업 방식 (The Juggler): 민수는 의욕이 넘친다. 버그를 잡으려고 코드를 열었다가, 근처에 있는 지저분한 코드를 발견하고 리팩토링을 시작했다. 그러다 갑자기 새로운 기능 아이디어가 떠올라 그 부분도 건드렸다. "이것도 고치고 저것도 고치면 금방 끝나겠지?" 1시간 후, 민수의 화면에는 10개의 파일이 열려 있고, 수많은 수정 사항이 뒤섞여 있었다. 테스트는 빨간색이었고, 민수는 자신이 처음에 어떤 버그를 잡으려 했는지조차 잊어버렸다. 그는 결국 모든 변경 사항을 되돌려야 했다.

하나의 작업 방식 (The Laser): 하나는 철저히 한 번에 하나만 한다.

  1. 먼저 버그만 잡는다. (수정 완료 -> 테스트 통과 -> 커밋)

  2. 그 다음, 리팩토링을 한다. (수정 완료 -> 테스트 통과 -> 커밋)

  3. 마지막으로 새로운 기능을 추가한다.

하나는 각 작업 사이에 명확한 경계선을 그었다. 작업이 바뀔 때마다 뇌를 비우고 다시 집중했다. 하나는 민수보다 느려 보였지만, 단 한 번의 실수도 없이 모든 작업을 마쳤다.

The Story 2: The Chef's Kitchen (Ordinary Life)

민수와 하나는 각자 집에서 '파스타 요리'를 하고 있다.

민수의 요리 (The Distracted Cook): 민수는 소스를 끓이는 동안 휴대폰으로 유튜브를 보고, 동시에 빨래를 널러 베란다로 나갔다. 그러다 초인종이 울려 택배를 받으러 현관으로 달려갔다. 주방으로 돌아왔을 때, 소스는 이미 바닥에 눌어붙어 타버렸고, 민수는 소금에 간을 했는지조차 기억나지 않아 소금을 두 번 넣고 말았다. 민수의 저녁 식사는 엉망이 되었다.

하나의 요리 (The Focused Chef): 하나는 요리를 시작하며 휴대폰을 거실에 두었다. 소스를 끓이는 동안에는 오직 소스의 색과 향에만 집중했다. "지금은 마늘을 볶을 시간이야." 하나는 소스가 완성되어 불을 끈 후에야 비로소 빨래 바구니를 집어 들었다. 그녀의 파스타는 완벽한 맛과 풍미를 유지했다. 한 번에 한 가지 일에만 정성을 쏟는 것이 가장 완벽한 결과를 만드는 길임을 하나는 알고 있었다.

Context

여러 가지 할 일이 쌓여 있다. 버그도 잡아야 하고, 코드도 정리해야 하며, 새로운 기능도 구현해야 한다. DetectiveWork 중이거나 BabySteps를 밟고 있는 상황이다.

일상적인 상황:

당신은 지금 여러 마리의 토끼를 동시에 쫓느라 한 마리도 잡지 못하고 있다.

Problem

동시에 여러 목표를 추구하면 컨텍스트 스위칭 비용이 발생하고, 작업의 인과관계가 꼬여버린다.

Solution

한 번에 정확히 한 가지 목표만 설정하고, 그 일이 완전히 끝날 때까지 다른 유혹을 차단하라.

작업의 리듬을 "하나씩, 확실하게" 가져가는 것이 가장 빠른 길이다.

Principle 1: Separate "Red" and "Green" (빨강과 초록의 분리)

버그를 잡는 일(Red -> Green)과 코드를 정리하는 일(Green -> Green)을 절대로 섞지 마라.

Principle 2: Finish Before Moving On (마침표 찍기)

한 가지 작업이 끝나면 반드시 AtomicCommit을 하거나 최소한 테스트 통과를 확인하라.

Principle 3: Make a Small To-Do List (작은 할 일 목록)

작업 중에 떠오르는 다른 생각들은 즉시 포스트잇이나 텍스트 파일에 적어라.

Principle 4: Deep Debugging (심층 디버깅 시의 집중)

DetectiveWork 중일 때는 오직 '증거 수집'과 '가설 검증'에만 집중하라.

Real Examples

Example 1: The Refactoring Trap

버그를 수정하려고 클래스를 열었는데, 메서드들이 너무 길어서 읽기 힘들다.

Example 2: The "By the way" Fix

UI 레이아웃을 고치다가 API 호출 로직의 비효율을 발견했다.

Common Pitfalls

"It's just a small change!" (잠깐이면 되는데!)

오타 하나 고치는 것도 컨텍스트를 깨뜨릴 수 있다. 지금 하던 일의 흐름이 정말 중요하다면 그 작은 수정조차 미뤄라.

Feeling Slow (느리게 느껴짐)

한 번에 하나씩 하면 느린 것 같아 불안할 수 있다. 하지만 "다시 하는 시간"과 "디버깅하는 시간"을 합치면 훨씬 빠르다는 것을 기억하라.

Losing Track (기억 상실)

적어두지 않으면 잊어버릴까 봐 지금 바로 하려고 한다. 그래서 메모가 중요하다.

Connection to Other Patterns

Signs of Success

The Ultimate Insight

집중력은 유한한 자원이다. 렌즈를 하나에 맞출 때 비로소 불꽃이 일어난다.

멀티태스킹은 뇌를 속이는 환상일 뿐입니다. 진정한 속도는 가장 중요한 한 가지를 끝까지 밀어붙여 완결 짓는 데서 나옵니다. 하나만 하십시오. 그리고 제대로 하십시오.


CategoryPatternLanguage CategoryProgramming CategoryMindset CategoryAgile

SingleFocus (last edited 2025-12-30 08:59:28 by 정수)