두 달 동안 개발 모드로 돌리고 있었습니다

전에 「저는 아무것도 안 건드렸습니다」라는 글을 썼습니다.

어제는 되던 게 오늘 안 되는데 원인을 못 찾은 이야기였습니다. 정말 아무것도 안 건드렸는데 그랬습니다.

이제 압니다. 제가 두 달 동안 개발 모드로 돌리고 있었습니다.

그게 뭐냐면

코드를 고치는 방식이 두 가지 있다는 걸 몰랐습니다.

개발 모드는 코드를 고치면 그 자리에서 바로 화면에 반영됩니다. 저장하면 끝입니다.

정식 운영 모드는 고친 다음에 한 번 묶어서 만들고(빌드), 그걸 서버에 올려야(배포) 반영됩니다. 한 단계가 더 있습니다.

저는 처음부터 개발 모드로 시작했고, 그게 개발할 때만 쓰는 방식이라는 걸 몰랐습니다.

왜 계속 그러고 있었나

편했습니다.

고치자마자 화면에서 확인이 됩니다. 직원이 “여기 이렇게 바꿔주세요”라고 하면 그 자리에서 고치고 “다시 한번 해보세요” 하면 됐습니다.

빌드가 뭔지 배포가 뭔지 몰랐고, 모르니까 불편하지도 않았습니다.

문제는 제가 그걸 문제라고 생각할 이유가 하나도 없었다는 겁니다. 잘 돌아갔으니까요.

AI가 먼저 말을 꺼냈습니다

어느 날 AI가 이런 이야기를 했습니다.

개발 모드로 계속 돌리면 메모리가 계속 커집니다. 불안해집니다.

무슨 말인지 정확히는 몰랐지만, “불안”이라는 단어가 걸렸습니다. 그래서 물어봤습니다. 개발 모드로 계속 가면 뭐가 문제고, 바꾸면 뭐가 좋아지고, 바꾸는 게 어렵냐고요.

장단점을 정리해줬습니다. 읽고 나서 제가 한 말은 이겁니다.

“조금 더 개발하고 나서 전환하자.”

바로 안 바꿨습니다. 지금 잘 돌아가고 있었고, 한창 만드는 중이었으니까요. 당장 아픈 게 아니면 미루게 됩니다. 저도 그랬습니다.

바꾸고 나서 달라진 것

2~3주 뒤에 바꿨습니다. 세 가지가 눈에 띄게 달라졌습니다.

하나. 메모리가 많이 줄었습니다.

그전에는 램이 계속 차올랐습니다. 70~80%까지도 차더군요. 32기가였는데도 그랬습니다. 바꾸고 나니 확 내려갔습니다.

둘. 직원들이 「공사중 화면」을 안 보게 됐습니다.

이게 제일 컸습니다.

개발 모드에서는 제가 코드를 고치는 순간, 쓰고 있던 사람 화면이 깨지듯이 나오면서 코드 같은 것들이 뜹니다. 잠깐 멈추기도 하고요. 저는 제 화면만 보고 있었으니 몰랐는데, 직원들은 그걸 계속 보고 있었던 겁니다.

지금은 제가 낮에 아무리 고쳐도 쓰는 사람 화면은 그대로입니다.

셋. 배포를 저녁 늦은 시간에 자동으로 하게 해뒀습니다.

퇴근 시간 이후 정해둔 시간에 알아서 올라갑니다. 아침에 출근하면 어제 고친 게 들어가 있습니다.

그리고 커밋 이야기

같이 나온 문제가 하나 더 있습니다.

개발 모드로 돌리면 고치는 즉시 반영되니까, 따로 저장해둘 이유가 없습니다. 이미 돌아가고 있으니까요.

그래서 저는 두 달 동안 코드를 제대로 저장(커밋)해두지 않았습니다. 나중에 세어보니 저장 안 된 코드가 5만 줄 있었습니다.

기록을 보니 이런 게 네 번 있더군요.

미커밋 누적분 일괄 반영

몰아서 저장한 흔적입니다. 그리고 제일 큰 것 하나는 5만 줄이 넘었는데, 그 직전에 제가 한 말이 이것뿐이었습니다.

“커밋해줘”

앞의 그 글로 돌아가면

「저는 아무것도 안 건드렸습니다」에서 답답했던 게 이겁니다.

어제 되던 게 오늘 안 되는데, 어제 상태로 되돌릴 수가 없었습니다. 저장을 안 해뒀으니까요. 뭐가 바뀌었는지 비교해볼 수도 없었고요.

지금 같으면 되돌려보고, 안 되면 하나씩 되짚어보면 됩니다. 그때는 그 방법 자체가 없었습니다.

「다 만들었는데 완성이 아닙니다」에서 계속 불안하다고 썼던 것도 그렇습니다. 그때는 그게 그냥 제 성격인 줄 알았는데, 개발 모드로 실서비스를 돌리고 있었으니 불안한 게 정상이었습니다.

이건 운이 좋았던 것 같습니다

개발 모드에서는 오류가 나면 어느 파일 몇 번째 줄이 문제인지가 화면에 그대로 뜹니다. 앞뒤 코드까지 같이요. 개발하는 사람 보라고 만든 기능입니다.

그 화면을 예전에 몇 번 봤습니다. 실제로 직원들이 “화면에 갑자기 이상한 게 나온다”고 하더군요. 뭐가 잘못된 건지, 자기가 뭘 눌러서 그런 건지 알 수가 없으니 당황할 수밖에요.

그런데 그때 제가 걱정한 건 보안이 아니었습니다.

“보기 이상하니까 공사중 화면으로 바꿔줘.”

그래서 가렸습니다. 그때 제 생각은 이랬습니다.

어차피 읽을 줄 아는 사람도 없고.

내부에서만 쓸 때는 맞는 말이었습니다.

그런데 얼마 뒤에

창업버스 접수나 사업계획서 제출처럼 밖에서 들어와야 하는 기능이 생겼습니다. 도메인을 하나 사서 열었고요.

그때부터는 “읽을 줄 아는 사람이 없다”가 성립하지 않습니다.

다행히 그 전에 이미 가려져 있었습니다. 그런데 그건 제가 앞을 내다봐서가 아닙니다. 보기 싫어서 한 일이 우연히 맞아떨어진 것뿐입니다.

저는 보안 이야기를 여러 번 썼습니다. 무엇을 올리면 안 되는지 나름 신경 쓴다고 썼고요. 그런데 정작 이건 몰랐습니다. 막아야 할 것인 줄도 모르고 막고 있었던 셈입니다.

그래서 남은 생각

몰라서 생긴 문제의 어려운 점이 이겁니다. 모르면 물어볼 수도 없습니다.

저는 이 두 달 동안 AI에게 수천 번 물어봤습니다. 그런데 “지금 이거 정식 운영 방식이 맞나요”는 한 번도 안 물어봤습니다. 그런 게 있는 줄 몰랐으니까요.

이번엔 AI가 먼저 말을 꺼내줘서 알았습니다. 운이 좋았던 것 같습니다.

그래서 요즘은 가끔 이렇게 물어봅니다.

“전체적으로 너가 봤을 때 문제가 있는 부분이 있을까?”

답이 길게 나옵니다. 아직 다 못 고쳤습니다.

댓글 남기기