ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 보인다는 말보다 캡처 파일이 더 강합니다
    AI Agent/flutter 2026. 7. 8. 09:00
    728x90
    반응형

    양손에 나란히 든 인쇄된 앱 캡처 두 장
    지난주 화면이 붙어 있던 캡처 한 장

    "그거, 적용됐어요." PR 설명란에 저는 그렇게 적었습니다.
    "여백 줄인 거 반영했습니다"라고, 스크린샷 한 장까지 붙여서요.
    캡처 폴더에 있던 화면 이미지를 하나 끌어다 놓았고, 슥 봤을 때 맞는 것 같아서 더 들여다보지 않았습니다.

    리뷰가 돌아온 건 그날 오후였습니다.
    "이거 지난주 화면인데요." 짧은 한 줄 아래, 리뷰어가 여백이 그대로인 부분을 네모로 표시해 두었더라고요.
    붙인 이미지를 다시 열어 보니 정말 예전 화면이었습니다.
    새로 찍었어야 할 캡처를, 저는 폴더에 남아 있던 옛날 파일로 붙여 놓고 "됐다"고 말하고 있었던 겁니다.
    얼굴이 조금 화끈했습니다.

    그날 배운 건 단순합니다.
    UI 작업에서 "적용됐어요", "잘 보여요" 같은 말은 그 자체로는 증거가 아니라는 것.
    화면이 정말 바뀌었는지는 제 말이 아니라 파일이 대신 말해 줘야 한다는 것.

    제 말을 증거로 내밀고 있었습니다

    곱씹어 보면 민망한 건 캡처가 예전 거였다는 사실보다, 제가 제 기억을 증거로 내밀었다는 쪽이었습니다.
    코드를 고쳤으니 화면도 당연히 바뀌었겠지 — 그 머릿속 확신을 "됐어요"라는 말로 포장해서 리뷰어한테 건넨 거죠.
    정작 제 손은 새 캡처를 만들지도 않았는데 말입니다.

    그리고 말과 파일이 어긋나면, 그 차이는 꼭 남이 대신 발견합니다.
    리뷰어는 제 "됐어요"를 믿고 그 화면을 검토했고, 여백이 안 맞는 걸 저 대신 찾아 줬습니다.
    제가 아꼈다고 생각한 몇 분이, 그대로 리뷰어의 시간으로 옮겨 가 있었던 셈입니다.
    "적용됐어요"라는 말은 그렇게, 검증 안 된 확신을 남한테 떠넘기는 말이기도 했습니다.
    그걸 깨닫고 나니 그 한마디가 전보다 무겁게 느껴졌습니다.

    그날 저는 리뷰에 "아, 예전 캡처를 붙였네요.
    새로 찍어서 다시 올릴게요"라고 답을 달았습니다.
    별것 아닌 정정 한 줄이었는데, 화면을 다시 찍어 붙이면서 속으로 뜨끔했습니다.
    이 한 번을 제가 먼저 했으면 리뷰어가 지난주 화면을 붙들고 있을 일도 없었을 테니까요.
    새로 찍는 데는 십 초면 됐는데, 그 십 초를 아끼려다 남의 오후를 쓴 셈이었습니다.

    파일이 없으면 증거도 없습니다

    그래서 확인의 기준을 말에서 파일로 옮겼습니다.
    "됐다"는 감각 대신, 붙이려는 이 캡처가 정말 이번 작업의 결과인지를 파일한테 물어보기로 했습니다.
    화면이 아무리 그럴듯해 보여도, 그 이미지가 언제 만들어졌는지가 진짜 증거니까요.

    // 붙이기 전에: 이 캡처가 이번 작업에서 새로 찍힌 게 맞나?
    final shot = File('build/captures/empty_home.png');
    expect(
      shot.lastModifiedSync().isAfter(changeStartedAt),
      isTrue,
      reason: '수정 시각이 이번 작업보다 이르면 지난주 화면을 붙이는 것',
    );
    

    수정 시각 한 줄이 결정적이었습니다.
    mtime이 이번 작업을 시작한 시각보다 이르면, 화면이 어떻게 보이든 그건 지난주의 저를 붙이고 있는 거니까요.
    예전 같으면 눈으로 슥 보고 넘어갔을 자리에서, 지금은 그 파일이 언제 찍혔는지를 먼저 봅니다.
    캡처를 만드는 습관보다, 만든 캡처를 의심하는 습관이 먼저 생긴 셈입니다.

    기준 시각은 거창하게 잡지 않았습니다.
    화면을 고치기 시작한 순간을 하나 기록해 두고, 붙일 캡처가 그보다 나중에 만들어졌는지만 봅니다.
    이 한 줄 덕에 "이거 이번에 찍은 거 맞나"라는 물음에, 이제는 어렴풋한 감이 아니라 시각으로 답할 수 있게 됐습니다.
    확신이 아니라 타임스탬프가 대신 대답해 주는 거죠.

    이제는 "됐어요" 전에 파일을 엽니다

    지금은 PR에 "적용 완료"라고 쓰기 전에, 붙일 캡처를 제가 먼저 엽니다.
    파일에 찍힌 시각으로 "이번에 새로 찍은 화면"이라는 게 드러나면, 리뷰어도 저도 그 화면을 두 번 의심하지 않아도 됩니다.
    예전엔 "됐어요"라는 말과 이미지 한 장을 얹었다면, 지금은 그 이미지가 언제 찍혔는지까지 같이 얹는 셈입니다.

    덕분에 리뷰의 결도 조금 달라졌습니다.
    "정말 반영된 거 맞아요?" 같은 확인 왕복이 눈에 띄게 줄었거든요.
    말 대신 시각이 찍힌 파일이 앞에 있으면, 서로 그 한 단계를 건너뛸 수 있습니다.
    상대의 "믿어도 되나"를 제 말로 설득하는 대신, 파일이 스스로 증명하게 두는 거죠.

    사실 "됐어요"로 넘기는 건 팀에서 제일 빠른 길처럼 보였습니다.
    옆자리에 대고 한마디면 끝나니까요.
    그런데 그 말이 한 번 틀리고 나니, 빠른 게 아니라 확인을 뒤로 미뤄둔 것뿐이라는 걸 알았습니다.
    미뤄둔 확인은 꼭 남을 한 번 거쳐서, 더 커진 채로 돌아왔고요.
    매번 화면을 찍어 붙이는 게 처음엔 유난스러워 보였는데, 길게 보면 시각 찍힌 파일 한 장을 먼저 내미는 쪽이 팀에도 더 빨랐습니다.

    가끔은 그 캡처가 제가 틀렸다는 걸 리뷰어보다 먼저 보여 줄 때도 있습니다.
    붙이려고 연 이미지에서, 정작 안 바뀐 여백을 제가 먼저 발견하는 식으로.
    그럴 때마다 말부터 앞세웠으면 또 남이 찾아냈을 걸, 파일이 먼저 잡아 줬구나 싶습니다.
    다음 PR에도, 저는 말보다 파일을 먼저 열 것 같습니다.

    원문 기준

    원문 기준: https://docs.flutter.dev/cookbook/testing/integration/introduction

    원문 본 날짜: 2026-07-01.

    728x90
    반응형
Designed by Tistory.