1. 우아콘을 참여하게된 계기
평소 우아한 테크 메일을 구독하고 있는데 2024년에도 어김없이 우아콘을 개최한다는 소식을 받게되었다. 인프콘이나 유스콘 등 이런 기술 컨퍼런스에 관심이 많은 편이라 이번에도 신청을 하게 되었다. 지인에게 표를 받아 간 인프콘 외에 이런 랜덤 추첨식 컨퍼런스는 항상 떨어졌기 때문에 큰 기대를 하지 않고 있었는데 이번에는 운 좋게 참가자로 선정되어서 갈 수 있게 되었다.
이번 우아콘에서는 전과 달리 참여형 세션이 생겼는데 참여형의 경우 따로 구글폼으로 따로 신청을 받았다. 그중 소수의 멘티로 진행하는 집중형 멘토링을 신청했고 신청폼에는 신청사유와 질문목록 등을 작성하도록 되어있어 "오 이거 잘쓰면 붙겠는데?" 하는 생각에 정성들여 썼다. (이 전략이 통한 것 같다 ㅎㅎㅎ)
이런 컨퍼런스를 참여하면서 세운 나의 가장 큰 목표는 메타인지 높이기 였다.
연차가 쌓일수록 회사에서 오래 일할 수록 사람들은 현재 하는일에 매우 익숙해진다. 계속해서 개선하고 발전시키는 사람이 있는 반면 기술 부채에 대해서 점점 무뎌지고 익숙해지는 사람도 있다. 현재의 나는 후자가 되어가는 것 같아 이런 행사에 참여하는 것을 매우 뜻 깊게 생각하고 있다.
2. 주요 세션
이번 우아콘에서는 BE, FE, AI(데이터사이언스), PM 분야로 트랙이 나뉘어있었다. 개인적으로 AI, PM 쪽도 궁금했는데 BE 트랙들도 못지않게 궁금한 것들이 많아서 (kafka 내용을 다룬 세션들이 많았다.) 백엔드 트랙 (A) 에서 죽치고 들었다.
1) 오프닝 세션
오프닝 세션에서는 글로벌 환경에서 우아한형제들이 현재 어떤 것들을 하고 있고 어떤 방향으로 나아갈 것인지를 소개했다.
2) 배달의 민족 API Gateway
현재 다니고 있는 회사에서 완벽한 MSA 는 아니지만 어느정도 클라이언트에서 부르는 서버들이 여러개라서 API Gateway 사용의 대한 고민들이 있었다. 그래서 첫 세션부터 기대했는데 짧은 시간에 API Gateway 와 API Gateway Pattern 의 차이, 그리고 API Gateway 를 적용해야할 시점, 장단점 등을 알 수 있는 시간이어서 매우 좋았다.
요약
- 도메인 분할 때문에 API Gateway 가 필요하다고 생각하면 안된다.
- 프론트 서버에서 횡단 관심사 문제가 커질 때 API Gateway 가 필요하다.
- API Gateway 를 잘 적용하려면 API Gateway pattern 을 잘 알아야 한다.
3) Kafka 를 이용한 메세지 플랫폼에서 장애를 겪으며 아키텍쳐를 개선한 이야기
최근에 카프카 렉 100만건이 쌓여 장애로 이루어졌던 일이 있었다. 또한 FCM 을 사용하는데 믿고 쓰기엔 꽤나 500 대 에러가 자주 발생한다. 그런데 우형도 똑같이 FCM 을 사용하고 있고 그런 장애를 겪고 있어 retry 하는 횟수가 많다고 하니 동질감이 들었다.. ㅎㅎ
요약
- 장애 주요 원인은 Kafka Exactly once 전략을 사용하고 있어 지나치게 멱등성을 강제하고 있었다.
- 720 개의 파티션을 줄이기 위한 도전
- 병목이 되는 아웃라이어 제거한다. (FCM 경우 특정시간마다 레이턴시가 있어 계속해서 리밸런싱이 발생했다.)
- 동시 처리량을 증가시킨다. (동기 -> 비동기, 스레드풀 최적화, 데드레터 방식 사용)
4) Kafka 기반 대규모 동시성 최적화: Request-Reply 패턴 활용 사례
이 세션 또한 되게 흥미로웠다. Request-Reply 패턴을 사용하게 된 사례로 라이더 배달 반경을 예로 들었는데 관련 도메인 입장에서 흥미롭게 들었다. 주된 이야기는 카프카를 통해 발행된 이벤트들의 순서보장을 강제하기 위한 방법이었다. 꽤나 실무에 바로 적용해볼 법한 주제였다고 생각한다.
요약
- 분산락과 Request-Reply 를 비교했을 때 Request-Reply 가 구현은 조금 더 어렵지면 더 높은 확장성을 제공한다.
- 요청과 응답메세지의 처리를 통해 순서보장을 강제한다.
- 단일 Reply Topic 구성시 Requester 마다 유일한 컨슈머 그룹 아이디를 할당하여 응답 메세지를 수신한다.
5) DDD 그렇게 하는거 아닌데
시나브로 옷젖듯 팀에 DDD 를 전파를 가장 빠르게 실천할 수 있는 이야기들을 들을 수 있었다. 개인적으로 넥스트스텝에서 제공하는 강의들을 들으면서 익숙하게 들어왔던 이야기들이라 편하게 들을 수 있었다!
6) 우아한 데이터 허브. 일 200억건 데이터 안전하게 처리하는 대용량 시스템 구축하기
혜택, 회원, 커머스, 푸드가게 등등… 여러 서비스들에서 모아지는 데이터들이 분당 약 700만개라고 한다. 그리고 하루에 200억개의 데이터를 다루는 것의 대한 이야기를 했는데 정말 재밌는 (^^…) 환경이라고 생각했다.
이벤트를 통한 데이터 통함 -> 데이터 처리 -> 데이터 저장의 관련된 전반적인 내용을 다뤘다.
데이터 저장 부분에서 샤딩과 핫/콜드 파티션, SPOF 등의 문제점 등을 말해줬는데 이런 것들을 다뤄본 경험이 없다보니 이해하기가 좀 어려웠다. 이 세션은 나중에 영상이 공개되면 다시 한번 봐야겠다.
3. 멘토링 세션
제일 기대했던 세션이 멘토링 세션이었다. 소수의 멘티로 구성된다고 했는데 어느정도가 소수인지도 궁금했다. 행사 진행전에 오픈단톡방을 알려줘서 초대됐는데 멘티들이 엄청 많아서 소수여도 10명 이상이겠구나? 하고 예상했다. 준비한 질문들을 다 할 수 있을지도 걱정이 되었다.
집중형 멘토링은 6명 정도 앉을 수 있는 책상이 조그맣게 분리된 공간에서 1(멘토) : 5(멘티) 로 진행되었다. 진행 전에 쿠키와 차도 먹을 수 있도록 되어있어서 약간의 긴장(?)이 풀렸다. 시작전에 간단하게 각자 소개들을 했는데 나와 비슷한 연차분들과 10년차(!!) 분들도 있었다! 도대체 어떤 고민들이 있으시길래 멘토링 신청을 하셨는지 궁금했다.
권용근 멘토님과의 분위기는 매우 편안했다. 인상도 굉장히 좋으셨다. 멘토링은 40분으로 매우 짧은 시간동안 진행되어 가장 궁금한 1가지씩만 질답하니 시간이 다 되어서 조금 급하게 마무리 된 감이 있었다. 여러가지 질문들이 오갔지만 그 중 가장 인상깊었던 내용이 있다. 이건 나도 똑같이 궁금했던 건데
백엔드 n년차면 어느정도를 해야할까요?
라는 질문이었다. 거기서 멘토님께서는 한계를 두지 말고 자신이 생각하는 대로 성장해가라고 했다. 조급한 마음에 남들과 비교하며 이정도면 괜찮겠지? 라고 생각했던 날들이 조금 부끄러워졌다. 다시 한번 주위 신경쓰지 않고 딥다이브하고 싶다는 욕구가 불타올랐다.
여러명의 다양한 고민들을 들으니 이런생각도하는구나, 다들 똑같은 생각이구나 하는 마음에 새롭게 자극이 되기도 안심이 되기도 했다. 다양한 도메인과 연차를 가진 사람들의 고민을 듣는것도 매우 유익한 시간이었다.
4. 마무리
이런 행사에 가면 항상 활기찬 분위기와 배움의 대한 열정들을 느낄 수 있어서 너무 좋다. 각자의 경험과 고민을 공유하며 나와 다른 관점을 배울 수 있어 시야가 넓어진다는 점도 매우 좋다. 또 내가 저 연사자 자리에 서면 어떨까 하는 생각도 해보았다. (언젠가…)
또 이번에는 글또 스터디원들을 만나서 같이 밥도 먹고 얘기도 나눴는데 아무래도 회사에서는 말하기 어려운 얘기들을 편하게 나눌 수 있다는 점이 이런 네트워킹의 큰 장점이 아닐까 싶다.
이러한 컨퍼런스 & 네트워킹을 통해 다시 한번 내가 현재 위치한 자리를 알고 앞으로 무엇을 해나가야할지를 다짐할 수 있었다. 다음번엔 토스, 카카오, 네이버 컨퍼런스도 참여할 수 있었으면 좋겠다.
(이번엔 귀여운 스티커들이 없어서 좀 아쉬웠다.)
'나의 이야기 & 회고' 카테고리의 다른 글
삶의 지도 (5) | 2024.09.17 |
---|