기본 콘텐츠로 건너뛰기

RHEL 9.3에서 Docker rootless 변환 작업, Claude Code로 3시간 만에 해결한 후기

들어가며

STT/TTS 인프라를 설치하는 일을 하다 보면 평소 같은 설치는 별 문제가 없습니다. 문서대로 따라가면 되니까요. 진짜 문제는 보안 정책이 까다로운 고객사 환경에서 시작됩니다. 최근에 RHEL 9.3 환경에서 Docker를 rootless로 변환하라는 고객사 요청을 받았는데, 이 작업에 거의 3시간을 매달렸습니다. Gemini도 써보고 Claude도 써봤는데 결국 해결한 건 Claude Code였습니다. 이 글에서는 그 과정과, 인프라 엔지니어 입장에서 RHEL 환경에서 AI 도구를 어떻게 활용하는 게 효율적이었는지 솔직하게 정리해봤습니다.

문제 상황 — Docker rootless 변환

Docker에는 rootful과 rootless 두 가지 실행 방식이 있습니다. 일반적으로는 root 권한으로 실행하는 rootful이 편한데, 보안에 민감한 고객사는 root 권한으로 컨테이너가 도는 걸 좋아하지 않습니다. 권한 분리가 명확하지 않다는 이유로요. 이번 프로젝트 고객사도 같은 요청을 했고, 기존에 rootful로 설치돼 있던 STT 인프라를 rootless로 변환해야 했습니다.

처음 접근은 단순했습니다. rootless로 다시 설치하면 되겠다 싶었는데, 막상 작업해보니 전체 구성이 rootless로 통일되면서 새로운 문제가 생겼습니다. root 권한으로 가져와야 하는 환경 리소스를 일반 사용자 권한으로는 가져올 수 없는 부분이 있었기 때문입니다. 부분적으로는 rootless로 동작해야 하지만, 특정 리소스는 root 권한이 필요한 상황이었습니다.

Gemini와 Claude로 먼저 시도했던 이유

처음에는 Gemini를 썼고, 그 다음에 Claude도 써봤습니다. 두 도구 모두 답변은 잘 해줬는데 문제는 따로 있었습니다. 답변을 받아도 직접적으로 환경에서 확인해볼 수가 없으니, 적용했다가 안 되면 다시 질문하고, 다시 안 되면 또 질문하는 패턴이 반복됐습니다.

대화형 AI 도구의 답변은 일반적으로 잘 정리돼 있긴 한데, 제 환경의 특수한 조합—RHEL 9.3, STT 인프라, rootless Docker, 권한 분리 필요—이 모두 맞물린 상태에서는 한 번에 정확히 작동하는 답을 받기가 어려웠습니다. 매번 실행하고 에러 확인하고, 다시 복사해서 물어보고, 또 시도하는 사이클이었습니다.

그 사이에만 거의 3시간이 흘렀고, 결국 직접적으로 코드를 수정하면서 진행할 수 있는 Claude Code를 쓰기로 결정했습니다.

Claude Code로 해결한 과정

Claude Code의 가장 큰 차이는 제가 매번 답변을 복사해서 적용하고, 결과를 다시 복사해서 묻는 과정을 거치지 않아도 된다는 점이었습니다. Claude Code가 직접 파일을 읽고, 수정하고, 결과를 확인하면서 자동으로 다음 단계로 진행했습니다.

물론 시간은 적지 않게 걸렸습니다. 수정할 부분이 많다 보니 한 번에 성공한 적이 거의 없었고, "이렇게 적용해보겠습니다", "이 부분이 실패했으니 다시 이렇게 적용합니다" 같은 로그가 계속 올라왔습니다. 그래도 매번 제가 손으로 옮기는 작업을 하지 않아도 되니 정신적으로는 훨씬 덜 지쳤습니다.

중간에 어떤 부분이 막혔는지 Claude Code가 직접 확인하면서 진행하니, 권한 문제로 안 되는 부분에 대해서도 빠르게 대안을 찾아냈습니다. 결국 부분적으로 rootless를 적용하면서 필요한 곳에만 root 권한을 우회하는 형태로 정리됐습니다.

