Development

소프트웨어 개발에서 Automation (자동화)에 대한 허와 실

chbae 2023. 9. 8. 05:43
728x90

소프트웨어 개발에서 Automation (자동화)에 대한 이야기를 많이 한다. 자동화는 여러군데에서 적용하여 실행을 할 수 있고 실제로 많은 도움을 주어 잡다한 일들을 해소시켜준다. 하지만 역으로 자동화를 구현, 관리하고 유지보수하는데 경우에 따라서는 많은 노력이 든다. 특히 임베디드 기기와 연결을 하거나 하면 더 그럴 수 있다.

 

하지만 많은 개발자들이나 매니저들은 자동화를 마치 신인 것처럼 계속 외치고 있다. 물론 좋다. 이상적으로 동작할 경우에는 100% 찬성한다. 하지만 매뉴얼 테스트하고 플래싱하는데도 하드웨어에서 문제가 생기고 소프트웨어에서 문제가 생기는데 무슨 자동화... 병행은 한다만 무조건 만능이고 모든 문제를 해결해 줄 것이라는 기대를 버리라고 하고 싶다. 실체를 제대로 파악하고 어느 분야/부분에서 어디까지 도움을 줄 수 있는지를 가늠해야한다.

 

출처: https://www.itprotoday.com/it-automation-and-orchestration/it-leaders-expand-automation-efforts-optimize-business-processes

 

프로세스와 맞물려 만들 수 있는 자동화. 이 프로세스라 함은 요구사항 관리, 개발 프로세스, 품질 관리 프로세스 등 다양한 분야가 있을 수 있다. 개발 프로세스를 이야기해보자면 리뷰를 자동화 해주고, Integration 을 도와주는 다양한 자동화 도구를 각 프로젝트/제품에 맞게 직접 만들어서 사용할 수 있다. 지금 진행중인 프로젝트에서도 완벽하진 않지만 둘다 구현하여 사용하고 있고 기능을 확장하려고 하고 있다. 아주 많이 false alarm으로 인해 고통도 받고 있지만 아직까지는 긍정적인 측면이 더 많이 있다.

 

문제는 임베디드 개발하는데 특히 자동차쪽 복잡한 임베디드에서의 테스트 자동화이다. IT쪽에서 개발하다온 개발자, 매니저들은 이게 모든 문제를 해결하는 열쇠인 마냥 외쳐대고 있다. 2-3년 전부터 계속 외쳐왔지만 실상은 여전히 불안정하고 실제로 대규모 하드웨어를 투자해 만들 여력도 없으면서 말이다.

 

LG전자에서 webOS로 제품을 개발할 때 Test Fram이 있었고 그나마 단일 보드에 리눅스 하나만 올라가 있어서 어느정도 테스트 자동화가 동작을 했다. 물론 문제는 계속 났긴 했지만 말이다.

 

지금 상황은 더 말이 아니다. 자동차쪽 하드웨어, 소프트웨어의 복잡도는 가히 엄청난다. 매뉴얼로도 문제가 많이 발생하고 하드웨어도 비싸고 심지어 많이 찍어내지도 않는 상황에서 자동화.. 참 어렵다. 물론 안한다는 것은 아니다. 계속 시도를 하고는 있다. 여전히 문제는 많지만 말이다. 하드웨어도 A,B,C,D 샘플이 있고 안정적이지도 않으며 추가적으로 붙어야하는 주변장치들도 엄청 많아서 셋업하나 하는일도 일이다. 지금도 원격에서 하드웨어를 접근하여 사용할 수 있는 Farm을 구성하여 개발자들에게 제공하지만 이마저도 많은 문제가 생기고 실제 사용할 수 있는 리소스도 개발자 대비하여 너무 적어 힘든 상황이다.

 

하드웨어 샘플이 충분하다고 가정해도 수시로 나는 문제 등 때문에 더 고통스러울 수 있다. 플래싱이 안정화 된다고 해도 랜덤으로 나오는 이슈들, 테스트 프레임워크에서 나오는 문제들도 정말 다양하고 많다.

 

현재 경험으로는 부정적이다. 다시 말하지만 완벽히 잘 동작한다는 가정하에는 자동화는 최고다. 유지보수 비용과 노력도 많이 안들면 말이다. 그래서 자동화를 위해 계속 노력하고 진행하고 있다. 실제 하드웨어 뿐만이 아닌 virtual 환경도 비슷하게 만들고 있다.