본문 바로가기

더 괜찮은 개발자가 되기위한/정보시스템 운영

정보시스템 운영하기

□ 정보시스템 운영하기


프로젝트가 완료되면 시스템은 운영 단계로 들어가게 된다. 시스템 구축 만 전문으로 하는 프로그래머에게는 운영이라는 단어가 조금 생소하게 느껴질 지 모르지만 운영에 대한 전반적인 업무와 기술을 이해하고 있어야지만 좀 더 유지보수가 쉽고 생산성이 높은 프로그램을 만들 수 있다.


운영 업무를 담당하는 프로그래머 또한 운영에 필요한 전반적인 기술을 잘 알지 못하는 경우가 많다. 기업에서는 개발, 운영, 시스템관리, 보안 등 업무가 분리되어 있기 때문에 자신의 분야가 아닌 분야에서 어떤 일을 하고 어떤 기술이 필요한지 잘 알지 못한다. 하지만 시스템 장애가 발생할 경우 원인 파악을 위해서는 내가 운영하는 시스템과 연관된 시스템 사이에 어떤 장비가 있고 어떤 경로를 통해 정보를 주고 받는지 알고 있어야 한다. 프로그램 내부에 있는 오류 뿐 아니라 주변 환경의 변화 때문에 오류가 발생할 수 있기 때문이다.

이 장에서는 프로그래머가 장애 처리와 효율적인 프로그래밍을 위해 반드시 알아야 되는 정보시스템 운영 기술에 대해 알아보도록 한다.


○ 정보시스템 운영이란?


정보시스템 운영의 개념


일반적으로 시스템 운영이라 하면 프로그램에 대한 변경 작업을 많이 생각한다. 프로그램을 개발하고 수정해서 운영시스템으로 이관하는 일련의 과정을 개발 관점에서 운영이라 할 수 있다. 다른 측면으로 시스템 관점의 운영이 있다. 신규로 구축된 시스템은 데이터센터에 들어가고 네트워크, 보안, 백업, 스토리지 등 시스템 인프라와 맞물려 동작하게 된다. 데이터센터에 설치된 다양한 장비와 함께 어플리케이션이 잘 동작할 수 있도록 하는 것이 시스템 관점의 운영이다


프로그래머와 정보시스템 운영


프로그래머가 왜 시스템 관점의 운영 기술을 알아야 하는지에 대해 의문을 가질 수 있다. 하지만 어플리케이션 장애는 프로그램 자체에 문제가 있을 수 도 있지만, 연관된 시스템에 문제가 있을 수도 있다. 전문적인 엔지니어처럼 아주 깊숙한 부분까지 모르더라도 내가 만든 프로그램이 어떤 장비의 도움을 받아 고객에서 서비스를 하는지 알아야 장애가 발생하면 원인을 빨리 파악할 수 있다.


프로그래머에게 프로그램을 잘 만든다는 것은 굉장히 중요한 일이다. 하지만, 경력이 쌓여갈 수록 주위에 프로그램을 아주 잘 만드는 사람들이 점점 늘어간다. 이들과의 경쟁에서 어떻게 살아남을 수 있을까? 바로 프로그램이 동작하는 주변 환경에 대해 남들 보다 잘 아는 것이다. 시스템에 문제가 발생했을 때 보다 다양한 관점에서 장애 원인을 파악한다면 빠르게 시스템을 복구할 수 있을 것이고 시스템의 개선점을 쉽게 찾아낼 수 있다.


이런 관점에서 시스템 운영에 필요한 지식들을 하나씩 알아보자. 아주 깊숙이 알기 보다는 프로그래머가 알아야 하는 상식 선에서 하나씩 살펴보는 것이 좋다.


정보시스템 운영 환경


시스템 운영 환경이란 시스템이 안전하게 동작할 수 있는 제반 시스템을 말한다. 어플리케이션을 담고 있는 웹 서버는 홀로 동작할 수 없다. 네트워크가 연결되어야 하고 데이터를 저장할 수 있는 스토리지가 있어야 한다. 안전성을 확보하기 위해 다양한 보안 장비를 설치해야 하며 장애에 대비해 데이터를 주기적으로 백업하는 백업 장비가 있어야 한다. 시스템 운영 환경에는 이런 제반 시설이 모두 갖춰져 있다. 프로젝트에서 시스템 개발이 끝나면 새로 도입한 웹 서버는 시스템 운영 환경으로 들어가게 된다.