코드로 남의 비즈니스를 지키던 내가, 이제 ‘내 삶’을 리팩토링하려는 이유

안녕하세요. CodeForLife에 오신 것을 환영합니다. (이 블로그는 일상을 리팩토링 해보자는 생각에 시작한 블로그입니다.)

소프트웨어 엔지니어링의 정점은 무엇일까요? 저는 단순히 복잡하고 화려한 코드를 짜는 능력은 아니라고 생각합니다. 진짜 실력은 복잡성을 제어하고, 예측 불가능한 상황에서도 시스템을 죽지 않게 만드는(High Availability) 능력에 있죠.

지난 수십 년간, 저는 이 능력을 회사의 이익과 서비스의 운영을 위해 쏟아부었습니다. 밤새 터지는 장애 알람을 막고, 남의 비즈니스를 지키기 위해서요.

그런데 문득 이런 생각이 들더군요. 1)“대규모 악성 트래픽을 막아내던 나의 보안 지식, 아키텍처 설계 능력, 장애 대응 경험… 이걸 왜 정작 ‘내 삶’을 리팩토링에는 쓰지 않고 있을까?” (물론 제가 게으르고, 능력이 안되는 것도 하나의 이유겠죠?)

블로그는 바로 그 질문에서 시작되었습니다. 보안과 인프라를 다루는 시니어 엔지니어가, 이 2)파괴적인 생성형 AI(Generative AI) 시대를 어떻게 받아들이고, 이를 통해 어떻게 자신의 삶을 ‘리팩토링(Refactoring)’ 해나가는지에 대한 기록입니다. 이 두가지가 주요 주제가 될 거 같네요.

리팩토링

1. 시니어 엔지니어, ‘기능 구현자’에서 ‘삶의 오케스트레이터’로 리팩토링

예전에는 코드를 얼마나 빨리, 잘 짜느냐가 실력이었습니다. 하지만 AI가 코딩을 대신해 주는 지금, 시니어의 역할은 달라졌습니다. 우리는 이제 단순한 코더가 아니라 시스템 전체를 지휘하는 ‘오케스트레이터(Orchestrator)’가 되어야 합니다.

저는 ‘삶을 위한 코딩(Coding for Life)’을 이렇게 정의합니다. 나의 일상을 거대한 ‘프로덕션 환경(Production Environment)’으로 바라보는 것입니다.

기업 시스템에 적용하던 원칙들을 내 삶에 적용해 보면 어떨까요?

  • CI/CD: 반복되는 가사/행정 업무는 스크립트로 자동화해서 실수와 노동을 줄입니다.
  • 모니터링: 내 건강 데이터, 재무 상태, 집안일의 진행 상황을 대시보드로 시각화합니다.
  • 재해 복구(DR): 소중한 가족 사진과 문서는 3-2-1 법칙에 따라 백업해 랜섬웨어나 분실에 대비합니다.
  • 보안(Zero Trust): 우리 집 네트워크를 분리하고, 프라이버시를 위해 로컬 AI를 구축합니다.

이것은 단순히 스마트 전구 몇 개를 다는 홈 IoT 수준이 아닙니다. 엔지니어링 역량을 투입해 삶의 불필요한 부하(Cognitive Load)를 제거하고, 삶의 질을 근본적으로 높이는 시도입니다.

2. ‘바이브 코딩’의 시대, 엔지니어링의 본질을 묻다

최근 ‘바이브 코딩(Vibe Coding)’이라는 말이 유행이죠? 대충 느낌(Vibe)만 말하면 AI가 알아서 짜주는 방식입니다. 프로토타입에는 최고일지 몰라도, 보안을 업으로 삼는 제 입장에서는 등골이 서늘해지는 이야기입니다.

“돌아가는 것(It works)”과 “올바른 것(It is correct)”은 다릅니다. 검증되지 않은 AI 코드는 결국 유지 보수가 불가능한 ‘기술 부채’가 되어 내 삶을 옥죄게 될 겁니다. 앞으로는 AI 코드가 모든걸 다 해결해줄 날이 얼마남지는 않은 것 같긴한데요. 아직은 조금 부족한게 사실인 것 같아요.

