생각&경험

취준생이 2024 당근 테크 밋업 다녀온 후기 (Feat. 굿즈👩‍💻)

개발자 May 2024. 10. 8.

2024년 10월 7일, 운 좋게도 2024 당근 테크 밋업에 다녀왔다.

사실 당근에서 이러한 행사를 하는지도 몰랐는데, 속해있던 한 카톡방에서 사람들이 두런두런 얘기를 나누고 있었고.. 조용히 신청을 했더랬다.

아는 사람도 전혀 없고, 취업준비생인 내가 가서 할 일이 있을까 생각도 들었지만

1차로 당근이 티셔츠 추첨에 홀렸고

2차로 덜컥 한 네트워킹에 신청해버렸다..!

신기하고 좋았던 점은, 참가자들의 활동과 네트워킹을 촉진하기 위해 '당근 모임'서비스를 활용해서 참여자들 간에 '게시글'과 '채팅', '모임 일정'으로 소통을 했다.

특히, 이번 테크 밋업을 위해 당근 테크 밋업 모임이 따로 만들어져서 참여자들은 모두 들어가 볼 수 있었고, 당근 구성원분들이 만드시는 네트워킹 세션에 자유로이 참여 신청을 할 수 있었다!

당근 테크 밋업 모임과 빼곡한 일정.. 너무 많아서 잘렸다.

도착하니 사진과 같이 활기찬 분위기의 행사장을 마주할 수 있었다.

보이는 곳에서 팔찌를 교환받고 안쪽으로 들어가니 기본 굿즈(당근 노트, 펜, 안경닦이, 깜찍한 스티커)들을 나눠주셨다. 그리고 바로 서버[B]로 입장!

서버[B] 발표

각 발표마다 약 30분 정도의 시간을 갖고 진행되었다. 

1. 당근 알바 초기 엔지니어링 전략

당근알바팀 박용진 연사님께서 새롭게 당근알바를 론칭하면서 빠르게 엔지니어링 했던 경험에 대해 공유해 주셨다. 크게 4가지를 통해 그러한 전략을 구성하셨는데, 흥미로웠던 점은 정말 '빠르게' 전략을 위해서 일반적이라고 생각되는 기존 방식에서 벗어나 새로운 시도를 하셨던 점이다. 

  • 빠른 데이터 분석을 위해 DB 저장, 추출 등이 아닌 이벤트 기반 분석 서비스의 API와 웹을 적극 활용한다.
  • 미래를 먼저 생각해서 전부 구현하려 하지 않고 일단 현재 목적에 부합하는 필요한 기능만을 구현해서 확인 후, 추후에 추가 기능을 개발하여 배포한다.
  • 에러가 발생했을 때 기존에 하던 작업에서 콘텍스트를 전환하는 것에 더 큰 비용이 소모된다고 생각, 기능에 치명적이지만 않다면 모니터링 툴을 통해 모니터링하며 미뤄두고 하던 작업에 집중한다.
  • 클라이언트와 서버 간의 협업에서의 충돌이 각각 원하는 데이터 형태가 다르다는 것에서 비롯한 GraphQL 도입

가장 중요한 것에 집중하면서 중요하지 않은 것을 잠시 미뤄두기

그 결과 2020년 3월부터 논의를 시작한 구인구직 서비스가, 2023년 173% 성장을 이뤄내며 성공적으로 성장하고 생존했음을 알 수 있었다.

2. 우리 동네 어디까지 좁아지는 거예요? - 자연경계로 좁혀보는 우리 동네

(제목을 보자마자 자동으로 음이 높아지는 느낌..)

Location Intelligence 팀의 손진 연사님께서 당근에서 '동네'를 정의하기 위해 '우리 동네'를 정의했던 경험을 공유해 주셨다.

최근 GIS와 관련된 프로젝트를 경험해 보면서 위치 기반 서비스가 쉬운 것이 아님을 어렴풋이 알고 있었기에 더욱 흥미롭게 들었다. 어려운 개념들이 많았지만 기억에 남는 점은, 국가 정책적으로 정해진 지역 경계와, 사람들이 일반적으로 생각하는 '우리 동네'를 결합하여 구현하기 위해 다양한 시도를 해보셨던 점이다. 

우편번호로 지역을 분할하는 방법이나, Google의 S2, Uber의 H3와 비교하면서 먼저 자연경계 데이터로 기존의 행정경계에 더불어 녹지, 호수, 등고선도 등 평면 데이터와 도로, 철도, 하천 등의 선형 데이터까지.. 다양한 방법의 시도 끝에 공간적인 맥락과 사용량 등을 포함한 최적의 형태를 구현하고 계속해서 개발하고 계시다고 한다.

3. 당근 채팅 시스템 어떻게 만들까?

당근 채팅 서비스에 대해 권영훈 연사님, 김기현 연사님이 번갈아서 발표해 주셨다. 채팅을 WebSocket을 통해 구현하고 있다고 하셔서 기존에 사용해 본 기술이라 더욱 궁금했다. 늘 '대용량 서비스'에 대해 궁금했기 때문에 더 흥미로웠다.

