반복영역 건너뛰기
주메뉴 바로가기
본문 바로가기
제품/서비스
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
블로그
열기
메인 페이지로 이동
블로그
기술이야기
블로그
최신이야기
사람이야기
회사이야기
기술이야기
다양한이야기
카프카를 통한 로그 관리 방법
메모리 누수 위험있는 FinalReference 참조 분석하기
김진광
2023.10.12
페이스북 공유하기
트위터 공유하기
링크드인 공유하기
블로그 공유하기
[행사] 브레인즈컴퍼니 ‘가을문화행사 2023’
Java에서 가장 많이 접하는 문제는 무엇이라 생각하시나요? 바로 리소스 부족 특히 ‘JVM(Java Virtual Machine) 메모리 부족 오류’가 아닐까 생각해요.
메모리 부족 원인에는 우리가 일반적으로 자주 접하는 누수, 긴 생명주기, 다량의 데이터 처리 등 몇 가지 패턴들이 있는데요. 오늘은 좀 일반적이지 않은(?) 유형에 대해 이야기해 볼게요!
Java 객체 참조 시스템은 강력한 참조 외에도 4가지 참조를 구현해요. 바로 성능과 확장성 기타 고려사항에 대한 SoftReference, WeakReference, PhantomReference, FinalReference이죠. 이번 포스팅은
FinalReference를 대표적인 사례
로 다루어 볼게요.
PART1. 분석툴을 활용해 메모리 누수 발생 원인 파악하기
메모리 분석 도구를 통해 힙 덤프(Heap Dump)를 분석할 때, java.lang.ref.Finalizer 객체가 많은 메모리를 점유하는 경우가 있어요. 이 클래스는 FinalReference와 불가분의 관계에요. 나눌 수 없는 관계라는 의미죠.
아래 그림 사례는 힙 메모리(Heap Memory)의 지속적인 증가 후 최대 Heap에 근접 도달 시, 서비스 무응답 현상에 빠지는 분석 사례인데요. 이를 통해 FinalReference 참조가 메모리 누수를 발생시킬 수 있는 조건을 살펴볼게요!
Heap Analyzer 분석툴을 활용하여, 힙 덤프 전체 메모리 요약 현황을 볼게요. java.lang.ref.Finalizer의 점유율이 메모리의 대부분을 점유하고 있죠. 여기서 Finalizer는, 앞에서 언급된 FinalReference를 확장하여 구현한 클래스에요.
JVM은 GC(Garbage Collection) 실행 시 해제 대상 객체(Object)를 수집하기 전, Finalize를 처리해야 해요.
Java Object 클래스에는 아래 그림과 같이 Finalize 메서드(Method)가 존재하는데요. 모든 객체가 Finalize 대상은 아니에요.
JVM은 클래스 로드 시, Finalize 메서드가 재정의(Override)된 객체를 식별해요. 객체 생성 시에는 Finalizer.register() 메서드를 통해, 해당 객체를 참조하는 Finalizer 객체를 생성하죠.
그다음은 Unfinalized 체인(Chain)에 등록해요. 이러한 객체는 GC 발생 시 즉시 Heap에서 수집되진 않아요. Finalizer의 대기 큐(Queue)에 들어가 객체에 재정의된 Finalize 처리를 위해 대기(Pending) 상태에 놓여있죠.
위 그림과 같이 참조 트리(Tree)를 확인해 보면, 많은 Finalizer 객체가 체인처럼 연결되어 있어요. 그럼 Finalizer 객체가 실제 참조하고 있는 객체는 무엇인지 바로 살펴볼까요?
그림에 나온 바와 같이 PostgreSql JDBC Driver의 org.postgresql.jdbc3g.Jdbc3gPreparedStatement인 점을 확인할 수 있어요. 해당 시스템은 PostgreSql DB를 사용하고 있었네요.
이처럼 Finalizer 참조 객체 대부분은 Jdbc3gPreparedStatement 객체임을 알 수 있어요. 여기서 Statement 객체는, DB에 SQL Query를 실행하기 위한 객체에요.
그렇다면, 아직 Finalize 처리되지 않은 Statement 객체가 증가하는 이유는 무엇일까요?
먼저 해당 Statement 객체는 실제로 어디서 참조하는지 살펴볼게요. 해당 객체는 TimerThread가 참조하는 TaskQueue에 들어가 있어요. 해당 Timer는 Postgresql Driver의 CancelTimer이죠.
해당 Timer의 작업 큐를 확인해 보면 PostgreSql Statement 객체와 관련된 Task 객체도 알 수도 있어요.
그럼 org.postgresql.jdbc3g.Jdbc3gPreparedStatement 클래스가 어떻게 동작하는지 자세히 알아볼까요?
org.postgresql.jdbc3g.Jdbc3gPreparedStatement는 org.postgresql.jdbc2.AbstractJdbc2Statement의 상속 클래스이며 finalize() 메서드를 재정의한 클래스에요. Finalize 처리를 위해 객체 생성 시, JVM에 의해 Finalizer 체인으로 등록되죠.
위와 같은 코드로 보아 CancelTimer는, Query 실행 후 일정 시간이 지나면 자동으로 TimeOut 취소 처리를 위한 Timer에요.
정해진 시간 내에 정상적으로 Query가 수행되고 객체를 종료(Close) 시, Timer를 취소하도록 되어 있어요. 이때 취소된 Task는 상태 값만 변경되고, 실제로는 Timer의 큐에서 아직 사라지진 않아요.
Timer에 등록된 작업은, TimerThread에 의해 순차적으로 처리돼요. Task는 TimerThread에서 처리를 해야 비로소 큐에서 제거되거든요.
이때 가져온 Task는 취소 상태가 아니며, 처리 시간에 아직 도달하지 않은 경우 해당 Task의 실행 예정 시간까지 대기해야 돼요.
여기서 문제점이 발생해요.
이 대기 시간이 길어지면 TimerThread의 처리가 지연되기 때문이죠. 이후 대기 Task들은 상태 여부에 상관없이, 큐에 지속적으로 남아있게 돼요.
만약 오랜 시간 동안 처리가 진행되지 않는다면, 여러 번의 Minor GC 발생 후 참조 객체들은 영구 영역(Old Gen)으로 이동될 수 있어요.
영구 영역으로 이동된 객체는, 메모리에 즉시 제거되지 못하고 오랜 기간 남게 되죠. 이는 Old(Full) GC를 발생시켜 시스템 부하를 유발하게 해요. 실제로 시스템에 설정된 TimeOut 값은 3,000초(50분)에요.
Finalizer 참조 객체는 GC 발생 시, 즉시 메모리에서 수집되지 않고 Finalize 처리를 위한 대기 큐에 들어가요. 그다음 FinalizerThread에 의해 Finalize 처리 후 GC 발생 시 비로소 제거되죠. 때문에 리소스의 수집 처리가 지연될 수 있어요.
또한 FinalizerThread 스레드는 우선순위가 낮아요. Finalize 처리 객체가 많은 경우, CPU 리소스가 상대적으로 부족해지면 개체의 Finalize 메서드 실행을 지연하게 만들어요. 처리되지 못한 객체는 누적되게 만들죠.
요약한다면 FinalReference 참조 객체의 잘못된 관리는
1) 객체의 재 참조를 유발 2) 불필요한 객체의 누적을 유발 3) Finalize 처리 지연으로 인한 리소스 누적을 유발
하게 해요.
PART2.
제니우스 APM을 통해 Finalize 객체를 모니터링하는 방법
Zenius APM에서는 JVM 메모리를 모니터링하고 분석하기 위한, 다양한 데이터를 수집하고 있어요. 상단에서 보았던
FinalReference 참조 객체의 현황에 대한 항목도 확인
할 수 있죠.
APM 모니터링을 통해 Finalize 처리에 대한 문제 발생 가능성도
‘사전’
에 확인
할 수 있답니다!
위에 있는 그림은 Finalize 처리 대기(Pending)중인 객체의 개수를 확인 가능한 컴포넌트에요.
이외에도 영역별 메모리 현황 정보와 GC 처리 현황에 대해서도 다양한 정보를 확인 할 수 있어요!
이상으로 Finalize 처리 객체에 의한 리소스 문제 발생 가능성을, 사례를 통해 살펴봤어요. 서비스에 리소스 문제가 발생하고 있다면, 꼭 도움이 되었길 바라요!
------------------------------------------------------------
©참고 자료
◾ uxys, http://www.uxys.com/html/JavaKfjs/20200117/101590.html
◾ Peter Lawrey, 「is memory leak? why java.lang.ref.Finalizer eat so much memory」, stackoverflow, https://stackoverflow.com/questions/8355064/is-memory-leak-why-java-lang-ref-finalizer-eat-so-much-memory
◾ Florian Weimer, 「Performance issues with Java finalizersenyo」, enyo,
https://www.enyo.de/fw/notes/java-gc-finalizers.html
------------------------------------------------------------
#APM
#Finalize
#제니우스
#메모리 누수
#Zenius
#FinalReference
#제니우스 APM
김진광
APM팀(개발3그룹)
개발3그룹 APM팀에서 제품 개발과 기술 지원을 담당하고 있습니다.
필진 글 더보기
목록으로
추천 콘텐츠
이전 슬라이드 보기
[행사] 근로자의 날 서프라이즈 이벤트 'CEO가 쏜다!'
[행사] 근로자의 날 서프라이즈 이벤트 'CEO가 쏜다!'
여느 때와 다르지 않은 월요일, 아니 5월 1일 근로자의 날 덕분에 다소 마음이 가벼웠던 지난 4월 29일, 브레인즈컴퍼니 본사 1층 앞에 특별한 차량이 도착했습니다! │본사 1층 앞, 특별한 커피차가 등장하다 본사 1층 앞에 등장한 차량은 예쁜 외관을 갖춘 커피차였습니다! 브레인즈 그룹의 대표인 선근 님께서 근로자의 날을 맞아 브레인즈컴퍼니와 에이프리카 구성원분들을 위해 직접 준비해 주셨는데요. 단순히 커피만 준비된 게 아니었습니다. 아메리카노, 카페라떼, 바닐라라떼 등의 커피류부터 리버레몬에이드, 핑크 리치 에이드, 샤인 머스캣 에이드, 뱅쇼 에이드와 같은 에이드류와 티! 그리고... 달콤하고 신선한 다양한 과일이 담긴 과일 컵까지 준비되어 있었습니다! '브레인즈 그룹 모두 모여라!'라는 팻말처럼, 커피차 이벤트 앞에 구성원분들이 삼삼오오 모이기 시작했는데요. 어떤 메뉴를 고를지 화기애애한 웃음과 목소리가 끊이질 않았습니다. "갑자기 1층에 커피차가 있어서 깜짝 놀랐어요. 선근 님이 앞치마 하면서 서빙해 주셨던 모습도 인상적이었습니다(웃음). 특히 음료에 붙어있던 '여러분이 있어 정말 든든합니다'라는 문장에 감동받았어요!" "1층에 커피차가 있어서, 근처에 무슨 행사하나 보다 했는데 저희를 위한 선물이었다니. 정말 감동했습니다. 촬영해서 친구들에게 보여주기도 했어요. 다들 깜찍하다고 하더라고요(웃음). 이렇게 소소한 이벤트를 열어주신 선근 님께 감사의 말씀 전합니다!" 등의 반응들로 감동과 즐거움을 엿볼 수 있던 시간이기도 했습니다. 또한 이날 선근 님께서는 브레인즈 구성원분들을 위해 손수 서빙과 더불어, 따뜻한 응원 메시지까지 함께 전달해 주셨습니다. 하지만 이날 커피차 이벤트는 단순히 음료와 간식만 준비된 것이 아니었는데요. │두근두근 '꽝 없는' 룰렛 이벤트! 바로 커피차와 함께 선근 님께서 준비한 '꽝 없는 룰렛 이벤트!'가 기다리고 있었습니다. 1등(5만 원 상품권)을 비롯해서 별다방 상품권, 츄파춥스 등이 선물로 준비되어 있었는데요. 모든 브레인즈 구성원분들에게 공평하게 룰렛을 돌릴 수 있는 기회가 주어졌습니다. 모두 두근거리는 마음으로 신중하게 룰렛을 돌리는 시간이 이어졌는데요. 룰렛 이벤트를 통해 여기저기서 터져 나오는 함성과, 아쉬움에 섞인 탄식, 그리고 상품권이 당첨되면 환호하는 소리까지 다양한 감정이 섞여있던 재미있는 시간이었습니다. "색다른 이벤트로 오랜만에 리프레시도 되고, 타팀들과 함께 룰렛 돌리기를 하면서 서로 얼굴 마주하고 인사도 가질 수 있는 시간이라 더 좋았어요. 이런 소확행 이벤트 덕분에 월요일 하루가 너무 즐거웠어요!" 라는 훈훈한 반응도 이끌어낼 수 있었습니다. 그렇다면 대망의 5만 원 상품권을 차지한 분은 두구-두구-두구! 누구일까요? 바로 인프라코어팀 성현진님이었습니다. 축하드립니다! 1등이 생각보다 빠르게 나오는 바람에, 선근 님께서는 '현금으로 쏜다!' 추가 이벤트를 진행해 주셨는데요. 무려 네 분을 더 추가로 선정했습니다! "근로자의 날을 미리 축하하는 이벤트를 통해 시원하고 맛있는 음료도 먹고, 예상치 못한 1등이란 이득까지 생겨 기분 좋게 일할 수 있었습니다. 오늘 정말 기억에 남는 하루가 될 것 같아요. 재밌는 이벤트를 열어주셔서 감사드립니다!" "행여나 5만 원 권 상품권이 없을까 봐 점심을 먹고 바로 달려왔는데, 보람이 있었네요! 좋은 이벤트에 5만 원 상품권까지! 오늘 커피차 이벤트 덕분에, 의미 있는 하루를 보낼 수 있었습니다. 이 5만 원은 좋은 곳에 쓰겠습니다(웃음)." 이렇게 추가 1등 당첨자분들의 벅찬 소감도 들어볼 수 있었습니다. 이번 'CEO가 쏜다!' 이벤트를 통해 직원들에게 단순한 감사의 표시를 넘어서, 브레인즈 그룹의 핵심 가치 중 하나인 '행복하게 일하는 환경'을 위해 실천하려는 모습이 엿보였던 행사였습니다. 선근님의 ❤ 그리고 무엇보다 직원들의 행복과 만족을 최우선으로 생각하는 선근 님의 따뜻한 마음도 직접 느낄 수 있던 시간이었었는데요, 앞으로도 이러한 활동을 통해 모두가 행복하게 일할 수 있는 환경'을 만들고자 합니다. 브레인즈컴퍼니의 다음 이야기도 기대해 주세요!
2024.05.02
꼭 알아야 할 비즈니스 매너 세 가지는?!
꼭 알아야 할 비즈니스 매너 세 가지는?!
# 함께 일하고 싶은 동료 유형 Top5 # 성격유형검사로 알아보는 나와 맞는 동료 유형 # 직장 상사 유형별 대처 방법은?! SNS나 커뮤니티를 통해 자주 접할 수 있는 인기 클립의 주제입니다. 내가 '어떤 일'을 하는지 못지않게 내가 '어떤 사람들'과 함께 일하는지가 점점 더 중요한 요소로 자리 잡고 있습니다. 모두가 생각하는 좋은 상사와 동료의 필수조건이자, 나 스스로도 직장에서 좋은 평가를 받을 수 있는 기본 중의 기본이 바로 '비즈니스 매너'입니다. 비즈니스 매너와 에티켓을 지키는 것이 한편으로는 쉽게 느껴지지만, 의외로 어렵고 막막할 때도 많은 것이 사실입니다. 처음 직장에 들어와 눈치로 익혀둔 '눈칫밥(?)'과, 틈틈이 어깨너머로 익혀둔 스킬들을 기반으로 회사 생활을 하지만, 가끔씩은 '이런 질문까지 해도 될까?' 혹은 '내가 지금 어떻게 말하고 행동하는 게 맞을까?'하는 생각이 들기도 하는데요. 이러한 고민들을 해결하고, 조금 더 수월한 직장 생활을 만들기 위한 '비즈니스 매너 세미나'가 지난 4월 8일 진행되었습니다. 한국 CS 경영연구소의 도영태 이사님을 초청하여 진행된 이번 세미나에서 나온 내용 중, '꼭 알아야 할 비즈니스 매너와 에티켓 세 가지'를 함께 알아보겠습니다. 효과적인 의사소통을 위한 방법, BMW?! 꼭 알아야 할 비즈니스 에티켓 첫 번째 직장 내 동료들과 소통할 때에는 꼭 지켜져야 할 기본 언어 예절이 있습니다. 특히 업무를 위해 모인 직장에서는 내가 하는 말이 성과와 직결되고, 잘못된 언행은 오해를 부를 수 있기에 올바른 언어 예절은 무엇보다 중요한 비즈니스 요소입니다. 따라서 효과적인 의사소통을 위해서는 Body(자세)-Mood(분위기)-Word(말의 내용) 줄여서 B.M.W 소통 방법을 체크해 보고 실행 보는 것이 중요합니다. 이날 세미나에서는 브레인저 분들과 BMW 소통 방법을 바탕으로 1:1 역할극을 진행했는데요. 짧은 시간이었지만 이 과정을 통해 서로 존중하는 대화의 기본인 상대방을 공감하는 것이며, 이를 바탕으로 소통하는 것이 얼마나 중요한지 체감할 수 있었던 의미 있는 시간이었습니다. 보고서에 꼭 담아야 할 핵심 키워드! 꼭 알아야 할 비즈니스 에티켓 두 번째 직장에서의 '문서 작성'은 원활한 의사소통만큼이나 중요하고 필수적인 기본 소양입니다. 회의록부터 기획서, 보고서, 견적서, 작업 결과물까지. 직장 생활의 처음과 끝이라고도 할 수 있죠. 물론 문서 작성이 그 사람의 모든 능력을 평가하는 유일한 요소는 아니지만, 직장 내에서 좋은 평가를 받고 성과를 만드는 중요한 요소인 것은 확실합니다. 그렇다면 보고서에 담겨야 할 핵심 키워드는 무엇일까요? 기본적으로 총 5가지 핵심적인 키워드가 들어가야 하는데요. 이 중에서도 '결론(핵심), 근거(논리적 장치), 어떻게(방향성)' 이 3가지 필수 요소는 꼭 들어가야 합니다. 첫 단계에서 전체 내용을 요약하면서도 핵심적인 메시지를 명확하고 간결하게 전달해야 하며, 이를 보완하기 위해서는 신뢰할 수 있는 데이터와 통계/사례연구/전문가 의견 등을 포함시켜야 하죠. 또한 제안된 결론을 실제로 구현하기 위한 구체적인 계획을 설명할 수 있어야 합니다. 이메일 잘 쓰는 7가지 수칙! 꼭 알아야 할 비즈니스 에티켓 세 번째 이메일은 업무를 진행하는 데 있어 매우 중요한 커뮤니케이션 툴 중 하나입니다. 출근하자마자 '메일함 확인'으로 업무를 시작하는 직장인분들이 많으실 거라 생각합니다. 내가 작성한 보고서를 첨부하여 보고하거나 공유할 때, 협업 부서와 프로젝트 관련 내용을 공유할 때, 그리고 다른 회사 직원들과 소통할 때 등 정말 다양한 상황에서 메일이 사용되는데요. 이렇게 직장인들의 귀와 입이 되어주는 업무 메일을 잘 쓰는 방법을 7가지로 나눠볼 수 있습니다. 특히 4번에 '제목 부분은 심사숙고해서 써라' 항목 같은 경우는 용건을 정확히 밝히고 인사말을 쓰지 않은 것이 중요합니다. 예를 들어 '안녕하세요. 영업팀 홍길동입니다'라는 제목은 지양해야 하죠. 이 외에도 리스트에 있는 부분들을 꼭 참조하셔서 효과적으로 이메일을 활용하시기 바랍니다. 기본적인 커뮤니케이션 방법부터 보고서와 이메일 작성 방법, 그리고 그 외에 그동안 놓치고 있었던 디테일한 직장 생활 팁까지! 이번 '비즈니스 매너와 기본 소양' 세미나는, 직장인으로서의 기본 매너를 익힐 수 있는 시간이었습니다. '동료와 함께 협력하여 성과를 만드는 것'이 더욱 중요해지는 가운데, 기본 비즈니스 매너를 갖추도록 노력하면서 아래의 질문을 끊임없이 스스로 해보는 것도 중요하다고 생각합니다. 지금 나는 함께 일하고 싶은 좋은 동료인가? [ 붙임 ] 브레인즈컴퍼니는 교육비/자격증 취득 지원, 외부 강사 초빙 강연, 사내 도서관, 세미나 진행 등 직원들의 역량을 높이기 위한 다양한 지원을 하고 있습니다. 또한 전 직원 해외연수, 해외 연수단 파견, 인센티브 제도 등 다양한 제도를 운용하며 함께 성장하고 보람을 느낄 수 있도록 노력하고 있습니다.
2024.06.21
기획부터 설계, 개발, 유지보수까지, 다재다능한 인재를 찾고 있어요!
기획부터 설계, 개발, 유지보수까지, 다재다능한 인재를 찾고 있어요!
브레인즈컴퍼니 조직에는 ‘솔루션 사업’을 책임지는 팀이 있습니다. 다소 낯선 이 팀은 고객이 원하는 가치를 제공하기 위해 끊임없이 솔루션을 분석하고, 직접 발로 뛰며 인사이트를 도출해내고 있다는데요. 이번 인터뷰에서는 솔루션 사업팀이 하는 일, 일하는 방식, 원하는 동료상 등에 대해 들어봤습니다. PM으로서 다양한 경험과 넓은 스펙트럼을 보유하고 싶은 분이라면 주목해주세요! ---------------------------------------------------------------------------- Q. 안녕하세요, 종혁님. 먼저 자기소개 부탁드립니다. 안녕하세요, 원종혁입니다. 저는 대학원에서 컴퓨터구조를 전공해 자연스럽게 IT회사에 입사하게 됐고, XML-EDI 솔루션 개발을 시작으로 수많은 프로젝트에서 개발, PL, 설계, PM 역할을 했어요. 현재는 전략사업본부 솔루션사업팀에서 IT인프라 솔루션 사업을 책임지고 있어요. 고객이 원하는 솔루션을 찾아서 제안하는 업무의 특성상 다양한 영역에서 개발했던 경험이 많은 도움이 되고 있습니다. Q. 브레인즈컴퍼니에 합류하게 된 계기나 동기가 궁금합니다. 2000년 초반, 당시만해도 SW업계는 매일 야근의 연속이었는데 브레인즈컴퍼니는 야근 수당을 준다고 해서 "좋다구나!"하고 입사를 했죠. 그리고 사실 집과 사무실이 너무 가까워서 좋았어요. (웃음) 진행하던 프로젝트를 기다리는 고객을 위해, 또 같이 개발하는 동료와 의리를 위해 계속 다니다 보니 벌써 16년이라는 시간이 흘렸네요. Q. ‘솔루션 사업’이라는 직무가 흔한 직무는 아닌 것 같은데요. 직무와 함께 현재 맡고 있는 업무에 대해 구체적으로 설명해주세요. 솔루션 사업팀은 일반적인 IT 기업에서 말하는 ‘PMO (Project Management Office)’ 혹은 ‘공공사업팀’, ‘kt사업팀’ 정도로 이해해 주시면 좋을 것 같아요. 구체적으로는 제니우스(Zenius) 패키지를 기반으로 고객 요구에 맞는 새로운 솔루션을 기획/분석/설계/개발/검수/유지보수를 담당하는 부서입니다. 그리고 새로운 솔루션이란 Infra에 기능을 추가하는 사업이 아니라, 새로운 Infra 추가 혹은 서로 다른 Infra를 결합하는 수준입니다. 예를 들어, 고객 요구사항이 고객의 유저 사이트에 위치한 네트워크 장비를 모니터링 하는 것일 때, 고객과 유저는 파이어월로 단전돼 기존의 제니우스로는 구현할 수가 없습니다. 새로운 솔루션은 유저 사이트에 NMS 콜렉터를 새로 개발해 NMS 매니저와 데이터를 주고받는 것입니다. 그리고 솔루션사업팀의 또 다른 역할은 Product Discovery부터 Product Delivery까지 전 과정에서 발생하는 문제를 스마트하게 해결할 수 있어야 하고 기획 단계에서 전체를 볼 수 있어야 합니다. 시급한 일 위주로 처리하다 보면 기업 자원 낭비가 심해지기 때문이죠. Q. 이번 기회를 빌려 제니우스(Zenius)에 대해 자랑해본다면? 관제 솔루션은 많이 있습니다. 이 시간에도 새롭게 출시되고 있겠죠. 하지만 20년 이상 IT인프라 환경 변화에 발 맞춰 관제솔루션을 발전시킨 제품은 거의 없죠. 제니우스(Zenius)는 계속 진화하고 있다는 것이 큰 자랑거리입니다. 그리고 제가 직접 기획하고 도입했던 솔루션도 제니우스(Zenius)의 발전에 기여했다는 성취감을 느낍니다. Q. 솔루션사업팀의 일하는 방식은 무엇인가요? 일하는 방식은 직접 사람을 만나는 것입니다. 먼저 고객을 만나 요구사항을 듣습니다. 그 다음, 필요한 부분이 무엇인지 끊임없이 분석하고 솔루션을 도출하기 위해 많은 사람을 만나고, 질문하고 답하고, 결정을 내립니다. 그리고 의사결정을 위해 경영진, 담당 부서 관계자 등 다양한 이해관계자를 적절한 논리로 설득합니다. 다시 말해, 발로 뛰고 사람을 만나고 공부를 하고, 다시 발로 뛰고 사람과 얘기하고… 인사이트를 도출할 때까지 계속 반복합니다. Q. 현재 솔루션사업팀 프로젝트 리더를 채용 중인데요. 어떤 동료가 합류했으면 하나요? 고객의 요구사항에 대한 분석능력과 연구소와 원활한 소통을 위해서 개발 경력이 필요합니다. 자바 등 최소 개발 경력 2년 이상이 요구되고, 내/외부 프로젝트에 PL 또는 PM 역할을 할 수 있어야 합니다. 그리고 동료에게 필요한 지식을 전파하고 협업을 즐기는 분이면 좋겠습니다. Q. 새로운 동료가 합류한다면, 어떤 업무를 하게 되나요? (개발) 경험에 따라 다소 차이가 있지만, 브레인즈컴퍼니의 제품 분석이 업무의 시작이 될 것으로 보입니다. 제품 분석이 완료된다면 앞서 이야기했던 방식으로 업무에 투입될 것입니다. 물론 “제품 분석 끝났으니, 내일 ○○사이트 출동!”은 아닙니다. Q. 서류와 면접에서 각각 어떤 점을 중점적으로 살펴보세요? 지원자들에게 합격할 수 있는 꿀팁을 알려주세요! 먼저 서류에서는 참여한 제품 및 프로젝트에서의 역할에 대한 상세한 설명, IT 직군 종사자로서의 관심사, 희망하는 업무 분야 등이 기술돼 있었으면 합니다. 면접은 개발 참여 제품 및 수행한 프로젝트에 대한 이해도가 먼저입니다. “□□□ 제품 개발에 어떤 위치였나요?” 혹은 “OOO이 무슨 프로젝트였나요?”라는 질문에 “시키는 것만 했어요. 하지만 △△△은 잘합니다”라는 접근 방식으로는 좋은 결과가 어렵다고 봅니다. 본인이 수행했던 업무는 기본이고, 참여했던 제품 및 프로젝트에 대한 이해도 필요하다고 봅니다. Q. 솔루션사업팀에서 일하게 된다면, 어떤 성장을 기대할 수 있을까요? PO나 PM으로서 프로젝트의 기획/요구분석부터 검수까지 전반적인 영역에서 다양한 경험을 할 수 있으며, 개인 능력에 따라 달라지겠지만 다양한 경험을 토대로 보다 넓은 스펙트럼을 보유하리라 생각됩니다. 프로덕트 관점에서 기존 시장에서 포착하지 못한 새로운 가치를 발굴할 수 있는 능력을 키울 수 있습니다. Q. 브레인즈컴퍼니에서 가장 자랑하고 싶은 복지는 무엇인가요? 아침식사요. 10년 전 쿠킹 호일에 쌓여 검정 비닐에 담겨있던 김밥이 현재는 다양한 메뉴로 제공되면서 아침식사가 여전히 고픈 배를 달래주고 있어요. 그리고 좋은 동료가 최고의 복지라고 하죠. 어려운 일을 만나면 기꺼이 머리를 맞대고 방법을 찾아주고, 일이 아무리 많아도 중간에 커피도 마셔가면서 얘기 나눌 수 있는 동료들이 가장 자랑하고 싶은 복지입니다. Q. 마지막으로 지원자들에게 하고 싶은 이야기가 있다면, 자유롭게 기술해주세요. 고객에게 가치를 제공한다는 것, 쉬운 일이 아닙니다. 제니우스(Zenius) 공부도 해야 하고 고객이 무엇을 요구하는지 알아채는 능력도 필요하고 다른 팀과 스커드 팀을 통해 개발도 직접하기도 합니다. 개발과 설계 두 분야 다 경력이 있어야 새로운 솔루션을 찾을 수 있어요. 그래서 개발 잘하는 개발&설계자가 아니라 개발'도' 잘하는 개발&설계자가 되고 싶다면, 도전하세요!!!
2022.10.14
일잘러가 바라보는 브레인즈컴퍼니
일잘러가 바라보는 브레인즈컴퍼니
다음 인터뷰를 고민하던 차에 브레인즈컴퍼니에서는 누가 일을 잘할까?라는 궁금증이 생겼습니다. 여러 브레인저들에게 물어본 결과, 개발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
다음 슬라이드 보기