그래서 저는 ‘AI 보조 엔지니어링(AI-Assisted Engineering)’을 추구합니다.

  • Human-in-the-Loop: AI는 유능하지만 실수 잦은 ‘주니어 어시스턴트’입니다. 모든 결과물은 시니어인 제가 리뷰(Code Review) 합니다.
  • Spec-Driven: 막연한 느낌이 아니라, 명확한 설계 명세(Spec)를 주고 AI에게 구현을 시킵니다.
  • Security First: 내 민감한 금융 정보, 가족 데이터를 클라우드 AI에 마구 넘길 순 없습니다. 로컬 LLM(Home Lab)을 구축해 데이터 주권을 지키는 것, 이게 제가 추구하는 방향입니다.

레거시 개발 환경에 익숙하지만 이 역시 리팩토링을 통해서 계속 새로운 것을 받아들여야겠죠?

3. ‘공룡’이 아니라 ‘설계자’로 리팩토링 하려고 합니다.

요즘 AI 도구를 적극적으로 쓰지 않는 베테랑들을 ‘공룡’이라 부르며 도태될 거라 걱정하는 목소리가 있죠. 하지만 저는 조금 다르게 생각합니다.

시니어들은 ‘마법 상자’를 믿지 않습니다. 우리는 AI가 짠 코드가 내부에서 어떻게 도는지, 어떤 예외 상황(Edge Case)에서 시스템을 뻗게 만들지 본능적으로 시뮬레이션합니다. 주니어들이 “와, 코드가 돌아간다!”라고 환호할 때, 시니어는 “잠깐, 언제까지 동작 할 수 있지? 뭐가 영향을 미치고 있지?”를 고민하죠.

CodeForLife가 지향하는 바는 과거에 머무르는 것이 아닙니다. “수많은 실패로 축적된 경험 위에, AI라는 새로운 도구를 ‘안전하게’ 결합하는 것”입니다.

4. 그럼에도 불구하고, 왜 ‘글’을 쓰는가?

“개발자는 코드로 말한다”지만, 코드는 기계와의 대화일 뿐입니다. 미래의 나, 그리고 동료들과 소통하려면 ‘글’이 필요합니다.

제가 이 블로그에 글을 남기는 이유는 ‘생각을 디버깅(Debugging)’하기 위해서입니다. 머릿속에 떠다니는 아이디어는 글로 적는 순간 구조가 잡히고, 논리적 오류가 발견됩니다. 복잡한 시스템을 글로 풀다 보면 내가 뭘 모르는지(Unknown Unknowns)가 명확해지죠.

또한, 이것은 ‘나를 위한 문서화(Documentation)’입니다. 오늘의 저는 내일의 저에게 타인이나 다름없습니다. 왜 그때 그런 결정을 내렸는지, 이 시스템을 왜 이렇게 설계했는지 기록해두지 않으면, 미래의 저는 또다시 헤매게 될 테니까요.

물론 코드를 많이 작성하기도 합니다. 제 개인 Github에도 계속 작성을 하고 있죠.


마치며: 더 나은 삶을 위한 설계를 시작하며

CodeForLife는 단순한 기술 블로그가 아닙니다. 이곳은 “일상의 평온함을 위해 치열하게 엔지니어링하는 공간”입니다.

저는 AI라는 거대한 파도를 외면하지 않겠습니다. 대신 그 파도의 성질을 철저히 분석하고, 그 위에 올라탈 가장 튼튼한 서핑 보드(시스템)를 설계할 것입니다. 이제 저의 코딩은 거대 기업의 서버실을 넘어, 나의 거실, 내 서재, 그리고 사랑하는 가족의 일상을 향합니다.

우리는 기술의 소비자(Consumer)에 머물러선 안 됩니다. 기술을 도구 삼아 삶을 주체적으로 재구성하는 창조자(Creator)가 되어야 합니다.

이것이 제가 다시 코드를 짜고, 이렇게 글을 쓰는 이유입니다.

앞으로 이런 이야기들을 나눌 예정입니다

거창한 철학만 늘어놓고 끝내지는 않겠습니다. 이 공간에서는 시니어 엔지니어의 관점에서 검증하고 구축한 구체적인 사례(Use Case)들을 공유할 계획입니다.

  • Home Lab & Local LLM: 집에서 안전하게 굴리는 AI 비서 구축기
  • Financial Engineering: 파이썬과 API를 활용한 미국 주식/자산 포트폴리오 대시보드 만들기
  • Knowledge Base: 잊혀지는 기억을 붙잡는 ‘제2의 뇌’ 구축과 워크플로우
  • Family Tech: 개발자가 가족의 일상을 기술로 서포트하는 소소하지만 확실한 방법들

성공한 이야기뿐만 아니라, 삽질과 실패의 기록도 가감 없이 나누겠습니다.