🎙️

크리에이츠 - 최현석 개발자님 (인공지능/머신러닝 포지션)

개발자 커리어 점프 [점핏]! 개발자를 위한 직무 이야기를 전해드립니다.
회사 외관
개발자님의 직무 이야기
1. 담당하고 계신 업무를 소개해주세요.
저는 영상처리 개발자입니다 요즘 많이 사용하는 머신러닝을 주력으로 사용하고 있지는 않아요. 주로 opencv를 이용한 영상처리를 통해 특정한 물체를 인식하고 해당 물체의 움직임을 분석합니다. 고속 카메라를 사용하여 빠르게 움직이는 물체를 분석하므로 실시간 처리가 가능하도록 전, 후 처리 단계를 거치고 모델링, 최적화 및 병렬처리를 통해 연산 시간 단축도 시도합니다.
2. 현재 회사와 지금의 직무를 선택하게 된 계기는 무엇인가요.
여기서 일하게 되면 명확하고 진솔한 대화로 업무를 진행할 수 있겠다는 느낌을 받았던 것이 가장 큰 이유였습니다. 업무를 진행하는 데 있어 일 자체가 어렵더라도 명확한 의사소통이 있다면 스트레스받지 않고 잘 일할 수 있다고 생각하고 있습니다. 또 그래야 각자가 최대한의 능력을 보여주어 좋은 결과를 낼 수 있고 성과를 통해 배우고 성장할 수 있는 기회도 가질 수 있다고 생각해요. 당시 신입 구직자였던 저에게 회사의 상황을 잘 이해할 수 있도록 설명해 주었고, 당시 회사가 해결해야 하는 문제를 명확히 알고 있었으며, 앞으로의 비전이 어떠한 지 등을 회사와 구직자가 동등한 위치에서 이야기할 수 있다는 느낌을 받을 수 있었던 것이 인상적이었습니다.
두 번째는 그 당시 주어진 문제가, 조금 어렵지만 노력하면 충분히 해결할 수 있는 문제라고 생각했기 때문입니다. 해당 문제를 해결하기 위해 당시에 시도했던 방법들이 저의 연구적인 성향과 잘 맞아떨어졌던 점도 좋았어요. 그 당시 문제를 해결하기 위해 시도하고 있던 방법 중 하나가 harmonic transformation이었는데, 당시 개발 담당자가 직접 연구하고 설계하여 시도 중인 방법이었습니다. 그것은 회사가 새로운 기술과 다양한 시도를 자유롭게 할 수 있는 분위기라는 것을 말해주는 것이기도 했기 때문에 이 회사를 선택하게 되었어요.
3. 하루 일과를 소개해주세요.
골프 레슨이 있는 날은 아침 레슨으로 하루를 시작합니다. 일 년 레슨비의 일부는 회사에서 지원이 돼요. 레슨이 없는 기간 동안 직원들은 직영 매장의 타석을 무료로 이용할 수 있어요. 그리고 출근하면 메일을 확인하고 하루할 일을 정리합니다. 팀장이 되고 난 후에는 팀원의 할 일을 배분하고 마감 일정을 확인하는 것도 오전 중에 진행합니다. 그리고 대부분의 시간은 습득한 데이터를 정리하고 기능을 개발하며, 개발 기능을 테스트하기 위해 골프를 쳐볼 수 있는 사 내 시타실을 오가면서 개발을 진행합니다. 요즘은 신입사원 교육을 위한 세미나에도 시간을 쓰고 있습니다. 외근이 있는 날은 개발 장비를 챙겨 새로 오픈할 매장이나 실외 연습장, 가끔은 필드로도 테스트를 나갑니다. 멀리 다녀오는 건 피곤한 일이지만 자리에서만 있는 것보다는 가끔씩 밖에서 개발하는 것도 좋은 리프레시가 됩니다
4. 업무를 하며 가장 보람을 느낄 때는 언제이신가요.
오랫동안 애먹이던 기능이 동작하고, 성능 기준을 만족시키지 못했던 테스트 시뮬레이션 결과가 오차 범위 내로 들어오는 순간입니다. 그렇게 개발한 기기를 시연했을 때 시장의 반응을 기대하는 많은 사람들을 보면서 뿌듯함을 느낍니다. 그리고 보람은 역시… 월급과, 좋은 성과 이후 연말에 찾아오는 성과급!
휴게공간
[크리에이츠]의 개발이야기
1. 업무의 프로세스를 소개해주세요.
1-1. 기획부터 개발까지 진행되는 프로세스
현재 어느 정도의 개발 로드맵이 갖춰져 있기 때문에 기획 단계에서 많은 것을 결정하지는 않습니다. 다만 큰 제품 기획 아래 팀장급 개발자가 참여하여 개발 제품의 세부 성능 기준을 마련한 후 기능 단위로 개발합니다. 크리에이츠는 HW, FW, 알고리즘, SW까지 모두 개발하고 있으므로 초기 HW개발 단계에서 타 부서는 시뮬레이션 환경 및 기존 기기들과 호환되는 환경 하에서 개발을 진행합니다. 이후 HW가 어느 정도 확정되고 실물 기기에서 개발할 수 있을 때마다 FW, 알고리즘, SW 순서로 실물 개발이 진행됩니다. FW 및 알고리즘과 SW사이에는 회사에서 사용하는 API가 있으므로 해당 API를 통해 각각의 개발을 진행하고 최종 단계에서 동작을 검증합니다.
1-2. [설계, 분석, 개발, QA, 런칭] 단계별 소요되는 평균시간
평균시간은 각 단계가 유기적으로 연동되어있고 앞뒤로 결정들을 주고받으면서 진행되는 것으로 이해하고 있어서 시간을 나누기는 어렵지 않을까요..? 설계분석보다는 개발/QA 에 더 많은 시간을 사용하는 것 같기는 합니다. 다만 개발은 런칭 후에도 기능개선을 통해 지속적으로 진행하고 있습니다.
2. 개발환경을 소개해주세요.
FW는 RP 및 임베디드 환경에서 개발을 진행하여, 리눅스에서 C/C++을 사용하여 구현합니다. 구현 전 단계에서는 윈도우에서 개발을 진행하기도 합니다. 알고리즘팀은 윈도우에서 visual studio를 이용하여 개발을 진행합니다. 알고리즘팀의 최종 결과물은 라이브러리(lib, dll)형태로 완성되어 배포하며, 라이브러리의 타겟이 윈도우인지 임베디드/리눅스인지에 따라 최종 검증 환경은 달라질 수 있습니다. 최종 코드는 C/C++로 작성되나 개발 단계에서는 파이썬 등을 사용하기도 합니다. 현재 개발자들은 python, octave, matlab등을 사용합니다. 센서실은 전체 코드를 git을 통해 관리합니다. 서버는 bitbucket서버를 사용합니다. 그 외 FW이미지, 배포 설치파일, 테스트 데이터 및 분석 sheet들은 사내 nas에 업로드하여 관리하고 있습니다. 다른 팀은 unity의 plastic scm을 사용하는 팀도, svn을 사용하는 팀도 있습니다.
3. 코드리뷰 문화를 소개해주세요!
짧은 단위의 코드 리뷰는 진행하지 않으나 주니어급 개발자는 코드를 merge할 때 시니어급 개발자의 리뷰를 통해 개발 코드를 메인 코드에 반영합니다. 또, 분기 또는 반기에 한 번 정도의 큰 리팩토링 및 전체 코드 리뷰를 진행하여 불필요한 코드 및 비효율을 제거한 상태의 코드를 유기하기 위해 노력하고 있습니다. 또, 배포 전 시뮬레이션을 통해 동작 및 알고리즘을 검증하는 프로세스를 구축 중에 있습니다. 최종적으로는 개발-검증-배포의 자동화 파이프라인 구축을 목표로 진행 중입니다.
4. 장애나 긴급상황에서는 어떤 프로세스로 대응하시나요.
서비스 유지는 타 부서에서 담당하므로 개발실에서 긴급 패치를 하는 일은 거의 없습니다. 일반적으로 기기의 HW및 알고리즘 결함이 발견되면 CS팀을 통해 개발 부서로 전달되고 Jira에 업무가 담당 팀(HW, FW, 알고리즘)에게 등록됩니다. 팀의 1차 담당자가 로그 및 데이터를 통해 원인 분석 후 개선하여 QA팀으로 전달하면, 테스트 완료 후 배포됩니다. 한 달에 1~2회 업데이트를 통해 해결합니다.
열일 중인 팀원들
나의 개발 Tip
1. 개발을 위한 나만의 데스크 세팅!
무접점 키보드. 도각도각 소리와 함께 충분한 크기의 모니터에 채워지는 코드를 좋아합니다. 지저분해 보이지만 서랍 속과 책상 어딘가의 손 닿는 거리에 있는 잡동사니들도 저에겐 중요한 요소입니다.
2. 최근 가장 관심있는 기술스택(예, OS/ 언어) 은 무엇이며, 왜 관심을 가지게 되셨나요?
논문이나 연구자료를 차용해서 구현한 후 동작하는 코드를 작성하는 것을 좋아합니다. 이론적으로만 증명되어 있는 기술을 상용화하는 것은 고려해야 할 현실적인 여건이 많습니다. 그럼에도 불구하고 여러 가지 한계를 극복해서 우리의 환경에서 동작하도록 했을 때, 아직 빛을 보지 못한 기술을 숨쉬게 하는 것 같은 기분이 들기 때문입니다. 현재 알고리즘팀에서는 Kalman filter와 최적화 기법을 이용한 최적 해 탐색법을 적용하고자 시도 중입니다.
3. 현재 하고 있는 업무의 역량을 키우기 위한 나만의 노력은 무엇인가요?
배우는 것을 그만두지 않으려는 노력입니다. 그 노력의 일환으로, 개발과는 조금 관련 없는 것 같지만, 책을 많이 읽으려 하고 있어요. 개발과 관련 없어 보이는 책도 많이 읽죠. 개발자는 텍스트를 통해 끝없이 배워야 하는 직업이라고 생각해요. 그 과정에서 읽는 스킬이 무뎌지지 않기 위해 최대한 다양한 책을 읽습니다. 또, 책을 통해 얻는 경험들은 건강한 생활과 건강한 마음을 유지하는 데도 많은 도움이 되기 때문입니다. 사람들과 밥을 먹으면서 하는 스몰톡에서도 책 이야기는 좋은 주제가 됩니다
회의실
우리회사는 개발자를 위해 이렇게 지원합니다.
1. 함께 일하는 동료들을 소개해주세요!
저와 함께 일하는 사람들은, 재미없는 표현으로, 맡은 일에 대한 책임감이 강한 사람들입니다. 하겠다고 한 일은 정확하게 해내기 위해 노력하는 사람들이죠. 그것은 곧 함께 일하는 사람들이 그다음 일을 잘 할 수 있도록 만들어주는 것입니다. 그렇기 때문에 동료들은 서로의 일과 삶을 자신의 것만큼이나 소중하게 생각해 주는 사람들이라고 말하고 싶어요.
2. 어떤 사람들과 함께 일하고 싶으신가요?
새로 들어오시는 분들도 다른 사람의 일과 시간 그리고 삶을 소중하게 생각해 주시는 분이었으면 좋겠습니다. 맡은 일이면 해 내 보겠다고 생각하는 분이었으면 좋겠어요. 처음에는 원래 할 수 있는 일보다 더 많이 하겠다고 달려들었다가 실수하고 일정이 늦어질 수도 있어요. 모두가 처음엔 그렇고, 시간이 지나도 비슷한 실수를 하는 경우가 있습니다. 하지만 맡은 일을 끝까지 놓지 않는다면 함께 고민할 수 있는 동료들은 충분히 있습니다.
3. 기술 역량 향상을 위한 교육 및 학습의 기회를 소개해주세요.
책을 무제한으로 구매할 수 있습니다. 전공서적이나 개발 관련 책뿐만이 아니라 소설책, 만화책도 구매하고 있어요. 그리고 직영 골프 아카데미 매장의 타석을 무료로 이용할 수 있고 일 년에 2개월씩은 레슨비도 지원됩니다. 직영 매장을 보유한 골프 개발 회사의 장점!
4. 우리회사의 테스트 기기현황 및 업무환경을 자랑해주세요.
개발실마다 설치된 센서와 직영 매장 및 고객 매장에 설치된 센서들이 모두 테스트 기기가 될 수 있습니다. 각 기기들에서 수집되는 로그와, 설정만 바꿔주면 저장되는 데이터를 이용해서 기존 제품을 업그레이드하고 차세대 제품에 반영할 수 있기 때문입니다. 기기를 테스트하면서 자연스럽게 골프 실력도 키울 수 있죠.
골프실력이 쑥쑥
크리에이츠의 채용 포지션이 궁금하다면?! 점핏에서 확인해보세요
점핏에서 개발자로 취업하고 취업축하금 받으세요!