본문 바로가기
엑셈 기업문화/엑셈 사람들

엑셈의 하루 | 엑셈의 얼굴을 만드는 사람들

by EXEM 2020. 5. 8.




⏰ 개발본부의 하루


9:00 AM [업무의 시작] 

하루 동안 진행할 업무를 1~2가지를 선정하고, 업무를 시작한다. 


10:00 AM [오전 중간]

협업 툴을 활용하여 팀 스크럼 회의를 진행한다.

간단한 담소로 이야기를 시작하여, 자연스럽게 각자의 업무 진행사항을 공유한다.

각자 해결이 잘되지 않는 업무 내용을 공유하고, 팀원이 함께 해결 방법을 도모하며 의견을 나눈다.


11:30 AM [점심 시간] 

팀원들과 함께 건물 내 식당에서 식사를 하고, 식사 후 각자의 선호에 따라 삼삼오오 함께, 혹은 개인 시간을 보낸다.

 

14:00 PM [오후 중간]

고객사 장애 및 문의 대응을 주 업무로 한다. 관련된 로그를 분석하고, 장애 현상을 재현하고 원인을 찾고 분석한다.

최신 기술 정보와 고객사 대응 사례에 대한 자체 세미나를 진행하기도 한다.


18:00 PM [업무의 마감] 

업무 진행 중 작성한 노트들을 정리하고, 내일 진행할 내용에 대한 코멘트를 간단히 남긴다.

모든 업무를 마친 후에는 PC와 주위를 정리하며 하루 일과를 마무리한다.

 



💻 개발본부의 생생한 직무 현장 Q&A


Q.

개발 업무를 수행하실 때 가장 중점적으로 고민하는 부분은 어떤 것이 있는지 말씀 부탁드립니다. 

A.

메모리 관리, 스레드 관리, 적절한 모듈화에 대한 고민과 데이터를 최대한 부하 없이

가장 효율적으로 얻어낼 수 있는 방법에 대해 고민을 하는 편입니다.

 

Q.

업무 중 가장 뿌듯한 순간이 언제인지 말씀 부탁드립니다.

A.

바쁜 와중에 여러 코드들을 작성하였는데 한 번에 빌드 성공과 문제없이 실행되었을 때입니다.

또한 고객사나 엔지니어가 새로운 프로젝트나 신규 기능을 사용함에 있어 긍정적인 피드백을 건네줄 때도 큰 보람을 느낍니다.


Q.

최근 진행했던 개발 업무 중 기억에 남는 경험에 대해 자유롭게 말씀 부탁드립니다. 

A.

"통합 빌드 테스트 자동화”에서 빌드 자동화 부분에 jenkins를 사용하였던 적이 있습니다.

당시 groovy라는 생소한 언어와 함께 Jenkins를 함께 공부해야 했는데, 뒤돌아보니 재미있던 경험이었습니다.


제품 모듈 특성상 여러 OS에서 소스 관리와 빌드가 이루어져 이기종 OS 간 작업 통합이 힘들었으나

여러 기술(NFS, SSH, ShellScript)을 연동하여 구축에 성공했던 케이스도 기억에 남습니다. 


Q.

그렇다면 최근에 진행하셨던 개발 프로젝트 중, 좀 더 구체적으로 나누고 싶은 사례가 있으시다면 말씀 부탁드립니다.

A.

작년에 진행했던 A 고객사의 E2E 프로젝트가 생각납니다.

진행하면서 가장 걱정이 됐던 부분은 ‘발생하는 모든 트래픽을 안정적으로 처리할 수 있을까’였습니다.

프로젝트를 시작하기 이 부분이 특히 중요한 포인트라고 파악을 했었거든요.

물론 기존에 유사한 양의 트래픽을 처리한 경험은 있지만 시스템 특성에 맞추어 시스템을 분리하여

부하를 수동으로 분리했기 때문에 가능했습니다.


하지만 이번 프로젝트에서는 이러한 트래픽 분리가 매우 어렵다는 결론에 도달하였고,

개발본부 내 서버 개발자들은 대규모 데이터를 실시간으로 처리하기 위하여 하나의 서버 프로그램을

신규로 개발하기로 결정을 했습니다.


부하 시뮬레이션 프로그램을 개발하여 부하를 발생시키고

새로이 개발된 서버 프로그램이 안정성이 있는지를 검증하고자 했습니다.

저희가 최초에 목표했던 부하에 도달하기 위해서 저희는 컨테이너를 기반으로 한 쿠버네티스 위에

부하 프로그램을 띄워서 부하를 발생시켰고, 이를 통하여 부하를 자유롭게 조절할 수 있었습니다.


물론 이 과정에서 시행착오는 참 많았습니다.

부하를 임의로 발생시키는 것뿐 아니라 고객사의 상황에 맞는 여러 가지 변수 값들과

