- Authors

- Name
- Youngju Kim
- @fjvbn20031
- 들어가며: 왜 엔지니어에게 철학인가
- 스토아주의: 통제할 수 있는 것에 집중하기
- 실용주의: 작동하는 것이 진리다
- 본질주의: 더 적게, 더 낫게
- 장인정신: 일 자체를 존중하기
- 불확실성을 다루는 법: 판단의 보류
- 비교의 함정과 자기 기준
- 과한 자기계발의 함정 경계하기
- 배움과 성장에 적용하기
- 일에 적용하기: 통합 프레임워크
- 아침과 저녁의 의식: 철학을 습관으로
- 대화 예시: 철학을 실제 상황에 적용하기
- 실천 체크리스트
- 마치며: 도구로서의 철학
들어가며: 왜 엔지니어에게 철학인가
철학이라고 하면 대개 두 가지 반응이 나옵니다. 하나는 "그건 한가한 사람들의 사치"라는 냉소이고, 다른 하나는 "인생을 바꿔줄 비밀이 거기 있다"는 과장된 기대입니다. 저는 둘 다 틀렸다고 생각합니다.
엔지니어의 일은 본질적으로 불확실성과 통제 불가능성을 다루는 일입니다. 빌드는 깨지고, 의존성은 어느 날 갑자기 사라지며, 잘 짠 코드도 예상 못 한 입력 앞에서 무너집니다. 동료의 코드 리뷰는 가끔 날카롭고, 면접 결과는 통제할 수 없으며, 회사의 방향은 한 사람의 노력으로 바뀌지 않습니다. 이런 환경에서 마음을 어떻게 둘 것인가 — 이건 추상적 질문이 아니라 매일 부딪히는 실무 문제입니다.
고대 스토아 철학자들과 19세기 미국 실용주의자들은 서로 다른 시대를 살았지만, 공통적으로 "삶을 어떻게 살 것인가"를 실천의 문제로 봤습니다. 책상 위 장식이 아니라 도구로요. 이 글은 그 도구 두세 개를 골라, 엔지니어의 책상 위로 옮겨놓는 시도입니다. 거창한 깨달음을 약속하지는 않겠습니다. 다만 다음 스프린트에서 한 번쯤 떠올릴 만한, 손에 잡히는 것들을 남기려 합니다.
스토아주의: 통제할 수 있는 것에 집중하기
통제의 이분법
스토아주의의 핵심은 단순합니다. 에픽테토스는 이렇게 말했습니다.
"어떤 것들은 우리에게 달려 있고, 어떤 것들은 우리에게 달려 있지 않다." — 에픽테토스, 『엥케이리디온』 1장
우리에게 달려 있는 것: 내 판단, 내 노력, 내가 코드를 짜는 방식, 리뷰에 응답하는 태도. 우리에게 달려 있지 않은 것: 다른 사람의 반응, 면접관의 평가, 시장의 변화, 이미 일어난 장애.
이 구분이 사소해 보이지만, 실제로는 대부분의 불필요한 고통이 이 경계를 잘못 그은 데서 옵니다. 통제할 수 없는 것을 통제하려 애쓰면 좌절하고, 통제할 수 있는 것을 방치하면 무력해집니다.
엔지니어의 하루를 이 렌즈로 나눠보면 이렇습니다.
통제할 수 있는 것 통제할 수 없는 것
-------------------------- --------------------------
내가 작성하는 코드 품질 리뷰어가 언제 응답할지
PR 설명의 명료함 PR이 머지될지 여부
테스트를 충분히 짰는가 프로덕션에서 터질 엣지케이스
면접 준비의 성실함 면접 결과
회고에서 내가 한 발언 조직이 그 피드백을 받아들일지
배움에 들이는 시간 승진 타이밍
핵심은 왼쪽 열에 에너지를 쏟고, 오른쪽 열은 담담하게 받아들이는 연습입니다. "최선을 다하되 결과에 집착하지 않는다"는 흔한 말이지만, 스토아주의는 여기에 구조를 줍니다. 결과는 애초에 내 영역이 아니므로, 결과로 자신을 평가하는 것 자체가 범주 오류라는 것이죠.
실무 사례: 거절당한 PR
구체적인 상황을 봅시다. 사흘 동안 공들인 PR이 반려됐습니다. "이 접근은 우리 아키텍처 방향과 안 맞아요"라는 코멘트와 함께.
스토아적이지 않은 반응: "내 시간을 낭비했어. 진작 말해주지. 이 팀은 소통이 엉망이야." 분노와 자기 연민이 섞이고, 다음 작업에도 그 감정이 따라옵니다.
스토아적 반응은 이렇게 질문을 나눕니다.
통제 가능:
- 다음에는 작업 시작 전 방향을 먼저 확인한다
- 이 PR에서 재활용 가능한 부분을 추린다
- 리뷰어의 아키텍처 우려를 정확히 이해했는지 되묻는다
통제 불가능:
- 이미 흘러간 사흘
- 리뷰어가 더 일찍 말해주지 않았다는 사실
흘러간 시간은 매몰 비용입니다. 거기에 분노를 더해봐야 손실만 커집니다. 스토아주의는 감정을 억누르라고 하지 않습니다. 다만 "이 감정이 통제 가능한 것을 향하고 있는가"를 묻게 합니다. 분노의 방향을 점검하는 짧은 멈춤 — 그게 전부지만, 그게 차이를 만듭니다.
부정적 시각화: 미리 무너뜨려보기
스토아의 또 다른 도구는 premeditatio malorum, 즉 부정적 시각화입니다. 일이 잘못될 경우를 미리 차분히 그려보는 것이죠. 이건 엔지니어에게 이미 익숙한 사고방식입니다. 우리는 그걸 "장애 가정 설계"나 "카오스 엔지니어링"이라고 부릅니다.
배포 전에 "이게 새벽 3시에 터지면 어떻게 되지?"를 미리 상상하는 것, 의존하는 서드파티 API가 죽었을 때를 가정하고 폴백을 넣는 것 — 이게 부정적 시각화의 엔지니어링 버전입니다. 최악을 미리 마주하면, 두 가지를 얻습니다. 첫째, 실제로 대비책을 만들게 됩니다. 둘째, 실제로 일이 터졌을 때 덜 놀랍니다. 이미 마음속에서 한 번 겪었으니까요.
다만 균형이 필요합니다. 부정적 시각화가 만성 불안으로 변하면 독이 됩니다. 핵심은 "차분하게, 한 번, 대비책과 함께"입니다. 같은 재앙을 머릿속에서 스무 번 돌리는 건 시각화가 아니라 반추(rumination)이고, 이건 전혀 다른 것입니다.
회복탄력성: 장애물이 길이 된다
"행동을 가로막는 장애물이 행동을 진척시킨다. 길을 막는 것이 길이 된다." — 마르쿠스 아우렐리우스, 『명상록』 5권
이 구절은 라이언 홀리데이가 책 제목으로 삼으면서 유명해졌지만, 출처는 로마 황제의 일기입니다. 엔지니어링에서 이건 거의 문자 그대로 참입니다. 풀기 어려운 버그는 시스템을 더 깊이 이해하게 만들고, 까다로운 제약은 더 우아한 설계를 강요하며, 한 번의 큰 장애는 대개 조직의 운영 성숙도를 한 단계 끌어올립니다.
물론 이걸 "모든 고통은 선물"이라는 식으로 미화하면 곤란합니다. 번아웃은 선물이 아니고, 부당한 대우도 선물이 아닙니다. 스토아주의의 진짜 주장은 더 절제되어 있습니다. "통제할 수 없는 장애물을 만났을 때, 그것을 배움이나 단련의 재료로 쓸 수 있는 여지가 있는가"를 묻는 것이죠. 장애물 자체를 칭송하는 게 아니라, 거기서 내가 통제할 수 있는 부분을 찾는 것입니다.
실용주의: 작동하는 것이 진리다
진리의 현금 가치
미국 철학자 윌리엄 제임스는 진리를 "그것을 믿음으로써 우리가 얻는 실질적 차이"로 봤습니다. 그는 이를 진리의 "현금 가치(cash value)"라고 불렀습니다. 어떤 믿음이 참인지 묻는 대신, "이 믿음을 가지고 행동하면 무슨 차이가 생기는가"를 물은 것이죠.
엔지니어는 이미 철저한 실용주의자입니다. 우리는 "이 아키텍처가 형이상학적으로 옳은가"를 묻지 않습니다. "이게 우리 부하를 견디는가, 팀이 유지보수할 수 있는가, 다음 분기 요구사항을 수용하는가"를 묻습니다. 작동하면 채택하고, 작동하지 않으면 버립니다.
찰스 샌더스 퍼스의 실용주의 격률은 더 직설적입니다. 어떤 개념의 의미는 그것이 낳는 실제적 결과로 환원된다는 것이죠. "이 추상화가 더 좋다"는 주장은, 그것이 만들어내는 관찰 가능한 차이 — 더 적은 버그, 더 빠른 변경, 더 쉬운 온보딩 — 로 번역될 때만 의미를 가집니다.
도그마 대신 결과로 논쟁하기
실용주의가 일상에서 가장 빛나는 순간은 기술 논쟁입니다. 엔지니어링 토론은 종종 도그마 싸움으로 변질됩니다. "REST가 맞다 vs GraphQL이 맞다", "모노레포가 옳다 vs 멀티레포가 옳다", "OOP vs 함수형". 이런 논쟁은 끝나지 않습니다. 본질적으로 신념 대결이기 때문입니다.
실용주의자는 논쟁의 틀을 바꿉니다. "어느 것이 옳은가"가 아니라 "우리의 구체적 맥락에서 어느 것이 관찰 가능한 더 나은 결과를 내는가"로요.
도그마식 질문 실용주의식 질문
----------------------- ------------------------------------
GraphQL이 더 나은가? 우리 클라이언트가 겪는 over-fetching이
실제 문제인가? 그 빈도와 비용은?
마이크로서비스로 가야 하나? 지금 모놀리스에서 가장 아픈 지점은
정확히 무엇이고, 분리가 그걸 해결하나?
이 코드는 클린한가? 이 코드를 6개월 뒤 다른 사람이
안전하게 고칠 수 있는가?
오른쪽 질문들은 답이 가능합니다. 측정할 수 있고, 합의에 이를 수 있습니다. 실용주의는 "정답"이 맥락에 따라 달라진다는 것을 받아들이게 합니다. 이건 상대주의가 아닙니다. 결과는 여전히 객관적으로 측정되니까요. 다만 결과의 기준을 맥락 바깥의 추상적 원리가 아니라, 우리가 실제로 처한 상황에 둘 뿐입니다.
가설로서의 설계
실용주의는 모든 믿음을 잠정적 가설로 봅니다. 듀이는 탐구를 "의심에서 시작해 안정된 믿음으로 향하는, 그러나 언제든 새 증거에 열린 과정"으로 묘사했습니다. 이건 좋은 엔지니어링 그 자체입니다.
좋은 설계 문서는 "이것이 정답이다"라고 선언하지 않습니다. "우리는 X를 가정하고, Y를 시도하며, 만약 Z 지표가 나빠지면 롤백한다"라고 씁니다. 설계를 진리가 아니라 검증 가능한 가설로 다루는 것 — 이것이 실용주의적 태도입니다. A/B 테스트, 카나리 배포, 피처 플래그는 모두 "믿음을 현실에 부딪혀 검증한다"는 실용주의 인식론의 도구입니다.
본질주의: 더 적게, 더 낫게
무엇을 하지 않을 것인가
그렉 맥커운이 대중화한 본질주의(essentialism)는 "더 적게, 그러나 더 낫게"로 요약됩니다. 핵심은 "무엇을 할 것인가"만큼이나 "무엇을 하지 않을 것인가"가 중요하다는 것입니다.
엔지니어의 백로그는 무한합니다. 고칠 수 있는 버그, 개선할 수 있는 성능, 추가할 수 있는 기능, 줄일 수 있는 기술 부채 — 끝이 없습니다. 모든 것이 "할 가치"가 있어 보입니다. 그래서 본질주의의 진짜 질문은 "이게 가치 있는가"가 아니라 "이게 다른 무엇보다 더 가치 있는가"입니다.
이건 우선순위가 아니라 트레이드오프의 언어입니다. 모든 것에 "예"라고 하는 것은, 사실 가장 중요한 것에 "아니오"라고 하는 것과 같습니다. 시간은 유한하기 때문입니다.
실무에서 본질주의는 이런 질문들로 나타납니다.
- 이 리팩터링이 지금 사용자에게 실제로 무엇을 바꾸는가?
- 이 추상화는 실제 요구 때문인가, 상상한 미래 때문인가?
- 이 회의가 없어지면 무엇이 망가지는가? (아무것도 안 망가진다면…)
- 이 기능을 안 만들면 누가 불편한가? 얼마나?
특히 "상상한 미래를 위한 추상화"는 엔지니어가 가장 자주 빠지는 함정입니다. YAGNI(You Aren't Gonna Need It) 원칙은 본질주의의 엔지니어링 버전입니다. 지금 필요하지 않은 유연성은, 대부분 미래에도 필요하지 않으면서 현재의 복잡성만 늘립니다.
거절의 기술
본질주의의 실천에서 가장 어려운 부분은 "아니오"를 말하는 것입니다. 특히 한국의 조직 문화에서는 더 그렇죠. 하지만 거절이 무례할 필요는 없습니다. 핵심은 사람을 거절하는 게 아니라 요청을 우선순위 안에 위치시키는 것입니다.
나쁜 거절: "그건 못 해요."
더 나은 거절:
"지금 A와 B를 진행 중인데, 이걸 넣으면 A가 다음 주로 밀립니다.
어느 쪽이 더 급한지 같이 정하면 좋겠어요."
후자는 거절이 아니라 트레이드오프를 가시화하는 것입니다. 결정을 요청자와 공유함으로써, "나는 일을 안 하려는 게 아니라, 유한한 시간을 어디에 쓸지 함께 정하려 한다"는 메시지를 줍니다. 이건 스토아의 통제 이분법과도 연결됩니다. 내 시간 배분은 내가 통제할 수 있는 영역이니까요.
장인정신: 일 자체를 존중하기
결과가 아니라 과정에 대한 자부심
실용주의는 결과를 중시하고 본질주의는 선택을 중시하지만, 장인정신(craftsmanship)은 일하는 과정 자체에 대한 태도입니다. 리처드 세넷은 『장인』에서 장인정신을 "일을 그 자체로 잘하려는, 인간의 기본적이고 지속적인 충동"이라고 정의했습니다.
여기엔 미묘한 균형이 있습니다. 실용주의는 "작동하면 됐다"고 말하고, 장인정신은 "잘 만들고 싶다"고 말합니다. 둘은 충돌할까요? 보통은 아닙니다. 잘 만든 것은 대개 더 오래 작동하고, 더 적은 비용으로 유지되며, 다음 사람이 더 안전하게 다룰 수 있기 때문입니다. 장인정신의 "잘"은 종종 실용주의의 "작동"의 장기 버전입니다.
충돌이 생기는 건 장인정신이 자기만족으로 변질될 때입니다. 아무도 보지 않을 코드를 완벽주의로 다듬는 것, 비즈니스 가치 없는 우아함을 추구하는 것 — 이건 장인정신이 아니라 자아의 투영입니다. 진짜 장인은 "이 정성이 누구에게 닿는가"를 압니다. 가구 장인이 보이지 않는 서랍 뒷면까지 사포질하는 이유는, 그 매끄러움을 쓸 사람이 있기 때문입니다. 정성의 대상이 있을 때 장인정신이고, 없을 때는 강박입니다.
지루한 일을 존중하기
장인정신의 잘 드러나지 않는 부분은 반복적이고 지루한 일에 대한 태도입니다. 로깅을 정리하고, 테스트를 보강하고, 문서를 갱신하고, 에러 메시지를 명료하게 다듬는 일 — 화려하지 않지만 시스템을 떠받치는 일들입니다.
스토아의 마르쿠스 아우렐리우스는 매일 아침 자신에게 "오늘 나는 일을 하러 일어난다"고 되뇌었습니다. 일을 특별한 영감의 순간으로 보지 않고, 묵묵히 해내는 무언가로 봤습니다. 장인정신과 스토아주의가 만나는 지점이 여기입니다. 위대한 시스템은 영웅적 순간이 아니라, 매일의 성실한 반복으로 만들어집니다.
불확실성을 다루는 법: 판단의 보류
엔지니어링은 불완전한 정보 속에서 결정을 내리는 일의 연속입니다. 요구사항은 모호하고, 데이터는 부족하며, 미래는 알 수 없습니다. 이 불확실성을 견디는 것이 직업적 성숙의 큰 부분입니다.
고대 회의주의(Pyrrhonism)는 여기에 흥미로운 도구를 줍니다. 회의주의자들은 epoché, 즉 판단의 보류를 실천했습니다. 충분한 근거가 없을 때 단정하지 않고 판단을 미루는 것이죠. 이건 우유부단함과 다릅니다. 우유부단은 결정을 회피하는 것이고, 판단 보류는 "지금은 확신할 근거가 부족하다"는 사실을 정직하게 인정하는 것입니다.
엔지니어의 일상에서 이건 매우 실용적입니다.
성급한 단정 판단 보류
------------------------- -------------------------------------
"이건 분명히 DB 문제야." "DB일 수도 있지만, 아직 모른다.
로그를 더 봐야 한다."
"그 라이브러리는 별로야." "그 라이브러리는 X 상황에선 안 맞았다.
우리 상황은 다를 수 있다."
"이 설계가 정답이야." "이 설계가 현재 가정에선 최선이다.
가정이 바뀌면 다시 본다."
장애를 디버깅할 때 가장 위험한 건 성급한 확신입니다. "분명히 캐시 문제일 거야"라고 단정하는 순간, 우리는 그 가설에 맞는 증거만 찾고 반대 증거를 무시합니다. 확증 편향에 빠지는 것이죠. 판단을 잠시 보류하고 "데이터가 무엇을 말하는가"를 먼저 묻는 절제 — 이건 회의주의와 실용주의가 만나는 지점입니다.
다만 균형이 필요합니다. 영원히 판단을 미룰 수는 없습니다. 어느 시점엔 불완전한 정보로도 결정해야 합니다. 핵심은 "확신의 정도를 증거의 정도에 맞추는 것"입니다. 강한 증거엔 강한 확신을, 약한 증거엔 잠정적 결론을. 그리고 새 증거가 오면 기꺼이 마음을 바꾸는 것. 이건 변덕이 아니라 지적 정직함입니다.
비교의 함정과 자기 기준
엔지니어가 마음의 평정을 잃는 가장 흔한 이유 중 하나는 비교입니다. 더 어린 나이에 더 높은 직급에 오른 동료, 화려한 사이드 프로젝트로 주목받는 지인, 컨퍼런스에서 발표하는 또래 — 소셜 미디어 시대에 비교의 재료는 무한합니다.
스토아주의는 여기서도 통제 이분법을 적용합니다. 다른 사람의 성취는 내가 통제할 수 없습니다. 그리고 더 중요하게는, 내가 보는 것은 그들의 "결과물의 하이라이트"이지 그 뒤의 분투나 실패나 운이 아닙니다. 우리는 자신의 무대 뒤편(혼란, 의심, 실패)을 남의 완성된 무대와 비교하는 비대칭적 게임을 하고 있습니다.
세네카는 이렇게 썼습니다.
"어떤 사람이 너보다 앞서 있다면, 너는 너 자신과 경쟁하고 있는 것이 아니라 그 사람과 경쟁하고 있는 것이다." — 세네카, 『도덕 서한』에서 변주
자기 기준(self-referenced standard)으로 옮기는 것이 해법입니다. "저 사람보다 나은가"가 아니라 "작년의 나보다 나은가"를 묻는 것이죠. 전자는 통제 불가능하고 끝이 없지만, 후자는 통제 가능하고 의미 있습니다. 실용주의적으로도 이게 낫습니다. 남과의 비교는 행동을 낳지 못하지만(질투는 코드를 짜주지 않습니다), 자기 기준의 성장은 구체적 다음 행동을 가리킵니다.
물론 비교가 전부 나쁜 건 아닙니다. 더 나은 사람을 보고 배우려는 동기로 쓰면 건강합니다. 핵심은 비교의 결과가 "자기 비하"로 끝나느냐 "구체적 배움"으로 이어지느냐입니다. 전자라면 비교를 멈추고, 후자라면 그 사람에게 다가가 물어보세요.
과한 자기계발의 함정 경계하기
지금까지 철학적 도구들을 소개했지만, 여기서 반드시 균형을 잡아야 합니다. 현대의 "스토아주의 인플루언서" 문화는 이 철학들을 위험하게 왜곡하곤 합니다.
첫째, 개인화의 함정입니다. "통제할 수 있는 것에 집중하라"는 가르침이, 구조적 문제를 개인 탓으로 돌리는 데 악용될 수 있습니다. 번아웃을 일으키는 건 종종 비현실적 일정, 인력 부족, 나쁜 관리입니다. 이건 "당신의 회복탄력성 부족" 문제가 아니라 조직의 문제입니다. 스토아주의는 부당함을 견디라는 철학이 아닙니다. 통제할 수 없는 것을 받아들이는 것과, 바꿀 수 있는 구조를 방치하는 것은 전혀 다릅니다.
둘째, 감정 억압의 함정입니다. "감정에 휘둘리지 마라"가 "감정을 느끼지 마라"로 오해됩니다. 진짜 스토아주의는 감정을 부정하지 않습니다. 감정을 인지하되, 그 감정을 바탕으로 한 충동적 판단을 잠시 미루라는 것입니다. 슬픔을 느끼는 건 약함이 아닙니다. 슬픔을 무시하고 일하는 게 강함도 아닙니다.
셋째, 생산성 물신화의 함정입니다. 자기계발 산업은 모든 시간을 "최적화"하라고 부추깁니다. 하지만 본질주의의 진짜 메시지는 정반대입니다. 덜 하고, 쉬고, 비우는 것도 본질적 선택입니다. 24시간을 빈틈없이 채우는 건 본질주의가 아니라 그 정반대입니다.
철학을 도구로 쓰되, 도구가 당신을 채찍질하는 막대기가 되지 않게 하세요. 이 글의 모든 개념은 "더 나은 사람이 되어야 한다는 압박"이 아니라 "불확실성 속에서 마음을 두는 법"으로 읽혀야 합니다.
배움과 성장에 적용하기
이 철학들은 일상의 위기 관리뿐 아니라, 장기적인 배움과 커리어에도 적용됩니다. 엔지니어의 커리어는 끝없는 학습의 연속입니다. 새 언어, 새 프레임워크, 새 패러다임이 끊임없이 등장하고, 그 속도에 압도되기 쉽습니다.
스토아의 통제 이분법은 여기서 마음의 평정을 줍니다. 모든 새 기술을 다 따라잡는 것은 통제할 수 없습니다. 그건 불가능하고, 그걸 목표로 삼으면 만성 불안에 빠집니다. 통제할 수 있는 것은 "내가 무엇을 깊이 배울지 선택하는 것"과 "꾸준히 배우는 습관"입니다. 모든 것을 얕게 아는 것보다, 본질을 깊이 이해하는 것이 — 본질주의의 관점에서도 — 더 가치 있습니다.
실용주의는 학습의 우선순위를 정해줍니다. "이것을 배우는 것이 내 실제 일과 성장에 어떤 관찰 가능한 차이를 만드는가?" 유행한다는 이유만으로 무언가를 배우는 건 비효율적입니다. 반대로, 기초 — 자료구조, 시스템 설계, 디버깅, 명료한 글쓰기 — 는 거의 모든 맥락에서 현금 가치가 높습니다. 유행은 변하지만 기초의 현금 가치는 변하지 않습니다.
배움에 철학 적용하기
[스토아] 모든 기술을 따라잡으려 하지 않는다.
통제 가능한 건 "선택"과 "꾸준함"이다.
[실용주의] "이게 실제로 어떤 차이를 만드나"로
학습 우선순위를 정한다. 유행이 아니라 가치.
[본질주의] 얕게 다 아는 것보다 본질을 깊이 안다.
"지금 가장 큰 레버리지를 주는 학습"에 집중.
[장인정신] 배움 자체를 즐긴다. 결과(자격증, 인정)가
아니라 이해의 깊어짐에서 만족을 찾는다.
특히 장인정신의 관점이 학습을 지속 가능하게 만듭니다. 학습을 오직 외적 보상(승진, 연봉)의 수단으로만 보면, 보상이 더디면 금방 지칩니다. 하지만 배움 자체의 즐거움 — 모르던 것이 이해되는 순간의 작은 기쁨 — 을 동력으로 삼으면, 학습은 의무가 아니라 즐길 수 있는 것이 됩니다. 그리고 역설적으로, 그렇게 즐기며 배운 사람이 장기적으로 더 멀리 갑니다.
마지막으로 성장 마인드셋과의 연결입니다. 실용주의가 설계를 가설로 보듯, 스스로의 능력도 고정된 게 아니라 변할 수 있는 가설로 보는 것 — "나는 이걸 아직 못 한다"의 그 "아직"이, 통제 가능한 영역(노력, 시간)을 향한 스토아적 믿음과 만납니다.
일에 적용하기: 통합 프레임워크
세 가지 철학을 하나의 실천 흐름으로 엮어보겠습니다. 어떤 상황이든 이 순서로 통과시킬 수 있습니다.
1. [스토아] 이 상황에서 내가 통제할 수 있는 건 무엇인가?
통제 불가능한 부분은 일단 내려놓는다.
2. [실용주의] 통제 가능한 선택지들 중, 관찰 가능한
더 나은 결과를 내는 건 무엇인가? 도그마가 아니라
결과로 판단한다.
3. [본질주의] 그중 정말 중요한 하나는 무엇인가?
나머지에 "아니오"를 말한다.
4. [장인정신] 선택한 그 일을, 그 일이 닿을 사람을
생각하며 정성껏 한다.
5. [스토아, 다시] 결과는 내 영역이 아니다.
최선을 다했다면, 결과는 담담하게 받아들인다.
이 흐름을 코드 리뷰에 적용해봅시다. 동료의 PR에 문제가 보입니다. (1) 내가 통제할 수 있는 건 "내가 어떻게 피드백하는가"이지 "그가 어떻게 받아들이는가"가 아닙니다. (2) 비난조와 질문조 중 어느 쪽이 실제로 코드를 개선하는 결과를 낼까요? 경험상 질문조입니다. (3) 사소한 스타일 지적 열 개와 중요한 설계 우려 하나 중, 무엇이 본질일까요? (4) 그 하나의 피드백을, 그가 이해하고 성장하도록 정성껏 씁니다. (5) 그가 동의할지는 내 영역이 아닙니다.
아침과 저녁의 의식: 철학을 습관으로
철학이 도구라면, 도구는 정기적으로 손에 잡을 때만 쓸모가 있습니다. 스토아 철학자들은 추상적 사색만 한 게 아니라 구체적인 일상 의식을 가졌습니다. 마르쿠스 아우렐리우스의 『명상록』 자체가 매일의 자기 점검 기록이었고, 세네카는 매일 밤 하루를 돌아보는 습관을 권했습니다.
이걸 엔지니어의 하루에 옮기면 두 개의 작은 의식이 됩니다.
아침의 점검
아침에 (5분, 커피 한 잔과 함께):
1. 오늘 통제할 수 없는 일은 무엇인가?
(예: 면접 결과, 리뷰어 응답, 회의 결정)
-> 미리 내려놓는다. 거기에 감정을 묶지 않는다.
2. 오늘 정말 중요한 한 가지는 무엇인가?
(본질주의: "오늘이 끝났을 때 이것만 했어도
성공"이라 할 한 가지)
3. 오늘 마주칠 어려움은 무엇이고, 어떻게
대응할 것인가?
(부정적 시각화: 까다로운 회의, 막힐 버그를
미리 차분히 그려본다)
세네카가 권한 부정적 시각화의 핵심은 이겁니다. 하루를 시작하기 전에 "오늘 누군가 무례할 수 있고, 일이 막힐 수 있고, 계획이 틀어질 수 있다"고 미리 인정하는 것. 그러면 실제로 그런 일이 생겨도 "예상했던 일"이 되어 평정을 덜 잃습니다.
저녁의 회고
저녁에 (5분, 잠들기 전):
1. 오늘 잘한 것은 무엇인가? (자책이 아니라 인정)
2. 오늘 통제 가능한 것 중 더 잘할 수 있던 건?
(비난이 아니라 학습. 내일의 작은 조정.)
3. 오늘 감사한 것 하나.
여기서 중요한 균형이 있습니다. 저녁 회고가 자기 비판의 시간이 되면 역효과입니다. 핵심은 "통제 가능했던 것"에만 초점을 맞추는 것입니다. 통제할 수 없었던 일로 자신을 탓하는 건 스토아주의의 정반대입니다. 그리고 감사 한 가지를 더하는 이유는, 어두운 시기일수록 우리의 주의가 부정적인 것에 쏠리기 때문입니다. 좋았던 것을 의도적으로 떠올리는 건 단순한 긍정이 아니라 주의의 균형을 잡는 연습입니다.
이 의식들이 거창할 필요는 없습니다. 각각 5분이면 충분하고, 완벽하게 매일 할 필요도 없습니다. 핵심은 철학을 머릿속 지식이 아니라 손에 쥔 습관으로 만드는 것입니다. 알기만 하는 철학은 책장의 장식이고, 매일 쓰는 철학은 도구입니다.
대화 예시: 철학을 실제 상황에 적용하기
추상적 원리는 구체적 대화 앞에서 무력해지기 쉽습니다. 두 가지 실제 상황을 통해 이 프레임워크가 어떻게 작동하는지 봅시다.
상황 1: 부당한 성과 평가
연말 평가에서 기대보다 낮은 등급을 받았습니다. 당신이 보기엔 충분히 잘했는데도요.
1단계 [스토아] 통제 가능: 내 반응, 다음 분기의 행동,
매니저에게 피드백을 명확히 요청하는 것.
통제 불가능: 이미 매겨진 등급, 매니저의 인식.
2단계 [실용주의] 어떤 반응이 더 나은 결과를 낳는가?
분노 표출 vs 구체적 질문. 후자가 다음 평가를
개선할 가능성이 높다.
3단계 실제 대화:
나쁜 접근: "이 평가는 불공정합니다."
더 나은 접근: "이 등급의 근거를 이해하고 싶습니다.
제가 어떤 부분에서 기대에 못 미쳤는지,
다음 분기에 무엇을 다르게 하면 좋을지
구체적으로 알려주실 수 있을까요?"
후자는 평가를 뒤집으려는 시도가 아니라(그건 통제 밖) 미래의 행동을 개선하려는 시도입니다(통제 안). 그리고 회의주의의 판단 보류도 작동합니다 — "이 평가는 명백히 틀렸다"고 단정하기 전에, 내가 못 본 관점이 있는지 먼저 듣는 것이죠.
상황 2: 동료와의 기술 논쟁
동료가 당신이 보기에 잘못된 아키텍처를 강하게 주장합니다.
나쁜 접근: "그 방식은 틀렸어요. 제 방식이 맞습니다."
-> 도그마 대 도그마. 신념 대결로 변질.
더 나은 접근: "두 방식의 트레이드오프를 정리해볼까요?
각각이 어떤 상황에서 더 나은지, 우리 실제
요구사항이 어느 쪽에 가까운지 같이 봅시다."
-> 결과로 논쟁. 측정 가능한 기준으로 이동.
여기서 본질주의도 작동합니다. 모든 의견 차이를 끝까지 다툴 필요는 없습니다. "이 결정이 정말 중요한가, 아니면 되돌릴 수 있는 결정인가"를 먼저 묻습니다. 되돌리기 쉬운 결정이라면, 동료의 방식으로 해보고 데이터로 판단하는 게 논쟁보다 빠를 수 있습니다. 자존심을 본질로 착각하지 않는 것 — 그게 성숙입니다.
실천 체크리스트
다음 한 주 동안 시도해볼 수 있는, 구체적이고 작은 실천들입니다. 전부 할 필요는 없습니다 — 본질주의를 기억하세요.
[ ] 좌절한 순간, "이건 통제 가능한가?"를 한 번 묻는다.
[ ] 기술 논쟁에서 "옳은가" 대신 "우리 맥락에서 어떤
결과를 내는가"로 질문을 바꿔본다.
[ ] 이번 주 백로그에서 "하지 않을 것" 세 가지를 정한다.
[ ] 요청 하나를 거절하되, 트레이드오프를 가시화하며
거절한다.
[ ] 다음 배포 전, "이게 새벽 3시에 터지면?"을 차분히
한 번 상상하고 대비책을 점검한다.
[ ] 지루하지만 중요한 일(테스트/문서/로깅) 하나를
"닿을 사람"을 떠올리며 정성껏 한다.
[ ] 하루에 한 번, 의도적으로 아무것도 하지 않는 10분을
만든다. (생산성 물신화의 해독제)
마치며: 도구로서의 철학
철학은 당신을 더 나은 사람으로 만들어주는 마법이 아닙니다. 그리고 그래서도 안 됩니다. 스토아주의, 실용주의, 본질주의, 장인정신 — 이것들은 책상 서랍에 넣어두는 도구들입니다. 필요할 때 꺼내 쓰고, 안 맞으면 다른 걸 씁니다.
엔지니어의 일은 불확실성과 통제 불가능성의 연속입니다. 이 도구들이 약속하는 건 그 불확실성을 없애주는 게 아니라, 그 속에서 마음을 어디에 둘지 더 분명하게 정하도록 돕는 것입니다. 통제할 수 있는 것에 집중하고, 결과로 판단하며, 본질에 "예"라고 하고, 일을 정성껏 하는 것. 그리고 그 모든 노력의 결과는 담담하게 받아들이는 것.
마지막으로, 이 모든 것을 완벽하게 해내야 한다는 압박은 내려놓으세요. 그 압박 자체가 우리가 경계한 자기계발의 함정이니까요. 철학은 채찍이 아니라 나침반입니다. 길을 잃었을 때 한 번 꺼내 방향을 확인하면, 그걸로 충분합니다.