오늘은 작업을 그렇게 많이 하지는 못했다. 신년 잡담 때 ‘클린 아키텍처부터 훅 처진다.‘는 얘기를 괜히 한건지 정말 말하는 대로 되고 있다. Event Bus(혹은 Event Relay)을 각종 설계, 구현, 테스트 사이클로 도출하는데도 일주일이 안걸렸는데 마이그레이션에서 9일이 넘어간다. 아버지가 쓰러지신 영향도 있지만 진도가 과하게 늦는 면이 있다. 그만큼 디벨롭만 극한으로 쌓던 시절 코드퀄리티가 엉망이었단 거니 크게 할 말은 없다. 코드퀄리티와 무관하게 레이어드로 쌓아올린 걸 클린으로 바꾸는 거니.. 사실상 같은 어플리케이션 레이어 코드베이스를 두 번 짜는 격이다. 클린 아키텍처에 익숙하지 않아 더딘 면도 있다. 만들면서 익히는 중이긴 하지만 처음엔 계층만 잡아두고 하위를 어떻게 잡아야할지 잘 몰랐다. 디테일하게 디렉션을 줘도 생성형 코드는 정합성이 안맞는 부분이 많다. 현재 어플리케이션 레이어는 기능별로, 인프라스트럭쳐는 기술별로 구분해 나열했다. 어플리케이션의 경우 기능과 역할이 주관심사라 로직(service)만 남기고 외부 기술들은 인프라에서 의존성을 끌어오는 port만 둬 교체가 용이하게 구성했다. 이런 서비스와 포트를 조립하는 역할은 usecase가 맡는다. 인프라의 경우 기술별로 구분했다. 외부 기술을 끌어오는만큼 버전 관리, 스펙 등 설정이 주요해서 폴더를 펼쳤을 때 기술별로 응집성을 높여 관리하는 게 용이하다 판단했다. 위와 동일한 논리로 프레센테이션(엔드포인트) 레이어의 경우는 프로토콜별로 구분했다.
https://arxiv.org/pdf/2512.24601
이코에코에선 설계/구현/테스트에서 에이전트와 상호작용하는만큼 컨택스트가 주요한 병목이었다. LLM이 관여하지 않는 파트는 배포와 Observability 뿐이다. 두 피쳐는 LLM이 소비하는 정보의 원천(SSOT)에 가깝다. RLM이라고 25년에 발표된 논문이 있는데 재귀적으로 LLM을 호출하며 컨택스트 제한을 우회하는 기법을 다룬다. 단일 모델로 컨택스트당 성능 지표도 함께 제공하는데 16K 이상 컨택스트가 증가하면 성능이 지수적으로 하락하는 걸 볼 수 있다. 그 지점에서 클로드 코드로 루트 에이전트를 두고 서브 에이전트 단위로 작업을 수행하는 영상들이 겹쳐 보였다. 루트를 두고 서브들을 호출하며 오케스트레이션하는 방식이 현시점 LLM에겐 가장 알맞는 접근이겠더라. Claude 워크숍 영상에서도 툴콜링보다 배시를 추천하던데 이유가 비슷했다. 컨택스트는 희소한 자원이면서도 사용할수록 LLM의 성능이 저하되기도 하니, 다른 리소스들을 차치하고 컨택스트를 일급시민으로 잡고 가는 전략이나 패턴들이 산재한 듯 싶다. 실상 현재 보여지는 27-100K 컨택스트는 허상에 가깝고 LLM의 성능을 온전히 쓸 수 있는 컨택스트의 양은 16K라는 말이나 다름이 없다. 100K를 쓰는 것보단 27K로 컴프레스->리프레시 많이 주는게 더 성능이 좋겠더라. 컴프레스 자체를 빼는 것도 나쁘지 않겠다. 컴프레스는 은근 큰 도움이 안된다. 차라리 컨택스트 0K의 LLM 성능이 더 좋다고 느낄 때가 꽤 된다. 컨택스트가 쌓여도 가끔 LLM이 클러스터 디버깅을 하다 루프를 도는 경우를 제외하고 코드와 리포트는 잘 뽑아내는 걸 보면 인간의 지적활동이라는게 대단한 게 아니었나 보다. 패턴을 짜맞추는 방식으로 전산상에서 벌어지는 대다수의 일을 수행 가능하게 될 줄 누가 알았겠나. 그만큼 SW는 파워풀하면서도 사기에 가까운 제품군 같기도 하다. 만드는 내가 할 말은 아니지만 말이다. 아무튼 다시 이코에코 백엔드 코드 얘기로 돌아오면 도메인 API 서버 7가지, 도메인별 Worker(Integration Layer) 4가지, 컴포넌트 서버 4가지로 구현 코드양 자체가 많기 때문에 대충 생성된 코드들이 자주 발견된다. 작업은 일단 관측 데이터로 로직 정합성이 안맞는 파트(주로 큐다.)를 발견하면 커서에게 디렉션을 주고 누워있다가 다시 확인하고를 반복 중이다. 진주에서 숙소로 쓰는 모텔이 난방이 없어서 상당히 쌀쌀하다. 난방기기는 침대 전기장판이 다라 이불 밖을 벗어나기가 힘들다. 작업을 하다가 잠든 적도 꽤 된다. 이러다가 재취업은 할란지 모르겠다.
한국 나이 서른이 되면 사기업은 정말 들어가기 어려울텐데.. 29(Global: 27)인 이 때에 재취업을 마무리 지어야 한다. 이 시기를 넘기면 핏이 맞는 곳을 잡고 들어가기 힘들어질 듯 싶다. 이런 걱정을 하는게 한 편으론 아버지께 죄송하다. 의식이 없이 생사를 오가는 상황인데도 내 밥그릇부터 챙기니 말이다. 오늘 작업을 하다가도 많이 울었다. 아직 현실감이 없다. 진주 숙소비도 걱정이고, 재활 비용도 걱정이다. 반년은 해야할텐데.. 일단 현재를 잘 넘겨야지 말이다. 한달동안 진주에서 머물 수도 있다. 부종기가 어떻게 되냐에 따라 달라진다. 동생이 모은 돈을 다 쓰는 듯 싶다. 비용을 물으니 ‘마지막일 수도 있는데 그게 문제냐.‘는 얘길 하는 걸 보면 참 어른스럽다. 난 그 얘기를 듣고 ‘이전같은 아버지 모습은 없을 거라고 생각한다.’라고 말하면서 또 울었는데 말이다. ‘이전 모습은 이제 없다.‘는 생각을 하면서도 얼핏 인지만큼은 정상이시지 않을까란 기대만 가진다. 몸이 불편하시면 휠체어 밀어드리면서 산책 다니면 되지. 아버지 인지능력이 온전히 회복된다면 성격상 우측 마비가 와도 되려 더 당당하게 다니려 애쓰실 듯 싶다.
이력서는 업데이트를 해뒀다. 가지치기를 좀 해야한다.
진주에 머무는 동안 PPT를 만들고 프로젝트는 마무리를 지을 예정이다. 달에 숨만 쉬어도 150이 나가는 건 지금 상황에서 감당이 안된다. 아버지랑 마지막으로 통화한 것도 이 내용이었는데 참.. 어제 사촌이랑도 얘기를 했지만 아버지의 뇌출혈엔 내 책임이 크다고 생각하는 편이다. 부아가 차는 일이 있으면 부모님께 괜히 토해내듯 털게 되는데 그정도가 심할 때면 ‘그 때처럼 악귀가 들리면 안된다.‘고 말씀을 하셨다. 그 일을 꺼내실 때면 한 번씩 말을 저셨다. 당시 충격을 크게 받으셨던게 아닐까 싶다. 취업 직전의 일이었다. 취업을 해서 그나마 다행이었다. 정말.. 정신과도 가봤지만 아무런 이상이 없어서 더 의문인 상황이었다. 그렇게까지 망가질 건 아니었는데 말이다. 사촌은 ‘나도 그 얘기를 듣고 놀라긴 했지만 너가 그만큼 받는 프레셔가 많았던 것도 사실이었잖냐.‘며 위로를 해줬다. 곁에 몇 안남은 좋은 사람이다.
전날 아버지 혈종은 절반이 빠졌다고 한다. 그래도 응고된 피가 어느정돈 녹아 다행이라 여겼다. 면회시간엔 잠이 들었던 상태라 가진 못했다. 직전 새벽까지 작업을 이어와서 그랬는데 오늘도 이 시간까지 깨있는 걸 보면 수면패턴이 꼬였나보다. ‘그냥 내가 조금만 더 잘풀렸으면 쓰러질 일까진 없었을텐데, 더 긍정적인 말들 나눴을텐데’ 라는 생각을 많이 한다. 2년동안은 정말 불안, 불평에 대해서만 말한 듯 싶다. 일에 대해 열심히 얘기한 순간도 많았지만 이렇게 된 마당에 보면 마음만 아프다. 아버지께서 적었던 레트로 댓글들을 한줄한줄 읽다보면 금새 슬퍼지면서도 이렇게 남겨둬서 다행이라고 여긴다. 블로그를 써두는 이유도 비슷하다. 기술이랑 이력을 담는 용도였지만 이런 잡담을 자주 남기는 이유도 순간 스쳐가는 상념들은 금방금방 휘발된다고 느껴서 그렇다. 조금만 기간이 지나도 없던 일처럼 옅어진다. 굳이 남기지 않는 게 더 나을지도 모른다. 참을 수 없는 존재의 가벼움이라고 밀란 쿤데라가 쓴 근현대문학이 있는데 중고등학생 때 그 책을 참 좋아했다. 등장인물들 일상을 교차시키며 보여주다, 한순간에 퇴장시키는 플롯이었다. ‘당대의 혼란과 전란의 짐(세계대전을 말한다. 작품은 이후 세대인 1960년대를 배경으로 그린다.)은 일상을 살아가는 청년들에게는 너무 무거운 일이었기에, 덧없게 가는 인물들을 그리며 인생의 가벼움을 표현하려 했다.’라는 작가의 말이 아름답다고 여긴다. 작가의 말이었는지, 비평이었는지는 정확히 기억이 나지 않으니 양해 바란다. 아무튼 그제 이모 할머님을 포함한 많은 어르신 분들께서도 비슷한 말씀을 하셨다. 대문호든, 이모 할머니든 사람들이 삶에서 느끼는 건 크게 다르지 않나 보다. 가볍게 살자.