반복영역 건너뛰기
주메뉴 바로가기
본문 바로가기
제품/서비스
EMS Solution
Features
클라우드 관리
AI 인공지능
서버관리
데이터베이스 관리
네트워크 관리
트래픽 관리
설비 IoT 관리
무선 AP 관리
교환기 관리
운영자동화
실시간 관리
백업 관리
APM Solution
애플리케이션 관리
URL 관리
ITSM Solution
서비스데스크
IT 서비스 관리
Big Data Solution
SIEM
Dashboard
대시보드
Consulting Service
컨설팅 서비스
고객
레퍼런스
고객FAQ
문의하기
가격
자료실
카탈로그
사용자매뉴얼
회사소개
비전·미션
연혁
2016~현재
2000~2015
인증서·수상
투자정보
재무정보
전자공고
IR자료
새소식
공고
보도자료
오시는 길
채용
피플
컬처
공고
FAQ
블로그
열기
메인 페이지로 이동
블로그
최신이야기
블로그
최신이야기
사람이야기
회사이야기
기술이야기
다양한이야기
최신이야기
검색
기술이야기
[통합로그관리] Filebeat에서 안정적으로 하드웨어 자원 사용하기
기술이야기
[통합로그관리] Filebeat에서 안정적으로 하드웨어 자원 사용하기
Filebeat는 Elastic Stack에서 사용하는 경량(light-weight) 데이터 수집기로 logstash 대비 상대적으로 리소스(CPU와 RAM)를 상당히 적게 소모한다는 장점이 있습니다. 또, Filebeat는 간단한 필터 기능도 제공합니다. 하지만 말 그대로 간단한 필터 기능이라 한번에 대용량의 파일을 관리해야 하는 경우 호스트 서버에 부담이 갈 정도로 많은 리소스를 사용할 수 있습니다. 따라서 브레인즈컴퍼니가 운영하는 통합로그관리 에이전트는 호스트의 서버 환경에 따라 filebeat 에이전트의 설정 파일을 수정해서 안정성을 제공하고 있습니다. 본 내용은 Filebeat 리소스 점유율이 높을 때 트러블슈팅 관련 설정 수정사항입니다. 수정에 필요한 기본 파일 위치 linux : /etc/filebeat/filebeat.yml docker: /usr/share/filebeat/filebeat.yml filebeat 프로세스 메모리 확인하는 방법 top -d 1 | egrep "PID|filebeat" 수정에 앞서 filebeat의 메인 컴포넌트인 harvester의 개념을 간략하게 설명하겠습니다. 하나의 harvester는 하나의 파일을 읽어드립니다. harvester가 실행 중인 경우 파일을 한 줄씩 읽습니다. 각 파일 당 하나의 harvester가 실행됩니다. 상단의 이미지를 보면 filebeat의 컴포넌트인 input과 harvester가 보입니다. 또한 filebeat이 harvester를 관리하며 어느 파일을 읽을지 관리하는걸 알 수 있습니다. harvester가 실행 중인 경우 파일 설명자(File Descriptor) 열린 상태로 유지됩니다. 이는 파일이 삭제되거나 파일명이 변경된다 하더라도 파일을 계속 읽게 해줍니다. 하지만 파일 설명자는 harvester가 닫힐 때까지 디스크 공간을 예약합니다. 1. filebeat.inputs: 2. - type: filestream 3. id: my-filestream-id 4. paths: 5. - /var/log/system.log 6. - /var/log/wifi.log 7. - type: filestream 8. id: apache-filestream-id 9. paths: 10. - "/var/log/apache2/*" 11. fields: 12. apache: true 13. fields_under_root: true <filebeat에서 제공하는 input example> 1. scan_frequency 파일비트가 설정된 filebeat_inputs의 path에 있는 파일들의 갱신 여부를 체크하는 주기입니다. 너무 길게 설정하면 한번에 많은 파일들을 수집하게 됩니다. 반대로 너무 짧게 설정하면 스캔을 너무 잦게 해서 CPU점유율이 올라갑니다. 적당한 조절이 필요합니다. 기본값은 10초입니다. Scan_frequeny가 동작하는 방식은 아래와 같습니다. harvester 읽기 종료 또는 파일 삭제 → scan_frequency 만큼 대기 → 파일 갱신 확인 → 파일 갱신 시 새 harvester 시작 2. backoff Backoff 옵션은 파일비트가 얼마나 더 적극적으로 크롤링 하는지 지정합니다. 기본값은 1인데 1일 경우 새 줄이 추가될 경우 1초마다 확인한다는 의미입니다. Backoff가 동작하는 방식은 아래와 같습니다. harvester 읽기 종료 또는 파일 삭제 → scan_frequency만큼 대기 → 파일 갱신 확인 → 파일 갱신 시 새 harvester 시작 → 파일 갱신 시 Backoff 시간 마다 다시 확인 3. max_procs 파일비트에서 동시에 사용 가능한 최대의 cpu코어의 숫자를 설정합니다. 예를 들어32 CPU코어 시스템에서 max_procs를 1로 설정한다면 cpu사용률은 3.2%(1/32)를 넘지 않습니다. max_procs 설정돼 있으면 harvester가 아무리 많이 생성돼도 cpu의 코어 수만큼 CPU를 점유합니다. 4. harvester_limit harvester의 수가 OS가 감당할 수 있는 파일 핸들러 개수를 초과할 때 사용합니다. 한 input마다 설정되므로 inputs이 5개 선언돼 있으면 해당 input 컴퍼넌트의 harvester 개수 최대치는 5개입니다. 기본값은 0인데, 0일 경우 harvester가 무제한으로 생성 가능합니다. 리소스 관리 최적화에도 유용한데 예를 들어, input1이 input2보다 파일 개수가 3배 많고 중요성이 높을 때 3배 높은 값을 설정하는 것이 좋습니다. 5. close_eof harvester에 의해 파일이 수집되고 있을 때, EOF(End of File)에 도달하는 즉시 파일을 닫습니다. 파일이 계속 갱신된다면 데이터가 유실될 수 있는 여지가 있습니다. [참조] https://www.elastic.co/guide/en/beats/filebeat/current/filebeat-input-log.html
2022.11.17
사람이야기
일잘러가 바라보는 브레인즈컴퍼니
사람이야기
일잘러가 바라보는 브레인즈컴퍼니
다음 인터뷰를 고민하던 차에 브레인즈컴퍼니에서는 누가 일을 잘할까?라는 궁금증이 생겼습니다. 여러 브레인저들에게 물어본 결과, 개발3그룹의 진광님을 많이 추천해줬는데요. 개발3그룹은 AI 기술을 적용한 차세대 제니우스와 애플리케이션 성능관리 솔루션인 제니우스 APM을 개발하고 있는 핵심 부서인데요. 이 부서는 올해 신입 개발자를 7명이나 채용해 제품 개발에 힘을 쏟고 있습니다. 브레인즈의 일잘러, 진광님이 말하는 브레인즈의 제품, 동료, 일하는 방식에 대해 들어보겠습니다. ----------------------------------------------------------------- Q1. 안녕하세요, 진광님. 자기 소개 부탁드립니다. 안녕하세요, 개발3그룹에서 근무 중인 김진광입니다. 저는 SI 개발자로 시작해 외산 미들웨어(WAS) 솔루션 회사에서 엔지니어로 제품 관련 서비스 및 컨설팅 업무를 담당했었어요. 이때 미들웨어와 서비스에 대한 모니터링 필요성을 생각하게 됐고, 기회가 돼 직전 회사에 합류 후 APM 제품들을 개발했습니다. 브레인즈컴퍼니는 당시 제가 근무 중이던 회사에서 APM제품을 OEM 하면서 연이 닿았어요. 다니던 회사의 방향성이 바뀌면서 이직을 결심했고, 브레인즈컴퍼니의 영업 및 TC팀 분들 추천으로 2017년에 입사하게 됐습니다. 당시 브레인즈컴퍼니는 자사 솔루션을 갖고 있었고, 제품 내재화 단계일 때라 매력을 느꼈습니다. Q2. 맡고 있는 업무에 대해 구체적으로 설명해주세요. 브레인즈컴퍼니의 Zenius APM 전반을 맡고 있습니다. APM은 특수성이 있는 제품이에요. 서비스 문제점을 찾는 솔루션이다 보니, 설치 및 기술 지원 뿐만 아니라 이슈 분석 등 전반적인 사이트 지원이 필요합니다. 그래서 처음에는 제품개발 외 설치, 데모, 성능 컨설팅 등 APM에 관련된 전반적인 부분을 지원했습니다. 이제는 TC팀에서 설치나 사이트 구축, 교육 및 고객 응대 등 전반적인 부분을 잘 지원해 주시고 있어 감사하게 생각하고 있습니다. Q3. 그렇다면, APM의 특장점은 무엇인가요? Zenius APM은 고객의 서비스에서 발생된 이벤트를 처리하고 분석하는 방식이 점점 좋아지고 있습니다. APM은 어플리케이션 서비스가 잘 되고 있는지, 사용자들이 어느 정도 쓰고 있고 응답 속도가 어느 정도 되는지를 항상 모니터링 하는게 기본적인 기능이고요. 문제 발생 시, 그 문제를 인지하고 조치하는 것이 2단계, 다음으로 장애 복구가 완료된 다음에 어떤 것이 문제의 원인이었는지를 찾아내는 것을 3단계로 볼 수 있어요. 문제의 원인은 고객이 쉽게 파악할 수 있도록 데이터들을 차트와 같이 시각화해서 제공하고 있고요. 브레인즈 대표 제품인 Zenius EMS는 전반적인 인프라(H/W)를 모니터링하는 것이고 APM은 그 위에서 서비스되는 어플리케이션(S/W)을 모니터링하는 것으로 보면 돼요. 서비스와 인프라를 같이 모니터링 해야 어떤 문제가 발생했을 때 어플리케이션 자체 문제인 건지, 기반한 서버나 네트워크와 같은 인프라 요소들이 영향을 미치는 것인지를 판단할 수 있어요. 그래서 APM과 기존의 자사 제품들이 더욱 잘 통합될 수 있도록 지속적으로 제품을 발전시켜 나가고 있습니다. Q4. 브레인즈에서 근무한 지 6년차에 접어드셨네요. 그 동안 근속할 수 있었던 브레인즈의 매력은 무엇인가요? 브레인즈컴퍼니는 제가 생각하고 있는 솔루션 회사의 조건에 가장 가까운 회사라고 생각합니다. 자사 솔루션을 보유하고 있고, 해당 분야를 리딩하고 있는 회사에서 일하고 싶었어요. 그런 회사가 국내에서는 많지 않다고 생각합니다. 또, 브레인즈는 동료들이 좋아요. 가장 개발자적 마인드를 많이 갖고 있는 분들이라고 생각합니다. 관제 분야에서 오랜 시간 깊은 전문성을 갖추고 계신 분들이고, 개발자로서도 자부심을 갖고 계신다고 생각해요. 마지막으로, 가족 친화적인 회사라는 점이요. 다양한 행사와 해외 연수, 복지 혜택 등도 부족함이 없는 회사입니다. 전 직원 연봉이 1000만원 상승하면서 처우도 좋아졌고요. Q5. 가장 힘들었던/보람을 느꼈던 순간은? 처음 APM을 설치했을 때. 첫 납품처가 의약품안전관리위원회였는데요. 아무래도 처음이라 우리 제품이 고객사의 서비스에 문제가 되는 것이 아닐까 하는 걱정이 많았어요. 문제가 발생했을 때, TC팀과 함께 어렵게 원인을 찾아내고 집중해서 해결했던 순간이 가장 기억에 남고 보람 있었습니다. Q6. 일을 잘해서 좋은 인사고과를 받으신다고 들었어요. 본인만의 일 잘하는 꿀팁은? 재밌게 일하는 편인 것 같아요. 가급적 일하는 것 자체를 즐기고, 성능 관리와 이슈를 발견하고 처리하는 일들에 관심이 많고 적성에도 잘 맞는 것 같습니다. 완벽주의자 성향이 있기도 하고요. 일이 잘못됐다고 판단되면 다시 처음부터 해야 하다 보니, 최대한 정보를 수집한 후 가장 좋은 방법에 대해 여러 번 생각하고 실행하는 스타일입니다. APM이 원하는 기능으로 나오도록 개발하는 것뿐만 아니라, APM을 사용하는 사용자의 편의성이나 설치 및 지원 팀, 그리고 제품을 소개하고 어필할 때 어떤 모습으로 보여질지에 대한 것 등 여러 가지 측면에서 생각하고 고민 후 실행에 옮기려고 노력하고 있습니다. 전체 작업 시간 중 50% 이상은 다양한 관점에서 고민하는 시간을 갖고 작업을 진행하고 있는 것 같아요. 또, 앞에서 말씀 드렸던 프로젝트 개발 경험과 미들웨어에 엔지니어로서의 경험이나 제품 개발 경력 등의 다양한 경력이 타 부서와의 협업이나 제품 개발, 사이트 지원 등에서 일할 때 많은 도움이 되는 것 같아요. 조금은 다양한 시각을 갖게 해주는 부분이 여러 면에서 도움되더라고요. 그래서 TC팀, 영업팀 등 타 부서 분들이 긍정적으로 봐주시는 것 같아요. (웃음) Q7. 진광님이 생각하는 브레인즈에서 일을 잘하는 사람은? TC팀에 APM 지원파트가 있는데요. 제 입장에서 가장 고마운 분들이기도 하고 대부분 일을 잘 하신다고 생각하고 있어요. 부서장인 영수님, APM에 열정적이신 종관님, APM 지원 파트리더 기현님, 정대님뿐만 아니라 일잘러 기열님까지 모두 잘 하시는 분들이라 생각해요. Q8. 이제 부서 이야기를 해볼게요. 개발3그룹 소개해주세요. 저희 부서는 차세대 제니우스와 APM 제품을 맡고 있어요. 부서장님은 구성원들과 대화하고 코딩하는 것을 좋아하세요. 관리자이지만, 여전히 계속 현업에서 개발하고자 하시는 열정 넘치는 분이십니다. (웃음) 교육도 직접 하시면서 신입 분들 일일이 다 봐주시고 있어요. 비슷한 시기에 들어온 신입 개발자들은 동기애가 느껴지고, 밝은 성격들이라 화기애애한 분위기가 형성돼 있습니다. Q9. 부서만의 일하는 방식은 무엇인가요? 그룹장님이 추구하는 방식이 “각자 알아서 잘 하자”예요. 서로 상의해서 어떤 일을 할 지 분배하고요. 그 이후는 개인의 계획과 독립적 부분을 인정해주는 등 최대한 자율성을 부여하고 있어요. 결과는 서로 공유하면서 평가해주고 있습니다. 신입이더라도 스스로 일을 처리하고 결과물을 갖고 그룹장님과 이야기하며 피드백을 받고 보완해나가는 형식으로 일하고 있어요. Q10. 새로운 동료가 합류한다면, 어떤 스타일의 동료와 함께 일하고 싶은가요? 개발직을 천직이라고 생각하는 사람. 이쪽 일을 한 번 해볼까하는 단순 호기심이 아니라, 전공자를 떠나서 앞으로 쭉 개발 일을 하고 싶은 사람이면 좋겠어요. 또, 일을 많이 하거나 빨리하기 보다는 개발자에 대한 자부심을 바탕으로 어떤 일이 발생하면 최선의 방법을 생각하는 스타일이면 좋겠습니다. 시간이 좀 걸리더라도 충분히 고민하고 행동으로 옮기는 사람을 선호해요. Q11. 5년 후 본인의 모습과 앞으로의 목표는? APM도 유기적으로 발전하는 방향으로 개발해 나가겠지만, APM 말고 새로운 제품도 만들어 보고 싶어요. 데이터 시각화에도 관심이 많은데, 기회가 된다면 새로운 분야와 관련된 솔루션에 도전해보고 싶습니다. 향후에도 관리자보다는 개발자로서 계속 일을 해 나갈 수 있었으면 좋겠습니다.
2022.11.07
회사이야기
다시 태어난 브레인즈컴퍼니 홈페이지
회사이야기
다시 태어난 브레인즈컴퍼니 홈페이지
브레인즈컴퍼니의 홈페이지가 새롭게 단장했습니다. 기본적으로 고객을 비롯한 방문자들이 풍부한 정보를 직관적으로 파악할 수 있게 설계했습니다. 특히 구매, 채용, 블로그 이 세 가지를 가장 큰 변화로 꼽을 수 있는데요. 브레인즈컴퍼니의 대표 제품인 Zenius(제니우스)를 이제 온라인에서 SaaS(구독형) 방식으로 구매 가능해졌고, 미래의 브레인저를 위해 채용 및 블로그 페이지도 생겼습니다. 그럼, 어떻게 달라졌을지 함께 구경해 볼까요? "브레인즈, 제니우스, 브레인저" 1. 브레인즈컴퍼니는 어떤 회사일까요? 회사(브레인즈), 제품(제니우스), 구성원(브레인저). 홈페이지 대문은 브레인즈컴퍼니를 대표하는 이미지 3장을 슬라이드 형태로 구성했습니다. 브레인즈컴퍼니는 다양한 인재들이 모여 국내에서 가장 경쟁력 있는 IT 인프라 통합관리 소프트웨어를 만드는 회사라는 점을 드러냈습니다. 더불어, 고객과 예비 브레인저를 위해 제품과 채용 페이지로 바로 이동할 수 있는 버튼을 고정된 형태로 넣었습니다. 상단 메뉴는 드롭다운 형태로 구성해 방문자가 원하는 내용을 한눈에 쉽게 찾아볼 수 있도록 했습니다. 오른쪽에는 문의하기 버튼이 항상 따라다니는데요. 제품 구입, 기술 지원, IR, PR, 채용 등 어떤 문의든지 환영합니다. 해당 부서에서 발빠르게 확인해 회신할 예정이니, 편하게 이용해주세요. 2. 대한민국 1등 지능형 IT 인프라 통합관리 소프트웨어, Zenius! Zenius(제니우스)는 업계에서 가장 경쟁력 있는 제품입니다. 브레인즈=제니우스라는 수식이 성립할 정도로, 제니우스는 20년 넘는 시간 동안 브레인즈컴퍼니를 건재하게 이끌어왔습니다. Zenius는 클라우드, 인공지능(AI), 빅데이터 등 최신 기술들을 적용해 트렌드를 놓치지 않고 고객 니즈에 발빠르게 대응하고 있습니다. 이 같은 Zenius를 더 많은 고객들이 이해하고 사용해볼 수 있도록 풍부한 정보를 보기 쉽게 담았습니다. 오른쪽 이미지에 마우스를 가져다 대면 (+) 버튼이 나타나고, 해당 버튼을 클릭하면 상세한 내용을 확인할 수 있습니다. 3. 고객이 브레인즈컴퍼니를 선택한 이유 Zenius는 다양한 분야에서 1,000개 이상의 고객을 확보한 제품입니다. 더보기를 클릭하면, 여러 고객들을 공공/금융/의료 등 분야별로 카테고리화한 것을 확인할 수 있습니다. 그 중 궁금한 기업이 있다면, ‘자세히 보기’를 클릭해 어떤 형태로 Zenius를 사용 중인지 팝업창을 통해 확인할 수 있도록 했습니다. "새로 생겼어요! 구매, 채용, 블로그" 1. 구매: SaaS, On-Premise 방식 모두 구매 가능한 Zenius 기존 홈페이지 대비 가장 달라진 점을 꼽으라면, 온라인상으로 Zenius 구매가 가능해졌다는 점입니다. 특히 온프레미스(On-Premise) 방식뿐만 아니라 요즘 핫한 구독형(SaaS)으로도 사용할 수 있게 됐는데요. IT 인프라 규모와 환경에 맞춰 서버, 네트워크, 데이터베이스, 애플리케이션 모니터링을 계획하고 실행해 보시기 바랍니다. 구매 전 브레인즈컴퍼니에 좀 더 알고 싶다면 자료실을 통해 회사소개서를 다운받을 수 있습니다. 제품 카탈로그도 함께 업로드해뒀으니, 필요한 제품을 골라 확인해보면 됩니다. 2. 채용: New 브레인저를 찾습니다! 기존 홈페이지에서는 찾아볼 수 없었던 채용 메뉴가 생겼습니다. 브레인즈컴퍼니는 지난해 코스닥에 상장하며 신사업 추진력을 확보하고 조직에 새로운 바람을 불어넣기 위해 신규 인력들을 적극적으로 채용 중인데요. 좋은 인재를 확보하기 위해 이번에 채용 페이지를 생성했습니다. 채용은 피플, 컬처, 공고, FAQ로 이뤄져 있습니다. 피플 상단에는 다양한 직급과 부서의 브레인저들을 슬라이드 형태로 배치했습니다. 화살표를 클릭하면 팝업창을 통해 그들이 무슨 업무를 하고 어떤 동료를 원하는지, 또 브레인즈컴퍼니를 왜 추천하는지에 대해 확인할 수 있습니다. 그 아래에는 부서별 소개, 브레인저가 말하는 브레인즈컴퍼니, 채용 과정 순으로 배치했습니다. 채용 과정의 합류하기 버튼을 통해 채용공고 페이지로 편리하게 이동할 수 있습니다. 컬처 부분에서는 브레인저가 일하는 방식, 인재상, 소통하는 방법, 근무환경 및 복지에 대한 내용들로 구성됐습니다. 채용공고와 FAQ는 토글 형태로 만들어, 페이지를 이동하는 불편함 없이 바로 해당 내용을 확인할 수 있도록 했습니다. 3. 블로그: 지금 브레인즈컴퍼니는 브레인즈컴퍼니의 사람/회사/기술 이야기를 담은 블로그도 생겼습니다. ▲사람 이야기에는 브레인저 인터뷰 ▲회사 이야기에는 브레인즈의 다양한 소식 ▲기술 이야기에는 제니우스를 비롯해 브레인즈가 몸담고 있는 업계 관련 콘텐츠를 담았습니다. 앞으로 브레인즈컴퍼니와 관련된 모든 소식은 이곳에서 만나볼 수 있습니다. 함께 소통해요! 새로워진 브레인즈컴퍼니의 홈페이지, 구경 잘 하셨나요? 혹시 불편한 점이나 개선사항이 있다면, 그냥 지나치지 말고 문의하기를 통해 의견 남겨 주시면 큰 힘이 될 거예요. 그럼 앞으로도 브레인즈컴퍼니에 자주 들러 주시고, 새로운 소식으로 또 찾아 뵙겠습니다!
2022.09.22
기술이야기
IT 인프라 모니터링 트렌드
기술이야기
IT 인프라 모니터링 트렌드
EMS란? EMS는 Enterprise Management System의 약자로, 여러 기업과 기관의 IT서비스를 이루는 다양한 IT Infrastructure를 통합적으로 모니터링하는 시스템을 의미합니다. 해외에서는 일반적으로 ITIM(IT Infra Management)이라는 용어로 많이 사용되고 있지만, 국내에서는 EMS라는 용어로 통용되고 있습니다. EMS는 IT인프라의 데이터를 실시간으로 수집 및 분석할 뿐만 아니라, 수집된 데이터를 활용해 비즈니스의 가치를 창출할 수 있습니다. 글로벌 IT분야 연구자문 기업인 “가트너(Gartner)”에서는 ITIM, 즉 EMS를 데이터센터, Edge, IaaS(Infrastructure as a Service), PaaS(Platform as a Service) 등에 존재하는 IT인프라 구성요소의 상태와 리소스 사용률을 수집하는 도구로 정의하며, 컨테이너, 가상화시스템, 서버, 스토리지, 데이터베이스, 라우터, 네트워크 스위치 등에 대한 실시간 모니터링이 가능해야 한다고 서술합니다. <사진 설명: 가트너의 ITIM 정의를 도식화한 그림> 이러한 EMS는 초기에는 기업 전산실에 물리적인 형태로 존재하는 서버, 네트워크의 리소스관리를 중심으로 모니터링해 왔습니다. 서버의 CPU, Memory 등의 리소스 정보를 수집하거나, 네트워크 장비의 트래픽 정보를 모니터링하고 임계치를 기반으로 이벤트 감지하는 역할이 대부분이었으며, 이 정도 수준에서도 충분한 IT 인프라 관리가 이뤄질 수 있었습니다. 그러나 가상화(Virtualization)라는 개념이 생겨나고 다양한 IT 인프라들이 기업 전산실에서 클라우드(Cloud) 환경으로 전환됨에 따라, EMS의 모니터링 분야도 조금씩 바뀌어 가고 있습니다. 많은 기업들이 효율적인 리소스 사용과 비용 절감을 목표로 VMware와 같은 가상화 시스템을 도입해 운영하게 됐으며, 모니터링 부문도 이에 대응하기 위해 가상화 리소스에 대한 관리 영역으로 확장됐습니다. 가상화 환경을 이루는 하이퍼바이저(Hypervisor)와 가상머신(Virtual Machine)의 연관성을 추적하고, 각 가상머신들이 사용하고 있는 리소스를 실시간으로 분석해 효율적인 자원 배분, 즉 프로비저닝(Provisioning)을 위한 근거 데이터를 제공할 수 있도록 하고 있습니다. 더 나아가 VMware, Hyper-V 등의 다양한 가상화 플랫폼에서 가상머신을 생성하고 삭제하고, 실제로 가상머신에 CPU, Memory 등과 같은 리소스를 할당해 줄 수 있는 컨트롤 영역까지 제공하는 제품을 개발하는 벤더사들이 많아지고 있습니다. 이러한 가상화 기술을 기반으로 현대에는 IT 인프라들이 대부분 클라우드 환경으로 전환하고 있는 추세입니다. 클라우드 환경으로의 전환 클라우드(Cloud)란, 언제 어디서나 필요한 컴퓨팅 자원을 필요한 시간만큼 인터넷을 통해 활용할 수 있는 컴퓨팅 방식으로, 최근 기업들은 각자의 목적과 상황에 맞게 AWS, MS Azure와 같은 Public Cloud 및 OpenStack, Nutanix 등을 활용한 Private Cloud 등의 환경으로 기업의 전산설비들을 마이그레이션 하고 있습니다. 클라우드로의 전환과 기술의 발전에 따라, EMS의 IT 인프라 모니터링은 더 이상 *On-Premise 환경에서의 접근이 아닌, Cloud 환경, 특히 MSA(Micro Service Architecture)를 기반으로 하는 클라우드 네이티브(Cloud Native) 관점에서의 IT 운영 관리라는 새로운 접근이 필요하게 됐습니다. (*On-Premise : 기업이 서버를 클라우드 환경이 아닌 자체 설비로 보유하고 운영하는 형태) 클라우드 네이티브란, 클라우드 기반 구성요소를 클라우드 환경에 최적화된 방식으로 조립하기 위한 아키텍처로서, 마이크로서비스 기반의 개발환경, 그리고 컨테이너 중심의 애플리케이션 구동환경 위주의 클라우드를 의미합니다. 클라우드 네이티브는 IT비즈니스의 신속성을 위해 도커(Docker)와 같은 컨테이너를 기반으로 애플리케이션이 운영되므로, EMS는 컨테이너의 성능, 로그, 프로세스 및 파일시스템 등 세부적인 관찰과 이상징후를 판단할 수 있는 기능들이 요구되고 있습니다. 자사 제품인 Zenius SMS에서는 이러한 변화에 따라 Docker에 대한 모니터링 기능을 기본적으로 제공하고 있습니다. Docker 컨테이너가 생성되면 자동으로 관리대상으로 등록되며, Up/Down 뿐만 아니라, CPU, Memory, Network 및 Process의 정보를 실시간으로 모니터링하고 발생되는 로그들을 통합관리 할 수 있도록 합니다. <사진 설명: Zenius-SMS에서 제공하고 있는 Docker 컨테이너 모니터링 기능> 또, 복원력과 탄력성을 위해 쿠버네티스와 같은 오케스트레이션 도구를 활용해 컨테이너를 스핀업하고, 예상되는 성능에 맞게 효율적으로 리소스를 맵핑하고 있으며, 이러한 기술에 대응하기 위해 EMS는 쿠버네티스(Kubernetes), 도커스웜(Docker Swarm) 등의 오케스트레이터들의 동작여부를 직관적으로 관찰하는 제품들이 지속적으로 출시되고 있는 상황입니다. 이와 더불어 컨테이너, 오케스트레이터의 동적 연결관계를 실시간으로 모니터링하고, 파드(POD), 클러스터, 호스트 및 애플리케이션의 관계를 표현하는 역할의 중요성이 점차 커져가고 있습니다. 통합 모니터링(Monitoring) EMS 모니터링의 또 다른 변화로는 통합(Integration)의 역할이 더더욱 강해지고 있다는 것입니다. IT 서비스가 복잡해지고 다양해짐에 따라 IT 인프라의 관리 범위도 점차 증가하면서, 다양한 IT 인프라들을 융합하고 관리하기 위한 노력들이 관찰되고 있습니다. 데이터독(Datadog), 스플렁크(SPLUNK)와 같은 장비 관점의 모니터링 벤더들은 APM과 같은 애플리케이션 모니터링 시장으로, 앱다이나믹스(AppDynamics), 다이나트레이스(Dynatrace), 뉴렐릭(NewRelic)과 같은 애플리케이션 모니터링 시장의 강자들은 인프라 장비 관점의 모니터링 시장으로의 융합이 확인되고 있습니다. 자사 제품인 Zenius 역시 서버, 네트워크 중심의 관리에서 애플리케이션, 데이터베이스 등의 시장으로 관리 범위를 확장해 나가고 있는 추세입니다. IT 서비스의 영속성을 유지하기 위해서는 IT 서비스를 구성하는 다양한 요소들을 실시간으로 모니터링하고 연관관계를 추적해 문제 원인을 찾아내는 것이 중요하기 때문에 다양한 IT 요소들을 통합적으로 모니터링하는 것 뿐만 아니라, 상호 연관관계를 표현하고 추적할 수 있는 기능들이 지속적으로 요구되고 있습니다. 모니터링의 트렌드는 서버, 네트워크 등의 독립적인 개체에 대한 모니터링 아닌 IT 서비스를 중심으로 기반 요소들을 모두 통합적으로 모니터링하고, 각 상호간의 의존성과 영향도를 파악해 RCA(Root Cause Analysis) 분석을 가능하게 하고 이를 통해 IT 서비스의 연속성을 보장할 수 있는 통찰력을 확보하게끔 하는 방향으로 흘러가고 있습니다. Zenius는 서버, 네트워크, 애플리케이션, 데이터베이스 및 각종 로그들의 정보를 시각적으로 통합 모니터링할 수 있는 오버뷰(Overview) 도구와 IT 서비스 레벨에서 인프라들의 연관관계를 정의하고 다양한 조건(Rule)에 따라 서비스 이상유무와 원인분석이 가능한 서비스 맵(Service Map) 도구를 기본적으로 제공하고 있습니다. <사진 설명: Zenius 오버뷰 화면> <사진 설명: Zenius 서비스맵 화면> 앞서 언급했듯이, 클라우드 환경으로 전환함에 따라 통합적 관리 요구는 더욱 높아지고 있습니다. IT 인프라에 대한 통합 뿐만 아니라, AD(Active Directory), SAP 및 AWS, Azure, GCP 등의 다양한 서비스의 주요 지표까지 연계하고 하나의 시스템으로 통합 모니터링하기 위한 노력들이 관찰되고 있습니다. 데이터독(Datadog)의 경우, 500개 이상의 시스템, 애플리케이션 및 서비스들의 지표들을 손쉽게 통합 관리할 수 있다고 돼있습니다. <사진 설명: 데이터독 홈페이지 캡처> 이처럼 IT 서비스의 복잡성과 다양화에 따라 관리해야 될 서비스와 지표들은 점점 늘어나고 있으며, 기업의 현황에 맞게 컴포넌트 기반으로 손쉽게 지표들을 통합할 수 있는 기능과 도구들이 요구되고 있습니다. AI 기반의 예측&자동화 모니터링의 세번째 변화로는 ’AI 기반의 예측과 자동화’입니다. IT 인프라 및 서비스의 주요 지표를 모니터링하는 것도 중요하지만, 축적된 데이터를 기반으로 미래의 상황을 예측 및 이상탐지해 사전에 대비할 수 있는 체계를 갖추는 일은 모니터링 시장에서 중요한 이슈로 자리잡고 있습니다. 현재의 AIOps(AI for IT Operations)를 표방하는 모니터링 기술들은 서버, 네트워크, 애플리케이션, 데이터베이스 등의 주요 지표들을 실시간으로 수집하고, 저장된 데이터를 기반으로 AI 알고리즘 또는 통계기법을 통해 미래데이터를 예측하며 장애 발생가능성을 제공하고 있습니다. 이와 같은 기술을 통해 미래 성능 값을 예측해 IT 인프라의 증설 필요성 등을 판단하고, 장애 예측으로 크리티컬한 문제가 발생되기 전에 미리 조치를 취할 수 있도록 해 효율적인 의사결정을 할 수 있도록 합니다. Zenius도 4차 산업혁명 및 디지털 뉴딜시대가 도래함에 따라 미래예측 기능을 최신 버전에 탑재했으며, 이를 통해 IT운영자가 미래 상황에 유연하고 선제적으로 대응할 수 있도록 합니다. Zenius에서는 서버, 네트워크, 애플리케이션 등 다양한 IT 인프라의 미래 성능 값, 패턴 범위, 이상 범위 등을 예측해 IT 운영자에게 제시합니다. <사진 설명: 인공지능(AI) 기반 미래데이터 예측 화면> 다만, 인공지능 기술을 통해 장애 발생 가능성을 탐지하는 기능 외에, 어디에 문제가 발생됐는지 알려주는 기능은 모니터링 시장에 과제로 남아있고, 이를 제공하기 위한 여러 업체들의 노력이 보이고 있습니다. 이제는 EMS에서 보편적인 것이 됐지만, 모바일 기기를 통해 시∙공간적 제약 없는 모니터링이 이뤄지고 있습니다. 다양한 기종의 스마트폰, 태블릿PC 등을 이용해 운영콘솔(Console) 뿐만 아니라, 회의 등 시간을 잠시 비우더라도 IT 인프라에 대한 연속적인 모니터링이 모바일기기를 통해 가능해졌습니다. <사진 설명: 다양한 기기를 통한 모니터링>
2022.09.05
기술이야기
[Zenius Case#1] 내일까지 서버관리 현황 부탁할게요!
기술이야기
[Zenius Case#1] 내일까지 서버관리 현황 부탁할게요!
퇴근을 준비하는 어느 날, 부장님이 갑자기 요청합니다. “내일까지 서버관리 전반 현황 보고해야 되니 준비 부탁할게! 그럼 고생하고 낼 보자고” 어떤 내용들로 자료를 준비해야 하는 걸까요? 이번에는 Zenius SMS를 활용한 서버관리현황 파악에 대해 살펴보겠습니다. 서버관리 현황 파악의 포인트 1. 얼마나 많은 대상을 관리하고 있으며 종류는 어떤 것이 있는가? 2. 관리가 필요한 주요 성능지표 항목은 어떤 것이 있는가? 3. 주요 성능지표 관련해 현재 상태는 어떠한가? 4. 이슈가 존재하는 서버의 현황과 어떤 이슈를 가지고 있는가? 5. 어떻게 필요한 자료를 쉽고 빨리 확보해 보고할 것인가? 6. 향후 지속적으로 제공 가능한 범위인가?(내일까지 해야 하는데….) 7. 추가적인 요청사항에 대한 대응이 가능한가? 상기 사항들 모두 중요하지만, 그 중에서도 “지속적으로 제공 및 관리가 가능한가?”라는 부분에 집중해야 합니다. 아무리 훌륭한 자료라도 자료구성을 위해 과도한 공수가 발생하는 자료는 사실상 향후 지속적인 관리측면에서 실효성을 상실하게 돼 1회성 보고자료로 끝나게 되는게 현실입니다. 실제 업무에 필요한 자료는 지속적인 관리가 가능해야만 합니다. Zenius로 1분 만에 서버현황 보고자료 정리하기 Step 1. 기본 데이터 취득(10초) Step 2. 현황정보 정리(10초) 저희가 운영하는 대상은Total 12대입니다. OS 별로 Linux 6, Solaris 1, AIX 1, HPUX 1, Window 3 관리 운영 중에 있습니다. Step 3. 주요 성능지표의 상태정리(20초) 먼저 서버(OS) 측면의 주요 성능지표에 대해 알아보도록 하겠습니다. 정보시스템 성능관리 지침에서는 서버 성능관리의 목적을 아래와 같이 정의하고 있습니다. 서버 성능관리의 목적 “서버 성능관리 업무는 최적의 용량을 적시에 확보하기 위한 용량계획의 시점을 제공하고 성능 관련 문제를 사전에 예방함으로써, 사용자의 시스템 활용도 및 만족도를 향상시키기 위하여 수행된다.” 또한 정보시스템 성능관리 지침에서 서버의 주요 성능관리 구성요소는 아래와 같이 정의하고 있습니다. 구성요소 내용 CPU 총 CPU사용률, 시스템 모드 사용률, 사용자 모드 사용률, Run Queue, Pri Queue, 사용자수 등 메모리 총 메모리 사용률, 시스템 및 버퍼 캐쉬, Page In/Out, Swap 공간 사용률 등 디스크 Disk 사용률, Disk I/O Busy, Disk Queue 프로세스 CPU를 집중적으로 사용하는 프로세스, Zombie 프로세스 커널 커널 파라미터 설정을 통한 자원의 적절한 분배 파일시스템 파일시스템 IO Rate, 파일시스템 공간 사용률 네트워크 I/O In 패킷률, Out 패킷률, Collision률, Error률 해당 성능관리 구성요소 중 실제 시스템운영 시 체크가 필요한 몇 개 항목에 대해 간단히 정의하고 넘어가겠습니다. CPU 사용률(%) 서버의 성능을 의미하는 척도로 사용되는 항목으로 CPU의 사용률이 일정 이상을 넘어가면 서비스에 영향을 주기 시작합니다. 순간적으로 급격히 높아질 수 있기 때문에 일반적으로 임계값과 지속시간을 함께 지정해 감시합니다. *여기서 CPU란? Central Processing Unit의 약자로 명령을 해독하고 산술논리연산이나 데이터 처리를 실행하는 장치입니다. Memory 사용률(%) 메모리의 사용량이 너무 빨리 소모되거나 또는 지속적으로 사용량이 떨어지지 않는다면 조치가 필요한 부분입니다. *여기서 Memory란? 기억소자를 지칭하는 것으로 보다 빠른 처리를 위한 프로그램 또는 데이터를 저장하거나 계산된 결과를 임시 또는 반영구적으로 보관하는 기억장치입니다. Disk I/O Busy Rate(%) Disk의 경우 데이터 처리 속도가 메모리나 CPU에 비해 너무 느리기 때문에 Disk I/O Busy Rate의 경우 일정 임계치 이상 지속되는 경우 과다한 입출력이 발생시킴을 의미하며 시스템 성능에 영향을 줄 수 있습니다. *여기서 Disk I/O란? Disk의 입출력 양을 의미합니다. 이제 기본 취득 데이터 기준 주요 성능지표를 정리해 보겠습니다. CPU 사용률(%) 저희가 운영하는 서버 중 CPU 사용률은 다음과 같으며, CPU 사용률이 가장 높은 대상은 Cent7x64 장비입니다. 전일 기준 Peak 치가 59% 정도이며 현재 36%정도의 사용률을 보입니다. Memory 사용률(%) Memory 사용률 현황은 다음과 같으며, Memory 사용률이 가장 높은 대상은 Solaris11 장비 입니다. 전일 기준 Peak 치가 97% 정도이며 현재도 96%정도의 사용률을 보입니다. 해당 장비의 경우 상세분석 진행 예정입니다. Disk I/O Busy Rate(%) Disk I/O Busy Rate 기준으로 모니터링이 필요한 대상은 다음과 같으며 현재 전반 양호한 상태입니다. 가장 높은 대상은 Zenius6.1 장비입니다. 현재 37% 정도를 보이고 있으며 한시적 증가로 요소가 존재하는 상태입니다. 저장장치 사용률(%) 저장장치 사용률의 경우 시스템 전체의 사용률보다는 파티션 별 사용률 관점에서 정리가 필요합니다. 95% 이상 사용중인 파티션 영역이 존재하고, AIX72-ORA, Suse11-x64, Solaris11 장비의 경우 현재 조치 진행 중이며 용량증설 계획도 함께 고려하고 있습니다. Step 4. 이슈사항 정리(20초) 전체관리대상 중 긴급 1건, 위험 4건, 주위 4건의 이슈가 발생해 있는 상태이며 등급 별 상세내역은 다음과 같습니다. 이슈 발생 후 지속시간 2일 이상 지속중인 항목들은 단기 조치 불가 항목으로 조치방안에 대해 논의중인 항목입니다. 이상으로 Zenius를 활용해 1분만에 서버현황 보고자료를 구성해봤습니다. 그럼 이제 다음과 같이 보고를 진행했을 때 추가적으로 유입될 수 있는 요청사항을 Zenius SMS를 활용해 대응해보겠습니다. Zenius SMS를 활용해 추가 요청사항 대응하기 Q. CPU 사용률 높은 장비의 CPU 추이는 어떤가요? 전반 추이와 전일 대비 사용률을 확인해볼 필요가 있습니다. A. 해당장비의 CPU 사용률 추이는 다음과 같으며 전일대비 비교 했을 때 거의 유사한 범위내에 사용률 추이를 보여주고 있습니다. 3단계의 임계라인 기준으로 감시를 수행하고 있습니다. Q. 특정 파티션의 파일시스템 사용률이 높은 장비의 타 파티션의 사용률은 얼마나 되나요? 저장장치 사용률 추이도 함께 검토가 필요해보입니다. A. /nshome40 96% 이외 /home 파티션도 사용률이 90% 이상인 상태입니다. 사용률 추이를 확인했을 때 급격한 증가는 발생하지 않는 상태입니다.
2022.09.02
회사이야기
IT인프라 통합관리 SW ‘제니우스’, 조달청 우수제품 지정
회사이야기
IT인프라 통합관리 SW ‘제니우스’, 조달청 우수제품 지정
까다로운 기술 및 품질 인증 소명 한 번에 통과 지속적 특허 출원 통해 차별화된 제품 선보이며 시장 선도할 것 브레인즈컴퍼니는 자사 IT 인프라 통합관리 소프트웨어 ‘제니우스(Zenius) EMS v8.0’이 조달청 우수제품으로 선정됐다고 11일 밝혔다. 조달청 우수제품 지정제도는 조달물자의 품질향상을 위해 중소벤〮처 기업이 생산한 제품 중 기술 및 품질이 우수한 제품을 대상으로 엄정한 평가를 통해 우수제품으로 지정하는 제도다. 조달청 우수제품으로 지정되면 수요기관에 수의 계약 등을 통해 우선 공급할 수 있게 된다. ‘제니우스(Zenius) EMS v8.0’은 까다로운 심사절차를 한 번에 통과했다. ‘대용량 원천데이터로부터 써머리값을 결정하는 방법 및 서버’에 관한 특허로 기술 인증을, GS(Good Software) 인증 1등급으로 품질 인증을 받았다. 이번 우수제품으로 지정된 ‘제니우스(Zenius) EMS v8.0’은 서버, 네트워크, DBMS, Web Application, IoT, 클라우드 등 다양한 이기종 IT 인프라를 통합해 모니터링하고 관리하는 소프트웨어다. IT 인프라 상태를 실시간으로 모니터링하고 장애 발생을 예방하며, 장애 발생 시에는 즉각적 통보로 원인을 분석해 종합적인 모니터링 기능을 제공한다. 특히 제니우스는 순수 솔루션 매출액 기준 국내 1위 제품으로, APM 및 로그매니저 등 특화 솔루션을 포함해 업계 최다인 20여 종의 포인트 솔루션을 보유하고 있다. 지난해 클라우드 서비스 보안 인증(CSAP)을 획득해 클라우드 맞춤 솔루션을 제공하고, AI 알고리즘을 활용한 미래 성능 예측으로 IT 운영 통찰력을 확보한 제품이다. 강선근 브레인즈컴퍼니 대표는 “제니우스 EMS는 국내외〮 다양한 산업군에서 1,000여개 이상의 고객을 확보해 탄탄한 기술력이 검증된 제품”이라며, “앞으로 IT 인프라 통합관리 시장에서 지속적인 특허 출원을 통해 차별화된 제품을 선보이며 해당 시장을 꾸준히 선도해 나가겠다"고 말했다.
2022.08.14
사람이야기
6개월&20년 차 개발자들이 바라보는 브레인즈컴퍼니
사람이야기
6개월&20년 차 개발자들이 바라보는 브레인즈컴퍼니
브레인즈컴퍼니는 전체 인력의 약 2/3가 개발자로 구성돼 있습니다. IT기업인만큼 개발자의 역할이 특히 중요한데요. 그래서 ‘브이(브레인저 이야기)’의 첫 번째 편은 개발자 두 분을 모시고 진행해 봤습니다. 입사 6개월 차의 주니어 개발자 이재용님과 입사 20년 차를 내다보고 있는 시니어 개발자 김기상님을 만나봤는데요. 20년의 경력 차이 만큼 브레인즈컴퍼니를 바라보는 시각에 어떤 차이가 있을지, 또 개발자로서 철학은 어떻게 다른지에 대해 이야기를 들어보겠습니다. ------------------------------------------------------------------ Q. 반갑습니다, 자기소개 부탁드려요. 기상님: 안녕하세요. 저는 개발 1그룹 인프라코어팀 부장으로 일하고 있는 김기상입니다. 2004년도에 입사했으니, 올해로 벌써 19년 차가 됐네요. 재용님: 안녕하세요. 저는 개발 2그룹 ITSM팀 사원으로 일하고 있는 이재용입니다. 저는 입사한 지 막 6개월 차 정도 된 갓 신입이네요. (웃음) Q. 두 분의 업무를 구체적으로 소개해주세요. 기상님: ZENIUS EMS의 매니저 에이전트를 담당하고 있습니다. ZENIUS EMS는 브레인즈컴퍼니의 메인 브랜드로, 서버, 네트워크, DBMS, 부대설비와 같은 다양한 IT 인프라를 하나의 플랫폼에서 통합 관리하는 소프트웨어인데요. 인프라코어팀에서는 서버에 들어가는 프로그램을 개발 및 관리하는 일을 하고 있습니다. 통일된 라이브러리를 제공해 개발자들이 좀 더 편하게 일하고 생산성을 높일 수 있도록 하고 있습니다. 재용님: ITSM팀에서 백엔드 업무를 담당하고 있는데요. ZENIUS나 대시보드와 같은 회사 주 제품을 보조하기 위한 프로그램을 개발하는 작업을 하고 있습니다. Q. 브레인즈컴퍼니에 입사하게 된 계기가 어떻게 되시나요? 기상님: 2003년도 초에 전문연구요원으로 일하기 위해 회사를 알아보고 있었어요. 그때 마침 브레인즈컴퍼니가 연구 병역 특례 업체로 지정돼 있었기 때문에 연구소장님의 소개로 입사하게 됐습니다. 재용님: 저는 정말 운 좋게 입사하게 된 케이스인 것 같아요. 개발자라는 직군에 관심이 있어 학원을 다니고 있다가 면접 경험을 쌓기 위해 지원했는데 합격했습니다. Q. 그동안 브레인즈컴퍼니에서 개발자로 일해오면서 가장 기억에 남는 업무 성과가 무엇인가요? 기상님: ZENIUS EMS를 만든 것. 초창기 ZENIUS 3.0을 사용할 땐 여러 개의 모듈을 각기 다른 프로그램으로 관리하고 있었어요. 그걸 보완하기 위해 라이브러리를 만들어 여러 개의 모듈을 한 프로그램으로 관리할 수 있게 구현해냈어요. 창립 초기에 제가 그 스타트를 끊었다는 것이 뿌듯했고, 큰 성취감이 들었어요. 재용님: 저는 ITSM에 로그인했을 때 그래프를 화면에 띄우는 일을 하고 있어요. 프론트 단에 데이터를 보내주는 작업인데, 재미있게 일하고 있습니다. Q. 반대로 업무를 하면서 가장 힘들었던 점은요? 기상님: 버그 처리가 가장 힘들어요. 이용자들의 버그 문의가 오면 기술을 지원해야 하는데, 문제가 있는 버그를 빨리 알아채지 못할 때 스트레스를 받아요. 재용님: 놓치는 게 있을 때요. 제가 꼼꼼한 성격은 아닌 탓에 실수를 하는 것 같아요. 동료들은 오히려 괜찮다고 위로하고 격려해주는데, 그럴 때면 미안한 감정과 함께 더 잘해야겠다는 생각이 들어요. Q. 분위기를 바꿔서 이번에는 일 이야기가 아닌 편한 이야기를 나눠볼게요. 브레인즈컴퍼니에는 다양한 복지제도가 있는데요. 기상님은 어떤 것이 가장 기억에 남으세요? 기상님: 해외 연수 제도요. 저는 첫 해외 연수로 세부에 갔었어요. 마음 맞는 동료와 함께 바다를 거닐 수 있다는 것 자체가 너무 행복했습니다. ‘미국 연수’도 기억에 남아요. 2014년에 갔던 미국 연수에서는 구글과 드롭박스, 코트라 등을 견학하기도 했어요. 코로나 터지기 직전에는 영국 연수도 갔었어요. 세계 최대 보안 전시 중 하나인 Infosec에 저희 회사가 참여했었죠. 해외 연수 외에 ‘패밀리 데이’라는 행사도 브레인저들에게 인기가 많습니다. 패밀리 데이는 직원 가족들이 함께 모여 진행하는 행사예요. 아이들을 위해서 행운권 추첨을 통해 선물을 주기도 하고, 함께 운동회도 하며 시간을 보냈던 게 생각 나네요. 이렇게 돌아보니, 브레인즈컴퍼니는 참 많은 혜택을 주는 회사네요. (웃음) Q. 요즘은 코로나로 연수 제도를 중단하고 있죠. 재용님 많이 아쉬워하시는 것 같은데요? (웃음) 대신 브레인즈컴퍼니, 이것만은 자랑하고 싶다! 하는 것이 있나요? 재용님: 연봉 인상과 좋은 동료. 이번에 전체적으로 연봉이 천만원씩 올라서 너무 좋았습니다. (웃음) 또 사내에 다양한 음료가 비치 돼있고, 아침을 제공해주는 것도 좋아요. 무엇보다 자랑거리는 좋은 동료 분들과 마음이 잘 맞아서 기분 좋게 출근한다는 것을 꼽을 수 있겠네요. Q. 동료분들 얘기가 나왔는데, 팀 내 분위기는 어떤가요? 기상님: "할 때는 하고, 놀 때는 놀자." 집중력을 요하는 일이다 보니 업무 중에는 독서실처럼 조용해요. 대신 점심시간이나 휴식시간에는 서로 편하게 이야기를 나누며 시끌벅적한 분위기를 만들어냅니다. 코로나 이전에는 라운지에서 게임도 즐기고 회식도 했었어요. 요즘은 한 달에 한 번씩(셋째 주 수요일) 저녁 시간에 같이 밥을 먹으면서 소통의 시간을 갖고 있습니다. 재용님: 분위기는 자유롭고 무엇보다 동료들이 인간적이에요. 일할 때 각자 자유롭게 노래를 듣는데 처음에는 신기했어요. 적응하고 보니, 개인만의 공간에서 자유롭게 일할 수 있는 환경이라 좋습니다. 팀 분위기는 타부서에 자랑하고 싶을 정도로 매우 좋아요. 업무 중 실수를 하면 미안한 감정부터 들 정도로, 팀원들 자체가 너무 착하고 좋은 분들이 많습니다. Q. 모두 즐겁게 일하고 계시네요. 앞으로 새로운 동료들이 팀에 합류하게 된다면 어떤 동료를 원하시나요? 기상님: 솔직하고 소통을 잘하며, 끊임없이 고민하는 개발자. 편견일 수 있지만, 개발자는 ‘은둔형’의 이미지를 갖고 있어요(물론 실제로는 그렇지 않은 사람도 많겠죠). 그런 성향을 가진 건 상관이 없지만, 의사소통에 문제가 되는 건 안돼요. 예를 들면, 코드에 문제가 있어도 성격 상 잘 말하지 않는 경우에 시간이 지나면 결국 잘못된 부분이 극명하게 드러나게 돼있거든요. 그래서 소통이 중요해요. 그런 상황에서는 솔직하게 말해줬으면 해요. 또 개발 공부를 할 때 좀 더 읽기 편한 코드나 예외 요소를 여러 각도에서 고려해 보는 자세가 필요하다고 생각해요. 재용님: 꼼꼼한 개발자요. 언어 하나를 빠뜨리면 프로그램 자체에 문제가 생기기 때문에 완전히 집중해서 노력하는 자세가 중요해요. Q. 최근 개발자 직군이 사회적으로 인기가 많은데요. 두 분은 개발자로 진로를 선택하게 된 이유가 있으신가요? 기상님: 적성에 잘 맞고 재미있어서요. 제 전공은 기계공학이었습니다. 당시 기계공학과에 ‘프로그램 개발’이라는 과 소모임이 있었는데요. 소모임에서 프로그램을 잘 다루시는 선배님들이 방학 기간에 멘토-멘티 형식으로 후배들을 가르쳐줬어요. 그 때 C언어, C++ 등을 배우다가 학부 연구소에 발탁이 됐어요. 로봇, 자동차와 같은 시뮬레이터를 만드는 ‘자동화 연구실’에서 일했고, 너무 재미있어서 자연스럽게 대학원까지 가게 됐습니다. 재용님: 개발은 흥미롭고 매력적인 직군이라고 생각해요. 저도 개발 관련 전공은 아니었어요. IoT 쪽이었는데, 코딩 수업을 들은 적이 있었어요. 그 때 코딩에 흥미를 느껴 학원까지 등록해서 다니다 보니 개발자가 됐습니다. Q. 기상님이 입사할 당시의 ‘개발’은 현재와 비교해 봤을 때 어떤 차이가 있나요? 기상님: 제가 입사할 당시의 개발은 ‘수동적인 업무’였습니다. 그 때는 SI성 사업이 주였어요. 하청업체의 위치에 있었다고 볼 수 있죠. 전산시스템을 필요로 하는 곳으로부터 하청을 받아, 시스템의 기획, 개발, 유지보수, 운영 등을 처음부터 끝까지 요구하는 대로 해야 해서 1~2년씩 파견을 나가기도 했어요. 그러다 보니 야근과 특근이 많았죠. 반면에, 현재는 능동적인 스타일로 바뀐 것 같아요. 이제는 개발자들에게 본인이 원하는 대로 다 맞춰 달라고 요구하지 않아요. 오히려 개발자들이 만들고 싶은 제품을 개발하고 업체에게 구입을 요구해요. 그러다 보니 자율적으로 일하는 분위기로 바뀌었고, 이전보다 훨씬 개발 환경도 좋아졌다고 생각해요. Q. 재용님, 요즘 젊은 세대 사이에서는 개발자에 대한 인식이 어떤가요? 재용님: MZ세대는 개발자를 이공계열 중에서도 가장 매력적이고 창조적인 직업이라고 생각하는 것 같아요. 기상님의 말을 들으니 개발 환경이 이전보다 능동적으로 바뀌어서 그런 것 같네요. 무에서 유를 창조해내고, 자신이 만든 웹사이트가 가시적으로 드러난 것을 사람들이 볼 때 성취감을 느껴서 개발자를 선택하는 20대 분들이 많더라고요. Q. 그럼 재용님, 브레인즈컴퍼니에 입사를 원하는 개발자를 위해 입사 과정과 함께 합격 꿀팁 부탁해요! 재용님: 서류 전형에서는 ‘객관성’, 면접은 ‘힘빼기’라고 생각해요. 저는 브레인즈컴퍼니에 총 두 번 지원했고, 처음에는 서류에서 탈락했어요. 개발자 분들이 자기소개서나 이력서를 쓸 때 자신만 이해할 수 있는 내용으로 서류를 작성하는 경우가 많아요. 개발에 대해 잘 모르시는 분들도 이해할 수 있게 객관적이고 구체적으로 쓰는 것이 중요하다고 생각합니다. 실제 상황이나 예시를 들면 더욱 좋고요. 면접은 모범적인 답이지만, 긴장하지 않고 말하는 것이 중요하다고 생각합니다. 브레인즈컴퍼니 면접 당시, 긴장을 많이 했더니 알고 있는 용어나 언어도 기억이 나지 않아 당황스러웠어요. 그 이후에 힘이 풀려 오히려 편하게 답변했더니, 유연하게 대처할 수 있었어요. 개발자 면접은 즉흥적인 문제 해결 능력을 요구하기 때문에 유연성이 필요합니다. 긴장하지 않고 힘을 빼고 임하시는 걸 추천 드립니다. Q. 마지막 질문 드릴게요. 두 분의 앞으로 목표와 계획이 궁금합니다. 기상님: 끊임없이 새로운 개발에 도전할 계획입니다. 개발 자체가 일로 다가오지 않게 하기 위해서는 계속해서 새로운 것에 관심을 가져야 한다고 생각해요. 가령, 제품 개발을 하다 보면 그 제품에만 집중해서 다른 보조 기술 개발은 못 보게 되는 경우가 생기는데요. 그럴 때마다 새로운 기술에 대한 호기심을 잃지 않고 도전해 나가는 것이 제 목표입니다. 재용님: 저는 아직 신입이니 개발 능력을 키우는 것이 목표이지 않을까요? 5년 후에는 특히 Back-end 쪽에서 자유자재로 프로그램을 만들어낼 수 있는 개발자로 성장해 있었으면 좋겠네요.
2022.08.04
기술이야기
[ZNG 개발기] #1. ZNG와 Vue.js
기술이야기
[ZNG 개발기] #1. ZNG와 Vue.js
안녕하세요. 브레인즈컴퍼니 개발 3그룹에서 ZNG의 프론트엔드를 개발하고 있는 1년차 신입 개발자 김현수입니다. ZNG란 Zenius New Generation의 약자로, 브레인즈컴퍼니의 핵심 서비스인 제니우스의 차세대 버전을 말합니다. ZNG는 데이터베이스를 제외한 프론트엔드와 백엔드는 완전히 제로베이스에서 시작하는 장기 프로젝트이기에, 프로젝트를 진행하는 과정에서 새롭게 배운 것, 개발자로서 성장, 팀 개발 경험 등을 기록하고자 ZNG 개발기를 작성하게 됐습니다. ZNG 개발기는 달마다 개발과정에서 있었던 이슈들, 경험, 공부한 내용 등을 기술적인 내용과 함께 작성할 예정입니다. 다 함께! <사진 설명: 펭수, "렛츠고!"> 1. ZNG가 무엇인가요? ZNG는 기존 제니우스에서 발생하는 불편함을 해소하고자 탄생한 프로젝트입니다. 기존 제니우스에는 어떤 불편함이 있었고, 이를 해소하고자 ZNG는 어떤 컨셉을 목표로 개발할 것인가에 대해 알아보겠습니다. 같은 부서 선배 동료들을 쫄래쫄래 따라다니며 물어보고 배워가며 정리한 내용을 바탕으로 작성하는 글입니다. 혹시라도 틀린 부분이 있다면 알려주시면 감사하겠습니다! <사진 설명: 자환님은 아니라고 하셨다...> 제니우스는 B2B 솔루션 서비스 상품으로 사용자의 요구사항에 맞게 유연한 변경이 가능해야 합니다. 새로운 컴포넌트를 추가 한다거나, 여러 기능을 합치는 등 다양한 요구사항에 대응해야 합니다. 당연히도 현재 제니우스는 사용자의 요구사항에 맞춰 조금씩 커스텀해 서비스되고 있습니다. 그러나 효율적이지 못한 상황이 생기기도 합니다. 대체로 같은 내용의 코드를 반복해서 작성하는 상황이 그러합니다. 같은 형태를 가진 컴포넌트여도 출력하고자 하는 데이터의 종류가 다르다면 컴포넌트를 통째로 다시 만들어야 했습니다. 반복적인 작업은 개발자에게 피로감을 주게 되고 단순히 피로감을 넘어, 개발자에게 목표 의식을 저하시킬 우려가 있습니다. <사진 설명: 다양한 종류의 컴포넌트가 있다. 사용자마다 원하는 컴포넌트, 데이터가 다를 수 있다.> 이런 불편함을 해소하는 방법으로, ZNG는 코드의 재사용성을 높이기 위해 노력합니다. 각 기능끼리의 의존도는 낮추고, 독립성을 높여서 반복적인 작업을 최소화합니다. 같은 형태를 가진 컴포넌트에 대해서 데이터만 다르다면 데이터만 바꿔주면 됩니다. 사용자마다 다른 종류의 데이터를 출력하기를 원할 경우 더 빠르고 효율적인 대처가 가능합니다. 이러한 컨셉과 Vue.js의 Component를 관리하는 방법이 일치해 ZNG는 Vue.js로 개발하게 됐습니다. 2. ZNG와 Vue.js Vue.js에는 여러가지 특징이 있습니다. 그 중에서도 Vue Component에 대해서 자세히 알아보겠습니다. Vue Component Vue Component란 화면을 구성하는 하나의 블록입니다. Component는 하나의 전체 화면일수도 있고 전체 화면 중 일부분을 차지하는 또 하나의 작은 화면일수도 있습니다. 따라서 화면을 구현할 때 화면 전체를 한 번에 구현하지 않고, 부분적으로 구현해 관리하는 것이 가능합니다. Component를 활용하면 화면을 구조화해 직관적으로 개발할 수 있으며 코드의 재사용성이 올라갑니다. <사진 설명: 화면의 영역을 블록으로 쪼개 재활용 가능항 형태로 관리하는 것이 Vue Component> ZNG 기능 중 모니터링은 추출한 데이터를 그래프, 표 등을 통해 다양한 형태의 컴포넌트로 보여줍니다. 각각의 컴포넌트는 서로 다른 모양을 통해, 서로 다른 데이터를 보여줍니다. 반대로 말하면 하나의 컴포넌트에 대해서 모양, 데이터만 다르게 준다면 여러 종류의 컴포넌트를 만들 수 있습니다. 다음은 ZNG 코드 일부입니다. PCContainer는 컴포넌트를 감싸는 블록입니다. component 태그 안에 있는 ‘is’옵션에 ‘컴포넌트의 이름’을 넣어 그리고자 하는 컴포넌트를 선택할 수 있습니다. PCLineChart는 그래프를 그리는 컴포넌트입니다. highchartsOptions에 어떤 데이터를 넣느냐에 따라 원하는 그래프를 그릴 수 있습니다. <사진 설명: PCContainer> 하나의 PCContainer로 여러 모양의 컴포넌트를 그리고, 하나의 컴포넌트(PCLineChart)로 다양한 데이터를 표현할 수 있습니다. 컴포넌트를 만들기 위해 새로운 코드를 작성하지 않고, Vue Component를 통해 코드를 재사용함으로써 효율적이고 직관적인 코드를 개발할 수 있습니다. 부모와 자식 컴포넌트 관계 각 Vue Component는 데이터를 주고받을 때 부모-자식 관계를 갖는 것이 일반적입니다. <사진 설명: 부모-자식 컴포넌트> 부모는 자식에게 데이터를 전달할 수 있어야 하며, 자식은 부모에게 일어난 일을 알려야 합니다. 부모는 props를 통해 자식에게 데이터를 전달하며, 자식은 emit로 이벤트를 호출해 부모에게 데이터를 알립니다. 부모 컴포넌트와 자식 컴포넌트는 분명히 구분된 컴포넌트지만 props와 emit을 통해 의사소통이 가능합니다. ZNG는 최상단 레이아웃에서 서버로부터 데이터를 받아와 props를 통해 각 컴포넌트로 데이터를 보내줍니다. 하위 컴포넌트에서 발생한 이벤트를 통해 다시 상위 컴포넌트로 데이터를 전달해 데이터를 관리합니다. 다음은 ZNG 코드 중 일부입니다. 자식 컴포넌트는 props를 통해 부모 컴포넌트로부터 데이터를 받고, emit을 통해 부모 컴포넌트로 이벤트를 통해 알립니다. props와 emit을 통해 컴포넌트 간 의사소통을 수행하지만, 각 컴포넌트마다 코드를 분리하기 때문에 관리가 편하고 쉽게 재사용할 수 있습니다. 3. 마치며 ZNG의 개발 방향성과 이와 관련해 Vue.js의 Component 특징을 정리해봤습니다. Vue Component는 이전부터 알고 있던 개념이지만 직접 개발한 코드와 비교해보니 머릿속에 명확하게 정리되는 느낌이었습니다. 특히 코드를 다시 보면서 개념을 리마인드하는 과정이 좋았습니다. ZNG 개발기는 이제 시작입니다! 앞으로도 계속될 ZNG 개발기에 많은 관심 부탁드리며 ZNG 프로젝트를 성공적으로 수행할 때까지 응원해주세요! <사진 설명: 개발의 신이시여... 지켜봐 주세요!> [출처] https://kr.vuejs.org/ https://ko.wikipedia.org/wiki/Vue.js https://www.instagram.com/waterglasstoon/
2022.08.03
1
2
3
4
5