클라우드를 공부하게되면 면접에서 나올법한 질문인 Container와 VM에 대한 설명을 정리해보고자 한다. Container 애플리케이션 중심으로 설계가 되었으며 컨테이너는 별도의 OS나 드 라이버 없이 호스트를 공유하는 형태로 실행된다. VM이 서버를 여러대로 사용할 수 있게 해주었다면 컨테이너는 애플리케이션을 독립적으로 실행해주기 위해 가상 공간을 할당해준다. VM보다 작은단위이며 처리하는 일도 적기 때문에 보다 간단하고, 빠르고, 효율적으로 애플리케이션을 실행시킬 수 있다. 대표적인 컨테이너는 Docker가 있다. VM 컴퓨터 환경을 가상화하여 소프트웨어로 구현한 것이다. VM은 서버, 호스트, Hyper-v 위에 올라가고 OS, 드라이버, 메모리 등 컴퓨터 환경이 구성되기 위한 필요요소들을 갖춰진..
기존 Spring 애플리케이션 환경을 구축할 때 주로 XML파일을 기반으로 개발에 필요한 모든설정을 잡아줬다. 가령 Spring MVC로 개발환경을 구성할 때 servlet-context.xml과 root-context.xml에 세팅하는데 설정을 잘못해서 예외가 발생하면 디버깅이 힘들었고 구축하는데에도 많은시간이 걸렸다. 그리고 컨트롤러에서 View를 렌더링 하는게 아닌 JSON 데이터를 전달하려고 할 때 jackson 라이브러리를 디펜던시에 추가해줘야하고 프론트에서 텍스트데이터가 아닌 파일형식의 데이터를 받아줄 때도 Multipart 디펜던시도 추가해줘야 한다. 이처럼 개발할 때 필요한 디펜던시들을 개발자가 하나하나 직접 찾아가면서 Spring 프로젝트 버전에 호환되게 등록해줬어야 했고 이러한 개발자의..