기술 컨퍼런스, 기술 블로그, 아티클, 강의 등 다양한 자료로 학습한 내용과 인사이트를 기록하는 시리즈입니다.
문 앞으로 배달되는 일상의 행복
⇒ 내가 정말 필요로 하는 것이 문 앞에 배달될 때 소비자가 행복을 느낀다
고객이 어떤 것에 가치를 느끼고 돈을 지불할거냐, 혹은 본인의 수고로움을 감수하고 서비스를 이용하는 의지를 표명할 것이냐
고객들이 편의라고 하는 것에 가치를 두고 시간, 돈을 들여 서비스를 이용한다
리뷰이미지 검수
: 가끔 이상한 사진들이 올라올 때가 있다. 이미지를 판별하는 머신러닝 알고리즘을 써서 판별함. 기계가 판별한 소수의 이미지를 직원이 수작업으로 검수함
99.97 %
: 도전 목표 서비스 가용률. 단순히 시간만 의미하는 게 아니라, 주문 유실률을 목표로 함.
300만 TPS
: 2019년도 한 이벤트에서 1초에 300만 건의 리퀘스트 발생. 피크타임 트랜잭션도 처리할 수 있는 시스템이 필요하다
배달예상시간 고도화
: 머신러닝 알고리즘을 이용해서 다양한 변수들을 고려해서 최대한 고객에게 안내한 시간에 정확히 도착할 수 있도록 함
라이더배차 효율화
:
쿠폰타겟팅 고도화
배달대행사 연동
:
⇒ 얼마나 사장님들이 편하게, 또 고객들의 개인정보 유출 피해가 없도록 보호를 할 것이냐?
⇒ 보안 관점, 시스템 안정성, 가용성 관점, 최적화 관점 등 많은 기술적 문제를 풀어야 하는 것
트래픽이 커져감에도 불구하고 얼마나 안정적으로 시스템을 제공할 수 있는가?
단순히 동작하게 하는 것은 쉽다. 하지만 어떤 한 부분이 안 되더라도 그 대안이 준비되어 있는가 혹은 이 시스템이 실패하더라도 다른 시스템이 동작하도록 할 수 있는가
이런 것들에 대한 사전적인 고려와 '실제로 문제가 발생했을 때 실행할 수 있는 체계와 프로세스가 구축되어 있는가' 가 중요하다.
그동안 서비스를 급하고 빠르게 발전시켜오느라 시스템 관점에서 볼 때 우리가 해결해야 하는 문제들이 많이 쌓여 있다
적정 부채만 관리를 한다면 부채는 문제가 아니다
오늘 우리가 바라보는 레거시는 사실 어제까지의 최선이었다
결국 우리는 적절한 시점에 시장의 발전 속도와 기대 속도에 만족하기 위해서 부채를 감수하고서 빠르게 발전한 것뿐이다. 부채를 적정 수준에서 관리하는 것이 핵심. 이 회사의 시스템이 이상하거나 문제가 많다고 생각하기 보다는 전반적으로 어떻게 관리할 지를 생각하면 좋겠다.
모든 서비스 로직과 비즈니스 로직이 하나의 DBMS 위에서 돌아가고 있었다. WAS는 Web Server로만 동작을 하고 있었다.
→ 리퀘스트들을 받고, 리퀘스트에 건너온 파라미터들을 그대로 다 DBMS로 전달
→ DBMS에서는 Stored procedure
→ DBMS에서 만에 하나 어떤 프로그램 코드가 장애를 일으킨다면, DBMS 전체가 부하가 걸리고 DBMS 전체가 먹통이 됨
→ 전체 시스템 장애로 연결됨
보통은 서비스별로도 WAS 그룹들이 여러 개 존재한다
WAS 그룹들이 리퀘스트를 받으면 비즈니스 로직이나 서비스 로직을 처리하고, 서비스 로직에서 결과로 바뀌는 데이터는 데이터 베이스에 저장을 하고, 필요한 데이터는 가지고 옴
$2,380 = 이틀 연속 장애가 있었는데, 그때 당시 배상했던 금액을 구성원 수로 나눈 것
장애는 언제든지 날 수 있다. 장애가 문제가 아니라 우리가 장애 모니터링을 충분히 했는가?
장애를 통해서 우리는 배우는가 못 배우는가?
우리가 배워서 개선을 했는가 못 했는가?
⇒ 마이크로 서비스 아키텍처로 가겠다. 스프링, 자바로 가겠다
자바, 스프링 프레임워크로 바꾸고, DBMS도 분리함
조직이 변화하는 데 있어서 중요한 것은 작은 성공의 기쁨
실제로 조직이 변화하려면 성공의 맛을 여러 번 보는 것이 굉장히 중요하다.
많은 회사의 기술 블로그를 보면 굉장히 깊은 내용들을 다루고 있어서 논문 수준처럼 느껴졌다.
우아한 형제들은 어떠한 포지션을 가지고 가야 할까?
변화하려고 하는 의지를 가지고 있는 사람
누구나 다 알고 있지 않을까? 싶은 것들부터 작성하기
초급자 수준에 머물러 있는 게 창피한 게 아니라 5년 후에 변화가 없는 것이 창피한 것.
인턴 두 달을 할 때 적절한 프로그램을 주는 게 힘들다
좋은 경험을 가져갔으면 좋겠다는 생각에 교육 과정을 만들어서 운영함
모든 시스템 전체가 마이크로 서비스 아키텍처로 옮겨가는 과정 마무리
항상 밸런스가 중요하다
시장과 사업의 발전을 따라가는 것과 개발 관점에서 3년 후, 5년 후를 대비했을 때 우리가 무엇을 할 것인가 하는 그 밸런스가 되게 중요하다
질문을 어떻게 디벨롭하고 이뤄나가는가?
지난 2~3년 간 배달앱 이용자가 상당히 많았는데, 앞으로의 배달시장의 미래는 어떨까?
적정 수준의 기술부채는 어떻게 측정하고 그 기준은 무엇일까?
우아한형제들이 생각하는 기존 배달 시스템에 기여한 혁신이란?
오늘 우리가 바라보는 레거시는 사실 어제까지의 최선이었다