"IT 개발자는 알고리즘 문제를 많이 풀어봐야 하죠!"
상태바
"IT 개발자는 알고리즘 문제를 많이 풀어봐야 하죠!"
  • 오세은 기자
  • 승인 2019.04.24 16:05
  • 댓글 0
이 기사를 공유합니다

[Mini Interview] 김희규 (주)메디블록 소프트엔지니어

Q. 간단한 자기소개를 부탁드립니다.

▲ 김희규 (주)메디블록 소프트엔지니어[사진=본인제공]

저는 카이스트에서 수학으로 학사와 석사 학위를 취득했습니다. 이후, 티맥스소프트와 삼성전자 등에서 일했고, 현재는 개인 의료정보 플랫폼인 메디블록에서 소프트엔지니어로 일하고 있습니다.


Q. 여러 직무 가운데 ‘IT 개발’을 선택한 이유가 있는지요?
어렸을 때부터 답이 있는 문제를 푸는 것을 좋아했어요. 때문에 대학 전공도 수학을 선택했죠. 전공수업을 들으면서 자연스레 개발자를 희망하게 됐습니다. 그리고 개발자라면 누구나 자신이 만든 소프트웨어로 세상을 바꾸고자 하는 꿈이 있는데, 저 역시 그래서 개발자가되고 싶었죠.


Q. 개발자로 일하면서 겪은 장·단점이 있을 것 같습니다.
개인의 개발 능력이 뛰어나면 뛰어날수록 그렇지 않은 개발자에 비해 높은 연봉을 받으면서 일할 수 있습니다. 자신의 능력치에 따라 구직시장에서 경쟁력을 가질 수 있죠. 그리고 지금 취업시장이 어려운데 비교적 개발직군에서는 채용 수요가 많은 걸로 알고 있어요. 그래서 개발자를 희망하는 이들은 다른 직군보다 지원할 수 있는 기회가 많죠.

단점은 일하는 시간이 타 직종에 비해 길다는 점입니다. 특히 정해진 시점까지 프로그램을 완성해야 할 때는 하루걸러 야근하는 경우가 많아요. 왜냐하면 완성된 프로그램을 시장에 내놓기 전에 프로그램에 오류가 없는지를 수없이 확인하고, 또 오류가 발생하면 이를 잡아내 오류가 발생하지 않도록 다시 설계해야 하는 몫이 개발자에게 있기 때문이죠.


Q. 개발직무에 필요한 역량과 자질이 있다면?
앞서 말씀드렸듯이 비교적 근무시간이 긴 편입니다. 때문에 오래 일할 수 있는 체력이 뒷받침 되어야 합니다. 그리고 개발자는 결국 문제를 해결하는 사람이다 보니 비판적 사고를 가져야 합니다. 예를 들면, 메모장 앱인 ‘에버노트’를 사용하는데 이것이 인터넷이 활성화된 곳에서는 사용이 원활합니다. 그런데 인터넷이 끊기면 작동하지 않을 수도 있죠. 이럴 때 이 앱을 사용하기 위한 문제해결능력을 개발자는 갖고 있어야 합니다. 이처럼 개발자는 프로그램 작동이 잘 될 때뿐만 아니라, 잘 되지 않을 때를 항상 생각해보고 이에 대비할 수 있는 해결책을 고안해내는 사고를 가져야 합니다.

더불어 집요함이 요구되는 포지션이라고 저는 생각합니다. 사용자가 프로그램을 사용하는데 있어 불편함이 없도록 만들기 위해서는 이전에 수십 번의 실패를 경험하게 됩니다. 잦은 실패로 그만하고 싶은 생각이 들 수 있는데, 그럼에도 계속해서 도전해야죠. 때문에 많은 실패를 하더라도 다시 도전할 수 있는 집요함이 필요하다고 봅니다.


Q. 개발자를 희망하는 구직자들에게 조언을 해주신다면?
적어도 알고리즘 1천 개 이상의 문제를 풀어보시기 바랍니다. 알고리즘 문제를 많이 풀어봐야 하는 이유는 면접 때 알고리즘에 대해 묻기 때문입니다. 예컨대‘1000개의 숫자가 들어간 배열을 오름차순으로 정리하는 정렬코드를 짜보라’는 식이거나, ‘포털에서 보는 온라인 기사에서 메디블록 단어가 몇 번 나오는지를 알 수 있는 코드를 짜보라’는 식의 문제가 주어집니다. 이러한 코드를 짜기 위해서는 알고리즘 문제를 많이 풀어보는 수밖에 없습니다.

■ 알고리즘 문제를 구할 수 있는 사이트
•www.codeforces.com
•www.topcoder.com
•www.acmicpc.net



댓글삭제
삭제한 댓글은 다시 복구할 수 없습니다.
그래도 삭제하시겠습니까?
댓글 0
댓글쓰기
계정을 선택하시면 로그인·계정인증을 통해
댓글을 남기실 수 있습니다.
주요기사
이슈포토