RHEL 환경에서 AI 도구를 쓰면서 알게 된 것들

RHEL 9.3 환경 자체가 까다롭다

이번 작업을 하면서 다시 한번 느낀 건, RHEL 9.3 환경 자체가 다른 배포판에 비해 까다롭다는 점이었습니다. Rocky Linux와 호환된다고 알려져 있지만 실제로는 차별을 둔 패키지 파일이 있어서 설치가 잘 안 되는 경우가 자주 있었습니다. 마이너 버전이 바뀌어도 서로 호환되지 않는 부분이 있어서, 저는 마이너 버전별로 패키지를 따로 만들어서 가지고 다니는 방식으로 일합니다.

AWS에 설치할 때와 베어메탈에 설치할 때도 또 다르고, 거기에 고객사 보안 정책까지 맞물리면 정말 까다로워집니다. 결국 보안 정책을 다 풀어놓고 작업한 다음 마지막에 다시 적용하는 방식으로 진행할 때가 많습니다.

Claude는 질문형으로 물을 때 결과가 좋다

Claude에게 작업을 시킬 때 가장 효과적이었던 건 질문형으로 요청하는 방식이었습니다. "이렇게 해줘"보다 "이렇게 하면 어떨까?"라고 물어보면, Claude가 한 번 더 생각하고 확인하는 경향이 있었습니다.

그리고 한 가지 요청에 너무 많은 주제를 섞으면 결과가 나빠졌습니다. 내용을 길게 늘어놓는 건 괜찮은데, 주제는 하나로 좁혀서 요청할 때 가장 정확한 답이 나왔습니다. 반대로 실패하는 경우는 한 번에 두 가지 이상의 주제를 섞었거나, 핵심 키워드가 빠진 모호한 요청이었습니다.

AI 도구마다 강점이 다르다

Gemini와 Claude를 둘 다 써본 입장에서 솔직하게 말씀드리면, 두 도구를 협업시키는 방식이 가장 결과가 좋았습니다. 한쪽에서 만든 결과를 다른 쪽에서 검토하는 방식으로 가면 놓치는 부분이 줄어듭니다.

다만 용도는 좀 다른 것 같습니다. 코드 관련 작업, 특히 리눅스 환경 작업은 Claude Code가 좋았고, 일상적인 내용이나 일반적인 질문은 Gemini가 더 빠르고 자연스러웠습니다. RHEL이나 Linux 환경에서 직접 작업할 때만큼은 Claude Code가 가장 든든했습니다.

다른 RHEL 작업에서도 Claude Code를 활용한 사례

Docker rootless 변환 외에도 Claude Code를 활용해서 처리한 작업이 여러 가지 있습니다. STT 배치 테스트에서 안 되던 부분의 스크립트를 수정한 적이 있고, 대량 테스트를 자동화하기 위한 스크립트도 만들었습니다.

특히 도움이 됐던 건, 평소에는 웹에서 직접 해야 했던 작업들을 리눅스 상에서 명령어로 처리할 수 있도록 설정한 부분이었습니다. 매번 웹 인터페이스 들어가서 클릭하던 작업을 스크립트로 만들어두면, 다음에 같은 작업이 필요할 때 시간이 훨씬 줄어듭니다. 이런 자동화 스크립트 만드는 데 Claude Code가 진가를 발휘했습니다.

자주 묻는 질문

Claude Code와 일반 Claude의 차이는 뭔가요?

일반 Claude는 대화형이라 제가 답변을 복사해서 적용하고, 결과를 다시 복사해서 묻는 방식입니다. Claude Code는 직접 파일을 읽고 수정하고 실행 결과를 확인하면서 다음 단계로 진행하는 방식이라, 반복 작업이 많은 경우 효율이 훨씬 좋습니다. 다만 비용도 더 들고, 학습 곡선도 있습니다.

RHEL 환경에서 AI 도구를 쓸 때 가장 중요한 건 뭔가요?

