반복영역 건너뛰기
주메뉴 바로가기
본문 바로가기
제품/서비스
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
블로그
열기
메인 페이지로 이동
블로그
최신이야기
블로그
최신이야기
사람이야기
회사이야기
기술이야기
다양한이야기
최신이야기
검색
기술이야기
시련이 많았던 경험자의 CI/CD 간략 소개
기술이야기
시련이 많았던 경험자의 CI/CD 간략 소개
과거에는 근로자 1명이 기획/설계/구현 테스트까지 진행이 가능했다고 합니다. 하지만 최근에는 근로자 1명이 기획부터 테스트까지 진행하는 일은 거의 드물다고 볼 수 있습니다. OLD SCHOOL 지금 이 시간에도 많은 회사 내의 개발자들은 자신에게 주어진 기능 구현을 훌륭하게 완수하기 위해서 모니터를 째려보고 있습니다. 모니터를 째려보다가 자신이 작성한 내용을 다른 팀원에게 공유하고자 혹은 반대로 다른 팀원이 작성한 내용을 공유받고자 '형상 관리 시스템'을 사용하고 있습니다. CVS와 SVN으로 대표되는 이 시스템은 최근들어 Git을 많이 사용하는 추세라고 합니다. 필자 역시 여러 프로젝트에서 해당 시스템을 사용도 해보았고, 연동하여 다른 시스템을 구현한 경험이 있습니다. 하지만 프로젝트 마다 해당 시스템 사용에 있어서 몇몇 시련이 있었습니다. "차주에 전체 기능 리뷰가 있습니다. 각 파트 별로 코드 커밋해주세요." 라고 PM(Project Manager) 또는 PL(Project Leader)이 요청을 하면, 각 하위 PL(Part Leader)은 파트(Part)에 돌아가 파트원들에게 이 내용을 공유하고, 개별 개발자들은 자신이 작성한 코드를 관리 시스템에 커밋하게 됩니다. 잠시 후 형상 관리 시스템에서 작성 코드를 내려 받은 PL(Part Leader)은 아래와 같은 상황에 직면하게 됩니다. - 동료의 작성 코드에는 관심 없이, 본인의 작성물만 커밋하는 경우 - 별도의 공지 없이 이미 작성된 파일 등을 삭제하여 커밋하는 경우 - 약속되지 않은 환경이나 lib으로 작성한 코드를 커밋하는 경우 프로젝트에 따라 기간이 길어지거나 다른 여러 상황이 발생하면 위의 문제보다 더 많은 문제를 경험하게 됩니다. 각 파트 단위로 위와 같은 문제가 해결되고 정상적으로 컴파일, 빌드까지 완료되면, PL(Part Leader)들은 파트별로 단위테스트를 완료하고 결과가 정상적이면 결과를 품질관리자에게 통보합니다. 각 파트별로 완료 통보를 받은 품질관리자는 다시 관리 시스템에서 전체 작성물을 수동으로 내려받아 통합테스트를 진행합니다. 통합테스트까지 완료되었다면 해당 내용을 릴리즈관리자에게 통보합니다. 릴리즈관리자는 바뀐 부분만 찾아서 변경하면 시간적으로 적용이 빠르겠지만 '바뀐 부분만 변경하면 될까?'라는 의심으로 전체 작성물을 수작업으로 전처리(컴파일 & 빌드)하고 다시 수작업으로 릴리즈하게 됩니다. 만약 진행상의 이슈가 없다면 이제 기능 리뷰 준비가 완료됩니다. 단계별로 문제 없이 진행되고 모든 기능을 확인하였다고 하지만 기능 리뷰 혹은 데모만하면 꼭! 오류가 발생하여 난처한 상황이 종종 발생하곤 합니다. 필자 역시 이런 경우가 많았으며 그때마다 문제 부분을 찾기 위해 많이 고생했습니다. 아래의 개념은 아마도 저 같은 경험을 하고 있는 많은 사람들을 위한 것이 아닌가 싶습니다. CI (Continuous Integration, 지속적인 통합) '지속적인 통합'이란 개발 과정에서 생산되는 코드의 관리와 코드의 문법적인 오류 확인 및 기능 점검(=테스트)을 특정한 일정에 진행하는 것이 아니라 날마다 혹은 특정 시간마다 진행하여 코드 및 기능에 대한 품질을 유지하는 개념이라고 말할 수 있을 것입니다. 앞에서 언급했던 과거 모습을 개선하는 노력은 CI 라는 개념이 나오기 이전부터 많은 개발사 혹은 팀에서 그들만의 문화나 관습으로 처리하는 경우가 있었을 것입니다. 하지만 문제는 새로운 구성원이 생겼을 때 입니다. 조직 문화를 새로이 접하는 이들에게는 이를 설명하고 이해시키는 일은 시간과 노력이 드는 일이니까요. 하지만 이젠 일반적인 Java 개발팀에서는 SVN(or GitHub)+Jenkins+Maven+JUnit으로 구성하는 개발 환경을 사용하고 있습니다. 다만, 프로젝트 목표나 목적되는 환경에 따라 약간씩 다른 환경을 구성하기도 합니다. 그러나 대부분의 경우 Open Source 기반으로 CI 개념을 구성하는 경우가 많습니다. 이는 일단 무료라는 큰 장점과 많은 레퍼런스가 있어 구성하기 편리하고 "우린 Open Source인 SVN과 Jenkins를 사용합니다. 일단 자세한 개념과 동작 원리는 너트뷰 선생님께..." 라고 하며 짧은 노력으로 교육을 끝낼 수 있어 그런 것이 아닌가 합니다. CI 개념을 활용하는 개발 프로젝트에서는 UI 메뉴 혹은 구현 단위 기준으로 구분하여 개발파트나 개발자를 할당하고는 합니다. 각각의 개발자는 할당받은 구현 범위에 대한 문제를 개별적으로 개발 도구를 활용하여 구현하고 구현 내용을 형상 관리 시스템에 커밋합니다. 이런 과정을 다른 개발자들도 같이 수행한 후에 빌드 자동화 환경에서 컴파일 및 빌드 스크립트에 맞춰서 문법적으로 확인된 결과물을 만들고 이를 다시 기능이 확인이 가능한 테스트 스크립트에 맞춰서 테스까지 진행합니다. 만약 테스트 과정에서 비정상적인 결과가 발생할 경우, 해당 내용 수정 후 위의 작업을 다시 진행하게 됩니다. 이런 일련의 절차는 일정 시간 준위 단위로 수행되어 구현하고 있는 기능을 주기적으로 확인하는 과정을 수행합니다. 올바른 진행을 위하여 개발자 개개인에게 분장되는 업무의 크기가 비슷해야 한다고 생각됩니다. 개발자별로 업무의 크기가 서로 다른 겨우, 결과물이 정상적이라고 볼 수 없게 될 것이고 그렇게 된다면 테스트 결과 역시 믿을 수 없는 경우가 발생할 것입니다. CD (Continuous Delivery/Deploy, 지속적 제공/배포) 지속적인 통합(CI)을 사용하던, 기존의 개발 환경을 사용하던, 결국 작성된 결과물은 최종적으로 운영환경에 적용되어 사용작 혹은 타 시스템과 연결되어야 합니다. 그래야 제품 개발 또는 프로젝트가 완료됩니다. CD는 결과물을 운영환경에 적용하는 방식을 나타내는 환경으로써 결과물 적용 여부를 판단하는 행위를 담당하는 주체가 누구냐에 따라, Continuous Delivery와 Continuous Deploy로 구분됩니다. Continuous Delivery는 CI 환경을 통하여 자동으로 컴파일 및 빌드가 되고, 테스트된 결과물에 대해서 릴리즈 관리자가 적용 시점마다 테스트 결과 및 서비스 영향도를 판단하여 수동으로 적용하는 방식이며, Continuous Deploy는 결과물은 항상 옳고 서비스 영향도는 없다고 미리 판단하여 자동으로 적용하는 방식입니다. 아마도 대부분의 개발 환경에서는 Continuous Delivery로 적용하고 있기에 CD라고 표기되는 경우 Continuous Delivery를 의미하는 경우가 많을 것입니다. 소프트웨어 솔루션을 제작하는 개발팀에서는 아마도 Continuous Delivery로 또한 MSA 기반의 서비스를 제공하는 개발팀에서는 Continuous Deploy를 사용하는 편이 여러 관계를 보았을 때 유리하다고 판단합니다. 하지만, 개발팀의 업무 성격과 제품 혹은 서비스의 출시 시기 등이 CD 방식을 결정하는 가장 중요한 요소가 될 것입니다. 지금까지 CI/CD 도입 배경과 내용을 필자의 경험을 바탕으로 간략하게 정리하였습니다. 개발자들이 자기가 맡은 기능 혹은 프로세스에만 전념할 수 있는 훌륭하고 편리한 개발 환경 및 적용 환경이 언제 어떻게 나타나게 될지 궁금합니다. 가능하다면, 많이 바꿔서 따라가기 귀찮은 시니어들과 새롭게 따라가야하는 주니어 개발자 모두에게 즐거운 환경이 등장했으면 합니다. 감사합니다.
2023.08.22
사람이야기
신입 개발자의 브레인즈컴퍼니 합류 여정
사람이야기
신입 개발자의 브레인즈컴퍼니 합류 여정
안녕하세요. 저는 개발 2그룹 인프라웹팀의 신입 개발자 홍유석입니다. 2023년 1월 30일에 합류해 벌써 3달이 훌쩍 지났네요. 제가 브레인즈에 지원 후 서류 합격을 하고, 코딩 테스트와 인터뷰를 준비해야 했을 때, 관련 정보나 후기가 거의 없어 어떻게 준비해야 할지 많이 고민했던 기억이 납니다. 그래서 이 글이 브레인저를 꿈꾸시는 분들에게 조금이나마 도움이 됐으면 하는 마음으로, 브레인즈컴퍼니 지원부터 합격 후 입사 준비 과정까지의 제 경험을 이야기해 드리려 합니다. ----------------------------------------------------- 합류 과정 브레인즈컴퍼니 합류 과정은 지원서를 제출하는 ‘서류 지원’, 기본적인 코딩 능력을 갖추고 있는지 확인하기 위한 ‘코딩 테스트’, 기술 역량을 확인하기 위한 ‘인터뷰’, 그리고 앞에 모든 과정을 통과한 후 입사에 필요한 서류를 준비하고 제출하는 ‘프리 보딩’ 순으로 진행됐습니다. 지금부터 각각의 과정이 어떻게 진행됐고, 무엇을 준비하면 좋을지 좀 더 자세히 전달해 드리도록 하겠습니다. 서류 지원 저는 채용 사이트를 통해서 브레인즈컴퍼니의 공고를 확인하고 지원하게 됐습니다. 지원 서류에 크게 정해진 형식이 없었기 때문에 이력서 겸 포트폴리오를 작성해 제출했습니다. 이때 지원 서류를 작성하며 가장 신경 썼던 부분이 적정한 분량으로 저의 역량을 잘 드러나게 하는 것이었습니다. 지금까지 개발자를 준비하며 많은 것들을 경험하고 공부했지만 이러한 내용들을 모두 담으면 지원 서류가 너무 길어지게 됐습니다. 또, 이러한 점은 여러 지원자들의 서류를 검토하는 분들에게 읽기 힘든 지원 서류가 될 수 있다고 생각해 제 역량을 잘 드러낼 수 있는 프로젝트를 선택해 내용을 구성했습니다. 프로젝트에 대한 내용을 담을 때도 모든 내용을 담지 않고 제가 맡은 부분에서 문제를 어떻게 해결했는지를 중심으로 작성했습니다. 코딩 테스트 코딩 테스트 안내는 굉장히 빠르게 이뤄졌습니다. 서류 지원 이틀 후에 채용 담당자분이 전화와 메일로 테스트 방법과 시간에 대해 자세한 안내를 해 주셨습니다. 코딩 테스트는 온라인 플랫폼에 원하는 시간에 접속해 정해진 시간 동안 문제를 푸는 방식으로 진행됐습니다. 총 50분의 시간이 주어졌으며 SQL, Java, Javascript, HTML, JQuery 등으로 이뤄진 10문제를 해결해야 했습니다. 50분에 10문제를 풀어야 하는 만큼 오래 고민해야 하는 문제가 아닌 기본적인 개념을 잘 이해하고 있는지 확인하는 문제들이었습니다. 따라서 평소에 기본기를 잘 다져 놓으시거나 짧게라도 코딩 테스트를 준비해 보셨다면 큰 어려움 없이 문제를 해결하실 수 있을 것으로 생각됩니다. 추가로 브레인즈컴퍼니의 코딩테스트를 푸는 방법에 대한 팁을 좀 더 드리자면, 시간이 짧기 때문에 자신있는 문제들을 먼저 풀어 점수를 확보하고, 잘 모르는 문제들은 나중에 도전해 보면서 부분 점수를 확보하는 방법을 추천해 드립니다. 면접 면접에 대한 안내 역시 빠르게 이뤄졌습니다. 코딩 테스트 후 바로 다음 날 채용 담당자분이 연락을 주셨고 면접 날짜와 시간을 조율해 3일 후 면접을 보게 됐습니다. 면접까지 남은 시간 동안에는 지금까지 공부했던 내용들을 다시 정리하고, 회사 사이트에 들어가 회사가 무슨 일을 하고 어떠한 가치관을 중요하게 여기는지 파악하며 면접을 준비했습니다. 면접은 회사에서 오프라인으로 1시간 30분 동안 이뤄졌으며, 인사 면접과 기술 면접을 담당하시는 두 분이 면접관으로 들어오셨습니다. 기억나는 질문을 정리해 보자면, ∙ 자기소개 ∙ 앞서 본 코딩 테스트에 대한 질문 ∙ 지원서 기반의 질문 ∙ 기본 CS 지식에 대한 질문 ∙ 인성 및 회사 문화에 관련된 질문이 주어졌습니다. 질문 대부분이 실제로 겪은 문제, 또는 특정 상황에서 주어진 문제를 어떻게 해결할 수 있는지 물어보고 있었기 때문에 문제 해결 방법과 이유를 잘 전달하기 위해 노력했습니다. 물론 모든 질문들에 대답할 수 있었던 것은 아니었습니다. 모르는 질문 또한 있었으며 이러한 경우 아는 만큼 대답하되 모르는 것을 아는 척하지 않으려 노력했습니다. 면접이 끝난 후 들었던 생각은 “면접관분들의 배려로 편안한 분위기에서 면접이 진행돼, 준비한 내용들을 잘 전달할 수 있었다”라는 것입니다. 따라서 면접을 보게 되시는 분들이 기본적인 CS 지식을 열심히 공부하셨고, 자신이 한 프로젝트의 내용을 잘 정리해 준비하셨다면 좋은 결과를 얻으실 수 있을 것으로 생각됩니다. 합격 안내와 프리 보딩 합격 안내까지도 빠르게 이뤄졌습니다. 면접 당일 오후 5시 정도에 전화 연락과 오퍼 레터를 메일로 받았습니다. 이후 저 또한 입사를 결정해 첫 출근 날짜를 정하고 입사 수락 메일을 보냈습니다. 첫 출근까지 9일 정도의 여유 시간이 있었기에 가족들과 시간을 보내는 등 충분한 휴식을 취하면서 입사 준비를 했습니다. 프리 보딩의 경우, 브레인즈의 인사 담당자가 보낸 안내 메일에 따라 첫 출근 전까지 필요한 서류들을 준비하고, 프로필 사진 및 자기소개를 메일로 보내는 형태로 진행됐습니다. 인사 담당자가 안내도 상세히 해 주셨고, 준비해야 할 것들도 간단했기에 큰 어려움 없이 필요한 것들 모두 첫 출근까지 준비할 수 있었습니다. 글을 마치며 이 글을 쓰고 있는 지금 저는 브레인즈컴퍼니에서 근무한지 어느덧 3개월이 지나, 수습 기간을 잘 마무리하고 정직원이 됐습니다. 첫 출근부터 지금까지 과제와 실제 업무를 수행하고 신입 사원 공유 회의에 참여하며, 회사의 서비스와 업무 프로세스를 파악하는 시간을 가졌습니다. 실수도 많고 부족한 점도 많았지만 항상 자신의 일처럼 도와주는 좋은 팀원분들 덕분에 잘 적응하고 성장할 수 있었습니다. 제 글이 브레인즈컴퍼니 입사를 목표로 하는 분들에게 도움이 됐으면 좋겠습니다. 그리고 원하는 결과를 얻어 회사의 좋은 팀원분들과 함께 일하면서 서로의 성장을 도와주게 되길 바라며, 브레인즈컴퍼니의 합류 과정에 대한 글을 마무리하도록 하겠습니다. 시간 내어 긴 글 읽어주셔서 감사합니다.
2023.05.02
회사이야기
[행사] 1주년 맞이한 BB데이
회사이야기
[행사] 1주년 맞이한 BB데이
BB데이가 1주년을 맞이했습니다. (그 동안의 BB데이 보러가기) 지난해 4월 처음 발을 내딛었던 BB데이는 1년 간 빠짐없이 이어져 오며, 매달 브레인저 간 소통의 장을 만들어왔습니다. BB데이에서는 신규 직원을 소개하기도 하고, 다른 층에 근무해 평소 이야기 나눌 기회가 없는 팀과 교류할 기회도 가질 수 있었습니다. 또, 개발자와 일반 직군 사이의 벽도 허물며 지난달 해외 워크숍에서 여행 메이트가 되기도 했고, 업무적으로도 도움을 받을 수 있었습니다. 이번 4월 BB데이에서도 어김없이 신규 직원들이 참석해, 타 부서의 브레인저와 교류하며 함께 1주년을 축하하는 시간을 가졌습니다. BB데이하면 빠질 수 없는 술과 음식! 항상 인기 많은 치킨, 처음 시켜보는 마라샹궈와 궁합이 좋은 고량주, 그리고 1주년을 축하하기 위해 성수 맛집 오복떡집에서 공수해 온 떡까지 알차게 준비해 봤어요. 1년 간 BB데이를 운영해 온 담당자가 촛불을 불고, 브레인저들이 박수로 답례해줬습니다. 이후 1주년 맞이 특별 행운권 뽑기 시간을 가졌습니다. 앞에서 아무도 행운을 가져가지 못하고, 마지막으로 인프라웹팀만이 남은 상태! 인프라웹팀은 뽑기 전 당첨자가 팀에 커피를 쏘기로 해, 행운이 벌칙으로 바뀌는 상황이 벌어졌습니다. 당첨자는 도영님과 예지님이었는데요. 이후에 동료들과 회사 앞 스타벅스에 모여있는 걸 목격했습니다. 이번달에도 서로 웃고 즐기며 한 달을 기분좋게 마무리할 수 있었어요. BB데이는 앞으로도 쭈~~~~~~욱 계속됩니다!
2023.04.27
기술이야기
옵저버빌리티 확보를 위한 대표 정보 소스 3가지
기술이야기
옵저버빌리티 확보를 위한 대표 정보 소스 3가지
지난 블로그에서는 옵저버빌리티가 기존 모니터링과 어떻게 다른지 비교해봤습니다. 간략히 되짚어보면, 옵저버빌리티란 IT 환경이 다양해지고 기업의 서비스가 점점 복잡해짐에 따라 빠르게 문제를 찾아 해결하기 위해 서비스의 내부 상태와 동작을 이해하는 능력입니다. 옵저버빌리티는 IT 인프라별로 어떤 것이 문제라는 기준을 중심으로 모니터링하는 기존 방식에서 벗어나 모든 데이터를 실시간으로 수집하고 분석하여 IT시스템의 근본 원인에 접근하고, IT 운영 전문가의 노하우를 바탕으로 각 메트릭별 상관관계를 분석해 미래의 장애를 예측하는 인사이트를 강조합니다. 이번 블로그에서는 옵저버빌리티 확보에 가장 기본이자 중요한 정보 소스인 로깅, 메트릭, 트레이싱을 중심으로 알아보겠습니다. 이 세가지 소스는 시스템의 정확한 모니터링을 보장하고, 문제가 발생할 때 무엇이 잘못됐는지 근본원인을 추적하고, 전체 기능을 개선하는 데 도움이 되는 방법들입니다. 물론 이 세가지 방법만으로 옵저버빌리티가 확보됐다고 할 수는 없습니다. 옵저버빌리티 확보를 위해서는 로깅, 메트릭, 트레이싱을 통합해 이벤트의 상관관계를 분석하고, 데이터 시각화로 사용자에게 인사이트를 제공하는 능력이 추가돼야 합니다. l Logging : 시스템 내에서 발생하는 이벤트를 인지하고 향후 분석을 위해 저장하는 프로세스 l Metric : 응답 시간 또는 오류율과 같은 시스템 성능을 설명하는 숫자 값 l Tracing: 개발자가 병목 현상과 성능 문제를 식별할 수 있도록 서비스 호출 경로와 시간을 추적하는 프로세스 Logging 로깅은 로그를 남기는 것으로 로그를 수집하고, 저장하는 프로세스입니다. 로깅은 시스템 동작을 이해하고 문제를 진단하는 데 필요한 것으로, 향후 분석을 위해 저장하는 데이터인 만큼 올바른 세부 기준에 따라 의미가 있는 로그를 추출하는 것이 필요합니다. 그리고 예를 들어 웹 애플리케이션에 문제가 발생한 경우 로그를 남기는데, 메트릭을 통해서는 이 문제를 발견할 수 없으므로 그래서 로그는 중요합니다. 로그의 수집은 간단한 텍스트 파일에서 ELK(Elasticsearch, Logstash, Kibana)처럼 정교한 프레임워크에 이르기까지 다양한 형태를 취할 수 있습니다. 그래서 로그는 정형화하기 어렵고 그 양이 방대함으로 로그를 수집, 저장하고 분석할 때 다음과 같은 사항을 유의해야 합니다. l 과도한 로깅은 스토리지 비용을 증가시키고 로그의 검색 효율을 떨어뜨릴 수 있습니다. 따라서 어떤 데이터를 기록하고, 어떤 데이터를 기록하지 않을지 필터링하는 것이 중요합니다. l 장기간 보관할 필요가 없는 로그 효율적인 로깅 시스템을 위한 로그 보관 정책이 필요합니다. l 로그에는 인사이트를 제공할 수 있는 모든 컨텍스트 정보가 포함돼야 합니다. l 로깅은 다른 프로세스에 영향을 미치지 않도록 비동기 방식이어야 합니다. l 민감한 데이터가 로그에 남겨지지 않도록 마스킹을 해야 합니다. 그럼 로그 분석을 통해 알 수 있는 정보는 무엇이 있을까요? l 시스템의 상태: 로그에는 어떤 액션을 수행했는지, 어떤 데이터가 처리됐는지, 또 어떤 오류가 발생했는지 등의 정보가 담겨 있으므로 이러한 정보를 분석해 시스템의 상태를 파악할 수 있습니다. l 이슈 파악: 로그에는 어떤 오류가 발생했고, 어떤 요청이 실패했는지, 어떤 리소스가 부족한지 등의 정보가 담겨 있으므로 이러한 정보를 분석해 이슈를 파악하고, 빠르게 대응할 수 있습니다. l 보안성 강화: 로그에는 로그인 시도, 권한 부여, 보안 이벤트 발생 등의 정보가 담겨 있으므로 이러한 정보를 분석해 보안 이슈를 파악하고, 보안성을 강화할 수 있습니다. Metric 로그가 텍스트라면 메트릭은 단순한 수치입니다. 메트릭은 시스템의 상태를 측정하고, 모니터링하는데 사용되는 숫자 측정값입니다. 조금 더 자세히 설명하면, 메트릭은 측정 항목을 정의하고 해당 항목을 수치로 측정해, 그 결과를 보고하고 시스템이 정상적으로 동작하는지 확인하거나 장애를 빠르게 감지하기 위한 소스입니다. 메트릭의 측정 대상은 CPU 사용률, 메모리 사용률, 네트워크 트래픽 등 인프라의 성능이나 초당 수신하는 요청수, 응답에 걸린 시간, 사용자에게 오류를 다시 보낸 응답 수 등 애플리케이션의 상태와 관련돼 있습니다. 메트릭을 통한 수집 가능한 범위는 모니터링 도구 사용 여부에 따라 달라집니다. 일반적인 방식은 에이전트를 이용해 모니터링 대상으로부터 데이터를 수집하는 것으로, 수집할 메트릭을 정의하기가 유연하고 성능이나 안정성 등의 이슈에 대한 정보도 수집할 수 있는 장점이 있습니다. 에이전트를 사용하지 않고 운영 체제나 애플리케이션에서 제공하는 메트릭 수집 API를 사용하는 방식도 있는데, 수집하는 메트릭이 비교적 제한적입니다. 단순히 메트릭을 수집하는 것만으로 시스템을 모니터링하기에 충분하지 않습니다. 메트릭 데이터를 잘 활용하기 위해서는 분석 방법이 중요한데, 분석을 위해서는 몇가지 단계를 거쳐야 합니다. l 먼저, 데이터를 시각화하여 쉽게 이해할 수 있는 형태로 변환해야 합니다. 차트나 그래프, 대시보드 등을 통해 데이터의 패턴과 추세를 파악할 수 있으며, 시스템의 상태를 실시간으로 모니터링할 수 있습니다. l 다음으로, 데이터를 분석하여 시스템의 문제를 식별합니다. 예를 들어, 응답 시간이 지연되는 경우, 이를 발생시키는 주요 요인을 파악하여 시스템을 개선해야 합니다. 이를 위해 데이터를 세분화하여 요소를 파악하고, 문제를 식별하는 데 도움이 되는 경향성을 찾아야 합니다. l 마지막으로 이전 데이터와 비교하고 평가에 활용합니다. Metric 데이터를 분석할 때는 이전 데이터와 비교하여 시스템의 개선 정도를 파악하는 것이 중요하고, 이를 통해 시스템의 성능 개선 여부를 판단하고, 추가적인 개선 방안을 모색할 수 있습니다. Tracing 트레이싱은 분산 시스템에서의 서비스 호출 경로와 시간을 추적하는 기술입니다. 즉, 서비스 간의 호출 관계와 시간 정보를 추적해 각 서비스의 응답 시간을 파악하고, 이를 시각화해 병목 현상을 파악할 수 있습니다. 트레이싱은 크게 세 가지 구성 요소로 이뤄져 있습니다. l Trace: Trace는 서비스 간의 호출 경로와 시간 정보를 담고 있는 데이터 레코드입니다. Trace는 Span과 Trace ID, Parent Span ID 등의 정보를 가지며, 각 Span은 서비스 내부에서의 호출 관계와 시간 정보를 담고 있습니다. l Span: 분산 추적에서 가장 기본이 되는 논리 단위로 여러 개의 span 이 모여 trace를 완성한다는 개념입니다. 각각의 Span은 작업이름, 시작 시간과 종료 시간, key value 형태의 tags 와 Logs, span contexts를 가지고 있습니다. Span contexts는 분산추적을 하기위해 Trace 구간에서 종속된 Span을 구별할 수 있는 Span id와 Trace id를 말합니다. l Collector: Collector는 Trace 정보를 수집하고 저장하는 역할로, Trace 정보를 수집하기 위한 에이전트와 수집된 Trace 정보를 저장하고 분석하기 위한 Backend로 이뤄져 있습니다. (출처: [MSA] OpenTracing, 분산추적(Distributed Tracing) 과 Span context, KSR의 저장소) 이렇게 옵저버빌리티를 구현하기 위한 로깅, 매트릭, 트레이싱 등 세 가지의 중요한 정보 소스들을 다루기 위해서는 여러가지 기술들이 조합되어야 합니다. 다음 블로그에서는 그와 같은 정보 소스들을 다루어 옵저버빌리티를 구현하기 위해서 널리 사용되는 대표적인 오픈 소스들을 알아보고 Zenius-EMS에서는 옵저버빌리티 향상을 위해서 어떤 기능들을 제공하고 있는지 살펴보겠습니다.
2023.04.19
기술이야기
서버 모니터링 트렌드 살펴보기
기술이야기
서버 모니터링 트렌드 살펴보기
기업이나 조직의 IT 인프라 모니터링은 서버 모니터링에서 출발합니다. 통상적으로 서버 모니터링부터 네트워크, 데이터베이스, 웹애플리케이션, 전산설비 등으로 모니터링의 범위를 확장해 나가는 것이 일반적입니다. 서버는 초창기 메인 프레임부터 유닉스 서버, 리눅스 서버를 거쳐 최근의 가상화 서버에 이르기까지 물리적 및 논리적으로 그 성격이 변화해 왔습니다. 그에 따라 서버 모니터링의 관점도 많이 변모해 왔습니다. 기껏해야 1~2대 규모로 운영하던 메인 프레임의 시대와 수천, 수만대의 서버팜을 관리해야 하는 시대의 모니터링 개념은 달라야 합니다. 또, 가상화 시대를 맞아 물리적 서버 개념보다는 논리적 서버 개념이 중요해지고, 서버 1~2대의 장애 상황보다는 서버팜이 이루고 있는 서비스의 영속성이 중요해졌습니다. 이처럼 서버라는 인프라가 기술 발전에 따라 변모하고 있고, 그에 대응해 모니터링 콘셉트나 방법도 변화하고 있습니다. 이번 블로그에서는 서버 관련 새로운 인프라 개념 및 기술들이 대두되면서 변화하는 서버 모니터링의 새로운 트렌드에 관해 논의해 보고자 합니다. 1. 클라우드 네이티브 모니터링 더 많은 기업이나 조직이 전통적인 레거시 시스템에서 클라우드로 이동함에 따라 클라우드 모니터링의 필요성이 급격히 증가했습니다. 클라우드 네이티브 모니터링 도구는 Amazon Web Services(AWS), Microsoft Azure, Google Cloud Platform(GCP)과 같은 클라우드 환경에서 애플리케이션과 클라우드 인프라를 모니터링하도록 설계됐습니다. 또, 클라우드 인프라의 성능, 가용성 및 보안에 대한 실시간 인사이트를 제공해, IT운영부서가 문제를 신속하게 발견하고 해결할 수 있도록 지원합니다. 일반적인 클라우드 모니터링은 메트릭과 로그를 사용해 클라우드 인프라 및 애플리케이션 성능을 하나의 통합된 화면에 제공합니다. 또한 통합 IT 환경 측면에서는 컨테이너 오케스트레이션 플랫폼 및 서버리스 컴퓨팅과 같은 다른 클라우드 환경과 통합해 모니터링할 수도 있습니다. 클라우드 기반 모니터링의 최신 추세는 하이브리드 모니터링입니다. 조직은 하이브리드 모니터링을 통해 클라우드와 온프레미스에서 각각 실행 중인 서버 및 애플리케이션 모두를 단일 플랫폼에서 모니터링할 수 있습니다. 2. 인공지능과 머신러닝 서버 모니터링의 또 다른 트렌드는 인공 지능(AI)과 머신 러닝(ML)을 사용해 모니터링 과정을 자동화하는 것입니다. AI 및 ML 알고리즘은 모니터링 과정에서 생성된 방대한 양의 데이터를 분석하고 패턴을 식별해 이상 징후를 감지할 수 있습니다. 이는 실시간으로 수행될 수 있으므로 운영관리자는 발생하는 모든 문제에 신속하게 대응할 수 있습니다. ML 알고리즘은 과거 데이터를 분석해 트래픽이 가장 많은 시기나 잠재적 장애와 같은 미래 추세를 예측할 수 있습니다. 이를 위해 서버의 성능과 관련된 대규모 데이터 세트에서 ML 알고리즘을 교육해야 합니다. 이 데이터는 서버 로그, 시스템 메트릭, 애플리케이션 로그 및 기타 관련 정보가 해당됩니다. 다음으로 알고리즘을 학습해 다양한 메트릭 간의 패턴과 상관 관계를 식별하고 이상 징후와 잠재적 문제를 감지합니다. 머신 러닝 모델이 훈련되면 서버를 실시간으로 모니터링하도록 배포할 수 있으며, 모델은 지속적으로 서버 메트릭을 분석하고 이를 학습한 패턴과 비교합니다. 편차나 이상을 감지하면 문제를 해결하기 위해 경고 또는 자동화된 작업을 트리거할 수 있습니다. 예를 들어, 트래픽이 갑자기 증가하는 경우 리소스를 자동으로 Scaling 하거나 다운 타임을 방지하기 위해 다른 조치를 취할 수 있습니다. 전반적으로 인공 지능과 머신 러닝을 사용해 서버 모니터링을 자동화하면, 문제해결에 시간을 절약하고 인적 오류의 위험을 줄일 수 있습니다. 또, 심각한 문제로 번지기 전에 잠재적 문제를 식별해 서버 인프라의 전반적인 안정성과 가용성을 향상할 수 있습니다. 3. 컨테이너 모니터링 컨테이너가 애플리케이션 배포에 점점 더 많이 사용되면서, 컨테이너 모니터링은 서버 모니터링의 중요한 측면이 됐습니다. 컨테이너란 애플리케이션을 모든 인프라에서 실행하는데 필요한 모든 파일 및 라이브러리와 함께 번들로 제공하는 소프트웨어 배포 도구입니다. 컨테이너를 사용하면 모든 유형의 디바이스 및 운영 체제에서 실행되는 단일 소프트웨어 패키지를 만들 수 있습니다. 뿐만 아니라, 단일 시스템에서 한 컨테이너는 다른 컨테이너의 작업을 방해하지 않으므로 확장성이 뛰어나고, 결함이 있는 서비스가 다른 서비스에 영향을 주지 않아 애플리케이션의 복원력과 가용성이 향상되는 장점이 있습니다. 컨테이너 모니터링은 CPU 및 메모리 사용량과 같은 컨테이너 리소스 사용률에 대한 실시간 메트릭을 제공할 수 있습니다. 또, 애플리케이션이 의도한 대로 실행되고 있는지 확인하기 위해 Kubernetes(쿠버네티스)와 같은 컨테이너 오케스트레이션 플랫폼을 모니터링하고, 컨테이너 및 기본 인프라에 대한 실시간 가시성을 제공합니다. 4. 서버리스 모니터링 서버리스 컴퓨팅은 사용량에 따라 백엔드 서비스를 제공하는 방법으로, 개발자가 서버를 관리할 필요없이 애플리케이션을 빌드하고 실행하는 것을 가능하게 합니다. 서버리스 컴퓨팅은 벤더 종속성(Vendor lock-in), 콜드 스타드와 DB백업이나 영상 인코딩 등 단시간에 많은 컴퓨팅 용량이 필요한 경우, 효율적이지 않음에도 불구하고 최근 몇 년 동안 주목을 받아오며 서버리스 모니터링이 서버 모니터링의 새로운 트렌드가 됐습니다. 서버리스 모니터링은 CPU, 메모리, 디스크 사용량 등 리소스 사용률, 애플리케이션 성능, 호출 시간 및 오류율과 같은 기능 성능에 대한 실시간 인사이트를 제공합니다. 서버리스 모니터링은 데이터베이스 쿼리 성능과 같은 서버리스 함수의 종속성에 대한 인사이트도 제공합니다. 5. 마이크로서비스 모니터링 마이크로서비스는 하나의 큰 애플리케이션을 여러 개의 작은 기능으로 쪼개어 변경과 조합이 가능하도록 만든 아키텍처로, 각 서비스를 다른 서비스와 독립적으로 개발, 배포 및 확장할 수 있는 장점이 있습니다. 하지만 마이크로서비스는 일반적으로 분산된 환경에 배포되므로 성능을 추적하고 문제를 찾아내기가 어렵고, 독립적으로 설계됐으므로 호환성에 어떤 문제가 있는지 감지할 필요가 있어 마이크로서비스 모니터링이 필요합니다. 마이크로서비스 모니터링은 개별 마이크로서비스 및 전체 애플리케이션의 성능과 상태를 추적하는 프로세스로 로그, 메트릭 및 트레이스와 같은 다양한 소스에서 데이터를 수집하고 분석해 문제를 식별하고 성능을 최적화하는 작업입니다. 마이크로서비스 모니터링은 각 마이크로서비스 별 가용성, 응답 시간, 가동 시간, 지연 시간, 오류율을 포함합니다. CPU, 메모리, 디스크 사용량과 같은 리소스 사용률을 추적해 잠재적인 성능 병목 현상이나 리소스 제약을 식별할 수 있고, 마이크로서비스 간의 데이터 흐름을 추적하고 서비스 간의 종속성 추적을 모니터링합니다. 또, 마이크로서비스 모니터링은 애플리케이션 전체의 전반적인 상태와 성능뿐만 아니라 타사 서비스 및 API의 성능과 상태도 모니터링할 수 있습니다. ----------------------------------- 브레인즈컴퍼니는 꾸준히 연구개발에 매진해 상기와 같은 새로운 트렌드를 반영한 Zenius-EMS를 개발, 출시했습니다. Zenius-EMS는 고객들이 레거시 시스템에서부터 클라우드 네이티브 시스템에 이르기까지 다양한 관점의 서버모니터링을 할 수 있도록 지원합니다. *이미지 출처: Unsplash, flaction
2023.03.29
사람이야기
[부산SW마이스터고 현장 실습] 기본기, 그리고 함께의 가치를 깨달았던 시간
사람이야기
[부산SW마이스터고 현장 실습] 기본기, 그리고 함께의 가치를 깨달았던 시간
지난 1월, 앳된 얼굴의 여고생 한 명이 브레인즈컴퍼니에 모습을 드러냈습니다. 저 먼 곳 부산에서 상경한 미진님은 중학생 시절부터 개발자의 꿈을 꾸다, 소프트웨어마이스터고로 진학을 했다는데요. 올해 고3이 되는 미진님은 학기 시작 전, 방학기간 동안 잠시 브레인즈컴퍼니에서 현장실습할 기회를 얻었습니다. 미진님은 짧은 기간이었지만 새로운 경험에 많은 것을 얻어갈 수 있었고, 브레인즈컴퍼니에서 다시 일할 기회가 있길 바란다는 말을 남기며 다시 부산으로 돌아갔습니다. 미진님이 브레인즈에서 어떤 생활을 했을지 함께 보러 가실까요? -------------------------------- Q. 안녕하세요, 미진님. 자기소개 부탁드릴게요. 안녕하세요. 저는 부산소프트웨어마이스터고에 재학중인 심미진입니다. 체험형 현장실습으로 브레인즈컴퍼니 ITSM팀에서 약 5주간 인턴생활을 했습니다. 시작한 게 엊그제 같은데 벌써 5주나 지나갔네요.ㅎㅎ Q. 실습 기간 동안 ITSM팀에서 어떤 교육을, 어떻게 받았나요? 총 5주동안 교육이 진행됐는데요. 첫 주에는 ITSM에 대한 리뷰를 했습니다. 사용자가 쉽게 따라올 수 있도록 가이드된 매뉴얼을 보고 다른 부분이나 결함, 개선점에 대해 찾았습니다. 개발하고 있는 제품에 대한 개발 환경 구축도 해보고, 어떤 기능이 있는지 하나하나 확인하면서 리뷰를 진행했습니다. 그 결과 결함 4개, 개선의견 5개를 찾았습니다. 2주차에는 제가 찾은 결함과 개선의견을 일감으로 정하고, 첫 PR(Pull Request)을 날린 경험을 했습니다. 사내 시스템 중 ‘레드 마인’이라는 것이 있는데, 그곳에서 해야 할 일을 기록하고 공유하고 있었습니다. 보통 해야 할 일을 ‘일감’이라고 부르고 있습니다. 제 사수가 어떻게 사용하는지에 대해 알려주시고 이를 따라할 수 있도록 도와주셨습니다. 사실 학교에서는 작은 프로젝트만 진행해왔고, 자주 모여서 이야기했기 때문에 이렇게까지 꼼꼼하게 기록한 적 없었는데 이번 기회를 통해서 문서 작성 그리고 공유에 대한 중요성을 배웠습니다. 또 처음 일감을 받아 PR을 날렸을 때 코딩 컨벤션의 중요성을 알게 됐습니다. 3주차에는 팀장님께서 저에게 주신 일감을 하나씩 처리하는 일을 시작했는데요. 지난 주에 날렸던 PR에 대한 피드백을 받고 이에 맞게 수정도 했습니다. 이 과정에서 학교에서와 달리 리뷰와 의견에 대해 빠른 피드백을 주셔서 좋았던 것 같아요. 처음 맡은 일감은 HTML을 이용해 구조를 수정하는 일이었어요. 내용적인 부분에 있어서는 학교에서 배운 부분이라 어려움이 없었어요. 4주차와 5주차에는 해결하는 시간이 조금 더 걸리는 일감을 받았어요. 이 과정에서 제일 중요하게 배운 것은 ‘깔끔한 코드’를 짜야한다는 것과 작은 결함일 줄 알았지만, 사실은 더 크거나 혹은 더 작은 결함이 발생할 수 있다는 것이었습니다. 서비스는 만드는 것보다 유지보수를 하는게 더 중요하기 때문에 깔끔한 코드를 짜는 것이 중요한데요. 깔끔한 코드에 대한 정의는 사람마다 조금씩 다를 수 있겠지만, 제 생각엔 유지 보수가 쉽게 가능하고 의도가 명확히 드러나는 코드라고 생각합니다. 또 제가 생각했던 것 보다 결함이 큰 경우도 있었는데, 저도 그동안 개발하면서 놓친 부분은 없는지 되돌아보는 계기가 됐습니다. 5주동안 개발적인 부분뿐만 아니라 다른 사람들과 '함께’ 코딩하는게 어떤 것인지 명확한 경험을 한 것 같아 좋았습니다. Q. 개발자로서 사용해 본 ITSM을 평가한다면? 제가 사용해 본 ITSM은 장단점이 확실히 구분되는 제품이었습니다. 먼저 장점은 편리한 기능이 다 갖춰져 있다는 것인데요. 문서 관리부터 자산 관리, 시스템 관리, 공지 등등 회사에게 필요한 기능이 다 갖춰져 있습니다. 또 회사에서 사용하는 문서들을 사용자(고객)가 원하는 대로 커스텀이 가능하다는 것인데요. 회사마다 절차도 다르고 사용해야 할 문서 형식도 다르게 나타나기 때문에 ‘폼 디자인’ 기능을 통해 구현되고 있었습니다. 그것뿐만 아니라 개인이 처리해야 할 문서에 대한 현황판을 대시보드로 한눈에 볼 수 있어 좋았던 것 같아요. 하지만 조금 아쉬운 점이 있다고 한다면 기능이 많은 만큼 고려해야 할 부분도 많이 생긴다는 것입니다. 아무래도 UI가 비슷하다면 같은 코드를 재사용하는 경우가 있습니다. 그런데 똑같이 적용을 했음에도 불구하고 생각치 못한 결함이 발생할 수 있다는 것인데요. 기능이 많으면 많을수록 재사용하는 코드는 늘어나기 때문에 결함을 수정하면서도 고려해야 할 부분이 많다는게 신경 쓰였습니다. 그리고 작은 프로젝트가 아니기 때문에 어쩔 수 없는 부분이라는 걸 알지만, 수정하는 것이 쉽지 않았다는 점이 조금 아쉬웠어요. Q. 브레인즈컴퍼니의 근무 환경은 어땠나요? 브레인즈컴퍼니에서의 근무 환경은 만족할 정도였습니다. 8층 라운지에는 매일 아침마다 간편한 식사가 준비돼 있었는데 덕분에 아침에 든든하게 있을 수 있었어요. 회사를 다닌다는 것 자체가 처음이라 긴장도 많이 하고, 실수할까봐 걱정도 많이 했는데 팀원분들께서 이해하기 쉽게 또 꼼꼼하게, 잘 알려주셨던 부분이 가장 좋았던 것 같아요. Q. 브레인즈컴퍼니에서 근무하며 가장 좋았던 점은 무엇인가요? 다른 사람이 짠 코드에 대해 결함을 찾고 이를 해결하는 과정이 가장 좋았습니다. 지금까지 제가 직접 코드를 짜고 고치고 하는 경우는 많았지만, 다른 사람이 미리 짜 놓은 코드를 고쳐본 적은 잘 없었어요. 처음에는 조금 이해하기 어려운 부분도 있었지만 그 과정에서 제가 스스로 공부하면서 해결해 나가는 과정이 좋았습니다. Q. 첫 직장생활을 해보며, 가장 힘들었던 점은 무엇인가요? 학교에서는 별도로 쉬는 시간이 주어지기 때문에 주기적인 리프레쉬가 가능했지만, 회사는 학교와 다르게 자유롭다 보니 쉬는 시간을 스스로 조절하는 게 쉽지 않았어요. 다른 분들이 열심히 하는 모습을 보고 “이렇게 열심히 하시는 데 내가 쉬어도 괜찮은 걸까?”라는 생각을 했던 것 같아요. 처음에는 쉬는 시간에 대해 생각도 않고 계속 일을 했지만, 그 덕분에 제 집중력도 많이 늘어난 것 같아요. Q. 학교로 돌아가면 졸업까지 1년 남짓 남았는데, 이번 현장 체험을 통해 세운 계획이나 결심이 있다면 이야기해주세요. 이번 기회를 통해서 무엇보다 기본이 중요하다는 것을 알게 됐어요. 사실 그동안 제가 짠 코드에 대해 동작 원리에 대한 생각을 깊이 있게 해본 적이 없었던 것 같은데, 이곳에 오면서 그게 가장 중요하다는 것을 알게 됐어요. 또 일은 혼자 하는게 아니고, 개발도 혼자 하는게 아니니까 제가 무엇을 하려고 했는지 의도가 잘 드러나는 코드를 짜는 게 중요하다는 생각을 하게 됐습니다. 그래서 돌아간 후에는 기본적인 내용들을 보충해 나가며 제가 부족했던 부분들을 채워 나갈 예정입니다.ㅎㅎ
2023.03.03
회사이야기
에이프리카와 2023년 상반기 공개채용
회사이야기
에이프리카와 2023년 상반기 공개채용
클라우드 및 인공지능 인프라 분야 전문가 대거 채용 브레인즈컴퍼니는 자회사인 에이프리카와 함께 신입 및 경력 사원을 대규모 공개 채용합니다. 이번 채용은 27일부터 다음 달 13일까지 진행합니다. 모집 분야는 ▲풀스택 개발자 ▲기술지원 엔지니어 ▲디자이너 ▲기술영업 ▲프리세일즈 ▲영업 ▲콘텐츠 마케터 ▲인사·총무 등입니다. 브레인즈컴퍼니와 에이프리카는 클라우드 및 인공지능 인프라 분야의 본격적인 사업확장을 위해 이번 채용을 공동으로 진행하며, 30명 가량 채용 예정입니다. 서류 접수는 사람인 포털을 통해 진행되며, 채용 절차는 필기 전형, 코딩테스트(개발자에 한함), 실무 인터뷰, 연봉 제시 순으로 이뤄집니다. 부문별 상세한 지원 자격과 우대사항은 사람인 포털에서 확인할 수 있습니다. 양사 홈페이지 메인의 공고 팝업창, 브레인즈컴퍼니 공식 페이스북 페이지, 인스타그램 등에서도 확인할 수 있어요. 강선근 브레인즈컴퍼니 대표는 "이번 채용으로 클라우드 네이티브 인프라 관리와 인공지능 솔루션 분야의 개발 및 영업력을 강화할 것으로 기대한다"고 밝혔습니다.
2023.02.27
사람이야기
입사 5개월 차 신입 개발자의 브레인즈 적응기
사람이야기
입사 5개월 차 신입 개발자의 브레인즈 적응기
안녕하세요. 저는 개발2그룹 인프라웹팀의 신입 사원 김예지입니다. 이제 입사한 지 5개월 차의 따끈따끈한 신입 개발자인데요. 브레인즈컴퍼니 홈페이지 및 블로그를 정독하며 면접 준비에 열을 올리던 게 엊그제 같은데, 예비 브레인저들을 위해 글을 쓰게 되다니 감회가 새롭네요. 개발자로 취업 준비를 하거나 취업 후 입사를 앞뒀을 때 막막함을 느낀 적 있으시죠? “앞으로 어떤 일을 하게 될까”, “일을 하기에 내가 충분한 실력을 갖췄을까?”, “입사 후 적응은 잘 할 수 있을까?”등의 생각을 하게 될텐데요. 저 또한 개발자로 커리어 전환을 하며 취업 준비를 할 때뿐만 아니라, 최종 합격 전화를 받은 이후에도 이런 걱정들 때문에 편히 잠을 이루지 못했는데요. “누가 미리 알려주면 좋겠다”라고 많이 생각했던 것 같아요! 그래서 저와 같은 분들을 위해 브레인즈컴퍼니 인프라웹팀의 신입 사원은 어떤 과정을 거치면서 팀에 적응해 나가게 되는지를 알려드리려고 합니다. 3개월간의 시용평가, 평가 종료 후 업무 그리고 제가 성장하는데 가장 큰 도움이 된 신입 사원 공유회의에 대해 이야기 드릴게요. ---------------------------------- 1. 입사 후 첫 3개월, 시용평가 브레인즈컴퍼니의 채용공고를 보신 분이라면 아시겠지만, 저희 회사에는 3개월의 시용평가 기간이 존재하는데요. 시용평가는 각 팀의 성격에 맞게 팀 마다 다른 방식으로 이뤄집니다. 제가 소속된 인프라웹팀의 경우, 이 3개월 동안 앞으로 해나가야 할 업무에 익숙해지기 위한 프로세스가 아주 체계적으로 구성돼 있습니다. 3개월 동안 총 3번의 발표를 진행하고, 이 3번의 평가를 취합해 최종 채용 여부가 결정됩니다. ‘최종 채용’, ‘평가’ 이런 말들이 너무 살벌하게 들릴지도 모르겠습니다만, 회사에 단계적으로 적응할 수 있는 프로세스라고 생각하고 그 단계에 맞는 일들을 열심히 수행해 나가면 되는 것 같습니다. 뭐든 그렇겠지만 정말로 ‘열심히!’가 중요하거든요.(‘잘’이 중요했다면 어쩌면 저는 이 글을 쓰고 있지 못했을지도 몰라요!) 그럼, 3번의 발표가 어떻게 진행됐는지 제 경험담을 바탕으로 자세히 설명해보겠습니다. 1) 1차 발표 1개월 차에는 약 2주 동안 IT인프라 통합관리 소프트웨어인 Zenius의 특정 인프라 화면을 구현하고 해당 내용을 발표합니다. 기존의 소스코드를 분석 및 참고해 요구 사항에 맞는 서비스 화면을 개발하면서, 앞으로 업무를 하며 꼭 알아야 할 인프라의 기본적 구조와 기능에 대해 파악하는 기간이라고 보면 될 것 같습니다. 처음 과제를 받았을 땐 “와… 할 수 있을까?”하는 생각이 잠시 스치기도 하는데요. 너무 걱정하실 필요는 없습니다. 발표를 준비하며 개발하는 기간 동안에 신입사원 교육을 주관하시는 보람님께서 꾸준히 개발 진행 상황을 점검하며 코드 리뷰를 해주시고, 이외에도 개발에 필요한 내용들이 문서화로 잘 정리돼 있어서 많은 도움을 얻을 수 있거든요! 또 약간 자랑을 하자면, 저희 팀원 분들이 정말 다 좋으신 분들이어서 뭘 물어봐도 대충 알려주는 일 없이 관련 내용을 자세히 설명해주세요. 또, 참고할 만한 자료까지 찾아 보내주시기 때문에 본인이 열심히 할수록 그에 맞는 충분히 좋은 결과를 얻을 수 있어요! 이렇게 열심히 준비를 마치면 그룹장님이신 성준님을 비롯해 팀원분들 앞에서 발표를 하게 됩니다. 당연하지만 정말 떨리고 토할 것 같은 기분을 느끼게 됩니다. 물론 발표를 들으시는 분들은 일부러 분위기를 무섭게 하시지는 않고, 오히려 웃는 얼굴로 왜 이렇게 긴장했냐며 분위기를 풀어주지만... 그렇다고 긴장이 풀리지는 않더라고요. 이때에는 Zenius에 대해 얼마나 이해했는지를 중점적으로 보고 질문을 던지고 피드백을 주십니다. 얼마나 이해했는지에 대해서 합격과 불합격을 결정짓는 절대적인 기준이 있기보단 이 기간 동안 얼마나 노력했는지를 함께 봐주시는 것 같습니다. 2) 2차 발표 2개월 차에는 한 달 동안 실제 고객사에 배포될 개발요청 업무를 진행하고, 그 중에 몇 가지를 추려 발표를 합니다. 신입 사원임을 고려해 비교적 난이도가 쉬운 개발요청을 주시고 공수도 여유있게 산정해 주시기 때문에, 이 기간에도 1차 때와 마찬가지로 단순히 일에 그치지 않고 Zenius의 기능과 인프라를 이해하는 데 시간을 많이 할애하는 게 좋습니다! 주어진 업무에 대해 단순히 개발만 하는 게 아니라, 이게 왜 필요할지에 대해서 생각해보는 것 또한 중요한 것 같습니다. 업무를 시작하기 전 기능을 추가하거나 수정해야 할 인프라의 역할과 구조를 설명해주시고, 참고할 만한 비슷한 업무 등을 함께 알려주시기 때문에 개발요청 자체에 큰 어려움은 없습니다. 모든 업무가 문서화돼 관리되고 있기 때문에 업무를 시작하기 전 항상 도움을 받을 수 있어요. 고객사에 실제로 배포되기 전까지 [개발자 테스트> 관리자 테스트> QA 테스트]를 거쳐 오류를 걸러내고 수정한 후에 배포가 이루어지는 구조라서, “신입 사원으로서 내가 사고를 치진 않을까”하는 부담을 덜 수 있습니다. 또, 이 기간에 주어진 개발요청에는 만약 신입 사원이 해당 개발요청을 제대로 해내지 못했을 경우를 대비해 커버해 줄 팀원 분을 함께 배정해주시기도 하는데요! 애초에 능력을 고려해서 업무를 배정하고, 일정을 조정해주시므로 커버가 필요한 경우까지 가는 일은 아마 없지 않을까 싶습니다. 2차도 당연히 발표를 하는데요.(2번째라고 덜 떨린다거나 하진 않습니다.) 주로 기존에 있던 코드를 활용한 1차 발표에 비해, 2차의 경우 요건을 충족하도록 본인이 작성한 코드와 로직이 발표의 주가 됩니다. 당연히 1차에 비해 조금 더 다양한 질문을 받게 되고 더 좋은 코드를 작성할 수 있는 방법에 대해 피드백을 주시며, 더 고민해 볼만한 부분을 숙제로 내주시기도 합니다. 3) 3차 발표 3개월 차에는 커스터마이징 보고서 개발 업무에 대해 배우고, 해당 내용을 발표하게 됩니다. Zenius는 여러 인프라 장비 혹은 서버의 데이터를 수집하고, 사용자가 수집한 데이터를 원하는 형태로 볼 수 있도록 보고서를 제공해주고 있습니다. 고객사의 요구사항에 따라 어느 데이터를 어떤 형태로 볼지는 달라지지만, 하나의 보고서를 만드는 프로세스와 설계는 동일하기 때문에 이 기간에 꼭 보고서가 생성되는 프로세스를 잘 이해하고 넘어가야 합니다. 개인적으로는 이 기간에 가장 많은 깨달음을 얻었습니다. 또, 이 기간엔 'OzReport'라는 다소 낯선 툴에 대해서도 배워야 하는데요. Report 교육을 받으러 본사에도 다녀오긴 하지만, 그것만으로는 심히 부족해 팀원분들에게 매우 많은 도움을 받아야 하는 기간이기도 합니다. 물론 언제나 그랬듯이 정말 친절하고 알 때까지 친절히 설명해 주신답니다! 그리고 언제나처럼 발표를 하게 되는데요. 보고서를 만들 때 꼭 알아야 하고, 실수하기 쉬운 부분들 전반에 대해 피드백을 주십니다. 이렇게 마지막 발표까지 3번의 발표를 모두 마치면 시용평가가 끝이 나게 됩니다! 그리고 이렇게 3개월을 마치고 나면 팀이 어떻게 돌아가는지, 내가 무슨 일을 해야 하고 그 일을 하기 위해서 무엇이 부족한지 그리고 그 부족함은 어떻게 채워나가야 하는지 스스로 깨닫게 되고 팀의 일원으로 자연스럽게 섞일 수 있게 되는 것 같습니다. 2. 업무 시용평가가 끝나면 본격적으로 개발 요청 업무를 맡아 진행하게 됩니다. 2차 발표에서 말했던 것처럼 [업무설명> 개발> 검토> 관리자 테스트> QA테스트> 배포]의 순서로 한 사이클이 진행됩니다. Java/Spirng, javaScript, postgreSql을 사용하고, 백/프론트를 나누지 않고 전체적으로 아울러 개발합니다. 본인이 잘 모르거나 부족한 부분이 있을 경우, 회사에 교육 신청서를 내서 인강을 지원받을 수 있습니다.(*참고로 시용평가 3개월 기간에는 의무로 3가지 인강을 듣습니다. 과제의 진행 상황이 스스로 여유롭다고 판단되면 업무 시간 중 강의를 수강하는 것도 가능합니다. 이후로는 자유롭게 필요한 인강을 선택해 신청하면 됩니다.) 업무는 모두 문서화돼 관리하고 있습니다. 조금 더 자세히 설명하자면, 먼저 회사 내부에 등록된 업무(팀에서는 일감이라도 부릅니다.) 문서를 통해 개발요건과 공수를 확인합니다. 고객사마다 패키지가 다르므로 각각의 개발환경을 세팅하게 되는데요. 이 과정에서 만약 신규 고객사라면 고객사의 테스트서버와 배포 폴더를 생성하는 등의 일을 하게 됩니다.(SVN과 Jenkins를 사용합니다.) 이러한 내용들 또한 문서화돼 있어, 신입 사원 교육과정의 일부로 차근히 알려주시기 때문에 혹시 모르는 개념이 있으시더라도 너무 걱정하실 필요 없습니다! 모든 건 다 정말 친절히 알려주시고 적응할 때까지 기다려주시니까요. 가장 중요한 건, 개발기간을 지켜야 한다는 점인데! 보시는 것처럼 주어진 업무마다 개발일정이 정해져 있는데요. 개발일정을 픽스하기 전에 먼저 기간 내에 특이사항은 없는지, 공수는 충분한지 등을 확인 차 물어봐 주세요. 이 때 뭔가 특이사항이 있거나, 공수가 모자라다고 생각된다면 사유를 말씀드리고 일정을 수정할 수 있습니다. 예를 들면, 휴가! 휴가가 있다면 피해서 일정을 잡아주세요. 참고로 휴가는 미리 말만 한다면 언제든 자유롭게 사용할 수 있습니다. 업무 자체가 타이트하게 관리되기도 하고, 아까 말씀드린 것처럼 모든 업무가 문서화돼 관리하고 있다는 게 장점인 만큼, 개발자도 개발요청을 하면서 문서로 기록해둬야 하는 일이 많다는 얘기이기도 한데요. 그래서 저희 팀에 가장 필요한 성격 중 하나는 꼼꼼함과 정확함이 아닐까 합니다. 실제로 성준님께서도 “속도보다는 정확함이 중요하다!” 라는 말씀을 신입 사원 면담 때 해주시기도 했거든요! 그리고 이건 팀에 맞는 인재인지를 판별하는데 꽤 중요하게 작용하는 것 같다고 생각합니다. 본인이 정해진 일정 속에서 체계적으로 일하는 걸 선호하거나, 신입 사원으로서 팀에 잘 적응해 나가기 위해 항상 나를 돌봐주는(?) 누군가가 필요한 편이라면 저희 팀은 굉장히 좋은 선택이 되지 않을까 합니다. 3. 신입 사원 공유회의 마지막으로 소개하고 싶은 건 신입사원 공유회의입니다. 개인적으로 회의라기보다는 스터디에 가깝다고 생각하는데요. 신입 사원을 대상으로 1차 평가가 끝난 이후 매주 화, 목에 1시간씩 6개월 이상 동안 진행되고, 1주일에 하나씩 Zenius나 회사 업무와 관련해 알게 된 지식을 정리해 공유하고 발표하는 자리입니다. 신입 사원 공유회의라고는 하지만 신입 사원끼리만 진행하는 건 아니고 저희 이사님이신 성준님도 함께하는데요. 그렇기 때문에 사실 시용평가는 끝났지만 발표는 계속된다…의 느낌이기도 합니다.(발표를 하다 보면 내용이 길어지기도 하고, 알려주시는 것도 많아 지기 때문에 사실 1시간 내에 끝난 적은 별로 없습니다.) 부담되지 않는다면 거짓말이겠지만 실로 엄청나게 도움이 되고, 업무에 국한되지 않고 더 깊고 근본적인 지식을 많이 얻어갈 수 있는 자리입니다. 일단, 나도 모르게 더 좋은 개발자가 될 수 있도록 생각의 근간을 뜯어고치는 느낌이고, 하나의 내용에 대해서도 심도 있게 다루는 시간이기 때문에 발표는 부담스럽지만 알아가는 자체가 즐겁고 재밌습니다! 사실 신입 사원 공유회의를 하고 난 뒤에 “가장 많이 뭔가 스스로 발전했다!”라고 느끼게 되는 것 같아요. ---------------------------------- 사실 아직도 신입이고 저희 팀을 100% 안다고 할 수 없지만, 분명히 말씀드릴 수 있는 건! 인프라웹팀은 입사 당시에 많이 부족했던 제가 한 명의 개발자로서 잘 적응할 수 있을 만큼 신입 사원을 위한 프로세스가 잘 갖춰져 있다는 것입니다. 프로세스마다 코드리뷰를 통해 개발을 하면서 기본적으로 가져야 할 개념이나 마인드 그리고 고쳐야 할 습관들을 알려주시고, 나아가 공부해야 할 부분도 알려주시기 때문에 느리더라도 확실하게 발전해 나갈 수 있습니다. 그리고 이런 과정을 통해 스스로 “더 좋은 개발자로 성장할 수 있겠다”라는 확신을 가질 수 있습니다. 너무 장점만 소개해드린 건 아닌가 싶지만, 저는 정말 다니면서 단점이라고 느낄만한 부분을 아직은 찾지 못했어요! (굳이 따지자면 신입 사원 공유회의의 발표가 매주 있다는 것이 다소 부담스럽다는 점…. 하지만 이 또한 본인의 마음가짐에 따라 즐길 수 있는 부분이지 않을까요?! 실력은 확실히 느니까요!) 이 글이 예비 브레인저에게 조금이나마 도움이 되면 너무 기쁠 것 같습니다. 혹시 지원을 망설이고 계시거나 걱정하는 분이 이 글을 읽으면서 “와, 브레인즈컴퍼니 좋다! 나도 지원해야지!”라는 생각이 들면 좋겠네요. 이렇게 약 5개월 간의 신입 사원 적응기를 마무리하겠습니다!
2023.02.02
기술이야기
JPA 도입을 위한 고민_ORM 기술을 써야 하나?
기술이야기
JPA 도입을 위한 고민_ORM 기술을 써야 하나?
몇 해전에 새로운 버전의 ITSM을 개발하기 시작하면서 JPA 기술 도입을 두고 고민했던 내용을 이제는 한 번쯤 정리해야 할 시점이라고 생각했다. 비단 JPA뿐 아니라 Spring Boot, Thymeleaf, Kotlin과 같은 새로운 개발 기술이나 Git, Gradle, Slack, PR처리 등 새로운 업무 환경까지 상당한 변화를 시작한 프로젝트였기 때문에 고민되는 것이 한두 개가 아니었지만 가장 길고 심각하게 고민했던 부분이라 따로 기록을 남겨본다. 이 글은 기술적인 내용은 아니고 어떻게 보면 당연하고 일반적인 내용이지만 다음 기회에 새로운 기술, 환경, 프로세스에 대한 도입을 검토할 때 조금이나마 도움이 됐으면 하는 마음이다. 여기에선 기술적인 내용에 대한 설명을 덧붙이지 않는 것은 관련된 내용은 'JAVA', 'ORM', 'JPA' 등으로 검색만 해도 비슷한 글들이 넘쳐나는 상황에 하나 더 덧붙이는 건 별로 의미가 없어 보이기 때문이다. 1. ORM에 대한 갑을논박 ORM에 대한 검색을 해보면 정말 여기서 다시 얘기하고 싶지 않을 정도로 오랜 시간동안 많은 사람들의 많은 의견들이 쏟아져 나온다. 게다가 더욱 혼란스러운 점은 구구절절 옳은 말들이라는 점이다. 여기서 뭔가 딱 부러진 결론을 내는 것은 불가능하고 너무 많은 의견들을 접하면서 점점 혼란스러워졌다. 대표적으로 참고 삼아 [자바 ORM 표준 JPA 프로그래밍]을 쓰신 김영한님의 글로 추정되는 링크 하나 투척~ https://okky.kr/article/286812 2. 우리에게 중요한 것 2.1. 진입장벽 : 진입장벽… 이 높다한들 하늘 아래 뫼… 일까? 어떤 기술이든 진입장벽은 그 도입 여부를 결정하는 가장 중요한 요소이다. 개인적으로 스터디를 하거나 한번 써보고 싶은 마음에서라면 진입장벽이 높을수록 구미가 당기는 변태적인 성향이 있는 사람도 있겠지만 이게 업무적인 접근이고 다른 팀원들과 함께 해야 하는 것이라면 진입장벽이 높이에 따라서는 그 기술의 효과가 인정되어도 도입이 쉽지 않은 것이 사실이다. JPA는 많은 사람들이 진입장벽이 높은 편이라고 입을 모아 말한다. 검토를 위해 살짝 들여다 보았을때도 쉬워 보이진 않았다. 말 그대로 ORM을 잘 쓰기 위해서는 Object와 Model에 대한 깊이 있는 사전 지식과 그 둘을 Mapping하는 개념적인 체계가 머리 속에 있어야 충분히 활용할 수 있을 것 같았다. 진입장벽이란 것도 사실 상대적인데 당시에 판단으로 우리 팀에서 도입하기에 진입장벽은 중상(中上)이라고 생각했다. 잘 자리잡기 쉽지 않을 것이고 시간도 오래 걸리리라 생각이 들었다. 이러한 점을 만회할 장점이 있는지 고민이 필요했다. 2.2. 제품 특징 : 우리가 만드는 제품/프로젝트의 특징에 맞는가? 당시에 새롭게 시작되는 프로젝트에서 만드는 제품은 기존 Zenius ITSM 시스템의 새로운 버전이다. 업무적으로 여러가지 특징이 있지만 Model과 관련되어서는 상대적으로 복잡한 구조라 할 순 없었고 극단적인 성능과도 거리가 좀 있다. 상대적으로 깔끔하고 명확한 모델링이 훨씬 더 중요하다고 판단했고 이러한 면은 JPA도입에 대한 긍정적인 입장을 가지게 했다. 쿼리와 관련되어서 수많은 간단한 작업들을 효과적으로 할 수 있을거란 기대감… 만약 만들려고 하는 제품이 특정 RDBMS에 의존적이거나, 혹은 인수인계나 유지보수가 어려울 정도로 비즈니스부터가 복잡한 형태라서 JPA를 쓰면서도 많은 성능 튜닝과 Native Query를 사용해야 하는 상황이거나 한다면 상황은 약간 달라졌을 것이다. 제품의 특징과 더불어 현재 프로젝트의 특성도 같이 살펴봐야 한다. 레거시 시스템의 업그레이드인지, 이번 프로젝트처럼 완전히 새 판에서 시작하는 게 가능한 상황인지… 새로운 제품을 만드는 프로젝트가 납기일이 정해진 프로젝트보다 나은 점은 그나마 초기 학습과 관련된 투입을 감안하기가 좀 더 수월하다는 점이다. SI같은 성격의 프로젝트라면 내부 고객뿐 아니라 상대방 고객도 설득해야 하는 문제점이 더 크다. 그런 면에서 이번 프로젝트는 JPA를 도입하거나 적용하기엔 괜찮은 상황이라는 게 결론이었다. 2.3. 조직/인력 구조 : 바로 우리가 쓰는 기술이다. 기술도 중요하지만 우리도 중요하다. 제목처럼 아무리 좋은 기술이라도 우리에게 맞냐는 게 결정적이다. 아래와 같은 질문들을 던져 보았다. • 현재 구성원들의 사전 지식은 어느 정도인가? • 우리 회사나 우리 팀에서 향후 관련된 개발자를 계속 충원할 수 있는가? • 우리 팀은 새로운 기술을 공부하며 도입할 의지를 가졌는가? • 회사는 관련된 교육과 초기에 벌어질 삽질을 감내할 수 있는가? 결론적으로 반반이었다. 우리 팀은 JPA에 대해서 아는 바가 거의 없는 상태였다. 게다가 지금이야 JPA를 사용하는 사람들도 더 늘어난 것 같고 우리 회사의 위상도 달라졌지만 당시의 우리 회사의 규모나 채용 형태를 봤을 때 관련된 개발자를 충원하는 것도 쉽지는 않을 것 같았다. 반대로 새로운 기술 도입에 대해서 강한 의지까지는 아니라도 긍정적은 자세를 가진 팀원과 초기 삽질에 대해서 어느 정도 감내할 수 있는 회사라는 것이 당시의 생각이었다. 그래도 반이 어디냐…는 게 최종 결론이었다. 2.4. 재미 : 그래서 땡기냐? 이성적이고 객관적인 여러 사실들을 매트릭스화해서 평가를 하면서도 스스로에게 던지는 마지막 질문은… 그래서 땡기냐는 거다. 모든 수치가 부정적인데도 끝까지 미련을 버리지 못하고 하고 싶은 경우가 있고, 모든 결과가 긍정적인데도 뭔가 하기 싫은 경우가 많은데, 결국 그것들은 결과로 이어지더라. 리누스 토발즈가 커널을 업그레이드할 때 가장 중요한 점으로 “얼마나 재미”가 있냐는 점이라고 얘기 했다는데, 우리는 그 정도 레벨의 개발자는 아직(!) 아니지만 우리에게도 “재미”는 가장 중요한 결정요인 중 하나이다. 스스로에게 물어보자. 재미있어 보이나? 그리고, 당시에 나에게는 무척 설레었던 일이었음을 고백해야겠다. 3. 염려스러운 점 3.1. 회귀본능 아직 익숙하지 않은 상태에서 개발을 진행하다 보면 도무지 JPA에서 왜 이런 쿼리를 만들어내는지 이해하기 어려운 경우를 종종 만난다. 혹은 익숙한 SQL이 머리속에서 막 떠오르는데 JPA로 적용하기 위해서 이런저런 삽질을 하다 보면… 아… 그냥 쿼리를 직접 짤까? Native Query도 Mybatis도 지원한다던데… 분명 이런 순간이 올 것이라고 예상했다. 공부를 하는 것도 좋지만 회사에서 업무로 일정에 맞춰 무언가를 만들어내야 하는 압박감은 따로 누가 주지 않아도 가지고 있는 것이니… 침착하자. 익숙하지 않고 힘들다고 나도 모르게 무언가 자꾸 길을 벗어나고 있는 건 아닌지 계속 주의 깊게 들여다 봐야 한다. 결론적으로 지금에 와서 돌이켜보면 초반에는 의도대로 생성되지 않는 쿼리들에 당황하긴 했지만, 약간의 삽질 후에는 왜 그런 상황이 발생되는지 알기가 어렵지는 않았다. 언젠가는 복잡한 통계나 로직 때문에 Native Query를 쓰게 될 날이 오겠지만 아직은 아니다. 3.2. 학습곡선 도입하려는 기술에 따라, 혹은 구성원의 사전 지식에 따라 학습곡선은 상당히 다양한 형태로 나타나는데, 평균적으로 JPA의 학습곡선은 전반적으로 경사가 아주 완만하다고 판단했다. 즉 도입 검토 시점의 진입장벽은 그 자체로 염려스러운 점이었다. 그 얘기는 수준을 일정수준 이상으로 끌어올리기 위해서 많은 시간과 노력이 팀 차원에서 필요하다는 얘기였고 필요로 하는 사전지식도 꽤 있을 듯 했다. 게다가 여러 가지 이유로 개인별로 나타나는 학습곡선도 많이 다르리라 예상했다. 뭔가 기막힌 해결책이 있으면 좋겠지만, 책을 구매해서 읽고 유료 강의, 무료 강의들을 공유하고… 서로서로 도와가며 공부하는 클래식한 정공법을 택했다. (그만큼 사실 효과는 기대하기 힘들다는 것도 알지만…) 지금 생각해보면 어떤 기술이나 프로세스든 누군가 소수의 인원이 먼저 출발해서 끌어줄 수 있는 형태가 되는 것이 제일 나은 것 같다. 서로서로 도움을 주면서 같이 커가는 모양새가 될 수 있을 듯 한데 우리는 그렇지는 못했고 모두가 공평(?)하게 모르는 상태에서 스타뜨~ JPA의 도입에 대한 학습곡선은 최종적으로 도입을 결정하는데 마지막까지 고민을 하게 했던 점이었다. 3.3. Mapper는 누가? 자, 우리는 Object도 Model도 이제까지 다 개발자가 했다. Object야 당연히 개발자가 만들어야 하겠지만 큰 기업에서처럼 DBA가 있거나 화면을 퍼블리싱해주거나 하지 않는다. 우리는 우리가 화면, 미들웨어, DB까지 직접 만들고 컨트롤 해왔다. 그게 좋은 것이냐의 문제를 여기서 얘기하자는 게 아니라 현실이라는걸 얘기하는 거다. 우리 팀원 모두가 JPA 초보이다. Mybatis를 사용하고 Spring을 사용해봤다고 하지만 ORM이나 SQL Mapper에 대한 심도있는 고민은 부족한 상황. 앞으로 JPA에서 Object와 Model은 그렇다고 해도 Mapper역할은 또 필요하지 않을까? 그런 가이드는 또 누가 해야 하나… 모든 개발자에게 알아야 한다고 말할 수 있지만 모든 개발자에게 팀에서 잘하는 메인이 되라고 하기엔 좀 애매한 영역이란 게 항상 있다. 프로그램의 오브젝트와 DB의 모델을 연결하는 Mapper를 잘 구성할 경험이 많은 개발자가 없다는 점은 학습곡선과 더불어 JPA 도입을 망설이게 했던 주요 고민이었다. 결론적으로 선임 개발자를 중심으로 착실히 스터디를 잘 해주었고 제품의 특성상 그렇게 복잡한 관계를 매핑할 일이 많지 않아서인지 초반에 몇 번 팀원들이 같이 머리를 싸매고 논의했던 것 외에 문제는 없었다. 4. 결론(현재까지는…) 도입 결정 후 꽤 긴 시간 제품을 만들고, 이제는 고객사에 납품도 하면서 기능을 계속 추가하고 있는 이 시점에서 돌아보면, 어떤 부분은 팀원들이 너무 잘해주고 있고, 어떤 부분은 전혀 예상하지 않은 형태로 진행이 돼서 난감한 경우도 있지만 전체적으로는 아주 만족하고 있다. 정확하게 측정을 하진 못했지만 쿼리를 직접 짜면서 개발을 진행하는 것보다 생산성 측면에서 확실히 나아졌다고 느끼고 있고 그 효과는 초반에 투입된 시간에 비례해 앞으로 더욱 더 기대된다. 만족하고 있다고는 했지만 여기서 만족이라는 게 성과나 기술적인 완성도에 대한 절대적인 만족은 아니다. 다만 아직 우리 제품에 대한 아쉬움을 가지는 것이 JPA 때문은 아니라는 점은 확실하다. JPA가 유행에 따라 생긴 기술이라고 하기엔 너무 오래된 기술이지만 그래서인가 ORM 자체에 대한 흥미도 점점 더 해가고 있다. JPA도 ORM에 대한 가장 최근의 시도중 하나겠지만, 앞으로 어떤 식으로 발전해 나갈지, 그에 따른 개발 업무는 또 어떤 식으로 변화가 있을지도 궁금하고… 어쨌든, 지금으로서는 다시 돌아가진 않을 생각이다.
2023.01.03
회사이야기
브레인저가 되면 누릴 수 있는 것들 ㅣ (3) 포상 편
회사이야기
브레인저가 되면 누릴 수 있는 것들 ㅣ (3) 포상 편
브레인즈컴퍼니는 우수한 연구개발 리더들을 중심으로 직원 절반 이상이 개발자로 구성돼 있습니다. 특히 개발자의 평균 근속 연수가 약 10년 정도로, 그만큼 브레인즈컴퍼니가 다니기 좋은 회사인 것을 증명해 주는데요. 브레인즈는 오랜 시간 함께한 장기 근속자들에게 고마운 마음을 전달하고 있습니다. 5년 근속자에게는 무려 100만원을! 10년은 300만원과 휴가 3일, 15년은 500만원에 휴가 5일을 지급하고 있어요! 내년이면 입사 20년을 맞이하는 인프라코어팀 기상님은 “참 많은 혜택을 주는 회사”라고 전해왔어요. 근무하며 가장 기억에 남았던 복지로는 ‘해외 연수 제도’를 꼽았는데요. 첫 해외 연수로 세부에 가서 마음 맞는 동료와 함께 바다를 거닐 수 있다는 것 자체가 너무 행복했다고 하네요! ( 기상님 인터뷰 전문 보러 가기) 올해 15년&10년을 맞이했던 브레인저도 무려 12명이나 있었습니다. 이들 대부분은 장기 근속할 수 있었던 이유에 대해 ‘좋은 사람’을 꼽았습니다. 한 장기 근속자는 브레인즈컴퍼니의 매력에 대해, "나쁜 사람은 못 버티는 선한 조직"이라는 이야기를 들려줬어요. ( 장기 근속자 인터뷰 보러 가기) 이 밖에도 브레인즈는 매해 연초에 우수 부서 및 직원에게 포상하고 있는데요. 최우수 부서에게는 100만원, 우수 브레인저에게는 50만원, 마지막으로 협력 브레인저들에게는 30만원을 지급하고 있어요. 이처럼 브레인즈컴퍼니는 열심히 달려온 직원들을 인정하고, 이들에게 지속적으로 동기를 부여함으로써 브레인즈의 발전을 도모하고 있습니다. 다가오는 2023년에도 올해 최선을 다해 온 브레인저들을 위한 포상 행사가 준비돼 있습니다. 연초에 따끈한 소식으로 찾아올게요!
2022.12.21
사람이야기
2022 상반기 New Brainzer 인터뷰 | (2) 일반직 편
사람이야기
2022 상반기 New Brainzer 인터뷰 | (2) 일반직 편
'2022 상반기 NEW BRAINZER 인터뷰' 지난 개발자 편에 이어, 이번에는 일반직군 신규 입사자들의 이야기를 들어봤습니다. 인사, PR, 총무, Technical Consulting, 프리세일즈 등 다양한 직군의 브레인저가 느끼는 브레인즈컴퍼니! 함께 보러 가시죠. Question List 1. 자기소개 2. 업무소개 3. 브레인즈컴퍼니를 선택한 이유 4. 브레인즈의 매력 5. 성장을 느꼈던 순간 6. 브레인즈에서 이루고 싶은 목표 7. 예비 브레인저에게 한 마디 1. 안녕하세요! 저는 브레인즈컴퍼니 경영지원실 소속 하인혁입니다. 전공은 도시행정학으로, 첫 사회 경력으로 맡았던 총무 업무를 지금까지 쭉 해 오고 있습니다. 2. 주요 업무 위주로 말씀드리자면, ▲각종 일상 결의 및 비품/소모품 구매 ▲연차 관리 ▲건강검진/경조/라운지 관리 ▲법인 차량/자산/SW 및 라이선스 관리 ▲기타 총무 업무 등 여러 가지 지원 업무를 맡고 있어요. 3. 개인적으로는 이전 경력에 비해 여러 가지로 조건이 좋았기 때문입니다.ㅎㅎ 통근 거리, 자율 복장, 급여 등 입사를 위한 고민을 더 할 필요가 없었습니다! 또, 안정적 재무 구조 및 꾸준한 매출 실적 역시 회사를 선택한 중요한 이유 중 하나입니다. 4. 수평적 조직 문화를 통해 전 직원이 서로 배려하고 존중할 수 있는 환경을 만들어 나가고 있다는 점이 가장 마음에 들어요. 또, 다양한 복지 및 포상 제도가 존재한다는 점 역시 브레인즈컴퍼니만의 특색이라고 할 수 있어요. 5. 크게 두 가지를 꼽을 수 있을 것 같습니다! 먼저, 가끔 터지는 돌발 상황에 대응하는 새로운 업무를 맞딱뜨려지만 마무리지었을 때 한 단계 레벨 업하는 느낌이 듭니다. 업무 때문에 경찰 지구대에 제 발로 들어가 민원 신청하는 건 아무나 할 수 있는 경험은 아니죠?^^ 다음으로 새로운 외부 업체 사람들과 미팅 또는 협업하면서 갇혀 있던 제 시야가 트이는 경험을 할 때가 더러 있는데, 그 때 역시 레벨 업 하는 기분을 느껴요. 6. 누구나 장점과 단점을 함께 가지고 있듯, 저 역시도 장점과 단점을 가지고 있습니다. 물론 현재는 우리 회사에 적응해 나가는 시점으로, 다양한 경험을 통해 회사와 저 모두가 서로를 알아가고 있다 생각하는데요. 향후 잔뼈가 굵은 브레인저가 됐을 때는 보다 제 장점을 살릴 수 있는 업무를 하는 이른바 ‘전문가’로 거듭나고 싶습니다. 7. 신입사원으로서 믿고 따를 수 있는 ‘좋은 선임, 뛰어난 선임’들이 존재한다는 것은 본인의 커리어를 쌓는 데 가장 큰 메리트일 수 있는데요. 브레인즈컴퍼니에 그런 동료가 많다고 생각합니다. 더 나은 개발자, 더 나은 영업직, 더 나은 관리직으로 거듭나고 싶다면 브레인즈컴퍼니의 문을 언제든 두드려 주시길 바랍니다. 앞서 말한 긍정적인 회사 문화를 바탕으로, 각 분야 최고의 직원들이 지원자 여러분을 더 나은 존재로 발돋움할 수 있도록 도울 것입니다! 1. 안녕하세요, 저는 브레인즈컴퍼니 경영기획실에서 PR을 담당하고 있는 최순정입니다. 대학에서 국제통상학을 전공했지만, 졸업 후 언론사에서 기자 생활을 조금 하다가 공공기관 및 여러 스타트업에서 PR 업무를 쭉 해왔습니다. 2. 크게 언론 홍보/온라인 PR/사내 커뮤니케이션 이 3가지를 담당하고 있습니다. 좀 더 세부적으로 살펴보면, 언론 홍보의 경우 보도자료 작성 및 배포, 미디어 응대 등을 통해 대외적으로 브레인즈컴퍼니를 알리는 일이에요. 온라인 PR 업무로는 온드미디어(홈페이지 블로그, 네이버 블로그, 페이스북 등)에 잠재적 후보자와 고객 등을 타겟으로 하는 콘텐츠를 생산하고 있습니다. 때에 따라서는 채용 광고를 집행하거나 GA를 통해 통계 자료를 수집/분석하기도 하고요. 사내 커뮤니케이션은 사보 제작, 브행시/BB데이/CEO가 쏜다 등과 같은 사내 행사, 사내 캠페인 및 설문조사 등을 통해 사내 소통을 원활하게 하고, 브레인즈만의 고유한 기업문화를 정립해 나가는 일입니다. 3. 그동안 여러 스타트업을 옮겨 다니며 일을 해오다 보니, 좀 더 안정적이고 오래 다닐 수 있는 곳에 정착하고 싶었어요. 채용공고를 보고 브레인즈에 대해 조사하면서 꼭 입사하고 싶은 마음이 생겼었습니다. 22년 동안 적자 한 번 난 적 없이 업계 TOP 자리를 놓치지 않고 안정적으로 사업을 해오고 있었고, 지난해에는 코스닥에 상장해 연봉 천만원 인상까지 했더라고요. 그리고 브레인즈컴퍼니 블로그를 통해 해외 워크숍, 패밀리데이, 아침 무료 제공 등의 콘텐츠를 접하면서 직원들을 소중하게 생각하는 곳이라는 느낌을 받아 지원하게 됐습니다. 4. 입사 후 회사 만족도 조사를 진행한 적이 있는데요. 많은 브레인저들이 회사의 장점으로 좋은 동료와 수평적인 문화, 성장 등을 꼽았습니다. 저 역시 브레인즈의 가장 큰 매력은 좋은 동료라고 생각합니다. 회사원이라면 보통 회사에 출근하기 싫은 가장 큰 이유가 직장 상사나 동료 때문일텐데요. 하루 중 가장 많은 시간을 보내는 사람들과 맞지 않는다면 하루하루가 지옥같지 않을까요?ㅎㅎ 제가 경험했던 브레인저 대다수는 선한 사람들이고 모두 본인 분야에서 성과를 내고 있는 사람들이라고 생각합니다. 또, 무료 아침 식사, 해외 워크숍, 패밀리데이, 다양한 사내 행사 등 브레인저들이 행복하게 회사 생활을 할 수 있도록 많은 배려들이 곳곳에 묻어나 있는 곳인데요. 일례를 소개하자면, 브레인즈가 30명 남짓하던 시절 화장실에서 유축하는 여직원을 보고 충격을 먹은 선근님이 바로 여직원 휴게실을 만든 적이 있고요. 배우자 출산휴가가 흔하지 않던 시절부터 남자 직원들도 육아휴직을 보내주기도 했고요. 이런 따뜻한 배려들 덕분에 얼마 전에는 가족친화인증 기업으로 선정돼 대통령 표창을 받기도 했습니다. 개발 측면에서는 ‘찐 개발자’들이 모여 있다고 생각합니다. 얼마전 진행했던 개발자 인터뷰를 진행하면서, 오랜 시간 개발을 통해 깊은 전문성을 갖춘 분들이 많다는 것을 알게 됐습니다. 상반기에 입사한 신입 개발자 분과 사내 행사 때 대화를 나눈 적이 있었는데요. 부서장님을 존경하고 인정받고 싶다는 이야기를 하더라고요. 또, 다른 신입 개발자들 역시 많이 배우고 성장하고 있다고 전해 들었어요. 그만큼 전문성 있는 상사에게서 많은 것을 배워갈 수 있는 곳이라고 자부합니다! 이처럼 브레인즈컴퍼니는 좋은 환경에서 좋은 동료들과 함께 행복하게 회사 생활을 할 수 있는 곳입니다. PR 담당자로서 더 많은 자랑을 하고 싶지만, 이 정도로 끝내겠습니다. ㅎㅎㅎ 5. 얼마 전 좋은 홍보란 ‘결과를 예측할 수 있는 홍보’라는 글귀를 본 적이 있어요. 요즘 채용 브랜딩을 위해 다양한 콘텐츠를 생산해내고 있는데요. “이런 이야기를 들려주면 잠재적 후보자들이 지원하지 않을까”라고 예측하며 만들었던 콘텐츠가 입사 지원에 영향을 미쳤을 때 뿌듯함을 느꼈던 거 같아요. 그리고 입사 초기에 비해 시간을 덜 들이고 결과물을 내놨을 때 성장하고 있다는 느낌을 받았습니다. 6. 외부적으로는 많은 사람들이 ‘브레인즈컴퍼니’라는 단어를 들었을 때 “아, 거기!”라고 바로 알아차릴 수 있도록 하고 싶어요. 내부적으로는 브레인저들이 더욱 행복하게 일할 수 있도록 다양한 시도를 해 나갈 예정입니다. 7. 업계 1등 제품을 만드는 곳, 좋은 사람들이 모여 있는 곳, 근무환경이나 복지 등 어느 하나 부족한 것이 없는 곳이라고 생각합니다. 입사, 망설이지 않으셔도 됩니다. 입사하지 않는 분들은 좋은 기회를 놓치는 거겠죠?ㅎㅎㅎ 1. 안녕하세요. 브레인즈컴퍼니 경영기획실 천웅입니다. 저는 경영학을 전공하고 교육회사와 제조업에서 채용업무를 해왔습니다. 현재는 3번째 회사로 인사기획 업무를 하고 있습니다. 2. 현재 인사기획 업무 중 가장 많은 비중을 차지하고 있는 업무는 채용입니다. 22년의 업력을 가진 브레인즈컴퍼니가 추구하는 인재상이 변화된 환경에 적합한지에 대한 검토와 분석을 통해 자사에 보다 적합한 인재를 영입하기 위한 채용기획을 하고 있습니다. 그 외 업무로, 조직과 조직원의 성장을 돕는 교육훈련 및 성과 기획과 이를 지원하는 인사행정 업무를 하고 있습니다. 3. IT 업종에 대한 호기심이 있었습니다. 모든 업종별로 추구하는 가치가 달라 제도와 규정이 다르다는 것을 경험했는데요. 특히, IT 업종은 변화에 민감하게 반응하는 모습인데요. 브레인즈컴퍼니도 이러한 변화에 맞춰 수평적 조직문화를 만들기 위해 다양한 활동을 하고 있다는 것을 듣게 됐고, 변화의 중심에서 일해볼 수 있는 기회라고 생각해 선택하게 됐습니다. 4. 브레인즈컴퍼니는 커피향 가득한 성수동 카페거리에 있습니다. 분위기 좋은 맛집과 카페가 많아 퇴근 후 약속을 잡기도 좋고, 성수역이 가까워서 다른 지역으로 이동하기도 교통이 편리해요. 긴급하게 처리해야 하는 갑작스러운 야근이 발생한다면 저녁식사 드실 수 있게 야근비를 지원합니다. 그리고 8층 라운지 음료수는 항상 무한리필 되고요. 브레인즈컴퍼니는 2년 단위로 전 직원이 해외여행을 가고 있어요. 해외여행 이외에 매년 전직원의 20%는 세계 곳곳에서 열리는 전시회 참관단으로 해외연수를 갑니다. 코로나로 해외여행이 어려웠던 시기가 지나면서 2023년을 기대하고 있습니다. 5. 업종별/규모별로 경험해봤던 업무들이 환경별로 다르게 작동하는 것을 느끼고 환경에 맞춰 다른 버전의 자료가 만들어지는 순간에 성장하고 있다고 느껴요. 성장이라는 느낌이 드는 이유는 이미 정답이라고 생각하고 인정받았던 과거의 경험에서 벗어날 수 있었기 때문이 아닐까 생각됩니다. 6. 쉽게 읽기 어려운 사내 규정을 읽기 쉬운 자료로 만들고 싶습니다. 직장 생활을 하면서 동일한 문장도 읽는 사람에 따라서 다르게 이해하고 해석하는 모습을 많이 봤는데요. 누구나 이해할 수 있는 유튜브 영상이나 자료들을 만들고 싶어요. 7. 브레인즈컴퍼니의 개발환경은 동료들과 토론하는 것을 좋아하며 코드리뷰를 통해 동료들과 함께 성장하는 문화를 가지고 있습니다. 제품이 개발되는 것에 멈추지 않고 제품을 사용하는 고객의 의견을 경청하며 더 나은 제품을 만들기 위해 노력하고 있는데요. 동료들과 함께 성장하고 싶은 분들에게 브레인즈컴퍼니 입사를 추천합니다. 1. 안녕하세요. TechnicalConsulting팀의 박기민입니다. 전공은 전자공학이고, 이전에 해양로봇 주력 회사에서 개발자로 일한 경험이 있습니다. 2. SW 엔지니어로서 자사 주요 제품군인 Zenius 시스템 구축 프로젝트 업무를 하고 있습니다. 현재 나주사무소에서 TC팀 선배들과 같이 주요 고객사인 한국전력공사 및 타 사이트 유지보수를 담당하고 있어요. 3. 브레인즈컴퍼니 만의 제품인 Zenius 솔루션이 있다는 점, 직관적인 UI로 정보를 제공한다는 점, 고객과 소통해 니즈를 충족시켜 준다는 점이 선택하게 된 가장 큰 이유입니다. 4. 개인 일정 때문에 바쁠때도 항상 생각해주시고 챙겨주시는 팀원 분들, 여러 프로젝트를 경험하며 스스로가 성장할 수 있다는 확신이 든다는 점이 가장 큰 매력입니다. 한 곳에 집중이 아닌 여러 고객사들을 통해 멀티테스킹 능력도 기를 수 있다고 자부합니다. 5. 어떤 장애가 발생해 그 장애를 해결하기 위해 고민하고 여러 시각적으로 접근해 그 장애를 해결했을 때, 또 성취감과 시야가 조금씩 넓어지고 있다는 걸 느낄 때에 가장 성장한 것 같습니다. 6. 계속해서 문제 해결에 대한 시야를 넓히고 프로젝트를 도맡을 수 있는 인재가 되는 것이 목표입니다. 7. 입사할 때 가장 중요한 요소는 두가지라고 생각합니다. 첫째로, 화목한 사내분위기, 두 번째는, 개인의 성장 입니다. 화목한 사내 분위기에서 성장할 기회를 얻고 싶은 분들이라면 입사를 강력히 추천합니다. 1. 안녕하세요. 브레인즈컴퍼니 프리세일즈팀에서 근무하고 있는 유준영입니다. 저는 IT와는 크게 관련이 없는 산업경영공학과를 전공했지만, 새로운 분야에서 좋은 사람들과 재밌게 근무하고 있습니다. 2. 크게 봤을 때 두 가지로 나눌 수 있을 거 같아요. 내부에서 제품 관련 교육을 진행하거나 외부에서 제품 소개를 하는 업무 등 제품에 대한 발표를 진행하는 업무가 있고요. 브레인즈컴퍼니 제품이 경쟁력을 가질 수 있도록 제안서 및 제품 관련 자료들을 만드는 업무를 진행하고 있어요. 3. IT 관련 업종에서 근무를 하고 싶다는 생각을 가지고 직장을 알아보던 중, 브레인즈컴퍼니는 복지, 근무환경, 제품 등 상당히 좋은 기업으로 판단해 지원하게 됐습니다. 취업 준비를 하면서 많은 회사에 지원했지만, "꼭 이 회사에 붙었으면 좋겠다"라고 생각했던 회사라서 입사 확정 전화를 받고 기뻤던 기억이 있네요.ㅎㅎㅎ 4. 좋은 직장 동료 및 임원들이 있어서 따로 힘든 점 없이 행복한 직장생활을 이어나가고 있습니다. 또, 입사하고 한 번도 아침을 안 먹어 본 적이 없을 정도로 아침이 잘 나와서 매우 만족하고 있어요.(점점 살이 찌고 있습니다.ㅎㅎㅎ) 5. 초반엔 아는 것도 많지 않고 빨리 일을 처리해야겠다는 급한 마음에 실수가 잦아 다시 일을 하는 경우가 자주 있었는데요. 요즘엔 아는 것도 늘고(아직 많이 부족하지만ㅠㅠ) 좀 더 꼼꼼히 업무해야겠다는 생각을 가져서인지 실수가 줄어서 한 번에 업무가 완료되는 경우도 있었습니다. 이렇게 실수하지 않도록 노력하고 발전하는 자신을 보면서 더 좋은 사람이 된 것 같아 기분이 좋습니다. 6. 아직 거창한 목표를 세우기보다는, 현실적으로 업무에 대한 전문성을 가지고 싶습니다. 현재 근무기간이 오래되지 않아서 미숙한 부분이 많은데, 이러한 부분들을 더 열심히 노력해 전문성을 확보할 수 있도록 하겠습니다. 7. IT 인프라 모니터링 시스템 매출 1위, 평균 근속연수 10년. 이 두 가지 지표만 봐도 얼마나 좋은 회사인지 알 수 있습니다. 브레인즈컴퍼니에 입사하셔서 무제한 제공되는 커피와 간식을 함께 먹으며 좋은 시간 보낼 수 있길 바랍니다.
2022.12.16
사람이야기
2022 상반기 New Brainzer 인터뷰 | (1) 개발자 편
사람이야기
2022 상반기 New Brainzer 인터뷰 | (1) 개발자 편
2022년, 브레인즈컴퍼니에는 새로운 브레인저들이 많이 입사했습니다. 특히, 사업을 확장하며 개발자들이 대거 들어왔는데요. 그 중, 상반기에 입사해 6개월 이상 재직 중인 개발자들을 모아 브레인즈를 선택한 이유, 입사 후 느끼는 브레인즈의 매력 등에 대한 이야기를 나눴습니다. 브레인즈컴퍼니에 입사하길 원하는 개발자분들, 주목해주세요! Question List 1. 자기소개 2. 업무소개 3. 브레인즈컴퍼니를 선택한 이유 4. 브레인즈의 매력 5. 성장을 느꼈던 순간 6. 브레인즈에서 이루고 싶은 목표 7. 예비 브레인저에게 한 마디 1. 안녕하세요, 브레인즈컴퍼니 개발 3그룹 위성조입니다. 저는 대학에서 컴퓨터공학을 전공했고 졸업 전에 4개월 정도 다른 곳에서 인턴 생활 후, 입사한지 10개월 정도 됐습니다. 2. 저는 현재 회사의 주력 제품인 제니우스의 차세대를 만드는 팀에서 백엔드 개발자로 일하고 있습니다. 처음 입사 당시에는 프론트엔드 개발자로 입사해 동료들과 함께 페이지의 여러 컴포넌트 및 데이터 처리 로직을 제작했었는데, 우연히 기회가 닿아서 백엔드 개발자로 직무전환 할 수 있었습니다. 백엔드 개발자로서 프론트엔드 개발자 동료들과 협력해, 기존 제니우스에서 지원하던 기능 혹은 새로운 기능들을 추가하거나 기존에 작성됐던 코드들을 개선하는 작업들을 하고 있어요. 3. 인턴 생활 당시에 대시보드에 관해 접할 기회가 있었는데, 꽤나 마음에 들어서 관련 분야에서 일해 보고 싶다는 생각을 했었습니다. 마침 취업을 준비하는 기간에 모니터링 솔루션 국내 1위 업체(브레인즈컴퍼니)에서 올린 채용 공고를 보게 됐고, 관련 업무를 할 수 있을 것 같아 지원했어요. 면접 당시 면접관님이 지금 부서의 부서장님이셨는데, 질의를 주고받는 과정에서 합이 잘 맞았던 것 같아 이 회사에 들어오고 싶다고 생각했었는데, 다행히 합격할 수 있었습니다. 4. 조식과 전자동 에스프레소 머신 포함 각종 음료가 무제한 제공되는 복지가 있고, 업무적으로 수평적인 분위기에서 자유로운 의견 교환이 가능하다는 장점이 있습니다. 제가 있는 개발 3그룹은 최근 저를 포함한 신입분들을 대규모로 신규 채용해, 같은 나이대의 동료들이 매우 많고 운 좋게도 다들 주변과 잘 어울리는 성격이라 부서 분위기가 매우 좋아요. 5. 제가 올린 Pull Request가 머지됐을 때, 제 의견이 맞다고 인정받았을 때, 새로 배운 기술•기능•기법 등을 사용해 이전엔 어려웠던 구현을 간단하게 혹은 효율적으로 완성했을 때, 직무 전환 후 새로운 업무에 적응한 내 모습을 볼 때 등이 있습니다. 6. 우선적으로 제가 제작에 참여한 차세대 제니우스가 시장에 나가서 활약하는 모습을 보고 싶고, 차세대 제니우스가 완성될 즈음에는 제가 사용한 기술 스택 중 한 가지라도 익숙해져서 ‘전문가’ 라는 타이틀이 어색하지 않은 개발자가 되고 싶습니다. 7. 화려한 기술도 좋지만 왜 이 기술을 선택했는지, "이렇게 하면 되더라" 보다 이게 어떻게 되는지 등 기본적이고 본질적인 내용에 충실하시면 좋은 결과 있으실 거라고 생각합니다. 1. 개발 3그룹에 소속돼 있으며, 소프트웨어를 전공한 1년차 개발자 김현수입니다. 대학교 졸업 후 1년 정도 취업 준비를 하다가 브레인즈컴퍼니에 입사하게 됐어요. 2. 저는 현재 서비스되고 있는 제니우스의 차세대 버전인 제니우스 뉴 제너레이션(이하 ZNG)의 프론트엔드를 개발하고 있습니다. 프로그램의 뼈대가 되는 화면 설계, 기능 개발 등을 하고 있습니다. 사용자가 직접 만지고 경험하는 화면을 개발한다는 점에서 사용자와 가장 직접적으로 소통하는 개발자라고 할 수 있겠습니다. 3. 새로운 프로젝트인 ZNG에 초기부터 투입돼 개발을 많이 할 수 있고, 이를 통해 실력적으로 높은 성장을 할 수 있을 것이라고 기대했습니다. 주변 개발자 친구들에게 물어봤을 때 일반적으로 유지보수나 버그 리포트를 하는 경우가 많은데 그에 비해서 '절대적으로 개발하는 시간'이 압도적으로 많아요. 4. 회사가 임직원에게 해줄 수 있는 가장 큰 복지는 '좋은 동료'라고 생각합니다. 실력적으로나, 인성적으로나 말입니다. 그런 측면에서 브레인즈컴퍼니는 높은 수준의 복지를 제공하고 있습니다. 코드리뷰를 하거나 얘기를 나눌 때마다 동료들로부터 배울게 많다고 항상 느껴요. 5. 가끔 코드가 마음에 들지 않아 고치려고 보면 과거에 제가 짰던 코드였던 적이 종종 있습니다. 아마 지금 짜는 코드도 몇 년 후에는 같은 생각으로 고치고 있겠죠?ㅎㅎ 6. ZNG 개발을 무사히 완료해 실제 서비스되는 ZNG를 보고 싶습니다. 그리고 꾸준히 유지보수를 해야겠죠?ㅎㅎ 7. 개인적으로 브레인즈컴퍼니의 개발 문화에 대해서 굉장히 만족하고 있습니다. 코드 리뷰를 통해 개발자 관점에서 높은 수준의 코딩을 하기 위해 노력하고 있습니다. 직급에 상관없이 자기 의견을 내는데 자유로운 분위기가 형성돼 있으며 '논리, 설득력'을 중요시합니다. 만약 개발자로서 성장하기 위한 '진짜 개발 문화'를 느끼고 싶다면, 저는 자신 있게 브레인즈컴퍼니를 추천합니다! 1. 안녕하세요. 현재 개발 3그룹에서 일하고 있는 권오민이라고 합니다. 2. 차세대 개발에서 프론트엔드 부분을 담당하고 있습니다. 특정 화면이나 기능을 구현하고 버그를 고치거나 코드를 개선하는 등의 일을 합니다. 3. 입사 전에 경험했던 간단한 팀 프로젝트가 모니터링에 대한 것이었는데, 이를 계기로 모니터링 쪽에 관심을 갖게 됐고 운 좋게 브레인즈컴퍼니에 입사할 수 있었어요. 4. 같은 팀에 속한 분들이 성격도 좋으시고 그 덕분에 팀 분위기 자체가 밝은 것 같습니다. 또 하나의 프로젝트를 초기 단계부터 시작해 배울 점도, 성장할 수 있는 가능성도 높다고 생각합니다. 5. 제가 이전에 짰던 코드를 보고 의문을 가지거나 마음에 들지 않는다고 생각할 때입니다. 6. 과거의 저보다 나아지는 걸 목표로 합니다. 성장한 면을 억지로 찾는 게 아니라, 스스로가 자연스레 성장했다고 느낄 정도로 성장하고 싶어요. 7. 입사 후 처음에는 업무가 이해하기가 쉽지 않고 어렵게 느껴질 수도 있습니다. 하지만, 그렇기 때문에 배울 점이 많고 더 성장하며 앞으로 나아갈 수 있다고 생각합니다. 1. 안녕하세요, 긍정적인 사고로 도전하기를 좋아하는 이윤지입니다. 컴퓨터 공학부 졸업 후 교육회사에서 개발 업무를 5개월 가량했습니다. 새로운 도전을 하기 위해 브레인즈컴퍼니로 이직하게 됐습니다. 2. 브레인즈컴퍼니에서 APM을 개발하는 팀에서 근무하고 있습니다. APM은 어플리케이션의 성능을 관리하고 통제하는 모니터링 도구입니다. 초단위의 실시간 모니터링을 통해 정밀한 성능 감시 및 분석을 지원합니다. 웹서버 및 매니저와의 통신을 통해 web UI 모니터링 기능을 개발하는 업무를 하고 있어요. 3. 기사를 통해 회사에서 직원들을 진심으로 아끼고 존중하는 문화와 복지를 볼 수 있었습니다. 브레인즈와 같이 성장하며 회사를 즐겁게 다닐 수 있을 거 같아 지원했습니다. 4. 브레인즈컴퍼니는 수평적인 업무환경을 가지고 있습니다. 직원들이 자유롭게 의견을 개진하고 업무에 적극적으로 반영하는 분위기를 갖고 있어요. 5. 일을 하면서 스스로 만족스러운 코드를 작성했을 때 성장했다고 느꼈습니다. 6. 제니우스가 국내를 넘어 세계1위 모니터링 솔루션 회사가 될 수 있도록 노력하겠습니다. 7. 브레인즈컴퍼니에 지원하시는 모든 분들을 진심으로 응원합니다! 1. 안녕하세요, 소프트웨어학을 전공하고 웹개발 부트캠프 및 인턴과정을 거쳐 브레인즈컴퍼니 개발4그룹에서 근무하고 있는 김영욱입니다. 2. 브레인즈컴퍼니 로그매니저의 기능개발 및 유지보수 작업을 맡았습니다. 개발은 프론트엔드와 백엔드를 모두 진행했으며, 다양한 기술스택들을 배우며 로그매니저의 기능 개선 및 CC인증을 위한 사전점검 작업들도 진행했던 한 해였습니다. 이후에는 Zenius AI의 빅데이터 및 AI 개발을 하게 될 예정입니다. 3. 풀스택 기술뿐만 아니라, 빅데이터 및 AI 기술을 활용해 차세대 기술을 개발하는 브레인즈컴퍼니의 채용공고를 접했습니다. 이 회사에서라면 많은 것을 배워 역량을 키우고 성장하며 일할 수 있겠다는 생각에 지원했고, 면접 끝에 첫 직장에 취업하게 됐습니다. 4. 모든 그룹원분들께서 잘 다독여주시고, 좋은 피드백을 줘서 지속적으로 배워가고 성장할 수 있는 회사 및 부서라고 생각합니다. 그룹의 상래님, 신후님, 천웅님, 태민님 모두 제게 좋은 피드백과 도움을 주고 계세요. 개선돼야 할 점과 공부해야 할 부분, 그리고 개발을 하면서 고쳐야할 습관들을 알려주셔서 점차 앞으로 나아갈 수 있어요. 5. 최근 카프카, ELK 등을 통한 로그 분산처리 작업을 하면서 배우는 점이 많았는데, 시행착오를 겪으면서 성장하고 있다고 느꼈고 매우 뿌듯한 시기를 보냈습니다. 6. 백엔드 작업에서 아직 배울 점들이 많고 이러한 것들을 모두 제 것으로 만들어 어느 부분에서 문제가 생기더라도 그것을 해결할 수 있을 정도의 실력있고 도움이 되는 개발자가 되는 것을 목표로 하고 있습니다. 7. 점점 발전하고 있으며, 배우고 성장함에 있어서 무궁무진한 가능성을 주는 회사라고 생각합니다. 본인이 성장을 하고 싶고, 실력을 발휘하고 싶다면 주저없이 입사 지원을 해보는것을 추천드려요! 1. 안녕하세요 개발 2그룹 인프라웹팀에서 근무하고 있는 김청룡입니다. 대학에서는 경영학을 전공했고, 브레인즈컴퍼니가 첫 직장입니다. 2. 인프라웹팀 안에서도 여러가지 업무가 있지만 신입인 저는 주로 고객사에서 요청하는 커스터마이징 보고서를 개발하는 업무를 하고 있습니다. 커스터마이징 보고서 개발업무에 대해서 간략히 말씀드리면, Zenius는 여러 인프라 장비 혹은 서버의 데이터를 수집하고, 사용자가 수집된 데이터를 보고서 형태로 볼 수 있도록 기본 보고서 기능을 제공을 해주고 있어요. 그 외에도 사용자가 원하는 양식(요구사항)으로 수집된 데이터를 볼 수 있도록 보고서를 개발합니다. 3. 국비지원 학원에서 여러 기업에서 나와 소개를 해줄 때 가장 인상깊었어요. 다른 기업들과 다르게 기업에서 어떤 사업을 진행하는지, 채용 과정은 어떻게 되는지 등 상세하게 알려줘서 이 회사에 입사를 하고 싶다면 알아야할 것들을 전달 받은 느낌이 있었어요. 또, 업무적으로 대용량 데이터베이스를 빠르게 처리하기 위해 어떻게 노력하고 있는지 궁금해 지원하게 됐어요. 4. 브레인즈컴퍼니는 무엇보다 사람이 좋은 것 같습니다. 모두 각자의 역할에서 책임을 다하고 최선을 다하는 모습, 그리고 질문을 할 때도 최대한 도움을 주려고 하는 모습에서 느껴졌습니다. 5. 코드를 작성하면서 여러가지 경우를 생각할 때입니다. 처음 코드를 작성할 때는 절차식처럼 그저 생각나는 대로 작성했는데, 입사 후 작성된 코드를 보고 어떻게 잘 나눠야 하는지, 성능을 고려하면서 작성했는지 등 다양한 고민을 하고 있는 제 자신을 볼 때 성장하고 있다고 느꼈습니다. 6. 다방면으로 역량이 있는 개발자를 목표하고 있습니다. 7. 사람 좋은 기업을 찾는다면 브레인즈컴퍼니입니다!
2022.12.09
1
2
3