ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 빨간 줄 10개가 전부 거짓말이었습니다
    AI Agent 2026. 7. 27. 09:00
    728x90
    반응형

    늦은 밤 책상 위 식은 커피와 닫힌 노트북 사진
    빨간 줄 10개가 전부 거짓말이었습니다

    한 묶음의 작업을 막 끝낸 직후였습니다.
    빌드도 통과했고 테스트도 다 초록불이라, 이제 손 털고 일어나려던 참이었습니다.
    마우스를 한쪽으로 밀어두고 의자를 뒤로 빼던 그 순간, 저장하자마자 화면 왼쪽 줄에 빨간 점이 우수수 떴습니다.
    네이티브 화면 쪽 코드를 손본 파일이었습니다.
    진단 패널을 여니 10건.
    '이 환경에서는 그 기능을 쓸 수 없다', '그런 모듈은 어디에도 없다', '타입을 추론할 수가 없다'.
    메시지 하나하나가 다 그럴듯하게 무서웠습니다.
    방금 다 끝냈다고 생각한 직후라 더 그랬습니다.
    끝낸 줄 알았던 일이 사실은 안 끝나 있었다는 신호처럼 읽혔거든요.
    일어서려던 엉덩이가 다시 의자에 붙었습니다.

    손이 먼저 반응했습니다.
    불러오는 줄을 다시 확인하고, 방금 바꾼 한 줄을 되돌려보고, 오타가 났나 싶어 같은 함수를 세 번 읽었습니다.
    그런데 빨간 줄은 그대로였습니다.
    코드를 원래대로 돌려놨는데도 빨간 줄이 안 빠진다는 게 이상했습니다.
    보통은 원인을 되돌리면 신호도 같이 사라지니까요.

    되돌렸는데도 빨간 줄이 안 빠졌습니다

    여기서 멈췄어야 했는데, 저는 오히려 더 깊이 팠습니다.
    '모듈이 없다'는 진단을 곧이곧대로 믿고 의존성 설정 파일을 열어 한 줄 한 줄 훑었습니다.
    빠진 게 있나, 이름이 틀렸나.
    다 멀쩡했습니다.
    그래도 못 미더워 파일을 닫았다가 다시 열어봤습니다.
    빨간 줄은 닫힐 때 잠깐 사라졌다가, 다시 열자 똑같은 자리에 똑같은 개수로 또 떴습니다.
    그래도 못 미더워 캐시를 통째로 지웠습니다.
    색인을 처음부터 다시 돌렸습니다.
    진행 막대가 한 칸씩 차오르는 동안, 이번엔 분명 빨간 줄이 빠질 거라고 혼자 기대까지 했습니다.
    막대가 끝에 닿는 순간을 숨죽이고 기다렸습니다.
    그러는 데 10분 가까이 썼습니다.
    빨간 줄이 진짜라는 전제를 단 한 번도 의심하지 않은 채, 그 전제 위에서 부지런히 삽질만 한 셈입니다.
    의심해야 할 건 코드가 아니라 그 전제였는데요.

    색인을 다시 돌려도 10건 그대로였습니다.
    숫자 하나 안 줄었습니다.
    그제야 손을 멈추고, 화가 반쯤 섞인 채로 진단 메시지를 처음부터 천천히 다시 읽었습니다.
    '이 환경에서는 그 기능을 쓸 수 없다'.
    읽다가 걸렸습니다.
    이상했거든요.
    제가 손댄 건 분명 특정 환경 전용으로만 도는 파일이었습니다.
    그 환경에서는 당연히 쓸 수 있는 기능인데, 도구는 '쓸 수 없다'고 우기고 있었습니다.
    그 말이 맞으려면, 도구가 이 파일을 그 환경이 아닌 다른 자리에 놓고 보고 있다는 뜻이었습니다.
    그 한 줄을 세 번쯤 다시 읽고 나서야, 빨간 줄이 가리키는 게 코드가 아닐 수도 있다는 생각이 처음 들었습니다.
    파일이 돌아야 할 자리가 아니라, 전혀 엉뚱한 자리에 세워놓고 채점하고 있었던 겁니다.

    알고 보니 도구가 엉뚱한 자리에서 채점하고 있었습니다

    원인은 두 겹이었습니다.
    하나는 작업 공간 자체가 제대로 열려 있지 않은 상태였다는 것.
    의존성 폴더는 디스크에 멀쩡히 있는데, 정작 도구의 색인은 그 상태를 반영하지 못하고 한참 옛날 그림을 들고 있었습니다.
    다른 하나는, 그 색인이 갱신이 안 되니 인덱서가 멋대로 기본값을 골라 이 파일을 전혀 다른 환경 기준으로 분석했다는 것.
    특정 환경에만 있는 기능은 그 엉뚱한 환경엔 당연히 없으니, 그걸 쓰는 줄마다 '없는 걸 쓴다'고 빨간 점이 박혔습니다.
    10건 전부 같은 한 가지 오해에서 나온 거짓 경보였습니다.

    확신이 안 서서, 도구 말고 컴파일러한테 직접 물어보기로 했습니다.
    그 파일 하나만 떼어서, 이번엔 제대로 된 환경 기준을 분명히 못 박아 컴파일러로 직접 파싱시켰습니다.
    명령줄엔 문제의 파일 경로 하나만 남겼고, IDE 진단 패널은 일부러 닫아뒀습니다.
    명령을 치고 결과가 뜨기까지 몇 초가 유난히 길게 느껴졌습니다.
    통과.
    경고 하나 없이 깔끔하게 통과했습니다.

    화면에는 여전히 빨간 줄 10개가 떠 있는데, 컴파일러는 이상 없다고 합니다.
    둘 중 하나는 거짓말을 하고 있었고, 진짜 코드를 진짜 환경에서 읽은 쪽은 컴파일러였습니다.
    화면 속 빨간 점은 코드를 본 게 아니라, 어긋난 자기 색인을 본 거였습니다.
    그러니까 저는 지난 10분 동안 코드를 고친 게 아니라, 도구의 낡은 기억을 코드인 줄 알고 노려보고 있었던 겁니다.

    그래서 코드는 한 줄도 안 고쳤습니다

    결국 그날 그 파일에서 제가 고친 코드는 한 줄도 없었습니다.
    진짜로 손봐야 했던 건 코드가 아니라 환경이었습니다.
    작업 공간을 제대로 다시 열고, 의존성을 다시 깔고, 색인을 새 그림으로 갱신하는 것.
    그러자 빨간 줄 10개가 한꺼번에, 마치 처음부터 없었다는 듯 조용히 사라졌습니다.
    코드에는 아무 문제가 없었는데 10분을 코드만 노려본 셈입니다.

    그래서 이걸 깔끔한 교훈으로 닫는 대신, 다음에 또 당할 게 뻔하니 절차 한 줄로 박아뒀습니다.
    네이티브 쪽을 만지고 나서 빨간 줄이 우르르 뜨면, 코드를 건드리기 전에 먼저 컴파일러한테 그 파일 하나만 직접 물어본다.
    거기서 통과하면 빨간 줄은 무시하고, 대신 작업 공간을 다시 열라고 안내한다.
    도구가 신호를 띄운다고 그 신호가 진짜인 건 아니니까요.

    그런데 솔직히 이 절차를 적어두고도, 며칠 뒤 비슷한 빨간 줄을 봤을 때 손은 또 코드로 먼저 갔습니다.
    그 파일을 열고, 또 같은 함수를 들여다보고 있는 저를 한참 뒤에야 알아챘습니다.
    적어두는 것과 손이 길드는 것은 별개라서, 이건 아직 절차 한 줄로는 안 고쳐졌습니다.

    728x90
    반응형
Designed by Tistory.