글또 10기를 시작하며

김경환·2024년 10월 13일

글또를 다시한번 신청했다.

지난번엔 10중에 5번정도 작성했었다. 10번 모두 제출한다는 현실적인 마음가짐 대신에, 이번에는 8번 내는 것이 목표다. 사실 글을 못쓴다는 핑계로 개인적으로도 업무적으로도 글을 많이 안쓰는 편이라 이런부분이 매우 부끄럽다. 하지만 항상 반성만 하는편이라 이번에는 조금이라도 나아지는 모습을 보여주고싶다.크게 5가지 정도의 큰 주제를 가지고 있고, 이번에는 이중에서 골라서 써보고자 주제만 미리 나열해보았다.

코틀린

  첫번째는 코틀린이다. 코틀린은 나에게 있어 현업에서 주력으로 사용한 6번째 언어다. (Java, javascript, scala, C#, python, kotlin 순) Java 를 사용하다가 새로운 JVM 언어가 나왔다길래 써본것이 시작이었다. 이전에 scala, groovy 등 언어를 사용해보았기 때문에, 새로운 JVM 언어라는 사실은 나에게 충분히 흥미로운 주제였고, (지금은 아니지만) 초기에는 java 와의 호환성도 좋았기 때문에 넘어가기도 매우 편했다. 현재로 개인적으로도 팀적으로도 Kotlin 을 매우 주력으로 사용하고 있다.
 우리팀에는 신기하게도 Java 코드가 존재하지 않고, 모두 Kotlin 그리고 데이터 처리를 위한 python 코드만 있다. 이제 데이터처리 중 spark 도 pyspark 에서 Kotlin 을 사용한 kotlin-spark-api 로 넘어 가기로 결정했고, 하나씩 진행중에 있다. pyspark 에서 kotlin-spark-api 로 넘어가게된 이유로 작성해볼 수 있으면 좋겠다.
 그리고 coroutine 도 굉장히 많이 쓰는 편이다. 초기 가장 많은 트래픽을 받는 서버가 이미 webflux + coroutine 조합을 사용하고 있었다. 나는 이전에 webflux + reactor 를 사용했다가 엄청나게 고통을 받다가, kotlin 을 쓰게되면서 일부를 coroutine 으로 변경한 경험이 있다. 이 경험덕분에 다음은 꼭 coroutine 으로 만들자 했었다. 이미 팀에서는 coroutine을 깊게 사용하고 있었고, 덕분에 coroutine에 대해 많은 경험을 할 수 있었다. 이런저런 경험으로 현재 kotlin을 매우 즐겨쓰고, 애정을 가지고 있어서 이번기회에 꼭 1번은 kotlin 에 대해서 글을 써보고자 한다. 마지막으로 정리해보자면 아래와 같은 주제가 있을 것 같다.

  • Kotlin
    • corountine 깊이 파헤치기
    • webflux 의 Mono/Flux를 coroutine/flow 로 버무리기
    • suspend function 동작
    • Dispatcher 동작 원리
    • kotlin-spark 소개와 넘어가게된 이유
    • kotlin 문법 (extension function, delegate, lazy, inline...)

엔지니어링

  이 주제는 당연하게도 개발자라면 쓸 수 있는 주제들이다. 현재 팀에 들어오면서 여러모로 새로운 기술들을 빠르게 접하고, 대규모 트래픽도 처음으로 경험할 수 있었다. 광고 특성상 트래픽이 엄청나게 많은 편이다. 현재 우리 팀은 회사 전체 광고 트래픽의 작은 부분만을 담당하고 있지만, 그럼에도 불구하고 증가하는 트래픽과 성능 대응은 나에게 꽤 도전적인 과제로 느껴진다.주변의 좋은 동료분들이 이미 많이 겪은 문제라 여기저기 도움을 청하곤 한다. 수많은 트래픽과 더불어 아주 짧은 lateny 를 요구받기도 해서 진짜 1ms가 하나하나 소중하게 사용한다. 10ms가 늘어난다고 해서 사용하지 않기로한 인프라들도 존재한다.
  팀 내에서 사용자 이벤트를 직접 연동하기도 한다. 초당 수만개의 내부 사용자들의 이벤트를 실시간으로 처리해서 광고에 사용하기 때문에, kafka도 열심히 쓰고 있다. 이러한 주제도 10기에는 작성해보고 싶다.

  • 엔지니어링
    • 광고 서버의 특징과 대응
    • 초당 10만 데이터 처리하는 방법
    • kafka stream
    • coroutine vs virtual thread 그리고 버무리기
    • warm up, hpa, sre ..
    • 분산 트레이싱

데이터

  갑자기 뜬금없이 나온 데이터다. 최근에 데이터 엔지니어링이 아니라 데이터분석/데이터과학에 관심을 갖고 살펴보고 있다. 관심자체는 오래전부터 가지고 있었지만, 최근에 조금더 적극적으로 살펴보고 있다. 이유는 결국 업무에 필요해서인데, 팀에 이미 ABT 도구가 있고, 이를 통해 ABT 와 MAB 등을 적용하고 있다. 내가 직접 여러부분을 만들고 수정했지만, 통계적이나 데이터관점에서 만든 것이 아니라 아쉬운 부분이 있었다. 이부분이 업무를 진행하면서 가끔 생각났고, 팀 리드가 되면서 이런 부분에 대해 조금더 적극적으로 고민해야할 필요성을 느끼게되었다.
  이제 엔지니어링적인 부분 뿐만이 아니라 만들고 있는 서비스/상품에 효율 방향성에 대해서도 고민이 필요해졌기 때문이다. 데이터도 많이 보고, 지표도 보기는 보는데, 이것을 어떻게 활용해야할지 잘 모르는 상황이다. 최근에 머신러닝을 활용한 웹 최적화로 팀원분과 스터디를 했었다. 통계기반이 너무 부족한 나를 대신해서 팀원분이 통계에 대해서 많이 파악하고 알려주어서 대체적인 방법론에 대해서는 익힐 수 있는 시간이었다. 이에 더해 기본적인 통계공부와 인과추론에 대해서도 공부하고 싶고, 이것도 써볼수 있는 기회가 되기를 바라고 있다.

  • 데이터
    • 인과추론 스터디
    • ABT 관련 내용들 (bucket, variant, p-value..)
    • MAB (e-greery, thompson sampling, UCB, contextual MAB)

팀 매니징

   벌써 팀을 맡은지가 2년이 다되간다. 팀 구성원도 팀을 맡았을 때 보다 2배이상 늘었다. 규모가 늘은 만큼 업무 영역도 커지고 있고, 팀을 맡는 책임감도 커진다. 팀을 운영하는 방식도 여러모로 고민이 많고 이중에 1on1, 피드백에 대한 생각이 제일 많다. 최근 실무 비중이 증가하면서 팀 매니징에 충분한 주의를 기울이지 못해 반성하고 있다. 1on1, 피드백에 대해서 여러모로 고민을 하고 있고, 가장 중요하게 생각하는 것은 팀 분위기(문화) 이다. 개발문화와는 조금 다른데, 개발적인 부분이 아닌 전체적으로 팀이 일하는 문화에 대해 고민이 많다. 아직 팀이 안정적인 상황으로 다다르지 않았기 때문에 개발프로세스나 파트 이런 부분에 대해서도 고민이 많다. 내 스스로의 마음가짐도 되돌아 보고, 몇차례 진행했던 내/외부 채용을 통한 여러가지 생각들도 써보고 싶다. (가능할려나..싶기도 하고)

  • 팀 매니징
    • 1on1 방법론
    • 피드백에 대한 생각
    • 팀 문화
    • 리더로서의 마음 가짐
    • 채용에 대한 여러 생각들 (서류, 면접, 평가 등)

회고

마지막은 회고다. 회고, 아직도 현재 회사에 들어와서 한번도 회고를 하지 못했다. A 업무, A 파트리더, B 업무, 팀리드, 새로운과제 등 여러환경을 겪으면서 벌써 3년이나 넘은 시간이 지나갔다. 각각의 시기를 돌아보면 회고할 점이 많았지만, 각 상황마다 회고를 시도하기엔 과도하게 길어질 것을 우려해 엄두를 내지 못했던 것 같다. 이번 글또에서는 꼭 현재 회사의 회고, 혹은 팀 리드에 대한 회고, 적어도 24년회고를 꼭 작성하고 싶다.

  • 회고
    • 현 회사 3년회고
    • 20개월 리드 회고

맺으며

이번 글또에서 다양한 주제를 다루고 싶다는 마음을 담아 썼다. 과연 이 중 몇 개나 완성할 수 있을지 스스로 반성도 해본다. 다음 글의 주제는 회고로 잡고 싶다. 깊이 있는 회고는 아니더라도, 현 회사에서 3년이 넘는 시점에 짧게라도 써보고자 한다.

profile
이것저것하는 잡부

0개의 댓글