개발 환경을 한 줄 지시로 쓰기: Vagrant 의 표준화

요약

어느 팀에서나 이 대화가 벌어진다. 새로 온 사람이 이틀을 들여 갖췄는데도 아직 오류가 난다. 같은 코드가 어떤 기계에서는 이상하게 군다. Vagrant는 다른 길을 택한다. 환경을 설정 문서에 적고 체제 판과 연결 포트와 공유 폴더와 준비 절차를 항목마다 선언한 뒤 한 줄 지시로 세운다.

추천
이름
Vagrant
버전
2.4.10
요금
무료
오픈소스
비오픈소스
운영체제
WindowsmacOSLinux
공식 사이트
https://www.vagrantup.com/
업데이트
2026-10-07 16:28

환경을 기억하지 않고 적어 두기

어느 팀에서나 이 대화가 오간 적이 있다. 새 사람이 들어와 이틀을 들여 무언가를 깔았는데도 프로젝트는 아무도 모르는 오류를 낸다. 같은 코드가 어떤 기계에서 돌고 다른 기계에서 이상하게 군다. 차이를 캐 보면 라이브러리 판이거나 언어 설정이거나, 삼 년 전에 누군가 shell 설정에 덧붙인 경로 하나다. 환경을 어떻게 세우는지에 대한 지식은 분명히 있다. 그러나 그것은 사람의 머리와 고참의 책갈피 안에 살고, 다시 말해 조직이 가진 지식이 아니다.

Vagrant의 수는 그 지식을 적어 두는 것이다. 설정 문서가 체제 판과 넘길 연결 포트와 손님 쪽에서 보일 위치와 첫 부팅에서 돌 준비 절차를 선언한다. 환경은 그 문서에서 세워진다. 한 줄 지시로 기계가 서고 한 줄 지시로 안에 들어간다. 환경은 더 이상 "각자 기억하는 것을 깐다"가 아니라 "모두가 같은 것을 받는다, 서술이 같기 때문에"가 된다.

결과는 편의보다 멀리 간다. 검토가 뜻을 갖는다. 보고한 사람의 환경을 보는 사람이 정확히 재현할 수 있기 때문이다. 새로 온 사람 맞이는 입에서 입으로 전하는 일이 아니게 된다. "깨끗한 기계에서 도는가"라는 질문의 답은 논쟁이 아니라 한 줄 지시가 된다.

화면

한 번 선언하고 어디서나 다시 세우기

설계의 영리함은 아무것도 다시 만들지 않는다는 데 있다. 실제로 가상화하는 것은 아래의 성숙한 토대이고, 그것이 무엇이든 Vagrant의 일은 선언을 동작으로 옮기는 것뿐이다. 이 분담이 오래 살아남은 이유다. 아래 기술이 좋아지면 도구는 입구를 바꾸지 않고 그 향상을 물려받았다.

이미 만들어진 상의 공개된 목록이 있어 흔한 체제를 영에서 세울 필요가 없다. 이미 있는 상자에서 시작해 자기 차이만 적으면 된다. 게다가 설정 문서는 코드 옆 보관 장소에 살기 때문에 환경 변경이 코드 변경과 같은 대접을 받는다. 차이가 보이고 검토가 있고 기록이 남으며 돌던 판으로 되돌아갈 수 있다.

가르치는 쪽도 같은 이점을 받는다. 교육 자리에서 가르치는 사람의 환경과 배우는 사람의 환경이 한 바이트도 다르지 않다. 그것이 문의의 한 종류를 통째로 없애고 그 시간을 설치가 아니라 주제에 쓰게 한다.

놓치기 쉬운 효과도 하나 있다. 설정 문서는 환경 설명서로 그대로 남는다. 반년 뒤 같은 프로젝트로 돌아왔을 때 그때 어떻게 세웠는지 떠올리지 않아도 문서를 읽으면 같은 상태에서 시작할 수 있다.

오후 하나를 아끼는 실무적인 주의. 설정 문서는 일종의 글쓰기이고 코드와 같은 정성을 받을 만하다. 기계는 사람 이름이 아니라 맡은 역할로 이름 짓고, 준비 절차는 따로 문서에 두어 프로젝트를 넘어 다시 쓰고, 상의 판은 묶어 고정해 떠돌지 않게 한다. 판을 떠돌게 두면 삼월에 세워지던 것이 구월에 세워지지 않고 원인을 찾는 데 이틀이 든다.

좀처럼 적히지 않는 점도 짚는다. 이 문서는 설명서이기도 하다. 나중에 팀에 들어온 사람이 이것을 읽으면 그 응용이 어떤 서비스를 바라고 어느 포트가 어디로 가며 첫 부팅에서 무엇이 일어나는지 알 수 있다. 설계의 상당 부분이 이것만으로 설명된다.

그리고 이것은 자료를 나눠 주는 장치가 아니라는 점도 잡아 두어야 한다. 나누는 것은 서술이고 내용이 아니다. 그래서 각 기계에서는 같은 서술에서 같은 결과가 나오지만 거기서 만든 것은 저마다의 기계에 남는다. 함께 쓰고 싶은 것이 따로 있다면 그것은 다른 문제로 다뤄야 한다.

Vagrant의 공적은 환경을 입으로 한 약속에서 문서로 바꾼 데 있다. 설정을 코드로 다루고 환경을 되풀이할 수 있는 사실로 만든다. 어긋남이 줄고 넘김이 매끄러워진다.

머리를 식히고 쓰기

습관 셋. 설정 문서를 보관 장소에 두고 코드와 같은 판 번호로 키운다. 환경 변경에 이력과 되돌리기가 생긴다. 쓰지 않는 기계는 주기적으로 치운다. 가상 원판은 안의 파일을 지워도 작아지지 않고, 들고 다니는 기계는 누구 예상보다 빨리 찬다. 그리고 중요한 실험 전에 한 장 찍는다. 이 기계는 설계부터 잃어도 되는 것이고, 강한 척할 이유가 없다.

기계 하나가 너무 무거운 가벼운 용도에는 그릇 방식이 더 맞고, 같은 프로젝트 안에서 나란히 설 수도 있다. 그러나 과제가 정말로 완전한 체제를 필요로 하고 저마다의 핵심과 부팅 흐름을 가진다면, 그것을 "오후 하나"에서 "서술 한 장"으로 바꾸는 가장 짧은 길이 여기 있다. 무료이고 세 환경에서 돌며, 요구하는 것은 원래 알고 있는 것을 적어 두는 일뿐이다.

Vagrant다운로드
지원 운영체제: Windows macOS Linux