지난 9월 14일 퇴근 후 나는 개발자들의 성지이자 IT 기업들의 성지 중 하나인 판교로 호다닥 향하였다.
바로바로 제 3회 Kakao Tech Meet 오프라인 참석자로 선정되어서 카카오 판교 아지트에 방문해야하기 때문이다🤩🤩
1층에서부터 마이 사랑 카카오 캐릭터인 춘식이가 반겨주었고(?) 그렇게 세미나 장소인 4층으로 향하였다.
오디로가야하지 오잉 하고 있었는데 인포에 계셨던 분의 도움으로 미리 발급받은 일일 웰컴패스 찍고 입장하기.
입장해서 준비된 다과랑 소소한듯 아닌듯한 기프트인 스티커도 잘 챙기고 세미나 듣기 시작📝
신뢰성 있는 카프카 애플리케이션 만들기, 변화무쌍한 트래픽에 대처하기, 다양한 어뷰징에 대응하는 CAPTCHA 기술이라는 세 가지 주제였다.
첫 신뢰성 있는 카프카 애플리케이션 만들기는 카프카라는 용어 자체도 처음 들어보고 해서 잘 와 닿지는 않았다.
찾아보니 카프카는 더 정확히는 아파치 카프카는 오픈소스 분산 스트리밍 플랫폼이라고 한다.
각 애플리케이션끼리 연결해 데이터를 처리하는 것이 아니라 한 곳에 데이터를 모아 처리할 수 있도록 중앙집중화 한다.
카프카를 사용하면 1:1 매칭 데이터 파이프라인은 한쪽에 이슈가 생기면 다른 쪽에도 영향을 미치는 점을 어느 정도 해결해준다고도 한다.
두 번째 변화무쌍한 트래픽에 대처하기는 제일 기대했던 순서였다.
현재 있는 유지관리 프로젝트에 있으면서 말이지..서버 운영과 관련된 부분을 처음으로 많이 듣고 직접 내가 해보기도 하는 부분이 있어서였다.
살짝쿵 말하자면 기능수정한 사항들을 WAS를 내리고 war파일 배포하고,
잘못 배포 되었으면 서버 로그 보고 수정하고 다시 WAS 내리고 올리고 해서 배포하는 작업 정도는 이젠 혼자서 하게 되었다.
(누군가가 보면 아 3년차면 그정도는 해야지 할 수도 있는데 이게 내가 유지관리에 있으면서 크게 배운 것 중 하나의 포인트랄까)
다시 본론으로 돌아와서 톡메시징파트에서 개발하고 계시는 분이 발표자셨는데 트래픽 원활히 어케 처리하지에 대한 고민을 항상 한다고 한다.
트래픽이 폭증하는 경우를 예측가능한 건 신년이나 명절, 월드컵 같은 이벤트들이 있을 때이다.
하지만 예측 불가능한 자연재해가 발생할 시에는 어떻게 해야 하지?
실 예로 16년도 경주 지진을 예로 들었는데 나는 기억은 안나지만 당시 카카오톡이 흔히 우리가 말하는 먹통 상태(카톡 메시지 전송 불가)였다고 한다.
왜?? 지진이 발생해서 재난문자가 가고 그러는 상황에 카카오톡이 먹통이지?? 라는 의문이 들 수도 있다.
재난문자와 카카오톡 메신저가 가는 원리에 답이 있었다.
지진과 같은 상황이 발생하면 전국민에게 재난 문자가 가는데 이 때 핸드폰이 깨어난다.
핸드폰이 깨어남과 동시에 카카오톡에서는 백그라운드로 로그인을 시도한다고 하는데,
전국민에게 문자가 갔으니 전국민이 백그라운드 로그인을 하게 된다.
그래서 모든 스레드가 백그라운드 로그인을 하는 데 사용하게 되면,
서버 과부하로 메시지 전송하는 데에 request가 실패하는 장애가 발생했다고 한다.
동일 장애가 발생하지 않게 하기 위해 내부에서는 부하 레벨에 따른 조치 자동화 시스템인 자동 대응 시스템을 구축하였다고 한다.
이 시스템으로 17년 포항 지진 발생시에는 장애 없이 정상적으로 카카오톡 메시지를 주고받을수 있었다고 한다.
또 다른 예로 2020년 신년 카카오톡 장애 발생을 설명하면서,
신년이라서 트래픽 증가를 예상하고 있었는데 자동 대응 시스템으로도 해결할 수 없었다고 한다.
로그인 요청과 같이 처리하는데 시간이 걸리고 무거운 경우 하나의 스레드에서 처리하게 하면 어떨까 하는 생각에서,
요청 별로 전용 도로를 만들어서 처리하게 하는 교통 관리 시스템을 생각했다고 하였다.
당장 처리할 필요한 트래픅을 먼저 처리해서 장애 발생을 최소화하는 것이다.
마지막으로 두 시스템 뿐만 아니라 증가하는 트래픽을 처리하기 위해서는 아키텍처 구성을 바꾸어서 더 정교하게 해야 한다고 하였다.
세 번째 다양한 어뷰징에 대응하는 CAPTCHA 기술은 카카오에서 자체 개발한 DKAPTCHA 개발동기와 과정에 대해 들을 수 있었다.
봇인지 사람인지 판단하는 CAPTCHA 기술의 일종으로 주 용도는 스팸이나 보안 위협 등 서비스 악용을 방지하는 것이라고 한다.
동기로는 카카오 서비스에 맞는 개발과 대중화된 CHAPTCHA와 그에 대한 Solver로 비용 절감의 효과를 기대하면서 만들었다고 한다.
과정에서 플랫폼 팀이라 여러 조직이 사용할 수 있게, 실 사용자도 친숙하게 사용할 수 있게를 친숙성을 제일 크게 생각했다고 한다.
그래서 시각장애인들을 고려한 음성 인식 지원도 되고 데이터로는 카카오톡의 지도 데이터를 활용하였다고 하였다.
OCR을 통해 인식률을 확인하고 지속적으로 고도화를 진행할 것이라는 향후 방향과 함께 마무리하였다.
이어지는 패널 토의에서나 세미나를 들으면서 내용 외적으로는 제일 공감되었던 두가지 중 첫 번째는 사용자 편의성을 크게 생각한다는 것.
유지관리 프로젝트에 있다 보니 어떤 데이터를 표출하더라도 이 정보가 더 필요할까 저 정보가 사용자들에게 더 필요할까를 생각하게 되고,
UI 적으로도 한눈에 보기 쉽게 이렇게도 수정하고 저렇게도 수정하다 보니 더 공감이 되었던 부분이었다✌️
또 다른 하나는 성능적인 부분을 크게 생각하는 것이다.
지금 사수분한테서 제일 많이 배우는 부분이면서 연차가 쌓일수록 고민해야 할 부분 중 하나라고 생각한다.
단순히 프로그래밍 하는 것이 아니라,
누가 봐도 이 함수나 변수가 뭘 하려는지 알 수 있게 네이밍하는것 부터 다른 개발자가 봐도 알 수 있게 주석달기 하는 것 까지.
또한 이전에는 JS나 자바 컨트롤러에 if문으로 주구장창 쓰기도 했는데 무차별적 if문 보단 간결하게 프로그래밍 하는 것도 연습중이다.
DB 쿼리의 경우 속도 개선하는것을 유지관리에 있으면서 신경쓰는 것 중 하나인데 꼭 필요한 경우에만 join하고 인덱스 걸어주고 등등등.
내용 외적으로 공감되는 두 가지를 보면서,
세미나의 내용을 들으면서 너무나 유익한 시간이었고 뭔가 내가 잘 가고 있는거구나 확신하기도 하면서,
언젠간 이런 기업에서 일하고 싶다는 나의 꿈이 한동안 가능할까? 라는 의문이었는데 의문이 아닌 해볼만 하겠다, 해보고 싶다는 느낌표가 되었다❕
'후기&기록✍🏻' 카테고리의 다른 글
8번째 슈코데이_토스 개발자와 함께하는 세미나 후기 (2) | 2023.10.28 |
---|---|
디지털 미래혁신대전 2023 방문후기 (4) | 2023.09.30 |
GOODBYE 2022, HELLO 2023. (0) | 2022.12.31 |
리눅스마스터2급 합격 후기 (1) | 2022.10.10 |
정보처리기사 합격 후기 (0) | 2022.08.13 |