기본 채팅 시스템과 서버가 1대에서 2대, 10대로 늘어나는 경우에 대해 고민했던 점, 다른 종류의 채팅(비즈니스, 모임)을 다루는 법, 인원이 1,000명까지 늘어난다면 어떻게 해야 할지에 대해 경험을 공유해 주셨다.

당근은 부동산, 중고거래, 중고차 등 많은 서비스에서 1:1 채팅 서비스를 지원하고, 커뮤니티를 위한 그룹 채팅도 지원한다.

  • 채팅 서버가 1대라면 서버 A의 로컬 메모리에 연결된 UserID 와 Session정보를 저장하고 필요 시마다 조회하면 된다.
  • 하지만 서버가 늘어난다면?
  • 1) 공유 메모리 저장소 사용(Key-Value Store) 2) 유저 아이디 기반 Pub/Sub 구조 사용 
  • 1) 방법을 택해 공유 메모리 저장소에 UserID와 ServerIP를 함께 저장한다. 유저 A가 유저 B와 다른 서버에 존재하더라도, 서버 A에서 저장소의 유저 B 서버 IP를 통해 서버 B로 메시지 전달 요청을 할 수 있게 된다.
  • 하지만 서버가 10대로 늘어난다면? 서버 간 그물망 형태로 연결되고 복잡도가 증가하고 확장에 불리한 구조가 된다.
  • 메시지-큐 도입: 메시지를 큐에 전달하면 큐에서 Consumer로 전달하고, Consumer에서 Key-Value스토어를 통해 메시지를 받는 서버로 전달하게 된다.
  • 만약 그룹 채팅과 같이 인원이 많아진다면, UserID를 묶어서 Queue에 한 번에 요청해 비효율을 해결한다. UserID의 단위가 너무 크다면 Chunk단위로 적당히 분리하여 보낸다.
  • 그렇다면 채팅 데이터는 어떻게 저장하고 조회할까?
  • 계속해서 쌓이는 채팅 메시지의 특성상, 샤딩을 진행하되 액세스 패턴에 맞는 Shard Key를 선택한다. 한 채팅방에서 발생한 메시지는 동일한 채팅방 ID를 갖고 있을 것이므로, Shard Key로 채팅방 ID를 채택하는 전략이다.

이외에도 네트워크 통신 문제를 해결한 경험, 검색을 샤딩한 경험, 효율적인 코드 만들기, 회원 서비스 MSA로 만들기 등 다양한 주제의 발표가 이어졌다. 

자세한 내용이 궁금하신 분들은 당근 테크의 유튜브 영상을 기다려보자..!

네트워킹 시간

너무나도 경쟁이 치열했던 네트워킹 신청..

1:1 Recruiting 모임도 있었고, 직군별, 관심사별 다양한 모임이 만들어졌다. 운 좋게 공통 서비스 개발팀에서 진행하는 네트워킹에 들어갔고, '공통 서비스 개발'이 어떤 것인지, 어떻게 업무를 진행하는지 다양한 이야기를 들을 수 있었다.

비록 사용하는 언어도 달랐고 접해본 적 없는 개발 분야였지만 어떤 서비스인지 알 수 있게 되었다.

또한 해당 팀원 분들이 모두 출동해 주셨고, 특히 팀장님께서 '우리 팀은 명확한 문제 정의를 통해 개발 진행을 하다 다시 돌아가는 경우는 거의 없어요'라고 말씀하셨던 부분이 굉장히 기억에 남는다.(명확한 문제 정의와 공유가 개발 효율을 높인다고 생각해서 그런가)

공통 서비스 개발팀만의 고민이 있으시겠지만, 개인적으로는 개발에 있어 다른 팀에 대한 폭넓게 이해가 수반되어야 한다는 점, 다른 팀들을 고객으로서 일하고, 그들이 곧 당근을 구성하게 된다는 점이 대단하고 멋있게 느껴졌다.

마무리

운 좋게 당첨되어 가 본  2024 당근 테크 밋업! 당근은 정말 서로를 존중하는, 문제 해결에 열정적인 사람들이 함께 하는 곳이라는 인상을 받았다. 서로에게 아낌없이 공유하고 응원하고, 그것이 성과로 이어지는 경험을 할 수 있는 곳이라는 생각이 들었다.

네트워킹 공간이 한정되어 다양하게 참여하지 못한게 아쉽지만, 취준생 입장에서도 이후에 개발하게 된다면 고민할 수 있는 점(효율적인 코드, 개발 프로세스, 장애 대응), 지역 기반 시스템과 채팅 시스템에 대한 이해를 높일 수 있어 좋았다.

기술적인 성장, 인사이트, 팀 문화 등에 대해 알고 싶은 분들은 꼭 참여해 보시길!!

준비해 주신 발표는 물론, 네트워킹 시간과 굿즈까지.. 좋은 자리를 마련해 주셔서 감사합니다 당근🥕

(언젠가 동료로 만날 수 있길 바라며..)

럭키 드로우로 받은 Jet Brains 에코백과 퀴즈 참여로 받은 키링+키캡

 

댓글