2017년 2월 9일 목요일

융합 소프트웨어의 개념과 발전 방향


증기기관과 기계화로 인한 1차 산업혁명 이후 전기를 중심으로 한 대량생산을 이룬 2차 산업혁명, 컴퓨터를 중심으로 한 자동화 생산을 보였던 3차 산업혁명에 이어 최근에는 거의 모든 산업에서 IT를 중심으로 하는 4차 산업혁명도 등장했다. 산업 관점에서 보면 로봇이나 인공지능과 같은 최신 IT기술을 반영하는 것까지만 볼 수 있지만 소프트웨어 관점에서 보면 각 산업에서 필요한 사항들이 무더기로 나오고 있다. 이번 회에서는 이러한 산업 변화에 따른 소프트웨어에 대해 글로벌 융합 IT사업을 함께 지원하고 있는 고려대학교 국제교육문화연구센터원과 단국대학교 소프트웨어공학연구센터원을 만나 이야기를 들어본다.

Q: 안녕하세요. 4차 산업혁명이라는 말을 많이 들어보기는 했는데 매체에서 얘기하는 것들이 조금씩 다른 경우가 많습니다. 정확한 정의를 부탁합니다.

두가지 용어가 모두 이론이 뒷받침이 된 용어가 아니기 때문에 다양한 형태로 해석을 하는 것 같습니다. 4차 산업혁명이라는 용어는 미국 실리콘밸리에서는 아무도 모른다는 얘기도 나오고 있고요. 하지만 이러한 말을 하는 사람이나 실리콘밸리를 포함한 전세계 모든 사람이나 회사들이 이제 IT가 없으면 아무것도 만들 수 없고 기계가 돌아가기 어렵다는 것을 알고 있습니다.
기계가 처음 나온 1차 산업혁명, 전기가 나왔던 2차 산업혁명, 그리고 컴퓨터가 나왔던 3차 산업혁명까지 산업의 혁신과 변화를 이끌었던 매우 중요한 요소들이 있었습니다. 3차 산업혁명은 컴퓨터를 통해 자동화를 이루었지만 사람이 명령을 내린 것만 할 수 있었습니다. 그런데 사람을 거치지 않더라도 기계들이 스스로 판단해서 움직이는 시대가 도래했습니다. 이 것이 4차 산업혁명입니다(그림1).

<그림1> 산업의 변화
출처: Wikipedia


SI 프로젝트에 애자일 적용 포인트 찾기

SI 프로젝트에 애자일을 적용할 수 없는 이유는 첫번째로 업무에 익숙하지 않은 개발자가 짧게는 3개월에서 길어도 1년을 넘지 않는 기간만 프로젝트에 투입되는 경우가 많았다. 업무도 모르는데 오래 머물지도 않아 있는 동안은 최선을 다하지만 주어진 기간에 맞는 수준까지만 수행하는 경우가 대부분이었다. 그러다 보니 Refactoring, TDD, Reuse 등 소프트웨어공학과 관련된 것은 물론이고 개발 외에는 신경 쓰지 않는 것이 보통이었다.
두번째는 요구사항의 변경이다. 프로젝트 초기에 정해진 요구사항은 프로젝트가 종료할 때까지 가급적 수정하지 않아야 하지만 요구사항의 변경에 의해 개발 중간에 변경되는 경우가 허다했다. 이런 수정은 회귀 오류를 발생시켜 프로젝트 전방위적으로 영향을 미쳤다.
세번째는 기능 중심으로 개발된다는 점이다. SI 프로젝트의 요구사항은 대체로 기능 중심으로 정의된다. 기능 중심으로 정의되면 개발하면서 유즈케이스와 시퀀스 다이어그램의 변경이 수시로 발생한다. 각각의 기능을 연결하면서 예기치 않는 오류가 빈번하게 발생하기 때문이다. 고객은 기능 단위로 일하지 않고 업무 프로세스에 맞춰서 일을 하기 때문이다. 이 세가지를 정리하면 업무를 잘 모르고, 개발 완료된 것이 변경되면 다른 개발에도 영향을 미치고, 마지막으로 고객은 업무 프로세스로 일하지 기능으로 일하지 않는다는 것이다.
해결점을 찾아보면 업무 프로세스 단위로 요구사항을 정의하고 개발하면 문제점이 해소될 여지가 있다. 애자일에서는 고객이 일하는 단위인 업무 프로세스를 사용자 스토리(User Story)라는 이름으로 정의하고 모든 프로세스가 사용자 스토리 단위로 움직인다. 이 것을 그림으로 나타내면 그림4와 같다.

<그림4> SI 프로젝트에 사용자 스토리 적용


소비자 지향의 디자인 씽킹 사례


  • 경험 디자인과 디자인의 차이






  • 현대카드