지난 5월 20일 코난테크놀로지 양승현 CTO님께서 ‘소프트웨어 기업 현장의 제품 개발 프로세스’라는 주제로 강의를 진행하셨다. 강의는 코로나 19로 인해 온라인으로 열렸다.

양승현 CTO님은 먼저 CTO님께서 대학생활부터 창업하기까지의 개인적인 경험을 이야기 하시면서 대학에서 사용제품까지 개발하는 것은 핵심 개발 외에 제품으로 내기 위해 해야하는 것들이 많으므로 힘들지만 이종 컴파일러와 os에서 문제없이 돌아가기까지 개발을 진행해보는 경험들이 도움이 될거라고 말하셨다. 그리고 창업 기업의 생존율은 3년 이상 40%, 10년이상 8%, 20년 이상 1%미만으로 매우 낮으며 창업기업에게 가장 위험한 경우가 만들었는데 팔 곳이 없는 것이라고 하셨다.  이 이야기를 하시면서 기업이 고객의 니즈와 세상의 변화에 얼마나 잘 적응하는지가 중요하다고 하시면서 코난테크놀로지가 그랬듯 확실한 기술 경쟁력이 있어야 살아남을 확률이 높지만 타겟 고객군과 고객의 니즈를 잘 파악하고 있어야한다고 덧붙이셨다.

그 다음으로 소프트웨어의 기업의 유형으로 전통 기업, 시스템 통합(SI)기업, e-비즈 서비스에 대해 간단하게 이야기 하신 후 소프트웨어 제조 기업과 제품 개발 프로세스에 대해 이야기 하셨다. 소프트웨어 제조 기업은 소프트웨어 제품을 만드는 기업으로 최초에 출시한 뒤에 유지보수를 거쳐서 고객이 계속 사용할 수 있도록 업데이트하는 기업이다. 이런 기업들은 소프트웨어가 얼마나 고객들에게 사용되는지, 즉 소프트웨어 생명 주기가 매우 중요한데 양승현 CTO 님께서 conan search & analysis infograpy를 통해 기업현장에서 품질이 어떻게 관리되고 있는지 이야기해주셨다.

새로운 업데이트로 인해 예전에 만들어둔 코드가 이상이 생겨 잘 돌던 제품이 잘 안 돌아가게 되는 경우 이것을 회귀 오류라고 한다. 이런 회귀 오류 중 단순히 몇일전 코드를 고치는 것이 아니라 몇년, 몇십년 전 코드를 고쳐야 하는 경우가 있는데 이런 경우에는 제품 수정이 힘들다고 한다. 이런 회귀 오류들을 고치고 지속 가능한 개발과 품질 보장을 위해서 소프트웨어 개발 및 품질 관리 프로세스가 필요하다고 한다.  코난 테크놀로지에서는 개발자들은 매일 코드를 추가하고 수정하는 일을 하고 기계가 돌려서 에러가 없는지 확인한 후, 품질 관리자들이 품질을 인증하는 제품 개발 프로세스가 있었는데 아래의 사진과 같이 프로세스가 존재한다고 보여주시며 중요한 부분을 집어서 설명해주셨다. 그 중에 CI(Continuous Integration)라는 것은 기계가 밤새 테스트 하면서 문제가 생기면 빨간불이 들어오고 그것을 개발자가 고치는 식으로 통과 될때까지 계속 반복하는 프로세스로 개발 프로세스의 꽃이라고 하시면서 이런 개발 프로세스를 살펴보면 기업을 알아보는데 도움을 받을 수 있다고 덧붙이셨다.

마지막으로 기업에서 바라보는 인재형에 대해 이야기하시면서 기업에서 출제하는 코딩테스트를 위해 평소 구글링해서 코드를 받아서 사용하기보다 밑바닥부터 자신의 코드를 완성시키는 것을 연습하는 것을 권하고 싶다고 이야기 하셨고 exception handling, 자원 관리를 배우느라 기업에서 실전에서 일할 때까지 시간이 정말 길게 걸리는데 지금부터 이런 것들을 신경쓰면 좋을 것 같고 포트폴리오를 만들라고 이야기하셨다. 그리고 데이터 구조와 같은 기초 개념 과목은 공부할 때 시간이 걸리고 단기간 공부한 것과 전공자의 차이가 되는 부분이기도 한다고 말씀하시면서 이런 기초 개념 공부가 안되어있으면 시간이 갈수록 개발에 지장이 생기므로 잘 준비해두라고 덧붙이셨다.

끝으로 양승현 CTO님꼐서는 “기업의 목소리를 듣고 거기에 맞춰 공부를 하는 것도 중요하지만 더 중요한 것은 자신의 내면을 잘 성찰해서 내가 어떤 일을 하면 충전이 되고 방전이 되는지 등을 잘 파악해서 진로를 찾는 일이 더 우선되고 근본적인 것이다.” 라고 말씀하시면서 이야기를 마치셨다.

SW기자단 정예은

특강 – 소프트웨어 기업 현장의 제품 개발 프로세스