한국에 없던 서비스, 세계에 없던 지표: 👋 우리 출시했어요
들어가기에 앞서:
프로덕트 설명 - Phylaxis WAAP (디스콰이엇)

(3일차에 쌓인 에너지 드링크)
안녕하세요! 저는 필락시스에서 뭔가.. 많은 걸 하고 있는 한상엽이라고 해요.
우리가 드디어 8개월만에! 드디어 출시를 했어요.
그래서 지난주에 무얼 했는지 일기를 끄적여보고자 글을 한 번 써봤어요.
첫째날: 우왕 통계 좌왕 로그
저는 지금껏 무언갈 만들면 항상 NoSQL을 사용해왔어요.
아, 그런데 저희 프로덕트의 웹 요청 로그는 ClickHouse라는 SQL을 사용해요.
왜냐하면, NoSQL보다 SQL이 Read 작업을 훨씬 잘 하거든요.
심지어 ClickHouse의 카피는 "Query billions of rows in milliseconds"일 정도로 읽기 쿼리를 빠르게 수행해요.
한 번 보실래요?

대박이죠, 10억7백만개(11.75GB)데이터를 0.823초만에 처리했대요.
아무튼, 그래서 저희는 로그를 저장할때 SQL을 써요.. 그런데, SQL을 쓸 줄 모르는 제가 웹 콘솔 백엔드 개발을 맡고 있다 보니 정말 우왕좌왕했어요. 처음엔 그냥 ORM을 쓰면 평소처럼 만들 수 있지 않을까? 하는 기대가 있었는데, ClickHouse는 마땅한 ORM이 없더라고요.. 성능도 내야하고..!
아, 그래서 SQL을 처음 부터 심화과정으로 사용하게 됐어요. 뭔가 뭔가.. 유저 입력에 따라 데이터를 필터링 하는건 좋은데, 이 요소가 시간이나 다른 변수가 많은 값이 대상이다 보니 머리가 터질 것 같더라고요.

짠,, 아마 더 세세한 필터를 할 수 있게 될 거에요,.. 백엔드에는 해놨으니까, 프론트엔드로 옮길 일만 남았네요!

그리고, 밤에는 네트워크 연동 작업을 했어요.. 그리고 이 작업은 그 다음날까지 이어진답니다..!

(밤에 보니까 등대같아서 한 장)
둘째날: 예상치 못한 버그가..!
연결이 불안정하고, 10개의 요청이 있다면 그 중 1개정도가 유실되는 버그가 발견되었어요.
이 버그는 특정 조건에서만 발생되어서 찾지 못했나봐요.
6시간정도의 삽질 끝에, 결국 저희 서버에서 원본 서버로 요청을 보내는 부분을 갈아엎기로 결정했어요.

(코드 물갈이의 흔적)
이 날은 우리 멤버 전체가 틀어박혀서 사무실에서 밤을 샜던 것 같아요.
셋째날: 저 프론트 할 줄 모른단 말이에요 ㅠㅠㅠ

진짜 탈출 하고 싶었어요.
저 프론트는 잘 할 줄 모른단 말이에요 ㅠ-ㅠ
그래도 악으로 깡으로..!


그래도 열심히 열심히... 만들었어요... 값을 Expression으로 변환해야하고, 값 유형이나 구분자에 따라 인풋 박스가 달라야 해서 많이 애를 먹은 것 같아요. 유형이나 구분자에 따라 값의 타입이 바뀌기도 하고..!!!
아.
셋째날: 서버 작 작업 작 업

어머, 날이 밝았네요. 분명 난 한 시간도 못 잤는데, 또 일을 해야겠죠?
자, 한 번 해봅시다! 첫번째 작업은 서버에 인입된 새 네트워크 활성화하기!
오.. 업링크가 n*10Gb/s 단위라서 그런지.. 설정도 신기하고 어렵네요.
5대의 서버에 순조롭게 적용 해갈때 쯤...
아니.. 잠시만요 선생님... 가장 중요한 나머지 8대의 서버의 포트가 활성화가 정상적으로 이루어지지 않잖아..?
이상하게도 관리 툴인 Lifecycle Controller에 진입할 때에는 정상적으로 포트가 활성화 되는데, OS로 진입을 할 때에만 작동이 안돼요. 심지어 서버의 System Settings의 Network쪽을 뒤져봐도 포트의 상태가 "Disabled"? 어... 어라...
이대로 똑같은 짓만 한 4시간 빙글빙글.. 에라 모르겠다 싶어서 그냥 네트워크를 올리는 설정을 적용하고,
"sudo systemctl restart networking" ( < 대충 네트워킹 관련 서비스 재시작 )
"Port 38 Up" 어라..? 이게 살아나네..?
그리고 바뀐 아이피에 맞게 내부 망 구성을 다시 해주고, 연계된 서비스들의 설정을 바꿔주고..!
또다시 찾아온 새벽..
넷째날: 자, 내일이면 출시다!
모든게 잘 적용됐고, 취약점 공격에 대한 방어나, DDOS 방어, 그리고 리소스 최적화도 완벽했고, SEO도 잘 된다..!
우선 친한 친구의 웹사이트에 적용해보기로 했어요.
마침, 무거운 Wordpress를 사용하고 있었고, 그 중에서도 엄청나게 무거운 Template를 사용하고 있더라고요. (한 번 웹사이트에 접속하면 요청이 140개)
어...근데,.. 웹사이트가 깨지는데요 CTO님..?
30분정도 뚝딱뚝딱 하시더니 이런 말씀을 하시더라고요.
"이거 다시 해야겠는데? 이 부분은 처음부터."
저는 말했죠.
"어... 내일 출시인데?"
그리고 돌아온 한 마디.
"음.. 그래도 해야지?"
이대로 우리는 또 밤을 새는 것을 확정지었어요.
진짜 모두가 엄청나게 열심히 일했죠. 현우님은 영업 관련 플래닝으로 바빴고,
저와 수혁(CTO)님은 버그를 잡기에 바빴어요.
다섯째 날: .
끝이 보이지 않는 개편 작업... 그리고 아침 5시 30분이 될 때 즈음,
"아 됐다!!"
진짜 어떻게 했는지 아직도 모르겠는데, 어떻게든 해냈어요.
그리고, 릴리즈.
8개월 동안의 우여곡절, 그리고 힘들었던 시간들이 주마등처럼 스쳐지나갔어요.
우리는 서로 "수고했다"는 말을 하고, 집에 가거나, 사무실에서 잠을 청했어요.
그런데 말이에요, 그 수고했다는 말을 하고, 지난 8개월을 돌아보는 시간이 정말 짧지만
정말 많은 생각이 들게 하더라고요.
앞으로 난 뭘 해야할까.
이제 좀 쉬고싶다.
뭐 이런 생각들..?
그래서 좀 쉴까 싶었는데,
아 이제 팔아야죠. 그럼요. 휴일이 어디에 있겠습니까...
모두모두 화이팅!
아 맞다, 혹시 우리 사무실 놀러오실래요?
멋진 서버실 구경 시켜드릴게요 :)
Kakao: syupace
Mail: me@iv.pe
재미있게 보셨다면: