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

DataSaker를 만든 사람들

by EXEM 2023. 7. 26.

IT 성능 모니터링 맛집 '엑셈'이 데이터세이커(SaaS형 Observability 솔루션)를 출시하고, 화제의 연속입니다. 지난 달 데이터세이커 출시 소식을 전하고 엑셈 블로그에 양일간 약 4,000명의 방문자가 다녀갔습니다. (여기서 잠깐! 데이터세이커의 기능 소개 및 데모 신청은 여기를 클릭해 보세요.)

 

그래서 이번 달은 데이터세이커를 탄생시킨 엑셈 개발2본부의 데이터세이커 '부모님들'을 모셔봤습니다. 이분들은 과연 어떠한 애정을 가지고 데이터세이커를 만들었을지, 제품을 개발하는 과정에서 어떤 에피소드가 있었을지, 제품 화면만 봐서는 알 수 없는 제품 백엔드 이야기를 소개합니다. 

 

개발2본부의 Frontend, Backend, Platform 세 팀의 대표 멤버들에게 물었습니다. 

 


 

데이터세이커의 엄마, 'Frontend 팀'

시선 팀장님 & 박성현 님

 

프론트엔드는 실제 서비스 사용자가 접하는 인터페이스(UI)와 사용자 경험(UX)에 중점을 두고 제품 화면이나, 메뉴 버튼 설계 등 '앞단'의 업무를 맡아 개발을 합니다. Frontend팀 대표로, 카리스마 리더 박시선 팀장님과 엑셈 대표 모델 성현님 이야기를 들어볼게요. 

 

 

Q1. DataSaker 프론트엔드팀에서 어떤 업무를 담당하고 있나요?

 

시선 님: 데이터세이커의 Client 부분을 맡아서 개발하고 있습니다. 제품 초기에 프로젝트 구성 컴포넌트 및 화면 개발을 진행했었고, 최근에는 버그나 기능 수정 등 제품 안정화 업무 및 Client 배포 업무를 주로 하고 있습니다.

 

성현 님: 화면 개발 전반입니다. 좀 더 구체적으로 이야기하면, 디자인팀과 기획팀이 만들어주신 화면 초안을 보고 기초 배치를 구성하고, 각각의 차트와 테이블, UI 버튼을 제작하거나, 각 화면에 적절한 주소를 설정하여 이 페이지로 고객이 찾아올 수 있도록 하는 일입니다. 

 

활력이 넘치는 Frontend 팀, 젊은이란!
2x2=4대의 모니터링을 동시 사용합니다. 마치 DataSaker처럼 bottleneck을 바로 잡는 거죠!

 

 

Q2. DataSaker 개발 업무를 맡으면서 어떤 각오로 임하셨나요?

 

시선 님: 흔히들 새로운 것들을 개발하게 될 때 정확한 요구사항과 동작을 정의하지 않고, 일정에 맞춰서 또는 적당히 동작하게 되면 만족하고 마무리하는 경우가 있습니다. 블록으로 빌딩을 만들 때 특정 높이까지 쌓기 위해서 적당히 무너지지 않을 정도로만 대충 쌓게 되면 결국 어느 높이 이상은 쌓을 수 없고, 억지로 쌓았을 때 너무나 쉽게 무너지는 것처럼 말이죠. 데이터세이커를 개발하면서 개발자들끼리 약속했습니다. 기초공사를 튼튼히해서 적당히 넘기지 말자고! 잘 만들어서 틈새를 좁히고, 더 안정적인 코드 작성 및 개발을 위해서 틈틈이 새로운 지식을 꾸준히 채우자를 목표로 했습니다.

 

 

Q3. 개발자인 나에게 하나의 능력을 허락한다면?

 

성현 님: “예지력” 입니다. 많은 동료 개발자들도 겪는 문제겠지만,  서비스를 개발하다가 계획이나 기능이 변경되는 경우들이 참 많아요. 한번 이렇게 상상해보세요.

 

가운데 멋진 길과, 나무와 연못이 양쪽으로 예쁘게 놓여있는 정원을 정성스럽게 만들었는데, 오른편의 나무 한그루를 길 왼쪽으로 옮겨야 한대요. 변경된 정원 디자인대로 나무를 왼쪽으로 옮겨 심었더니, 이번엔 그 나무 때문에 정원을 내다보는 창문이 가려지는 거에요. 실랑이를 하다가, 나무를 왼쪽으로 옮기면서도 뷰를 가리지 않도록, 왼쪽 편 나무들의 정렬을 조금 붙여서 재배치하여 옮겨 심었더니, 휴가갔던 정원 전문가께서 뒤늦게 나타나, 이렇게 배치하면 나무들이 서로 너무 가까워서 말라 죽는다고 하네요. 음…. 나무 개수는 못 줄이고.. 위치도 못 바꾼다는데.. 아무래도, 정원을 확장 공사하는 길 밖에 없는 것 같으니.. 집 전체를 2센치만 뒤로 밀자.. 라는 결론이 이르는 상황?

 

컴포넌트(화면을 구성하는 한 요소)를 고치고 변경하다 보면, 그에 엮인 친구들을 고구마 뿌리처럼 하나하나 변경해나가다가 거의 천재지변급 변경 작업을 수행하기도 합니다. 개발자라면 누구나 겪어봤을 일이죠.

 

데이터세이커를 만들면서, 항상 변경될 여지가 있음을 알고, 그것에 효과적으로 대응할 수 있는 코드와 제품을 만드는 것에 집중했습니다. “외관이 멋지면서도, 나무 크기나 모양, 형태 등을 언제든 내 마음대로 바꿀 수도 있고, 옮겨 심을 필요없이 손으로 돌돌 밀어 옮길 수 있는 바퀴를 단 슈퍼 나무” 가 되도록 말이죠. 지금도 통찰력과 예지력을 기르기 위한 힘을 길러나가고 있습니다. 마치 마법사처럼! 그래서, 팀 내에서 제 캐릭터가 현자 “간달프” 입니다. ㅎㅎ

 

 

Q4. DataSaker가 출시되었고, 지금부터는요?

 

시선 님: DataSaker가 아직은 시작 단계여서 추가로 지원해야 하는 환경이나 모니터링 대상들이 많습니다. 지속적이고 신속하게 고객들에게 기능을 제공하기 위해 노력하겠습니다. 그리고 서비스가 시작되었으니 안정적인 서비스의 제공과 UX 편의성 개선을 위한 업데이트도 꾸준히 진행할 예정입니다.

 

성현 님: 제가 경험한 이전 개발 경험에서도 크게 느낀 바이지만, 서비스 출시는 정말 시작일 뿐이죠. 서비스 출시 이후가 되어야 본격적인 고객과의 만남이 시작되고, 의미있는 일들과 도전들이 생기는 것 같아요. 저희가 몰랐던 새로운 서비스의 새로운 문제, 그리고 가능성들을 얼른 만나보고 싶고, 열심히 그 부분을 고치고 발전시키려 노력할 겁니다. 

 

즐겁고, 진지하다.. 그러다 또 즐겁다 ㅎㅎㅎ

 


 

데이터세이커의 아빠, 'Backend 팀'

오승은 팀장님 & 김상희 님

 

이름을 통해 유추되듯, 백엔드 개발자는 사용자가 보이지 않는 '뒤쪽', 즉 데이터베이스나 서버를 다루는 역할을 합니다. BE(Backend)팀 외유내강 승은 팀장님과 상희 님께 좀 더 자세한 이야기를 들어볼게요.

 

 

Q1. DataSaker를 개발하는 과정에 어떤 부분을 기여했나요? 

 

승은 님: 데이터세이커 서비스를 위한 Table 설계 및 API구현, 데이터 검증 업무를 담당했습니다. 

 

상희 님: Agent에서 수집된 데이터를 사용해서 데이터세이커 내에서 활용될 API를 구현했습니다.

 

마음이 편안해지는 힐링 음악을 주로 들어요 :)
사진은.. 부끄러워욧 ^ㅇ^

 

 

Q2. 시행착오는 문제해결의 중요한 방식 중 하나이죠. DataSaker를 개발하는 과정에서 겪었던 시행착오가 있었다면? 이를 통해 배운 점이 있을까요?

 

승은 님: 원본 데이터를 사용하여 Chart에 그려질 데이터로 가공을 하기 위해서 수식을 정의하고 구현을 하던 과정에서 원하는 값이 나오지 않았습니다. 데이터를 더 분석해 보니, Chart를 구성하기 위한 데이터 연산을 할 때 사용될 Unique Key 선정을 똑바로 하지 못했다는 사실을 파악했습니다. 초반에 수집된 데이터에 대한 이해도가 높았으면 좋았을 것 같다는 아쉬움이 들었습니다. 제품이 출시될 때까지 데이터 이해도를 높이기 위해 수시로 팀원들과 모여 많은 논의과 학습을 했고, 데이터에 대한 높은 이해도를 바탕으로 나머지 작업들을 진행했습니다.

 

 

