두 사람, 같은 몸: 개발자의 위기 아키텍처
Source: Dev.to
CrisisCore Build Log의 일부 – 공개적으로 빌드한다는 것은 정직하게 빌드한다는 뜻입니다.
내 몸 안에 두 사람이 살아 있습니다.
개발자: 아키텍처에 집착하고, 끈질기며, 모노레포 구조와 암호화 흐름을 꿈꿉니다. 출근해서 코드를 배포하고, 스키마를 새벽 4시까지 다듬습니다.
다른 사람: 몇 주째 밖에 나가지 못했습니다. 오늘 밥을 먹었는지 기억이 안 납니다. 오늘 아침 샤워하면서 울었을지도 모르지만 확신이 없습니다.
때때로 그들은 문장 중간에 서로 역할을 바꾸기도 합니다.
이 블로그 시리즈는 Pain Tracker라는 오픈소스 만성 통증 관리 애플리케이션을 구축해 온 과정에 대한 이야기이며, 암호화, 접근성, 임상 상호운용성에 엄격히 신경을 쓰고 있습니다. 이번 글은 이 프로젝트가 왜 존재하는가에 대한 이야기입니다.
기원 이야기 (실제 이야기)
나는 임시 거주 상황으로 이사한 뒤 이 프로젝트를 시작했습니다—안정된 거주지가 없고, 몇 년간 연락하지 않았던 친척의 자선에 의존하고 있었습니다. 내가 가진 유일한 구조는 VS Code를 열고 앉는 행동이었습니다.
Pain Tracker는 단순한 제품 아이디어가 아니었습니다. 그것은 비계—내가 외치고 있는 나머지 부분을 잠시라도 손으로 할 수 있게 해 주는 것이었습니다.
개발자는 집착할 무언가가 필요했고, 다른 사람은 의미 있는 무언가가 필요했습니다.
대부분의 날 나는 누가 이기고 있는지 모릅니다. 어떤 날은 두 사람 모두 키보드 앞에 나타납니다. 또 어떤 날은 둘 다 나타나지 않아 정적에 72시간을 잃기도 합니다.
코드 속의 괴물
내가 설계한 아키텍처는 극심한 고통 상태를 처리하도록 만들어졌습니다.
왜냐하면 나는 바로 그 상태에서 설계하고 있었기 때문입니다.
트라우마‑인포드 UI 패턴, 점진적 공개, 위기 감지에 대해 쓸 때, 그것은 이론적인 공감이 아니라 프로덕션에서 나 자신을 디버깅하는 것입니다.
다음과 같은 기능을 만들 때:
interface CrisisState {
detected: boolean;
severity: 'low' | 'moderate' | 'high' | 'critical';
suggestedActions: Action[];
safeExitAvailable: boolean;
}
나는 고통받는 사용자가 필요로 할 것을 상상하는 것이 아니라, 바로 그 사용자가 됩니다.
나는 상황이 나빠졌을 때 존재했으면 하는 도구들을 만들고 있습니다. 그리고 상황은 여전히 나빠집니다.
모든 날이 코딩 날은 아니다
기술 문화에는 “그라인드셋”을 낭만화하는 하위 섹션이 있습니다: 하루 16시간씩 배포하고 트윗하는 10배 엔지니어들 말이죠.
내 코드베이스에서 본 현실은 다음과 같습니다:
어떤 날 나는:
- 2,000줄을 작성한다.
- 전체 모듈을 리팩터링한다.
- HIPAA 감사를 통과할 암호화 시스템을 설계한다.
다른 날 나는:
- 빈 터미널을 세 시간 동안 바라본다.
- 오타 하나를 커밋한다.
- 노트북을 닫고 일주일 동안 다시 열지 않는다.
두 경우 모두 여전히 무언가를 만들고 있습니다.
보여주지 않는 노트북들
공개된 아키텍처 다이어그램과 블로그 포스트 뒤에는 손으로 적은 노트북이 쌓여 있습니다. 그 안에는:
- 낙서된 위기 계획
- 암호화된 잡동사니처럼 보이는 브레인 덤프
- 나 자신에게 적은 메모: “오늘은 안 된다. 내일 다시 시도해라.”
그것은 실패가 아닙니다. 크래시 로그이며, 좋은 시스템은 크래시 로그에서 배웁니다.
실제로 내가 만들고 싶은 것
Pain Tracker는 만성 통증 관리 애플리케이션이 맞습니다. 하지만 그것은 내가 첫 번째 붕괴 이후 계속 스스로에게 던져온 질문에 대한 시도이기도 합니다:
우리는 고통을 엣지 케이스가 아닌, 정상적인 경우로 다루는 소프트웨어를 만들 수 있을까?
고통은 드문 것이 아니라, 우리 대부분에게는 일상입니다. 우리는 행복한 경로 설계자들이 그것을 생각하지 않게 하려고 스스로 속일 뿐입니다.
내가 원하는 것은:
- 사용자가 무너질 때도 무너지지 않는 도구.
- 사용자가 차분하지 않아도 차분함을 유지하는 인터페이스.
- 내가 일주일 사라져도 계속 작동하는 인프라.
그것은 단순히 사용자 중심 디자인이 아니라 생존 가능한 디자인입니다.
빌드 로그 계속
우리는 “공개적으로 빌드한다”는 이야기를 많이 합니다. 보통은 제품 스크린샷과 성장 차트를 의미하죠.
이것이 나의 버전입니다: 아키텍처 다이어그램이 노트북 페이지 옆에 놓여—괴물과 개발자가 같은 하드웨어 위에서 실행됩니다.
당신의 기반은 시작할 때 땅이 얼마나 매끄러웠는가가 아니라, 얼마나 정직하게 균열을 지도하고, 얼마나 고집스럽게 보강했는가에 달려 있습니다.
내 땅은 불안정하고, 금이 가며, 이전 붕괴들로 가득합니다. 하지만 그것은 나의 것이고, 그 위에서 누군가의 지형을 조금이라도 덜 치명적으로 만들 도구를 만들고자 합니다.
이 이야기는 아직 끝나지 않았습니다.
당신의 페이지가 내 것과 비슷하고, 스스로를 끝내는 생각을 하고 있다면:
- 캐나다에서는 988로 전화하거나 문자로 도움을 요청할 수 있습니다.
- 그 외 지역에서는 현지 위기 라인이나 응급 서비스를 찾아보세요.
당신은 결함이 있는 기계가 아닙니다. 극한 부하를 겪고 있는 시스템일 뿐이며, 시스템은 안정화될 수 있습니다.