본문으로 건너뛰기

3년 차

무료2019-07-13#Mind

10년 발자취의 3년 차

0. 돌아보며

어느덧 서로 빚진 것이 없는 연차에 다다르고 나서야, 양측이 어떻게 보상해 왔는지 깨달았습니다:

5년의 청춘 <-> 리소스와 기회

학습 성과

51개의 블로그 포스트 중:

  • TypeScript: TS 특징 x19, d.ts x1

  • VS Code: VSCode 확장 프로그램 x3

  • React: React 신기능 x9, Taro x1

  • 표준: ESn x3, Generator 및 Async function x1

  • 백엔드 관련: Query Builder x1, 토큰 로그인 x1, BFF x1

  • Node.js: Node.js 10년 역사 x1

  • 컴파일러 원리: 이론 x1, 구현 x1

  • 함수형 프로그래밍: Haskell x1, 부작용 처리 방식 x1

  • 도구: Git Submodule x1, Babel x1, Lottie x1

  • 토이 프로젝트: emoji utils x1

  • CSS: CSS Feature Query x1, Flexbox 계산 규칙 x1

TypeScript라는 큰 배에 올라타 반년이라는 시간을 쏟아부었고, VS Code의 몇 가지 비밀을 알아냈습니다. React의 신기능은 겨우 따라가는 수준이며, 백엔드의 기초적인 공백을 하나씩 메워가고 있습니다. ES 표준은 3년 치를 한꺼번에 보충했고, 함수형 프로그래밍은 일단락되었으며, 도구와 토이 프로젝트, CSS 등은 거의 웹 환경을 떠났습니다... 기술적 지식은 많이 쌓였지만, 기술적 역량으로 변환되어 가치로 출력된 것은 많지 않습니다. 지식의 경계가 뒤로, 아래로 확장되고 있습니다.

목표 달성도

  • 프런트엔드 기술 생태계는 React 체계와 그로부터 파생된 Taro 등 크로스 플랫폼 솔루션에 집중했습니다.

  • 이상적인 프레임워크에 대한 생각은 더 진전되지 않았고, 실천할 시나리오도 부족했습니다.

  • 알고리즘은 몇몇 세부 사항을 파고들었으나, 이 역시 실제 시나리오 부족으로 지속되지 못했습니다.

  • 발표 기술 면에서는 진전이 없었습니다. 습관이 깨진 뒤로 지금까지 방치된 상태입니다.

  • 디자인 미감은 깊게 들어가지 못하고, 이전의 정렬과 대비 같은 상식 수준에 머물러 있습니다.

  • 사고 면에서 몇몇 깨달음은 있었으나 아직 체계적이지 않으며, 자신만의 사고 모델을 형성하지 못했습니다.

  • 영어는 오히려 퇴보하여, 익숙했던 단어조차 기억이 가물가물해지고 있습니다.

메인 라인인 React 체계에서만 약간의 성과가 있었을 뿐, 프레임워크, 알고리즘, 발표, 디자인, 영어 등은 거의 향상되지 않았습니다. 전반적인 달성도가 매우 낮습니다. 실제 행동이 계획에서 벗어났는데, 의지력이 예전만 못한 점도 있고 계획 자체가 적절하지 않았을 수도 있습니다.

성장 과정

1년 동안 작성한 50개의 심경 기록 중:

  • 계획 부족: 시간과 효율 x11, 목표 지향 x3

  • 사고 시작: 사고와 반성 x4, 주도성과 변화 x4

  • 자제력 하락, 깨져버린 몇몇 습관: 느린 템포와 끈기 x8, 자제 x4

  • 얻은 것: 감상 x12, 경험 x2

시간 관리와 효율 문제는 여전히 해결되지 않았습니다. 사고력은 의식적으로 강화하고 있으며 경험과 깨달음은 점차 늘고 있지만, 자제력은 눈에 띄게 하락했습니다.

10월부터 시작된 반년간의 '장인 정신 집중'은 지난 3년 중 유일하게 길고 연속적으로 시간을 투입한 시기였습니다. 지속적인 리소스 지원 아래 몇몇 지점을 극한까지 밀어붙였으며, 그 과정에서 VS Code, TypeScript와 깊은 인연을 맺었습니다.

1. 깨달음

시스템적 사고

