국민대학교 인턴 이진구

제가 조사하게 된 주제는 네트워크와 시스템 인프라 였습니다. 이번 발표를 위해 조사한 시스템 인프라는 평소부터 궁금하던 내용들이 많이 나와서 공유해봅니다.
네트워크 구성

우선 제일 궁금했던 것 중에 하나가 네트워크, 서버, 저장소와 관련된 부분이였는데요.
평소에 왜 웹 서버와 웹 어플리케이션 서버를 분리해서 사용하는 지, 분리해서 나오는 이득이 무엇인지 궁금했었는데 이번 자체 세미나를 통해서 조금 알 수 있었습니다.
단순히 정적 웹페이지 처리, 동적 웹페이지 처리를 위한 분리가 아니라 웹 서버와 웹 어플리케이션 서버를 분리하여 서버에 부하를 줄이고 private zone 과 public zone, dmz zone에 서버를 분리해서 배치하여 보안을 강화하는 등의 이점이 있었습니다.
가상화

그 다음으로 가상화와 관련된 내용들을 조사했습니다. 도커같은 경우도 이 가상화를 적용한 것이었 더군요.
제한된 리소스를 가상화해서 여러 곳에서 분산해서 사용할 수 있게 해준다는 내용이었습니다. 이 가상화가 클라우드 컴퓨팅의 핵심 기술이라고 합니다.
가상화 전략을 통해서 필요한 만큼 리소스를 할당하고 필요가 없을 때는 할당했던 리소스를 감소시키는 방식으로 동작한다고 합니다.
이런 방식이 on-demand라는 것을 이번 조사를 통해 처음 알게 되었는데, 유용하기도 하겠지만 잘 써야 될 것 같다는 생각이 들었습니다.
사용한 만큼 지불하는 것이기 때문에 서버를 비효율적으로 구성하면 그 만큼 금전적으로 손해를 볼테니까요.
클라우드

가상화 이후에 조사하게 된 것이 클라우드 컴퓨팅이였습니다.
자료 조사 이전에는 왜 aws의 ec2에 public, private 클라우드 설정이 필수적으로 존재하는지 몰랐었는데, 이번 조사를 통해 알게 되었습니다.
보안에 민감한 데이터들과 외부에 공개해야 될 서비스들을 분리해서 클라우드 안에서 사용할 수 있더군요.
다음에 프로젝트를 만들 때는 클라우드 서버를 분리해서 만들어 직접 분산환경을 경험해보고 싶었습니다.
퍼블릭 존과 프라이빗 존을 나누고 라우팅 경로를 지정해주고 여러 가지 네트워크 설정들을 직접해보면 좋은 경험이 되겠다 생각됐습니다.
후기
자료들을 조사하면서 결국 실력있는 개발자가 되기 위해서는 인프라에 대한 지식을 갖추고 있어야 한다는 것을 느꼈습니다.
단순히 코드를 짜서 프로그램을 동작시키는 게 아니라 네트워크 통신 부터 시작해서 저장소, os, 미들 웨어, 분산 환경들에 대한 전반적인 이해가 있어야 기업 환경에서 동작하는 엔터프라이즈급의 어플리케이션을 작성할 수 있겠죠?
언젠가는 이 정도 수준의 지식의 숙지하고 있는 개발자가 되도록 끊임 없이 정진해야겠다는 좋은 자극제가 되었습니다.