업무에 대한 이해도와 원하는 결과를 명확히 표현하는 능력이 가장 중요합니다. 도구가 아무리 좋아도 "이게 안 됩니다"만 던지면 좋은 답이 나오기 어렵습니다. 어떤 환경에서, 어떤 작업을 하다가, 어떤 에러가 나는지를 구체적으로 적어야 정확한 도움을 받을 수 있습니다.

실수를 줄이려면 어떻게 해야 하나요?

같은 도구를 자주 쓰는 게 답인 것 같습니다. Claude Code도 작업 기록이 쌓이다 보면 제가 무엇을 하려는지 나중에는 더 잘 이해하는 느낌이 있었습니다. 다만 시간이 너무 많이 흘러서 컨텍스트가 끊기면 다시 처음부터라, 같은 프로젝트는 가능하면 한 번에 마무리하는 게 좋습니다.

비용 부담은 없나요?

솔직히 Claude Code는 일반 대화형보다 비용이 더 듭니다. 작업이 길어지면 토큰 사용량이 빠르게 올라가서 무시할 수 없는 수준이 됩니다. 다만 손으로 일일이 작업해서 야근하는 시간과 비교하면 훨씬 합리적이라고 생각합니다.

고객사 보안 정책이 까다로운데 AI 도구를 쓰는 게 괜찮나요?

제 경우는 코드 자체에 민감 정보가 들어가지 않도록 주의하면서 작업합니다. 환경 변수, API 키, 고객사 식별 가능한 정보는 더미값으로 바꿔서 질문합니다. 그리고 회사 정책에 따라 외부 AI 도구 사용 가능 범위가 다르니, 본인 회사 정책을 먼저 확인하시는 게 좋습니다.

마치며

RHEL 환경에서 인프라 작업을 하다 보면 문서대로 안 되는 경우가 정말 많습니다. 마이너 버전, 보안 정책, 고객사 요구사항이 맞물리면서 매번 새로운 문제가 생기는데, 이런 환경에서 AI 도구는 확실히 도움이 됐습니다. 다만 도구만 믿고 작업하면 안 되고, 환경에 대한 이해와 정확한 질문이 선행되어야 좋은 결과가 나옵니다.

이번 Docker rootless 작업도 결국 3시간 넘게 걸렸지만, 같은 작업을 다시 한다면 Claude Code로 훨씬 빨리 끝낼 수 있을 것 같습니다. 비슷한 환경에서 일하시는 인프라 엔지니어분들께 작은 참고가 됐으면 합니다.

📌 참고 자료

본 글은 운영자의 실제 사용 경험을 기반으로 작성됐습니다. 도구의 정책, 가격, 기능은 각 서비스 정책에 따라 변경될 수 있으므로 최신 정보는 공식 사이트에서 확인하시기 바랍니다.

본 글은 어떠한 협찬·광고 관계 없이 작성됐습니다. 운영자의 개인 경험이며, 모든 사용자에게 동일하게 적용되지 않을 수 있습니다.

최종 검토일: 2026년 05월 15일

댓글

이 블로그의 인기 게시물

Claude vs Gemini vs ChatGPT — 인프라 엔지니어가 다 써본 솔직한 비교