기술을 시스템적 관점에서 더 많이 사고하고, 체계화 능력을 강화하라.

이 피드백을 받은 날부터 '시스템화'의 정의에 대해 이따금 고민했습니다. 도대체 어떤 사고방식이 시스템적인 것일까요?

1.5년이 지나서야 '시스템화'의 유의어가 '연결고리(Link)'와 '선순환(Closed Loop)'이라는 것을 이해했습니다. 즉 '연결고리의 관점에서 사고하는 것'이고, 이를 더 정제하여 '완결적 사고'라고 이름 붙였습니다. 정답에 가까워진 것 같았지만, 여전히 무언가 거리가 느껴졌고 손에 잡힐 듯 잡히지 않았습니다.

최근에서야 가장 적절한 해석은 사실 '스토리(화)'라는 것을 깨달았습니다.

시스템적 사고란 이야기의 각 부분을 긴밀하게 연결하는 것이다.

배경이 있고, 중심이 있고, 메인 라인이 있으며, 맥락이 있어야 합니다. 어떤 일을 큰 배경 위에 올려두고 그 중심 의미를 명확히 한 뒤, 메인 라인을 확장하고 연관된 사건과 역할을 추가하여 맥락을 형성하면 하나의 시스템이 됩니다. 다음의 나뭇잎 모델처럼 말이죠:

[caption id="attachment_1981" align="alignnone" width="969"]leaf model leaf model[/caption]

따라서 시스템적 사고는 전체적인 시각에서 문제를 분석하는 방법입니다. 문제와 메인 라인, 그리고 큰 배경을 연결하는 것이 소위 말하는 '연결고리'이며, 순환하는 형태는 '선순환'입니다.

모델

수학 분야에서 모델의 유의어는 공식입니다. 실제 문제를 묘사하기 위해 수학적 모델을 세우고, 수학 문제를 풀어 실제 문제를 해결하는 것이죠. 이러한 모델링 사고는 사실 모든 문제에 적용 가능합니다. 예를 들어 페이(飞) 형이 말한 것처럼요:

몇 번을 말합니까, 플랫폼의 모델로 요구사항을 측정하세요. 아무 기능이나 막 집어넣지 말고.

모든 제품에는 그에 적합한 것과 해서는 안 될 것을 결정하는 모델 속성이 있습니다. 마찬가지로 모든 솔루션에는 대응하는 모델이 있으며, 문제를 해결하는 과정은 다음과 같습니다:

  1. 문제를 모델에 대입한다.

  2. 모델을 실행하여 해를 구한다.

어떻게 대입하느냐가 관관입니다. 모델이 해결해야 할 문제지만 현재 모델로는 직접 해결할 수 없는 문제에 직면했을 때, 두 가지 선택지가 있습니다. 반대로 모델을 풍성하게 개선하거나, 기존 모델을 통해 다소 우회적인 방식으로 해결하는 것입니다. 따라서 많은 경우, 모델의 건전한 발전을 위해 후자를 선택해야 하며 심지어 필수적일 때도 있습니다.

듣기와 말하기

듣는 것보다 우리는 항상 말하기를 더 갈망합니다. 본능적으로 표현하고 싶고, 인정을 받고 싶으며, 경청과 존중을 받고 싶어 하기 때문입니다.

인간은 태어날 때부터 소리를 낼 수 있습니다. 우렁찬 울음소리로 우주를 향해 "Hello World"를 외치며, 갓 태어난 생명의 힘으로 "나 여기 있어, 이게 바로 나야"라고 선언합니다.

하지만 듣는 것이 말하는 것보다 더 큰 힘을 가질 때가 많습니다. 동시에 경청은 토로하는 것보다 훨씬 어렵습니다. 《화성에서 온 남자, 금성에서 온 여자》라는 책에서 경청의 중요성을 처음 배웠습니다.

스트레스를 받는 여자는 당장 문제를 해결하고 싶어 하지 않습니다. 먼저 자신의 진솔한 감정을 말함으로써 타인의 이해와 공감을 얻고 싶어 합니다. 그래야만 비로소 안도감과 편안함을 느낍니다.

듣지 않고 일방적으로 말하기만 하는 것은 무의미합니다:

