preview image
허원철의 개발 블로그

2019 우아한 테크의 밤 - 요약

2019-12-19

우아한 테크의 밤 - 요약

alt intro

우아한형제들에선 무슨 일을 하나…? - 김범준 CTO/CEO님

소개

  • 내년부터는 CTO가 아닌 CEO로써 활동을 하게 된다.
  • 회사 서비스에 대한 소개

1. 배달의민족

  • 다른 이커머스와 견주어도 튼튼하고 견고한 서비스
  • WHY?
    • 최대 300만 쓰기 트랜잭션도 버텨냄
    • 오프라인 모드 지원
      • AS-IS: 별도의 오류페이지
      • TO-BE: 노출되어 있던 로컬 캐싱(번호, 메뉴, 주문 등등…)

2. 배민라이더스, 배민커넥트

  • (풀, 파트) 타임의 배달원
  • 약 10,000명
  • 주문이 들어오면 근처 라이더에게 타겟팅
    • 타다와 같은 방식(타다는 약 1,000대가량 된다고 함)

3. B마트

  • 배민라이더스, 배민커넥트분들이 마트 물건을 배달
  • 편의점 보다 싸고 간편함 (일부 지역 서비스 중)

4. 로봇 딜리버리

  • 로봇으로 배달
  • 건국에서 베타 테스트
    • 실제로 로봇 딜리버리로 주문되는 양이 더 많음
    • 그 외에도 몇 군데 있음(까먹…)

그 외

  • 만화경, 띠잉, 등등등…

회사 개발 조직

  • 다양항 기술 세미나 진행 중
    • 우아한 테크 코스
    • 우아한 테크 러닝
    • 우아한 테크 세미나
  • 개발 조직 비전: 코드 덩어리가 아닌 가치를 만들고 스스로의 가치를 높이며 일한다.

우아한 아키텍처 - 김영한님

소개

  • 4년간의 마이크로 서비스 전환기
  • 하게 된 이유? 매년 2배의 주문량 증가로 기존 시스템(모놀리식)으로 감당이 안됨
  • (시간이 없어 후다닥 넘어가느라 조금 아쉽…)

2015

  • 하루 주문 5만
  • PHP, MS-SQL(수천 개의 프로시저), ASP
  • 모놀리식

2016

  • 하루 주문 10만
  • PHP에서 Java로 전환 시작
  • 마이크로 서비스 도전
    • 결제, 주문 중계

2017

  • 하루 주문 20만
  • 대 장애의 시대
    • 매주 장애
    • CEO님이 그만 좀 장애내라고 메일 썻다함 (주르륵…)

2018 상반기

  • ms-sql 제거
  • 가게 상세
    • 다이나모 배치 갱신

2018 하반기

  • 포인트, 쿠폰, 리뷰 MSA 전환
    • 리뷰 - 이벤트 기반 아키텍처
    • 광고, 가게/업주 - 프로젝트 먼데이

MSA 고민

  • CQRS => 성능, 장애 격리, 데이터 동기화

    • 조회, 명령 분리(master, slave 같은 개념이 아닌 별도의 데이터베이스로 분리 가능한 형태)
    • 명령으로 데이터 변경되면 조회에 이벤트로 전달
    • 데이터 싱크 1~3초
    • zero-payload
      • id만 전달 후, api로 최신 데이터 가져와서 처리
    • 최소 데이터 보관 원칙
      • (뭐더라…)
  • 데이터 싱크 장애 대응

    • 이벤트 재발행
    • (전체, 부분) 임포트 -> 이벤트 서비스(sqs, sns) 장애 대응
  • 캐시

  • 서킷 브레이커

  • 비동기 논블로킹

    • Reactor, WebFlux
  • 결과적으로, 크게 16개의 서비스로 분리

패널 토크

  • 객체지향 도전?
    • 한번에 하려고 하지말자
  • 학습법?
    • 책 vs 프로젝트
    • 나만의 학습법을 찾아라
    • 기술 공부는 회사에서 쓰는 것, 쓸 것만 공부해도 충분하다
    • 기술 스킬을 공부하기 보다는 방법론을 공부하자… (TDD 같은)

느낀점

  • 역시나 마이그레이션은 (겁나) 어려운 것이다.
  • MSA를 하려면 굉장히 많은 사이드 이펙트에 대한 고려가 필요하다.
  • 나만의 학습법을 찾아보자…!