E2E 데이터를 만들어 내야지만 테스트가 제대로 이뤄지기 때문입니다.

우선 서버 연결되는 트래픽을 레이어 별로 애플리케이션을 개발하고,

이를 각각 올린 후에 쿠버네티스의 로드밸런싱 기능을 이용하여 조금씩 부하를 늘려나가며 프로젝트의 완성도를 높여 나갔습니다. 


그런 식으로 약 한 달 동안을 작업을 하다가 다시 시도를 했을 때 이번에는 반대로

부하를 발생시키는 시스템 자원이 모자라는 현상이 발생했습니다.

개발본부에서 모든 가용할 수 있는 서버들을 모두 동원하여 쿠버네티스 work 노드로 추가해도 마찬가지였습니다.


시스템 자원 문제는 여러 가지 시도를 통해 해결을 할 수 있었고,

개선 포인트로 NETWORK를 거치지 않도록 local 내에서 E2E 트랜잭션을 실제 고객사에서 발생하는 것과

최대한 유사하게 만들어 냈습니다. 이를 통하여 저희 사내에서 개발 중인 서버들에 대한 성능 검증이 가능했습니다.


이렇게 개발된 부하 프로그램과 저희 인터맥스 솔루션의 수집 서버 등을 가지고 A 고객사 내부에서 성능 검증을 했었는데요.

기존에 요구했던 TPS를 넘어 약 2배 이상 가까운 환경에서도 충분히 동작하는 것을 보며 담당자들이 아주 만족스러워 했었습니다.


다양한 장애 환경을 가정하고, 부딪히고, 개선하며 서로 성장했던 과정들과 고객이 Wow하며 만족스러워했던 기억이 강렬했고,

해당 프로젝트에 참여했던 개발자들 모두가 큰 보람을 느꼈던 것이 기억이 많이 남습니다.




🥇 개발본부와 엑셈 경영시스템 Q&A


Q.

엑셈에서 일하시면서 가장 좋았던 점은 무엇인지 말씀 부탁드립니다.

A.

임직원들을 진심으로 존중하는 문화와 복지가 대표적으로 좋습니다.

예를 들면, 이번 코로나 사태를 맞이하여 단축근무, 재택근무를 신속히 적용하여

직원들의 건강을 진심 어리게 신경 써주는 느낌이 들어 좋았습니다.


Q.

엑셈 경영시스템을 평소에 어떻게 실천하고 계신지 말씀 부탁드립니다.

A.

팀에서는 기술 문서 사이트를 운영하여 여러 가지(모듈, 팀 인프라 등) 문서를 작성하여 공유하고 있고,

칸반(트렐로) 보드를 통해 팀원끼리 각자 진행 중인 작업 내용을 공유하고 있습니다.


기술 문서 사이트에는 개발 모듈 관련하여 아키텍처, 설정 옵션에 대한 설명, 기능 검증 방법,

개발 시 사용된 툴 사용법(설치, 제거, 설정) 등을 작성하고 있고

팀 인프라 관련해서는 gitlab 서버 관리, 자동화 테스트, 테스트 환경 구성, 쿠버네티스 운영 등의 내용을 문서로 작성하고 있습니다.

이 기술 문서를 통해 작업에 참여하지 않는 나머지 팀원들도 참고하여 동일한 작업을 진행할 수 있습니다.


칸반 보드는 최근에 시작된 스크럼 회의를 진행하면서 도입했는데 작업 시 진행 내용에 대하여

형식에 얽매이지 않고 자유롭게 적어서 공유하자는 취지로 사용하게 되었습니다.


도입 초기에는 사용에 익숙하지 않아서 여러 가지 형태의 구조를 적용하다가 지금은 팀 업무에 맞도록 구조화된 상태이고,

팀원 간에 어떤 작업을 어떻게 진행하는지 알 수 있어서 이슈 공유 및 어려운 문제에 대한 조언과 도움을 쉽게 줄 수 있습니다.

 

Q.

친절한 답변 감사드립니다. 마지막 공식 질문을 드립니다.

엑셈 경영시스템을 본인만의 한 마디로 말씀 부탁드립니다.

A.

한 마디로 정의한다면, "엑셈과 내가 함께 나아가는 길"이라 생각됩니다.



🖋️ 


마지막 답변은 '여행을 갈 때 가장 멀리 갈 수 있는 방법은, 좋은 친구와 함께 가는 것'이라는 격언이 생각나게 합니다.

고객들에게는 엑셈의 얼굴인 제품으로 고객들에게 차별화된 경험을 전달하며

엑셈 임직원들에게는 항상 깊은 지식을 공유하는데 앞장서는 개발본부의 앞날을 응원합니다!