상희 님: 데이터를 변환하는 과정에서 변경 혹은 추가 사항을 반영하려면 코드를 수정해야하는 어려움이 있었습니다. 이 문제를 해결하기 위해, meta를 사용하도록 수정하였습니다. 기획의 변경 혹은 요청 사항이 발생했을 때 빠르게 대응할 수 있도록 개발하는 것의 중요성을 알게 되었습니다. 

 

 

Q3. DataSaker가 출시되었고, 지금부터는요?

 

승은 님, 상희 님: 수집된 데이터를 그대로 저장하면서 과적재되는 부분을, 데이터 다이어트를 통해 리소스를 확보하여 더 나은 서비스를 제공하기 위해 개선하고 있습니다. 또한 더 다양한 데이터를 지원하기 위해 노력하고 있습니다.

 

서로 MBTI가 다르지만, 일할 때 꿀조합인 Backend 팀

 


 

데이터세이커의 일 잘하는 삼촌, 'Platform 팀'

정재희 님 & 김동우 님

 

플랫폼팀(Platform)은 에이전트 개발이나, 다양한 미들웨어 그리고 퍼블릭 클라우드의 운영 관리 업무 등 백엔드, 프론트엔드 팀과 함께 협업하여 다양한 일을 수행하고 있습니다. 팀의 어벤저스 정재희 님과 김동우 님 이야기입니다. 

 

 

Q1. 담당 업무 소개 부탁드려요. 

 

재희 님: 데이터세이커의 경우 SaaS 서비스를 위해 Public Cloud인 ASW에 설치되어 운영되고 있습니다. AWS에 서비스를 셋팅하는 작업에 이어, 운영 업무를 맡아서 진행하고 있습니다. 또한 DataSaker 개발자들이 개발 환경에서 필요로하는 Infra 자원을 지원하고 운영하는 업무도 병행하고 있습니다.

 

동우 님: 시스템 Observability의 시작인 모니터링 데이터 수집을 담당하는 Agent 개발을 맡고 있습니다. 모니터링 데이터의 종류가 많은데요. 저는 주로 Host 정보와 Kubernetes 정보를 수집하는 Agent 개발에 참여하였습니다.

 

팀 사이의 협업 중! 협업 문화
Platform팀의 귀염둥이라고 불리우는 동우님! 앞모습도 보여줘요~~

 

 

Q2. DataSaker는 어떤 제품이며, 어떤 기대를 가지고 있으신가요?

 

재희 님: 데이터세이커는 소프트웨어의 개발과 운영 환경에 대한 통합적인 모니터링 솔루션입니다. 그래서 데이터세이커의 개발 초기부터 자신의 상태를 스스로 모니터링 할 수 있도록 Infra를 구성하여 개발을 진행하였습니다.

앞으로 DataSaker에 더 많은 기능이 탑재될 예정이며, 성숙도가 높은 제품이 될 수 있도록 많은 작업들을 진행하고 있습니다. 처음부터 완벽한 솔루션을 만들순 없습니다. 단계별로 개선시켜 나갈 로드맵이 명확하고, 머지않아 데이커세이커의 시대가 곧 올것이라는 확신을 가지고 일을 하고 있습니다.

 

 

Q3. DataSaker를 개발하면서 크게 신경쓴 부분이 있다면? 힘들었던 순간! 

 

동우 님: 데이터를 수집하여 안전하게 전송하는 것을 목표로 Agent 개발을 진행하였습니다. 나름의 프로토콜도 정의하고 전송 데이터 포맷도 정의하면서 모든 일이 순조롭게 진행되었습니다. 그런데 문제는 데이터가 수집되고 그 Data들이 가공되어 화면에 표시되면서부터 발생하기 시작했습니다. 단순히 데이터를 안전하게 전송하는 것이 Agent 역할의 전부가 아니였던 것입니다. Data 가 사용자에게 의미를 갖기 위해서는 추가적으로 데이터를 Filtering 하거나 Grouping 해야하는 경우들이 점점 많아지기 시작했습니다. 이를 만족시키기 위해서 Agent 의 설정들이 점점 더 유연하게 바뀌어가게 되면서 고생했던 기억들이 납니다. Agent는 사용자가 직접 설치하다보니 사용자의 설치 환경이 Black Box일 수 밖에는 없습니다. 이런 점은 초기부터 고려가 되었으나 기능에 대한 유연성은 늘 고려한다고 해도 예상 밖 범주일 때가 많습니다. Data가 갖는 의미에 대해서 생각을 자주 합니다.

 

 

