hello

Vagrant 소개 및 사용법

Vagrant는 개발 환경을 코드로 관리할 수 있도록 도와주는 오픈 소스 도구

Share

📌 Vagrant란 무엇인가요?

Vagrant는 개발 환경을 코드로 관리할 수 있도록 도와주는 오픈 소스 도구입니다. 주로 가상 머신(VM)을 쉽게 생성하고 관리할 수 있게 해주며, 개발 환경의 표준화에 매우 유용합니다.

Vagrant는 다음과 같은 상황에서 활용됩니다:

  • 팀원 간 동일한 개발 환경 구성
  • 테스트용 임시 서버 실행
  • 로컬에서의 인프라 테스트 자동화
⚙️ 기본적으로 Vagrant는 VirtualBox와 함께 사용되며, Docker, VMware 등도 백엔드로 사용할 수 있습니다.

🔗 관련 링크


👨‍💻 누가 만들었나요?

Vagrant는 2010년, 당시 대학생이었던 Mitchell Hashimoto에 의해 처음 개발되었습니다.

  • Mitchell Hashimoto는 나중에 HashiCorp라는 회사를 공동 창업하게 됩니다.
  • HashiCorp는 Vagrant 외에도 Terraform, Consul, Vault, Packer 등 DevOps 분야의 강력한 도구들을 개발한 회사입니다.
🎓 참고: Hashimoto는 개인 프로젝트로 Vagrant를 개발했으며, 커뮤니티의 큰 반응을 얻은 이후 이를 기반으로 HashiCorp를 설립했습니다.

📜 라이선스는 어떤가요?

Vagrant는 MIT 라이선스로 배포됩니다.

✅ MIT 라이선스란?

  • 누구나 자유롭게 소스 코드를 복사, 수정, 배포할 수 있습니다.
  • 상업적 사용도 가능합니다.
  • 단, **원 저작자에 대한 표시(MIT license notice)**는 유지해야 합니다.
✔️ MIT 라이선스는 오픈소스 라이선스 중에서도 가장 관대한 형태입니다.

🧱 Vagrant의 주요 특징

기능 설명
환경 구성 자동화 Vagrantfile을 통해 VM 설정을 코드로 관리
다양한 Provider 지원 VirtualBox, Docker, Hyper-V 등 다양한 백엔드 지원
플랫폼 간 호환성 Windows, macOS, Linux에서 모두 사용 가능
프로비저닝 지원 Shell script, Ansible, Chef 등을 통한 환경 설정 자동화

💻 설치 방법 (2024년 기준 최신)

1. Vagrant 설치

아래 링크에서 본인의 운영체제에 맞는 Vagrant를 다운로드하여 설치합니다:

🔗 https://www.vagrantup.com/downloads

2. VirtualBox 설치 (기본 Provider)

VirtualBox가 없다면 함께 설치해주세요:

🔗 https://www.virtualbox.org/wiki/Downloads


📂 Vagrant 기본 사용법

1. 프로젝트 폴더 생성

mkdir my-vagrant && cd my-vagrant

2. Vagrantfile 초기화

vagrant init ubuntu/xenial64
  • 초기화 시 Vagrantfile이 생성됩니다.

3. Vagrantfile 예시

Vagrant.configure("2") do |config|
  config.vm.box = "hashicorp/bionic64"
  config.vm.network "forwarded_port", guest: 80, host: 8080
  config.vm.provider "virtualbox" do |vb|
    vb.memory = "1024"
  end
end
위 설정은 Ubuntu VM을 생성하고, 포트 80을 로컬 포트 8080으로 포워딩하며, 메모리 1GB로 설정합니다.

4. 가상 머신 실행

vagrant up
VM이 다운로드되고 자동으로 부팅됩니다.

5. SSH 접속

vagrant ssh
생성된 VM에 직접 접속할 수 있습니다.

6. 가상 머신 중지

vagrant halt

7. 가상 머신 삭제

vagrant destroy

📦 Vagrant Box란?

Vagrant에서 사용하는 운영 체제 이미지를 Box라고 합니다. Box는 다음 명령어로 검색하거나 추가할 수 있습니다.

Box 검색

vagrant cloud search ubuntu

Box 추가

vagrant box add ubuntu/xenial64

🛠️ 프로비저닝 예시 (Shell Script 사용)

Vagrant.configure("2") do |config|
  config.vm.box = "ubuntu/focal64"
  config.vm.provision "shell", inline: <<-SHELL
    sudo apt update
    sudo apt install -y nginx
  SHELL
end
위 설정은 VM 생성 시 자동으로 Nginx를 설치합니다.

📁 관련 명령어 요약

명령어 설명
vagrant init Vagrantfile 생성
vagrant up 가상 머신 실행
vagrant ssh SSH 접속
vagrant halt 가상 머신 중지
vagrant destroy 가상 머신 삭제
vagrant status 현재 상태 확인
vagrant box list 설치된 Box 목록 확인

Read more

LLM 시대, 프롬프트 엔지니어링보다 '도메인 전문성'이 더 강력한 무기인 이유

최근 AI 도구들이 비약적으로 발전하면서 '프롬프트 엔지니어링'이라는 기술적 기법에 많은 관심이 쏠렸습니다. 하지만 실제 현업에서 LLM을 극한으로 활용해 고도의 결과물을 만들어내는 사람들의 공통점은 정교한 프롬프트 템플릿을 쓰는 능력이 아니라, 해당 분야에 대한 깊은 '도메인 전문성'을 갖추고 있다는 점입니다. 많은 이들이 LLM이 지식의 격차를 줄여준다고

By JHL

AI 코딩 에이전트 도입 시 고려해야 할 보안 제어 프레임워크: 속도와 안전의 균형 잡기

최근 Claude Code나 Kiro와 같은 AI 코딩 에이전트들이 단순한 코드 완성을 넘어, 자연어 프롬프트 하나로 수십 개의 PR을 생성하고 인프라를 수정하는 수준까지 발전했습니다. 하지만 이러한 생산성 향상은 '기계적 속도'라는 트레이드오프를 동반합니다. AI 에이전트는 조직의 보안 리스크나 컴플라이언스를 이해하지 못한 채 오직 '작업 완료'에만 최적화되어

By JHL

AI 벤치마크의 '포화 상태'와 평가 지표의 유효기간: 우리는 무엇을 믿어야 하는가

최근 LLM의 성능이 비약적으로 상승하면서, 역설적으로 우리가 모델의 성능을 측정하는 '자' 자체가 무용지물이 되는 현상이 가속화되고 있습니다. arXiv에 게재된 "When AI Benchmarks Plateau: A Systematic Study of Benchmark Saturation" 연구는 우리가 흔히 신뢰하는 벤치마크 점수가 왜 더 이상 모델 간의 변별력을 제공하지 못하는지, 그리고 이른바 '

By JHL

AI 에이전트 시대의 엔드포인트 보안: 실행 권한을 넘어 '행위 거버넌스'로

DevOps.com을 통해 Airlock Digital이 발표한 'Agentic AI Control & Governance' 솔루션 소식을 접했습니다. 이번 발표의 핵심은 단순히 '어떤 AI 소프트웨어를 실행할 것인가'라는 기존의 화이트리스트 방식(Application Control)을 넘어, 실행 중인 AI 에이전트가 '실제로 어떤 명령을 내리고 어떻게 행동하는가'를 실시간으로 제어하겠다는

By JHL