4 소프트웨어 개발을 한다는 것은 무엇일까/4 5 DevOps는 시너지이다
DevOps는 Development와 Operation의 합성어이다. 개발과 운영 함께 잘해보겠다는 것이다.
왜 이런 개념이 나왔을까? 원래 구축을 하고 운영으로 인수인계를 한다. 구축하는 사람들을 개발팀이라고 부르고, 그 구축된 시스템을 운영해주고 유지보수 해주는 팀을 운영팀이라고 부른다. 소프트웨어 개발은 사람이 하기에 사람에 대한 이해가 필요하다.
각각 소속된 사람은 어떤 심리를 가지고 있을까? 구축팀은 어떻게든 납기 내에 고객이 원하는 시스템을 구축을 해야 한다. 부실공사라고 하더라도 목에 칼이 들어와도 일정 준수가 목표이다. 조금 불편한 정도는 내가 알바가 아니다. 목숨걸로 일정을 준수하려고 한다. 운영팀의 느낌은 어떨까? 어떤 사람들이 무언가 시스템을 만들었는데, 개떡 같은 느낌이다.
운영을 해야 하는데, 뭐가 뭔지 모르겠고, 시스템도 엉망인데다가 소스도 엉망인데, 어딜 손대야 할지도 모르겠는데, 메뉴얼 마저 부실하다. 그리고 개발팀 사람들은 개발이 끝났다고 어디론가 하나둘 도망가기에 바쁘다. 이게 현실이다. 그래서 운영팀은 욕을 하면서 어떻게든 운영은 해야 하니 소스를 손봐가면서 어떻게든 끌고간다. 기능들은 어떻게든 동작은 되는데, 뭐 하나 하려면 왜 이렇게 느린지. 그리고 무슨 기능을 하려고 하는데, 낯선 것들 투성이다.
왜 이렇게 만들었을까? 실제 사용할 사람들에 대한 배려는 전혀 없다. 왜 이렇게 되었을까? 그들은 고객의 요구사항에 촛점을 맞추고, 그 요구사항을 구현하기에 바빴다. 운영자들이 어떻게 사용하지에 그리고 어떤식으로 일하는지는 들어볼 새도 없었다. 운영자들이 시스템을 하다 보면 너무 번거롭거나, 버튼의 위치가 불편하거나 너무 느리거나 불편하기 짝이 없다.
그래서 개발팀과 운영팀이 하나가 되어 움직이는 것이다. 운영팀이 실제 운영 시 필요한 것들을 개발에 넣고, 개발팀은 운영관점에서 개발을 하고 구축이 끝나고 운영 시작이 아니라 구축을 하면서 운영을 하는 것이다. 애자일하게 개발을 하고, 그것을 운영에 반영하는 것이다. (CI) 애자일과 CI가 같이 돌아가면서 운영 중심의 개발이 되는 것이다. CI나 애자일은 다시 한번 다루기로 한다. DevOps의 취지는 그러하다. 방법론 자체가 중요한 것이 아니라 개발을 하되 운영 관점에서 개발을 해보자는 취지이다. 많은 곳에서 시도를 하고 있다. 자칫 운영도 하고 개발도 하는 애매한 모습의 팀이 만들어지지기는 하지만, 필요한 방향이라고 본다.
개발자, 기술사, 삼성, 외국계 IT기업 20년차 기술노트 알렉이 직접 작성한 IT기업 기술 면접을 위한 CS + 면접 노하우 PDF <https://kmong.com/self-marketing/539751/LUA54VnQsP> 자주 나오는 CS 질문과 답변 그리고 100번 이상 면접관으로 참여하면서 느꼈던 면접자가 알아야 할 팁 13가지 포함
백엔드 개발자를 위한 클라우드 강의, AWS <https://inf.run/o1NX>
이제는 비전공자도, 일반이도 개발할 수 있다. ChatGPT를 이용한 누구나 앱개발 with 알렉 <https://inf.run/rpX4>
백엔드 직접 번역한 도서 <https://www.yes24.com/Product/Goods/122536127>
IT기술의 거의 모든 것을 다루는 기술노트with알렉 유투브 <https://www.youtube.com/c/%EA%B8%B0%EC%88%A0%EB%85%B8%ED%8A%B8with%EC%95%8C%EB%A0%89>