본문 바로가기

안랩人side/안랩!안랩인!

[人터뷰] "개성보단 협력이 중요해요" 안랩 엔드포인트 개발실의 메시지

안랩은 어떠한 과정으로 백신 프로그램을 개발하고 있는 것일까? 안랩에서 강조하는 개발자의 역량은?

개인 혹은 기업에서 사용하는 보안 SW 프로그램을 개발하는 엔드포인트 개발실. 그 곳에서 사용자가 안전한 IT세상을 누릴 수 있도록 사명감을 가지고 제품의 개발을 담당하고있는 최윤용책임장현숙선임박준효선임 연구원을 만나보았다. 



Q. 엔드포인트 개발실에 대해 설명 부탁드립니다.


 크게 보면 엔드포인트라는 것은 고객의 최단이라는 것이에요PC와 같은 것들이 엔드 포인트이고, 그 안에서 사용할 수 있는 제품들을 만드는 곳이라고 말씀드리면 될 것 같습니다엔드포인트 개발실에서 만드는 제품 중에 하나가 'V3' 인 것이고요. 


Q. 엔드포인트 개발실에서 개발하고 있는 제품들은 어떤 것들이 있나요?


 개인용 제품과 기업용 제품으로 나눌 수 있는데요 'V3 Lite' 와 'V3 365 Clinic'등 개인용 제품과 기업에서 사용하는 제품이 따로 있습니다기업용 쪽이라고 한다면, 백신 뿐만 아니라 통합 개인정보보호 솔루션과 같이 기업의 개인정보보호 기능을 담당하는 프로그램이 있습니다그 외에도 'V3 Zip'과 같은 표준 압축프로그램도 개발하고 있습니다.




Q. 보안 소프트웨어 개발은 어떤 단계로 진행되나요?

 

1) 기획 단계

 

 보통 기획 단계부터 시작이 돼. 전체적인 보안 트렌드를 봤을 때, 다음 제품에는 어떤 기능들이 필요하다. 혹은 기존에 갖고 있던 기술 중에 어떤 것들을 강화해야 한다는 것들을 저희가 목록화를 해요. 그리고는 순서를 정하죠. 어떤 것들을 만들겠다고 하면, 저희가 보통 스펙이라고 이야기 하는 상세한 기술을 써요.

예를들면, 파일은 무엇이다 부터 정의를 내리고 상황에 따라 검사가능 여부등을 파악해요. 이러한 것들을 저희가 아는 한 최대한 기술 하지요. 기술이 다 끝나면 여러 사람들과 토의를 해서 이렇게 동작하는 것이 맞다는 결론이 나와요. 이런 과정으로 기술서가 규정되면 개발에 들어가는 거예.

 

2) 개발 & QA 단계

 

 개발에 들어가면 QA팀이 저희가 정한 스펙을 가지고 이 제품은 어떻게 테스트를 해야 한다는 것을 따로 정합니다. 그래서 이런 테스트를 통과해야 규격을 만족한다는 계획을 세우고, 저희가 만들 것을 가지고 테스트를 하면서, 오류가 발생하면 수정하고 어느 정도 주요한 것들이 수정되었다 판단이 되면 제품 출시가 됩니다.



3) 유지 보수 단계


 제품 출시 이후로는 유지 보수라고 하는 단계로 들어가요. 제품이 출시가 되었다고 해서 오류가 없을 수는 없기 때문이죠. 고객으로부터 문의가 오는 부분도 있지만, 저희가 이미 알고 있던 것들을 단계별로 일정을 나눠서 수정하고, 개발팀은 QA팀과 함께 제품에 대한 보완계획을 세우는 것이죠. 새 제품이 나올 때까지는 그 과정이 계속 반복인 거죠. 

 

Q. 일반 개발자와 보안 프로그램 개발자와의 차이점이 있다면?



 소프트웨어 개발과정은 다 동일합니다. 특정 프로그램을 만들 때는 요구되는 기능들의 목록과 제품의 스펙을 정하고, 절차에 따라 요구 사항을 분석하고 설계하는 과정을 거치며 유지 보수를 하게 됩니다. 다만, 분석 쪽에 차이가 생겨요. 그것이 보안적인 요소인지 아닌지를 제외하고는 크게 다른 점이 없습니다. 


Q. 보안 소프트웨어 개발자가 되기 위해서 필요한 역량과 준비해야 할 것은 어떤 것이 있나요?


1) 탄탄한 기초의 중요성


 기초가 중요하다는 생각이 들어요. 학과 수준에서 배우는 과목들이 기본이 되는 것이라고 생각요. 운영체제, 알고리즘, 자료구조와 같은 것들이요. 예를 들자면, c++로 메모리 할당을 할 때, 윈도우 시스템은 어떻게 메모리를 할당하고 관리하는지에 대한 것들을 알아야 돼요. 취약점이 다 그런 곳에서 뚫고 들어오는 거예요. 100퍼센트 꽤지는 못해도 흐름은 기억하고 있어야 개발을 할 때 취약점에 노출이 안 되게 할 수가 있어요. 그런 것이 다 기초적인 것으로 들어가는 것이죠. 배우는 과목들을 허투루 넘기지 마세요. 쓸모없어 보여도 그게 어디서 어떻게 쓰일지 몰라요.


2) 혼자가 아닌, '협업'


 무엇이든, 함께 만들어 가는 프로젝트니까 협업이 중요해요. 누구나 보면 이해할 수 있는 코드를 작성하는거죠. 신기술을 적용하는 것이 항상 좋은 것은 아니에요. 누구나 어렵지 않게 쉽게 이해할 수 있게 짜는 게 중요한 것 같아요. 규율과 규칙이 있기 때문에 현란한 기술 쓴다고 칭찬받지는 않아요.


Q. 보안 소프트웨어 개발자 지망생을 위해서 조언 한 말씀 부탁드립니다.


 모든 직업이 마찬가지이겠지만, 먼저 그 직업을 좋아해야 될 것 같아요. 좋아서 그 직업을 갖는 것과 단순히 생계수단을 위한 선택은 다른 것들이 있어요. 그것을 자신이 정말 좋아하는지 진지하게 생각을 해보셔야 해요. 때로는 자신이 좋아하는 일과 정반대로 직장 내에서 그 일을 수행해야 할 때가 있습니다. 또한, 개발자가 단순히 개발만 하는 것이 아닌 다른 사람들과 의견을 나누고 수렴하며조율을 할 필요도 있습니다협업이 중요한 이유죠마지막으로 열정을 잃지 마세요. 열정이 있어야 계속 도전할 수 있기 때문입니다.




 무엇보다 인터뷰에서 가장 느낄 수 있었던 점은 하나의 프로그램이 나오기까지 얼마나 많은 노력과 열정이 필요한지, 그리고 그 안에서 이뤄야 하는 조화, 협동의 중요성을 새삼 다시 느끼게 되었다. 세 분 께서 개발자 지망생들에게 해준 조언은 현실적이지만 진심어린 조언이었다. 이 글을 통해 다시 한 번, 인터뷰에 응해주신 세 연구원님께 감사드린다. 



글 / 대학생 기자 김도건, 이기성  

사진 / 안랩 커뮤니케이션팀