칼럼

[채성수의 소프트웨어 논리] 동일한 패턴을 찾아 내는 자동화

발행일시 : 2017-05-01 00:10
[채성수의 소프트웨어 논리] 동일한 패턴을 찾아 내는 자동화

자동화의 핵심은 반복적으로 일어나는 일을 찾아내는 것이다. 사람은 같은 일을 계속 반복적으로 하면 금방 싫증을 낸다. 예를 들어 어린 아이들이나 어른들도 매일 아침에 동일한 반찬을 먹게 되면 다른 반찬 좀 해달라고 조르기도 한다. 사람은 천성적으로 반복적인 것에 대해서 짜증을 내거나 무료함을 느끼게 되어 있다. 그래서 새로운 것을 찾아서 모험이나 여행을 떠나기도 한다. 이렇듯 사람들은 반복적이지 않은 창의적인 일을 선호하는 편이다.

한 편으로는 일의 효율성 측면에서도 반복적인 일은 사람 보다는 자동화하여 기계에게 시키는 편이 좀 더 나아 보인다. 자동화는 이미 여러 곳에서 사용하는 기술이다. 가장 많이 사용하는 곳이 제품을 생산하는 공장이다. 제품 생산 공장에는 동일한 제품을 엄청난 속도로 생산할 수 있도록 기계를 사용하여 자동화 시켜 놓았다. 생산 공장 내에서도 자동화 시키지 못하여 사람이 직접 일을 하는 분야가 있는데 그건 것들의 대부분은 반복적이지 않거나 사람의 판단이 필요한 분야이다.

소프트웨어에서도 반복적인 것을 찾아내서 자동화하는 것이 중요한데 이것을 동일한 패턴을 찾아낸다고 말한다. 동일한 패턴을 찾아내기만 하면 소프트웨어를 개발하여 컴퓨터에게 쉽게 일을 시킬 수 있다. 가장 간단한 방법이 루프를 돌리는 것이다. 사례는 인형을 100개 만드는 일을 순환구조를 이용하여 자동화 한 것이다. i가 0부터 시작하여 100이 되면 루프를 빠져 나오게 되어 있다. 즉 100번 동안 동일한 인형을 만드는 작업을 자동화 할 수 있는 것이다.

[채성수의 소프트웨어 논리] 동일한 패턴을 찾아 내는 자동화

그럼 패턴은 무엇일까? 패턴은 반복적이고 주기적인 특징을 가지고 있다. 그렇기 때문에 패턴은 예측이 가능하다. 예를 들어 동일한 무늬를 10번 반복하면 어떤 모양이 될지 쉽게 상상할 수 있다. 한 편으로는 패턴은 재사용이 가능하다. 한 번 쓰고 버리는 것이 아니고 필요할 때 다시 쓸 수 있다.

그러면 패턴을 찾아내는 방법으로는 어떤 것이 있을까? 우선 하려고 하는 일의 시작과 끝을 잘 정의해야 한다. 일의 단위를 만드는 것이다. 그것을 통해서 일을 구분할 수 있다. 소프트웨어에서는 각각의 논리 덩어리를 만들어 내는 과정이다. 서로 연관 관계가 적은 독립적인 것들을 찾아 내는 것이 최소 단위의 패턴을 찾는 기본적인 방법이다. 서로 연관 관계가 없는 것들로 나눈 후에 동일한 것이 있으면 반복적 패턴이 있는 것이며, 이것을 소프트웨어로 만들면 그 이후에는 동일한 소프트웨어를 다시 만들 필요가 없이 재사용 할 수 있게 된다. 위의 사례로 얘기하면 인형을 만드는 소프트웨어를 하나만 만들면 루프를 이용하여 반복적으로 재사용 할 수 있는 것이다.

자동화의 큰 이점은 재사용이라고 했다. 한 번 만들어진 것을 재사용함으로써 비용도 줄이고 표준적이면서 품질 높은 제품이나 서비스를 제공 할 수 있게 된다. 예전에는 은행에 가서 돈을 찾을 때 항상 창구에서 찾을 돈에 대한 전표를 작성하여 은행 통장 및 도장을 같이 제출하면 은행원이 직접 돈을 세서 주었다. 물론 통장에는 출금한 돈의 잔액을 표시하여 돌려주었다.

이러한 과정은 현금 출금의 과정에서 반복적으로 일어나는 은행의 업무이다. 그래서 이 업무를 자동화 한 것이 ATM이라는 은행 기기이다.

[채성수의 소프트웨어 논리] 동일한 패턴을 찾아 내는 자동화

이제는 많은 사람들이 ATM이라는 기계에서 현금을 찾고 있다. 그림에서 보이는 회색 부분의 업무인 은행 창구에서 은행원과 예금자 사이에 하던 반복적인 일을 자동화 시킨 것이다.
자동화를 위해서 수작업으로 기입했던 출금 전표와 신분 확인을 위해 사용했던 통장과 도장을 대체하여 은행카드와 비밀번호 입력과 같은 다른 방법을 사용하였다. 비슷한 기능을 하는 다른 기능으로 대체하여 자동화를 완성한 것이다. 이러한 자동화 과정을 통하여 ATM기기는 은행 창구의 업무를 대신하게 되었고 지속적으로 같은 업무에 재사용 할 수 있게 되었다.

채성수 chaesungsoo@iabacus.co.kr 소프트웨어 개발 전문기업 ㈜ 애버커스 사업총괄 부사장. 엘지전자와 엘지씨엔에스(LG CNS)에서 다년간 컴퓨터 관련 사업을 추진한 전문가이다. 국가 공인 최고 자격인 정보관리기술사로 성균관대 및 서강대에서 컴퓨터 관련 연구를 수행했으며 소프트웨어 공학, 컴퓨터적 사고에 대해서 관심을 갖고 다양한 활동을 하고 있다.

(*이 칼럼은 Nextdaily의 편집방향과 다를 수 있습니다.)

© 2020 nextdaily.co.kr 무단전재 및 재배포금지

(주)넥스트데일리 | 등록번호 : 서울 아 01185 | 등록일 : 2010년 03월 26일 | 제호 : 넥스트데일리 | 발행·편집인 : 구원모
서울시 금천구 가산디지털2로 123, 701호ㅣ발행일자 : 2005년 08월 17일 | 대표전화 : 02-6925-6346 | 청소년보호책임자 : 나성률

Copyright © Nextdaily. All Rights Reserved