Split View: 마르쿠스 아우렐리우스의 코드 리뷰: 스토아 철학으로 개발자 멘탈 다스리기
마르쿠스 아우렐리우스의 코드 리뷰: 스토아 철학으로 개발자 멘탈 다스리기
- 황제의 일기
- 스토아 철학이란 무엇인가
- 에픽테토스의 이분법적 통제
- Memento Mori: 죽음을 기억하라
- Amor Fati: 운명을 사랑하라
- 세 가지 스토아 훈련
- 코드 리뷰와 스토아 철학
- 프로덕션 장애와 에픽테토스
- 임포스터 신드롬에 대하여
- 개발자를 위한 스토아 실천법
- 결론: 황제의 지혜가 개발자에게
- 참고 문헌
황제의 일기
기원후 161년. 로마 제국 역사상 가장 광대한 영토를 다스리는 황제가 있었습니다. 전쟁, 역병, 반란, 경제 위기를 동시에 처리하면서도 그는 매일 밤 개인 일기를 그리스어로 썼습니다. 출판할 생각도, 남길 생각도 없이. 오직 자기 자신을 위해.
그 일기의 제목은 Τὰ εἰς ἑαυτόν(타 에이스 헤아우톤) — "자기 자신에게". 우리가 *명상록(Meditations)*이라고 부르는 책입니다.
마르쿠스 아우렐리우스 안토니누스. 철인왕(哲人王)이라는 칭호를 받은 황제. 그런데 그의 일기를 읽다 보면 무언가 친숙한 느낌이 옵니다. 이 사람, 개발자처럼 생각한다.
"Confine yourself to the present." (현재에만 집중하라.) — 마르쿠스 아우렐리우스, 명상록 VIII.7
스프린트 리뷰 전날 밤, 갑작스러운 프로덕션 장애 대응 중, 혹독한 코드 리뷰 코멘트를 받은 직후. 이 문장이 얼마나 절실하게 느껴지는지.
스토아 철학이란 무엇인가
스토아 철학은 기원전 3세기 아테네에서 제논(Zeno of Citium)이 창시했습니다. 이름은 그리스어 Stoa Poikilē(채색된 주랑) — 제논이 제자들을 가르치던 기둥 행각 — 에서 왔습니다. 이후 로마로 전파되어 마르쿠스 아우렐리우스, 세네카, 에픽테토스라는 세 거인을 낳았습니다.
스토아 철학의 핵심 주장은 단순합니다: 외부 사건이 아니라, 그 사건에 대한 우리의 판단이 우리를 괴롭힌다.
세네카는 이렇게 말했습니다: "Dum differtur vita transcurrit." (지연하는 동안 인생이 흘러간다.)
루키우스 안나이우스 세네카. 네로 황제의 스승이자 재무장관이었던 로마 최고의 스토아 철학자. 그는 부와 권력 한가운데서 욕망에 집착하지 않는 법을 실천했습니다. 아, 그리고 결국 네로에게 자살 명령을 받았죠. 스토아 철학이 죽음에 담담한 이유가 있었습니다.
에픽테토스의 이분법적 통제
스토아 철학의 가장 실용적인 개념은 에픽테토스의 **이분법적 통제(Dichotomy of Control)**입니다.
에픽테토스(Epictetus)는 노예로 태어났습니다. 로마에서 노예의 삶은 상상을 초월하는 것이었지만, 그는 철학을 통해 자유를 찾았습니다. 그의 *핸드북(Enchiridion)*은 이렇게 시작합니다:
"Τῶν ὄντων τὰ μέν ἐστιν ἐφ' ἡμῖν, τὰ δὲ οὐκ ἐφ' ἡμῖν." (존재하는 것들 중 어떤 것은 우리 능력 안에 있고, 어떤 것은 우리 능력 밖에 있다.) — 에픽테토스, 핸드북 1.1
우리 능력 안에 있는 것: 판단, 충동, 욕구, 혐오 — 한 마디로 우리의 정신적 활동. 우리 능력 밖에 있는 것: 몸, 명성, 재산, 다른 사람의 행동.
개발자의 언어로 번역하면:
| 내 통제 안 | 내 통제 밖 |
|---|---|
| 내 코드의 품질 | PR 병합 여부 |
| 리뷰에 어떻게 반응할지 | 리뷰어의 태도 |
| 배포 후 모니터링 | 서드파티 API 장애 |
| 내 학습 속도 | 팀의 기술 스택 결정 |
| 번아웃을 인식하는 것 | 회사의 인력 결정 |
스토아 철학은 통제 밖의 것에 에너지를 쏟지 말라고 가르칩니다. 이것은 포기가 아닙니다. 더 정확하게 말하면: 통제 밖의 것에 대해서는 결과를 두려워하지 말고 최선의 노력만 하라는 것입니다.
Memento Mori: 죽음을 기억하라
스토아 철학에서 가장 유명한 명언 중 하나:
Memento mori. — 죽음을 기억하라.
현대인의 귀에는 무겁게 들리지만, 스토아 철학에서 이것은 우울함이 아니라 해방감의 원천입니다. 죽음을 기억할 때, 지금 이 순간의 코드 리뷰 코멘트 한 마디가 얼마나 사소한지가 명확해집니다.
마르쿠스 아우렐리우스는 이렇게 씁니다:
"Begin the morning by saying to thyself, I shall meet with the busy-body, the ungrateful, arrogant, deceitful, envious, unsocial." (아침을 시작하면서 이렇게 말하라: 오늘 나는 참견쟁이, 배은망덕한 자, 오만한 자, 기만적인 자, 시기하는 자, 반사회적인 자들을 만날 것이다.) — 명상록 II.1
이것이 개발자의 하루 시작 의식이 될 수 있지 않을까요? 오늘 나는 모호한 요구사항을 만날 것이다. 갑작스러운 긴급 요청을 만날 것이다. 내 PR이 거부될 것이다. 그리고 그것은 괜찮다.
Amor Fati: 운명을 사랑하라
프리드리히 니체는 Amor fati(운명에 대한 사랑)라는 개념을 발전시켰지만, 그 뿌리는 스토아 철학에 있습니다. 마르쿠스 아우렐리우스는 이렇게 말합니다:
"The impediment to action advances action. What stands in the way becomes the way." (행동을 가로막는 것이 행동을 전진시킨다. 길을 가로막는 것이 길이 된다.) — 명상록 V.20
이것은 라이언 홀리데이의 The Obstacle Is the Way (2014)의 핵심 명제이기도 합니다.
프로덕션 장애가 발생했습니다. 이것은 재앙이 아닙니다. 시스템을 더 깊이 이해할 기회입니다. 악랄한 코드 리뷰를 받았습니다. 이것은 개인 공격이 아닙니다. 더 나은 코드를 작성하는 법을 배울 수 있는 데이터입니다. 프로젝트가 취소됐습니다. 이것은 낭비가 아닙니다. 다음에 더 빠르게 실패하는 법을 배운 것입니다.
이것이 Summum bonum(수뭄 보눔) — 최고의 선 — 을 향한 스토아적 길입니다. 최고의 선이란 외부 상황이 아니라, 어떤 상황에서도 덕(virtue, ἀρετή)을 실천하는 것입니다.
세 가지 스토아 훈련
마르쿠스 아우렐리우스가 실천한 스토아 철학의 세 가지 핵심 훈련은 오늘날 개발자에게도 직접 적용 가능합니다 (Robertson, 2019):
1. 판단의 훈련 (Discipline of Assent)
외부 사건에 자동으로 반응하지 말고, 잠시 멈추고 판단하라. 코드 리뷰 코멘트를 받았을 때, 즉시 방어적으로 반응하기 전에: 이것은 사실인가? 이것은 나에 대한 공격인가, 아니면 코드에 대한 피드백인가?
2. 행동의 훈련 (Discipline of Action)
통제할 수 있는 것에만 에너지를 쏟되, 결과에 집착하지 마라. PR을 최선을 다해 작성하되, 병합 여부에 자존감을 걸지 마라. 최선을 다한 제안을 했다면, 결정은 타인의 몫이다.
3. 욕구의 훈련 (Discipline of Desire)
통제 밖의 것을 원하거나 두려워하지 마라. 승진을 원하는 것은 괜찮다. 하지만 승진하지 못했을 때의 비참함을 두려워하는 것은 스스로 만든 감옥이다. 원하되, 없어도 괜찮은 상태로 원하라.
코드 리뷰와 스토아 철학
"왜 이렇게 짰어요? 이건 완전 잘못된 접근이에요."
이 코멘트를 받았을 때, 여러분의 첫 반응은 무엇인가요? 방어, 분노, 수치심? 스토아 철학은 다른 반응을 가르칩니다.
마르쿠스 아우렐리우스는 자신의 스승 루스티쿠스에 대해 이렇게 씁니다:
"From Rusticus I received the impression that my character required improvement and discipline." (루스티쿠스에게서 나는 내 성격이 개선과 훈련을 필요로 한다는 인상을 받았다.) — 명상록 I.7
그는 비판을 개인적 공격이 아니라 자기 개선의 데이터로 받아들였습니다. 세계 최강국의 황제가.
좋은 코드 리뷰 수신자의 스토아적 마음가짐:
- 리뷰어의 의도가 악의적이라고 가정하지 않는다
- 코멘트가 틀렸다고 생각해도, 방어보다 먼저 이해하려 한다
- 좋은 지적에는 감사를, 부당한 지적에는 증거로 반박한다
- 모든 과정에서 품위(dignitas)를 잃지 않는다
프로덕션 장애와 에픽테토스
새벽 3시. 알림이 울립니다. 서비스가 다운됐습니다.
이 순간, 에픽테토스의 말을 떠올려보세요:
"Seek not that the things which happen should happen as you wish; but wish the things which happen to be as they are, and you will have a tranquil flow of life." (일어나는 일들이 당신이 원하는 대로 일어나길 바라지 마라. 오히려 일어나는 일들이 있는 그대로이기를 원하라. 그러면 당신의 삶은 평온하게 흐를 것이다.) — 에픽테토스, 핸드북 8
장애는 일어났습니다. 이것은 통제 밖의 사실입니다. 이제 통제 안에 있는 것에만 집중합니다: 차분히 로그를 분석하고, 임시 대응책을 찾고, 팀에 상황을 투명하게 공유하는 것.
패닉은 장애를 해결하지 못합니다. 오히려 판단력을 흐립니다. 스토아 철학은 감정을 억누르라고 하지 않습니다. 감정에 지배당하지 말라고 합니다. 두려움을 느끼되, 두려움이 결정을 내리게 하지 마라.
임포스터 신드롬에 대하여
많은 개발자가 겪는 임포스터 신드롬(imposter syndrome). 내가 실제로 이 일을 할 자격이 있는가? 언제 들통날까?
마르쿠스 아우렐리우스는 명상록에서 놀라운 자기 의심을 보여줍니다. 그는 황제이면서도 자신이 충분하지 않다는 불안과 싸웠습니다. 그리고 이렇게 결론을 내립니다:
"You have power over your mind, not outside events. Realize this, and you will find strength." (당신은 자신의 마음을 통제할 수 있다, 외부 사건이 아니라. 이것을 깨달으면, 당신은 힘을 찾을 것이다.)
임포스터 신드롬의 스토아적 처방은: 외부의 인정(당신이 통제할 수 없는 것)에 자존감의 기반을 두지 마라. 대신, 당신이 오늘 최선을 다했는가, 정직했는가, 계속 배우고 있는가(당신이 통제할 수 있는 것)에 기반을 두어라.
개발자를 위한 스토아 실천법
아침 명상 (Morning Meditation) 하루를 시작하며 5분: 오늘 어떤 어려움이 올 수 있는지 예상하고(부정적 시각화, premeditatio malorum), 그에 대해 미리 마음의 준비를 합니다.
저녁 회고 (Evening Review) 세네카의 실천: 하루를 마치며 세 가지를 묻습니다.
- 오늘 어떤 나쁜 습관을 고쳤는가?
- 어떤 덕을 실천했는가?
- 어떤 면에서 더 나아졌는가?
이분법적 통제 체크리스트 스트레스를 받을 때마다: 이것이 내 통제 안에 있는가, 밖에 있는가? 통제 밖이라면, 받아들이고 내 에너지를 통제 안으로 돌려라.
뷰 프롬 어보브 (View from Above) 마르쿠스가 즐겨 쓰던 명상: 우주적 관점에서 지금 이 상황을 바라보라. 오늘의 코드 리뷰 분쟁이, 100년 후에 어떤 의미가 있을까?
결론: 황제의 지혜가 개발자에게
Summum bonum — 최고의 선 — 은 명성도, 연봉도, 빛나는 커리어도 아닙니다. 스토아 철학에서 최고의 선은 **덕(arete, 아레테)**입니다. 어떤 상황에서도 이성적이고 윤리적으로 최선을 다하는 것.
개발자의 언어로: 어떤 요구사항이 와도 최선의 코드를 쓰고, 어떤 리뷰를 받아도 품위를 잃지 않고, 어떤 장애가 와도 차분히 해결하며, 어떤 커리어 좌절이 와도 계속 배우는 것.
마르쿠스 아우렐리우스는 제국 경영의 무게를 혼자 감당하면서도, 매일 밤 이 연습을 멈추지 않았습니다. 우리에게 프로덕션 서버가 있다면, 그에게는 제국이 있었습니다. 그리고 그는 2000년이 지난 지금도 우리에게 말을 건넵니다:
현재에 집중하라. 통제할 수 없는 것은 놓아라. 덕을 실천하라.
이것이 황제의 코드 리뷰입니다.
참고 문헌
- Aurelius, M. (기원후 161-180). Τὰ εἰς ἑαυτόν (Meditations). Gregory Hays 역 (2002). Modern Library.
- Epictetus (기원후 108). Enchiridion. Nick White 역 (1983). Hackett Publishing.
- Seneca, L.A. (기원후 65). Letters from a Stoic. Robin Campbell 역 (1969). Penguin.
- Robertson, D. (2019). How to Think Like a Roman Emperor. St. Martin's Press.
- Holiday, R. (2014). The Obstacle Is the Way. Portfolio/Penguin.
- Edmondson, A.C. (2018). The Fearless Organization. Wiley.
Marcus Aurelius Gives a Code Review: Stoic Philosophy for Developer Mental Health
- The Emperor's Private Journal
- What Stoicism Actually Is
- Epictetus and the Dichotomy of Control
- Memento Mori: Remember Death
- Amor Fati: Love of Fate
- Seneca and the Currency of Time
- The Three Stoic Disciplines
- Stoicism and Imposter Syndrome
- Practical Stoicism for Developers
- Closing: The Emperor's Last Word
- References
The Emperor's Private Journal
Somewhere around 170 CE, the most powerful man in the Western world was having a bad day.
Marcus Aurelius Antoninus — emperor of Rome, commander of 400,000 legionaries, administrator of the largest empire in history — was also dealing with plague, German invasions, financial crises, and political backstabbing. Not so different from a bad sprint, really.
Every night, he wrote in a private journal. In Greek, not Latin — Greek was the philosopher's language, the language of rigorous thought. He wrote it for no one but himself. The title: Τὰ εἰς ἑαυτόν — To Himself. What we call the Meditations.
The remarkable thing about reading the Meditations today is how immediately applicable it feels. Change a few nouns, and Marcus could be a senior engineer writing performance review season reflections.
"Confine yourself to the present." — Meditations VIII.7
If that's not a prompt for closing your Slack notifications and actually fixing the bug, I don't know what is.
What Stoicism Actually Is
Stoicism was founded in Athens around 300 BCE by Zeno of Citium, who taught in the Stoa Poikilē — the painted porch — giving the school its name. It spread to Rome and produced three towering figures: Marcus Aurelius (emperor), Seneca (statesman and playwright), and Epictetus (former slave).
The central claim of Stoicism is elegant and radical: External events do not disturb us. Our judgments about external events disturb us.
As Marcus puts it: "If you are distressed by anything external, the pain is not due to the thing itself, but to your estimate of it; and this you have the power to revoke at any moment." — Meditations VIII.47
This is not passivity. This is a precise claim about where the work of a good life actually happens: inside, not outside.
Epictetus and the Dichotomy of Control
The most practically useful concept in Stoicism belongs to Epictetus, the former slave. His Handbook (Enchiridion) opens with a distinction that, once you've seen it, you cannot unsee:
"Τῶν ὄντων τὰ μέν ἐστιν ἐφ' ἡμῖν, τὰ δὲ οὐκ ἐφ' ἡμῖν." (Of existing things, some are in our power and some are not in our power.) — Epictetus, Enchiridion 1.1
In our power: our judgments, impulses, desires, aversions — our inner mental activity. Not in our power: our bodies, reputations, property, other people's actions.
Applied to developer life:
| In My Control | Not in My Control |
|---|---|
| The quality of my code | Whether my PR gets merged |
| How I respond to a review | The reviewer's tone |
| Monitoring after deployment | Third-party API failures |
| My own learning rate | Team's technology decisions |
| Recognizing my burnout | Company headcount decisions |
The Stoic prescription: invest your energy in the left column. Accept, without distress, whatever happens in the right column. This doesn't mean not caring — it means not allowing outcomes you can't control to determine your inner state.
Memento Mori: Remember Death
The most counterintuitive Stoic practice:
Memento mori — remember that you will die.
In modern ears this sounds morbid. To the Stoics it was liberating. When you hold your own death in view, the code review that seemed devastating this morning suddenly shrinks to its actual size. The promotion you didn't get, the architectural argument you lost, the product that got cancelled — these things are real, but they are not the scale of a human life.
Marcus uses a sharp variant of this practice he calls the view from above: imagine observing your situation from the perspective of the cosmos, or of history. Alexander the Great and his enemies now share the same dust. All the Roman emperors Marcus knew of were gone. He would be gone too.
"Alexander the Great and his mule driver both died and the same thing happened to both." — Meditations VI.24
This is not nihilism. Marcus cared intensely about ruling well. But the cosmic perspective kept the small things from becoming large things. He ran an empire; we run microservices. Neither of us should let a bad code review ruin a week.
Amor Fati: Love of Fate
Friedrich Nietzsche coined the phrase amor fati — love of fate — but the Stoic roots run deep. Marcus expresses it as:
"The impediment to action advances action. What stands in the way becomes the way." — Meditations V.20
This is perhaps the most useful single sentence in Stoic philosophy for software engineers.
The production incident you're dealing with is not an obstacle to doing good work. It is the work. The legacy codebase that seems like punishment is the actual problem your team was hired to solve. The hostile stakeholder who keeps changing requirements is the real-world complexity that separates software engineering from puzzle-solving.
Amor fati doesn't mean pretending bad things are actually good. It means developing the orientation where you meet obstacles as the substance of a meaningful professional life, rather than interruptions to it.
Summum bonum — the highest good — in Stoic philosophy is not money, fame, or career success. It is virtue (ἀρετή, arete): the exercise of reason and ethics in every circumstance, regardless of outcome.
Seneca and the Currency of Time
Of all the Stoics, Seneca is the most urgently readable. He wrote letters to a friend named Lucilius that read like the emails a very wise colleague sends at the end of a long day:
"Dum differtur vita transcurrit." (While we delay, life passes.)
And more directly:
"Ita fac, mi Lucili: vindica te tibi." (Do this, my Lucilius: reclaim yourself for yourself.)
Seneca believed that most people spend their lives in a peculiar poverty: they have money, health, and opportunity, but they give their time — their actual lives — to others without a second thought. They're too busy for what matters.
For developers in the attention economy, this lands hard. How many hours last week did you spend in meetings that could have been documents? How many evenings did you spend anxiously refreshing Slack? How much of your attention — the substance of your life — went to the urgent rather than the important?
"Nusquam est qui ubique est." — Seneca, Letters 2.2 (He who is everywhere is nowhere.)
Slack notifications, email, JIRA, GitHub, Confluence, Pagerduty. The engineer who is everywhere is nowhere. Seneca would have had thoughts about this.
The Three Stoic Disciplines
Marcus Aurelius organized his practice around three disciplines, articulated clearly by the later philosopher Epictetus (Robertson, 2019):
Discipline of Assent (Judgment)
Don't react automatically to events. Pause between stimulus and response. When a code review comment lands with "this is completely wrong," the Stoic move is not immediate defense or shame. It is: Is this factually accurate? Is this about my code or about me? What is actually being said here?
The Stoics called the automatic emotional reaction a passion (πάθος, pathos) and distinguished it from a rational emotion (εὐπάθεια, eupatheia). You can feel frustrated; frustration is information. But the frustration shouldn't drive the response.
Discipline of Action (Impulse)
Act for the common good, but hold the outcomes loosely. In Stoic terms: have preferred indifferents (προηγμένα ἀδιάφορα). You should try to write excellent code — that's a reasonable preference. But the specific outcome (merge approval, praise, promotion) is not within your control and should not be the source of your self-worth.
Practically: write the best PR you can, respond thoughtfully to all feedback, and then detach from the result. The quality of your effort is yours. The decision belongs to the team.
Discipline of Desire (Wanting and Avoiding)
Desire only what you can control. Fear losing only what you can control. Since reputation, job security, and career advancement are all, ultimately, not fully in your power — the Stoic does not build her identity on them.
This sounds ascetic. It isn't. Marcus owned great wealth, wielded enormous power, and cared about results. But he held these loosely enough that losing them didn't make him someone else.
Stoicism and Imposter Syndrome
The Meditations reveal something startling: Marcus Aurelius, emperor of Rome, had imposter syndrome.
He worried constantly about whether he was living up to his philosophy. He berated himself for laziness, for spending too long in bed, for not being as good a person as his Stoic heroes. The most powerful man in the Western world doubted himself in almost exactly the ways junior engineers do.
His response is instructive. He didn't try to eliminate the self-doubt — he redirected his attention. Instead of asking am I good enough? (unanswerable, dependent on external validation), he asked am I doing my best work right now, with the tools I have? (answerable, within his control).
"You have power over your mind, not outside events. Realize this, and you will find strength." — Meditations
Imposter syndrome is, in Stoic terms, a confusion about which column you're in. You feel inadequate because you're measuring yourself against an external standard (other people's perception of you) rather than an internal one (are you improving, are you honest, are you trying). The Stoic move is to return to what you can actually control.
Practical Stoicism for Developers
Morning Premeditation (premeditatio malorum) Five minutes before starting work: what difficulties might I encounter today? A contentious PR review? A confusing requirement? A production alert? Visualize handling each with equanimity. This is not pessimism — it's inoculation.
Evening Review (Seneca's practice) Three questions at day's end:
- What bad habit did I struggle against today?
- What virtue did I practice?
- In what way did I improve?
The Dichotomy Check When stressed: is this in my control, or not? If not, what is the part of this situation that is in my control? Redirect energy there.
The View from Above When a conflict feels all-consuming: what would this look like in a year? In ten years? To a thoughtful observer on the other side of the planet? Scale restores proportion.
Closing: The Emperor's Last Word
Marcus Aurelius died in 180 CE, campaigning on the Danube frontier. He never published the Meditations. It was never meant for us. It was a private training regimen — a man who happened to be running the world, reminding himself daily of principles he kept forgetting under pressure.
"The first rule is to keep an untroubled spirit. The second is to look things in the face and know them for what they are." — Meditations VIII.7
An untroubled spirit, not because nothing is hard, but because you've located your self-worth somewhere that bad code reviews cannot reach. Looking things in the face, not pretending problems don't exist, but not catastrophizing them either.
The production server will go down. The PR will get rejected. The roadmap will change. The code you were proudest of will be deleted.
And you, like Marcus on the Danube, will write your reflections, return to the work, and choose — one more time — to be someone who meets difficulty with equanimity.
That's the emperor's code review. And it approves your PR.
References
- Aurelius, M. (c. 170-180 CE). Meditations (Τὰ εἰς ἑαυτόν). Gregory Hays trans. (2002). Modern Library.
- Epictetus (c. 108 CE). Enchiridion. Nick White trans. (1983). Hackett Publishing.
- Seneca, L.A. (c. 65 CE). Letters from a Stoic. Robin Campbell trans. (1969). Penguin.
- Robertson, D. (2019). How to Think Like a Roman Emperor. St. Martin's Press.
- Holiday, R. (2014). The Obstacle Is the Way. Portfolio/Penguin.
- Irvine, W.B. (2008). A Guide to the Good Life: The Ancient Art of Stoic Joy. Oxford University Press.