당신의 코드베이스는 OSHA가 필요합니다

발행: (2026년 1월 7일 오전 10:23 GMT+9)
10 min read
원문: Dev.to

Source: Dev.to

나는 어수선한 공간에서 제대로 기능할 수 없었다. 이것은 깔끔함 때문이 아니라 더 깊은 문제다. 물건이 여기저기 흩어져 있거나, 라벨이 잘못 붙어 있거나, 막혀 있을 때, 그것은 단순히 짜증나는 것이 아니라 내 뇌를 아프게 만든다. 환경이 나에게 방해가 될 때 나는 명확하게 생각할 수 없다.


실제 사례

몇 년 전, 나는 창고에서 일했다. 재고가 무질서하게 쌓여 있었고, 통로가 막혀 있었으며, 물건은 제자리에 없었다.

“이 어수선함은 단순히 귀찮은 게 아니라 위험합니다. 누군가 넘어질 거예요.”

나는 매니저를 따로 불러 위험성을 차분하고 명확하게 설명했고, 혼란을 피해 돌아다녀야 해서 내가 더 느리다는 점을 지적했다. 그 반응은?

시간이 흘러 지금도 똑같은 말을 듣는다.


코드베이스는 위험한 작업 현장

  • 지뢰: 라벨이 없고, 잘못 연결된 로직, 당신이 밟을 때만 작동하는 숨겨진 함정.
  • 드러난 못: 코드에 남은 TODO, 반쯤 기억된 비즈니스 규칙.
  • 좌우명: “그게 다야.”

하지만 그렇지 않다. 반드시 그래야만 하는 것은 아니다. 눈에 보이지 않을 때 **“위험”**이 어떤 모습인지 우리는 잊어버렸다.

인지 손상도 손상이다

“당신을 소진시키고, 역량에 대한 의심을 심으며, 아키텍처가 이해를 적극적으로 방해해 늦은 밤까지 일하게 만드는 코드? 그건 안전 문제다.”

포크리프트 운전사가 브레이크가 없는 기계를 조작하기를 거부한다면, 우리는 그것을 안전 문제라고 부른다. 당신의 정신이 한계에 밀려 넘어갈 때는 왜 다르게 보는가?

안전을 요구한다는 것이 개인적인 실패가 아니다.
당신이 어려운 사람인 것이 아니라, 책임감 있는 사람일 뿐이다.


비즈니스 현실

이해합니다: 당신은 전달에 압박을 받고 있고, 또 다른 지연, 또 다른 논쟁, 보이지 않는 일에 또 다른 스토리 포인트를 쓰고 싶지 않겠죠.

진실: 이 혼란이 비용을 초래하고 있습니다.

  • 사고
  • 놓친 인수인계
  • 긴 온보딩 시간
  • 이직률

부상이 멍을 남기지 않더라도, 당신이 돈을 흘리고 있지 않다는 것은 아닙니다.

코드 품질에 대한 광신자가 될 필요는 없습니다.


위험한 인지 환경의 증상

  1. 생산성 저하가 관리자는 눈치채지 못함.
  2. 기본 작업을 두 번 생각함.
  3. 시스템이 메모리에 보관하는 것보다 머릿속에 더 많은 상태를 유지.
  4. 기능을 작성하는 대신 실패 모드를 예측하며 시간을 소모.
  5. 도구와 자신에 대한 신뢰 상실.

“무엇 때문에 이렇게 오래 걸리나요?” – 부상의 신호가 되는 고전적인 질문.

그리고 아마도 가장 나쁜 부분은? 당신은 그것에 대해 말하기를 멈춥니다—관심이 없어서가 아니라 무의미하게 느껴지기 때문이거나, 더 나아가 위험하기 때문입니다. 그 침묵이 바로 불안전한 시스템이 살아남는 방식입니다.

안전은 어떤 모습일까

기본

  • 숨 쉬세요. 두려움 없이 변화를 만들 자신감을 줍니다.
  • 예측 가능성. 새로운 개발자를 온보딩할 때 로자리와 지원 그룹을 건네줄 필요가 없습니다.

기존 안전 장비 (우리는 이미 가지고 있습니다)

  • 타입 시스템
  • 린터

누군가 빠르게 진행하기 위해 이를 비활성화하면, 그 이유는 곁눈질을 받게 됩니다—우리가 그 의미를 알고 있기 때문이죠.

안전 장비는 실제로 사용할 때만 효과가 있습니다.

공장 노동자에게 안전 장비는 선택 사항이라고 말한다면 어떨까요? 웃기죠? 아니면… 더 친숙하게 들리나요?

사고 후에 안전 프로토콜이 등장하는 이유

  • OSHA는 누군가 사다리를 깊이 신경 써서 생겨난 것이 아닙니다.
  • 해를 무시할 수 없게 되자 비로소 등장했습니다.

우리의 포스트모템은 피로 쓰여진 것은 아니지만 고통으로 쓰여 있습니다: 잠 못 이루는 밤, 잃어버린 주말, 번아웃, 에스컬레이션, 사직.

전형적인 포스트모템 문구:

  • “우리는 그 시스템이 얼마나 상호 연결돼 있는지 몰랐습니다.”
  • “테스트를 작성할 시간이 충분하지 않았습니다.”
  • “시스템이 취약했지만, 얼마나 취약한지 몰랐습니다.”

우리는 이를 사건이라고 부릅니다. 번개는 자주 치지 않으며, 같은 파일을 항상 치는 것도 아닙니다.

속도 vs. 안전

  • Velocity는 스칼라입니다. 팀이 얼마나 빠르게 움직이는지를 알려주지만 인지는 알려주지 않습니다.
  • 속도가 깔끔한 아키텍처에서 오는 것이든 무급 초과근무에서 오는 것이든 상관하지 않습니다.
  • 속도는 안전을 무시함으로써 만들어낼 수 있습니다—

OSHA는 속도로 성공을 측정하지 않습니다. 성공을 부상의 부재로 측정합니다.

Unsafe behavior isn’t a personal flaw—it’s a systems problem.

불안전한 환경은 시간이 지날수록 더 비싸집니다—단기적으로 더 빠르더라도 말이죠. 안전은 사고보다 비용이 적게 들지만, 그 비용은 해가 발생하기 전에 투자할 때만 그렇습니다.

시스템의 역할

안전한 환경은 모든 사람이 용감해야 한다는 것에 의존하지 않습니다.

시스템이 안전하지 않은 행동이 진행되지 않도록 하는 것에 의존합니다.

  • 사후 분석은 단순한 이야기에서 신호가 됩니다.
  • 안전 없이 빠른 진행은 전달이 아니라, 인력 이탈과 지연을 초래하는 조리법입니다.

우리는 스스로를 보호하는 방식을 새롭게 고안할 필요가 없습니다.


행동 촉구

당신은 부상을 보았습니다. 선택은 다음과 같습니다:

  1. 시스템을 계속 압박해서 뭔가 부서지게 하기.
  2. 안전이 중요하다고 결정하기.

진실은 간단합니다: 사고는 예방보다 비용이 더 많이 듭니다.

그렇게 생각하면, 다시는 보지 않기 어렵습니다.

어떤 시스템에 대해 책임지고 싶으신가요?

우리 모두는 무언가에 책임이 있습니다. 그리고 누군가는 당신이 올바른 결정을 내리길 기대하고 있습니다.

다음 위험을 물려받게 될 것입니다.
그 부분은 아직 당신에게 달려 있습니다.

Back to Blog

관련 글

더 보기 »