Q4. DataSaker가 출시되었고, 지금부터는요?

 

재희 님: 데이터세이커는 많은 종류의 Middleware 들이 서로 데이터를 주고받으며 동작하고 있는 하나의 유기체 같은 서비스 입니다. 그러다보니 Middleware 하나의 장애가 전체 서비스에 전파되기도 하고, 반대로 Middleware 하나를 튜닝하면 전체 서비스가 좋아지는 경우도 있습니다. 이런 동전의 양면 같은 현상을 극복하여 Middleware 간의 장애전파는 막고, 튜닝의 효과는 극대화 할 수 있도록 Infra 를 구성하고 운영하는 것이 앞으로 도전하고자 하는 과제입니다.

 

동우 님: 현재 DataSaker의 Agent는 기능별로 6종류가 있으며, 각각 Host 환경, Contaienr 환경, K8S 환경별로 설치 Manual 이 다르며, 특히 Host 환경의 경우 Linux의 버젼별로 또 다시 설치 Manual이 달라지는등 기하급수적으로 설치 방법이 늘어나고 있는 상황입니다. 이런식으로 계속해서 나아간다면 나중에는 Agent 설치 Manual만 수십, 수백개가 만들어질 것이 자명하여, 사용자 불편 사항을 개선하기 위해 Agent Package를 통합하는 작업을 진행할 예정입니다.

 

이 코드 이렇게 짜면 되는 건가?.. 이때, 따뜻한 손이 나타남!
"동우 님, 별일 없죠!?"
따뜻한 손의 주인은 Platform팀 김득진 팀장님이셔요. 늘 따스하고 힘이 되는 팀장님~ㅠㅠ

 


 

많은 사람들이 필요로하는 제품이 되기 위해 쉽지 않았던 여정이었습니다. 무에서 유로 창조되는 과정에서, 엄마, 아빠, 이모, 할머니, 할아버지, 이웃사촌까지 모두의 협력과 도움없이 하나의 신제품이 나오는게 가능할리가요. 서비스 출시 이후가 되어야 본격적인 도전의 시작이라고 하신 말씀처럼, 이제 또 시작하는 데이터세이커의 모든 팀과 그들의 협력으로 창조한 데이터세이커를 응원합니다 :) 

 

 

 

DataSaker, 더 높은 곳으로 날아라!

 

앞으로 더 좋아질 DataSaker가 많은 친구들을 포용하는 그릇이 큰 제품으로 튼튼하고 단단하게 성장해주길 기원합니다. 

Platfrom 팀 정재희 님


매가 먹이를 낚아채 듯 한번 수집한 데이터는 절대 놓치지 않는 매서운 제품으로 성장해다오.

Platform 팀 김동우 님


이제 갓 태어난 DataSaker(데이터세이커)가 더 유명해져서, 쉐이커로 오해받을 일이 없었으면 좋겠습니다! Shaker보다 먼저 검색 결과로 나오도록....

Backend 팀 오승은 님


가장 빠른 새처럼 DataSaker가 고객에게 데이터를 물어다 줄 수 있는 제품이 되어라!

Backend 팀 김상희 님


짧지 않은 시간 동안 팀원들 모두가 한마음으로 열심히 노력해서 나온 결과물인 만큼 의미있는 성과를 기대합니다.
사람들이 많이 사용하고 필요로 하는 서비스가 되었으면 좋겠습니다. 수고하신 팀원분들 그리고 DataSaker 모두 파이팅!

Frontend 팀 박시선 님


아직 물가에 내놓은 아기같은 DataSaker. 하늘을 멋지게 날아오를 때까지, 도시락 싸들고 다니며 지켜줄께.. 잘 커라!

Frontend 팀 박성현 님

 

 

 

 

많은 분들의 수많은 노력 끝에 DataSaker가 참 예쁘게 태어났습니다.
더 많은 사람들이 DataSaker를 알아보고, 좋아하고, 인정해주실
그 날까지 열심히 키워보겠습니다. 

 

 

 

 

 

글 | 홍보팀

사진 촬영 | 브랜드디자인팀

 

 

댓글