남자는 여자의 기분이 좋지 않은 것을 보면 서둘러 '해결사'의 모자를 쓰고 여자의 문제를 지적하며 해결책을 제시하려 합니다. 하지만 이는 여자를 더 기분 나쁘게 만들 뿐입니다!

사람을 파이프라인으로 본다면 듣기는 입력 방식이고 말하기는 출력 방식입니다. 듣고 나서 가공한 뒤 말하는 것이 '이해'이고, 두 파이프라인이 연결되는 것이 '공감'입니다.

내가 블로그를 쓰는 이유

처음 알게 되었을 때만 해도, 매주 블로그 포스팅을 끝내기 전까지는 절대 밖에 나가지 않았죠.

벌써 알고 지낸 지 1년이 되었으니, 이제는 이렇게 바뀌었습니다:

당신이 이틀 동안 블로그만 쓰는 걸 지켜봤네요.

그렇다면 왜 블로그를 쓸까요? 왜 매주 쓸까요?

형식적으로는 대부분 기억하지 못하기 때문에 기록합니다. 또 어떤 것들은 굳이 외울 필요 없이 필요할 때마다 찾아보면 되는 것들이죠. 따라서 블로그는 대부분 자신을 향한 것이며, 지식을 정리하고 경험을 요약하는 데 주안점을 둡니다. 앞을 내다보는 예언도, 역사를 꿰뚫는 통찰도 드뭅니다.

매주 한 편씩 쓰는 이유는, 그 무렵부터 시간이 주 단위로 강제되어 고속으로 회전하기 때문입니다. 버전 번호는 하나씩 계속 커지고, 달력은 한 줄씩 빠르게 회색으로 변해갑니다... 블로그는 주간 보고와 비슷하게 주기적인 반성과 축적의 과정입니다. 그리고 일주일은 어느 정도의 진척을 내고 경험을 얻기에 적당한 기간입니다.

매주 반복되는 과정은 운동장에 펼쳐진 궤적과 같습니다. 일단 멈춰서 숨을 고르면 거기서 끝나버릴지도 모릅니다. 따라서 주기는 일종의 구속이며, 가장 포기하고 싶을 때도 깨뜨리고 싶지 않은 습관입니다.

다른 한편으로 블로그 작성은 사실 창조의 과정입니다. 단순한 자료 정리가 아니라 내면화하고 정제하는 과정이죠. 그 과정에서 새로운 발견을 하기도 합니다. 따라서 모든 글에는 그만의 영혼이 깃들어 있으며, 지식의 인덱스와도 같습니다. 예를 들어:

이러한 보완 덕분에 Class는 완전한 컴포넌트 특성을 갖춘 유일한 선택지가 되었습니다. 비록 Class에도 많은 문제가 있지만, 그것은 대체 불가능합니다. — 《함수형 컴포넌트의 부상》

Query Builder는 Query의 생성과 직렬화를 분리했습니다. — 《Raw SQL, Query Builder와 ORM》

진정으로 내적 연관이 있는 코드가 생명주기에 의해 쪼개졌고, 전혀 상관없는 코드가 결국 한 메서드 안에 모이게 되었습니다. — 《React Hooks 소개》

더 흥미로운 점은 Render Props와 HOC가 서로 변환될 수도 있다는 것입니다. — 《React 컴포넌트 간 로직 재사용》

영혼이 없는 글은 인터넷 기억 속의 쓰레기일 뿐입니다.

한쪽 다리로 10년 걷기

한쪽 다리로 10년을 걸었다니 정말 쉽지 않았겠네요. 이제는 다른 쪽 다리를 천천히 자라게 할 때입니다.

선배는 순수 기술 루트를 10년 동안 걸어온 뒤, 이 방향의 한계와 끝을 본 것 같았습니다:

현장에서 일한 지 거의 10년이 된 이 시점에서, 순수 전문 기술이라는 길이 팀에 더 큰 가치를 제공할 수 있는 공간이 점점 좁아지고 있음을 발견했습니다.

앞만 보고 달리는 기술 루트가 점점 '좁아지는' 이유는 파고들 만한 기술을 다 꿰뚫었기 때문이 아니라, 개인의 능력을 계속 강화하는 것만으로는 팀과 기업에 눈에 띄는 기여를 하기 어려워졌기 때문입니다.