들어가며 AI 도구를 쓰다 보면 결국 다 한 번씩은 써보게 됩니다. 저도 인프라 엔지니어로 일하면서 ChatGPT, Claude, Gemini를 모두 써봤습니다. 이 글은 세 도구를 일정 기간 이상 직접 사용해본 사람의 솔직한 후기입니다. 어떤 도구가 무조건 좋다는 결론은 없습니다. 작업 종류와 상황에 따라 다르고, 비용 부담도 무시할 수 없으니까요. 비슷한 고민을 하시는 분들께 작은 참고가 됐으면 합니다. 처음은 ChatGPT였다 당연한 시작이었습니다. ChatGPT가 가장 먼저 나왔고, 그래서 처음 써본 도구도 ChatGPT였습니다. 처음 썼을 때는 정말 신기했습니다. 질문하면 답이 나오고, 코드도 짜주고, 모르는 개념도 설명해주니까요. 그래서 유료 결제도 했습니다. 그런데 쓰다 보니 점점 불만이 생겼습니다. 답변이 느려지는 느낌도 있었고, 같은 작업을 시켜도 결과가 일정하지 않았습니다. 프롬프트를 아무리 잘 작성해도 어느 순간 한계가 명확하게 보였습니다. 특히 코드 작업이 길어지면 앞에서 한 약속을 잊거나, 엉뚱한 방향으로 가는 일이 많았습니다. 결국 점점 안 쓰게 됐습니다. 지금은 거의 사용하지 않고, 구독은 일단 해지 예정으로 두고 있습니다. 다만 ChatGPT가 무조건 나쁘다는 건 아닙니다. 일상 정보 검색이나 그림 분석 같은 일반 사용에는 여전히 정보가 풍부해서 강점이 있다고 봅니다. 단지 제 작업—인프라와 코드 중심—에는 맞지 않았을 뿐입니다. Claude — 코드 작업에서 진가 Claude는 처음에 존재 자체를 몰랐습니다. 주변에서 쓰는 사람도 없었고요. 그러다가 코딩 작업에 강점이 있다는 이야기를 듣고 써보기 시작했습니다. 처음 써보고 가장 인상적이었던 건 코드 품질이었습니다. 같은 요청을 했을 때 코드가 깔끔하고 정렬이 잘 되어 있었습니다. 주석도 충실해서 긴 코드라도 나중에 다시 봤을 때 이해하기 쉬웠습니다. ChatGPT나 Gemini에서 받은 코드는 주석이 약해서 시간이 지나면 "이게 왜 이렇게 됐...

폐쇄망 STT/TTS 인프라를 혼자 자동화하기까지 — 6년 차 엔지니어 이야기

들어가며 저는 폐쇄망에서 STT/TTS 인프라 설치와 운영을 맡고 있는 엔지니어입니다. 인프라 일을 시작한 지는 6년 정도 됐고, 그동안 자동화 스크립트를 꾸준히 만들어왔습니다. 이 글은 자동화 기술 가이드가 아니라, 혼자 폐쇄망 환경에서 자동화를 만들어온 과정과 그 사이에 깨달은 것들을 솔직하게 정리한 글입니다. 자동화 시작하려는 분, 혼자 인프라 운영하는 분, AI 도구를 어떻게 활용할지 고민하는 분들께 작은 참고가 됐으면 합니다. 왜 자동화를 시작했나 이유는 단순했습니다. 사람이 없었어요. 폐쇄망에 STT/TTS 인프라를 설치하러 나가는 작업이 많은데, 같이 일하던 사람들이 하나둘 회사를 떠나면서 설치 가능한 인력이 점점 줄어들었습니다. 결국 설치를 할 수 있는 사람이 저를 포함해 몇 명 안 남았고, 그마저도 동시에 여러 현장이 있을 때는 도저히 손으로 못 했습니다. 자동화가 거창한 이유로 시작된 게 아니라, 그냥 안 하면 일이 안 굴러갔어요. 저녁에 컨테이너 하나씩 손으로 올리다가 새벽에 끝나는 게 매주 반복되니까, 결국 "이걸 어떻게든 자동으로 돌게 만들어야겠다"는 생각만 들었습니다. 처음엔 정말 단순했다 지금 생각하면 웃기는데, 제 첫 번째 자동화 스크립트는 "1+n" 계산이었습니다. 진짜 그게 시작이었어요. 쉘 스크립트로 변수 두 개 더하는 것. 그게 됐다는 것만으로 신기해서 그 다음엔 2를 만들고, 그 다음엔 같은 파일을 100개 복사하는 스크립트로 갔습니다. 별것 아닌데 이런 작은 스크립트들이 쌓이면서 점점 자신감이 생겼습니다. 이 초석 작업들이 나중에 진짜 자동화로 연결됐습니다. 파일 복사가 됐으니까 컨테이너 설정 파일을 여러 환경에 뿌리는 것도 가능해졌고, 변수를 다룰 줄 알게 되니까 환경별로 다른 설정을 자동으로 적용할 수 있게 됐습니다. 거창한 자동화는 단순한 것들이 쌓여서 만들어지는 거였어요. 진짜 자동화 — STT/TTS Docker 컨테이너 실행 제가 가장 많이 쓰...