Agile과 DevOps는 소프트웨어 개발 방법론으로, 어떠한 방식으로 프로젝트가 진행되는지에 대해 설명해 줍니다.
이전에 진행되었던 개발 방식은 폭포수(Waterfall) 모델로, '요구사항 기술 - > 소프트웨어 설계 - > 소프트웨어 구현 - > 테스트 +디버깅 - > 설치 - > 소프트웨어 유지 보수'의 단계로 이루어지게 됩니다.
다음 단계로 진행되기 위해서는 반드시 전 단계가 수행되어 완료되어야 한다는 특징이 있는데, 만약 고객의 요구사항이 갑작스럽게 변경되게 되면 처음부터 다시 프로세스를 진행해야 하는 단점 이 있습니다.
이러한 단점들을 극복하고자 나타난 방식이 Agile 개발 방식으로, 폭포수 모델과의 가장 큰 차이점은 문서를 통한 개발 방식이 아닌 실질적인 코딩을 통합 방법론인 것입니다.
이로 인해 Agile 방식은 일정한 주기를 가지고 계속해서 프로토 타입을 만들어 내며 새로운 요구에 맞춰 소프트웨어를 수정해 나가는 특징이 있습니다.
이러한 Agile 방식은 ‘고객’과 ‘개발/테스트 팀’ 사이의 거리 문제를 해결하는 역할을 합니다.
DevOps는 소프트웨어 개발(Development)과 운영(Operation)의 합성어로, 소프트웨어 개발자가 정보기술 전문가 간의 소통, 협업 및 통합을 강조하는 개발 환경이나 문화를 말합니다.
이는 ‘개발.테스트 팀’과 ‘관리/영업 팀’ 사이의 거리 문제를 해결하는 역할을 하고, 이로 인해 운영 프로세스의 예측 가능성, 효율성, 보안, 유지보수 가능성을 극대화 하는 것이 목적입니다.