즉, 이 단계에 이르면 개인의 기술이 기업에 미치는 가치 출력이 최대치에 가까워진 것입니다. 기술력 향상만으로는 더 이상의 가치 돌파를 만들어내기 어렵기에, 기술 리더라는 역할에서 벗어나 사람이나 일에 대한 전환을 고민해야 합니다.

만약 제가 고집스럽게 10년의 발자취를 다 채운다면, 기술적 성취는 선배만 못할 것이고 사람이나 일에 대한 능력 또한 출중하리라는 보장이 없습니다. 선배는 이미 멀리서 그 끝을 내다보았고, 저는 똑같은 여정 위에서 주저하며 나아가고 있습니다. 다행히 멀리 보이는 뒷모습을 통해 미래를 예견했습니다.

그렇다면 저에게 맞는 루트는 무엇일까요? 어떻게 해야 저만의 색깔을 낼 수 있을까요?

……아직 확정된 답은 없지만, 이제 용기 있게 시도할 때입니다.

2. 목표

4년 차

  • 뒤로: 백엔드로 전향하는 것이 아니라, 프런트엔드에서 뒤로 확장하기

  • 아래로: 알고리즘을 파는 것이 아니라, Node.js C++ 확장 파기

  • 표현: 먼저 듣고 나중에 말하기

  • 사고: 시스템적 사고 능력 강화

  • 흡수: 회사에서 정말 많은 리소스를 제공했는데, 안타깝게도 이제야 깨달았습니다.

더 나은 나를 만나기

평범한 사람은 자신의 실수에서 배우고, 똑똑한 사람은 타인의 실수에서 배운다.

실수뿐만 아니라 올바른 것도 배울 수 있습니다.

영향력 키우기

나중에야 대외적인 출력이 곧 영향력을 출력하는 것임을 깨달았습니다. 이는 일정 수입을 가져다줄 뿐만 아니라 방대한 인맥을 형성해 줍니다. 그렇게 하는 사람이 너무 적기 때문이죠. 출력을 좋아하는 사람은 비슷한 사람을 찾기 마련입니다. 즉, 마태 효과(Matthew Effect)처럼 출력이 많아질수록 영향력도 커지게 됩니다.

기술 지식을 축적하고 공유하는 동시에 개인의 영향력을 출력해야 합니다. 진작 시작했어야 할 일이지만 지금도 늦지 않았습니다:

나무를 심기에 가장 좋은 시기는 10년 전이었고, 그다음으로 좋은 시기는 지금이다.

시간 관리

계획과 시간 관리는 중요합니다. 왜냐하면:

낮은 효율은 열정을 갉아먹기 때문입니다.

의지와 끈기가 전제 조건이긴 하지만, 마일스톤 형식의 단계별 성과 보상 또한 매우 중요합니다. 정속 주행과 변속 주행처럼, 단조로운 정속 주행은 고통과 고뇌를 축적하지만 리듬감 있는 변속 주행은 과정 전체에 활력을 불어넣습니다.

4걸음에 한 번 호흡하고, 6걸음에 한 번 호흡하다가, 결국 자유 호흡법이 가장 편하다는 것을 깨달았습니다.

지식에서 가치로

거시적으로 기술은 비즈니스와 연결되어야 가치를 창출할 수 있습니다. 지식과 비즈니스의 관계를 구체화하면 다음과 같은 역기(Weightlifting) 모델이 됩니다:

 -           -
| |---------| |
 -  \  ○  /  -
     -( )-
      | |
    --   --
   |       |

양팔은 각각 기술 지식과 비즈니스 지식을 대표하며, 두 바벨 원판은 기술 역량과 비즈니스 가치입니다.

즉, 지식이 근육의 강도를 결정하지만 역기 성���은 비즈니스 가치입니다. 더 중요한 것은 강한 근육과 무거운 원판 자체가 아니라, 양팔의 힘이 조화를 이루고 양쪽의 무게가 균형을 이루어야만 넘어지지 않고 멋지게 역기를 들어 올릴 수 있다는 점입니다.

3. 계획

지금 이 순간, 즉시 변화하라.

메인 라인

  • 뒤로

  • 영향력

  • 사고력

서브 라인

  • 발표 기술

  • 아래로

일상

  • 표현

  • 흡수

댓글

아직 댓글이 없습니다

댓글 작성