📚   특별히 미래 개발자들을 위해 준비했습니다!

📝 미래 개발자들을 위한 개발 직무 Q&A

 

Q.
개발 직무의 매력은 무엇인지 말씀 부탁드립니다.

A.

내가 만든 것이 누군가에게 도움이 된다는 매력을 느낄 수 있습니다.

직접 구조를 설계하고 만들어서 동작하는 모습을 보면, 내 자식같이 뿌듯한 느낌이 있습니다.


Q.

개발 직무의 취직을 준비하는 분들께 면접이나 취업 준비 관련 조언 말씀 부탁드립니다.

A.

채용은 일반적으로 서류전형 -> 1차 면접 -> 2차 면접 순으로 진행되고

서류 전형을 통해 지원하신 분들 중 선별하여 연락을 드립니다.

포트폴리오를 통해 어떤 기술을 사용해 봤는지, 어떤 역할을 맡았는지 등을 많이 참고하기 때문에

자신만의 포트폴리오가 있으면 좋습니다. 이 외에도 깃허브나 운영 중인 기술 블로그 주소 등이 있으면 좋습니다.

 

연락을 받고 1차 면접에 참석하시게 되면, 실제로 업무를 함께할 분들과 면접을 진행합니다.

지원 분야에 대한 지식수준을 확인하고, 구현 능력을 확인하기 위해 간단한 코딩 테스트를 진행합니다.

면접 진행 시 어려운 질문이나 모르는 질문이 나오는 경우 머뭇거리는 것보다 어려운 건 최대한 설명해보려고 하고,

모르는 것은 모른다고 답하는 것이 잘못 얘기하는 것보다 좋습니다.


Q.

어떤 역량을 미리 준비하는 게 좋을지 말씀 부탁드립니다.

A.

개발자에게 필요한 능력 중 하나가 생각을 코드로 만들어내는 구현 능력이기 때문에,

많은 코드를 작성하고 개선해보면서 코드와 친숙해지는 것이 중요합니다.

그리고 알고 있는 만큼 구현할 수 있기 때문에, 많은 지식을 알수록 좋습니다.


기본적으로는 운영체제, 자료구조, 알고리즘, 네트워크, 사용 중인 개발 언어 등에 대한 지식이 있어야 합니다.

마지막으로 일은 결국 여러 사람이 함께 하는 것이기 때문에 사람들과 잘 소통하고 어울릴 수 있는 사회성도 필요합니다.

 

Q.

주로 사용하시는 툴은 어떤 것들이 있나요?

A.
jetbrains사의 'clion', 'intellij'. MS사의 'visual studio C/C++', 'visual code'. SecureCRT. SourceTree 등을 주로 사용합니다. 


Q.

개발 업무에 도움이 될만한 경험은 무엇이 있을지 말씀 부탁드립니다.

A.

소규모 인원(2~3명)으로 교내 혹은 교외 공모전에 참여해서 처음부터 끝까지 프로젝트를 진행하며,

기능을 구현하고, 협업하는 경험을 해보는 것을 추천합니다.

소규모로 추천드리는 이유는 사람이 많을 경우 구현할 기능이 적어지기 때문입니다.


또한 관심 있는 분야의 기술 컨퍼런스에 참여해 세션들을 듣는 것도 많은 도움이 됩니다.

조금 어렵거나 못 알아듣는 부분도 많을 수 있겠지만, 해당 분야에 대한 시야를 넓힐 수 있습니다.


Q.

팀에 후배를 뽑는다면 어떤 후배를 뽑으실지 말씀 부탁드립니다.

A.

지금 당장의 역량이 부족하더라도, 원하는 목표를 위해 노력하고 포기하지 않는 사람을 뽑을 것 같습니다.


Q.

현재 속한 개발본부 분위기는 어떤지 말씀 부탁드립니다.

A.

서로를 존중하면서 제품의 완성도와 품질 향상을 위해 밀어주고 이끌어나가는 따듯한 분위기입니다.


Q.

가장 밀접하게 일하는 유관부서는 어디인지 말씀 부탁드립니다.

A.

여러 부서와 밀접하게 일하지만 제일 밀접한 부서는 APM 그룹으로 생각됩니다.

제품을 직접 설치하거나 유지보수를 하는 과정에서 발생하는 이슈를 함께 대응하는 일이 타 부서에 비해 자주 있는 편입니다. 




기획 및 인터뷰 | 사업기획팀 홍성덕

사진 촬영 | 사업기획팀 홍성덕






[쉼🍀 5월은 푸르구나

다른 이야기도 궁금하시다면?

 


 📢 엑스피디아 | 5월

 💌 엑쓸신잡 | 직장인을 위한 모바일 앱 추천

 📸 엑셈의 하루 | 엑셈의 얼굴을 만드는 사람들









댓글