본문 바로가기
Lecture

대규모 서비스에서 발생하는 기술적 이슈 및 장애 사례

by Renechoi 2023. 7. 2.

 

패스트 캠퍼스 (The Red: 4천만 MAU를 지탱하는 서비스 설계와 데이터 처리 기술 by 카카오페이지 기술전략이사 윤진석) 필기록입니다. 

 


 

 

IT 서비스 혁신 = 비즈니스 모델의 혁신 

 

오늘날 새롭게 출현하는 스타트업이란?

페이팔 창업자: 획기적인 아이디어나 혁신적인 기술로 비즈니스를 발굴하는 팀 

=> 기술 발전이나 소비자 욕구 변화에 따라 혁신적인 제품 또는 서비스를 제공하는 것이 IT 서비스의 기본 컨셉이다. 

 

 

전통적인 기업의 주요 활동 

- 제품 개발, 유통, 마케팅

- 고객 응대, 서비스 운영, 시스템 유지보수

- 수익 분석, 자산 관리 

 

최근 IT 기술과 접목 -> 

부서 간의 고도화 

e.g. 제품 개발, 제품 유통 -> Product-Market fit 

 

소프트웨어 엔지니어링과 데이터 과학이 합쳐져서 활용되고 있다. 

-> 오프라인과 온라인의 경계 모호 -> Digital Transformation 

 

 

 

비즈니스 모델의 혁신 내부에는 기술의 혁신이 있다. 

(Growth Haking, data-driven marketing, Agile Process, , ,, ) 

 

아마존 클라우드 서비스의 비즈니스 모델을 생각해보자

가상화 기술 발전과 합리적인 소비 확산에 따라 혁신적인 컴퓨팅 클라우드 서비스를 제공 

 

숙박, 레저 스타트업의 비즈니스 모델

과거: 전화 -> 위치 기반 기술과 온라인 예약 확산 

 

 

 

그런데 인터넷 스케일의 문제를 만나면...? 

다양한 문제들 

 

- 앱 느린 성능

- 확장성 없는 디자인

- Push 발송에 따른 먹통

 

=> 기술적인 문제들이 발목을 잡을 수 있다 ! 

=> 기능 요구사항은 통과하는데, 뭔가 잘못 짜여진 코드가 관리가 안될 때까지 조금씩 계속 불어나는 것 

=> 기술 부채 

 

=> 속도, 스트레스, 프로덕션, 품질 => 다양한 방면에 영향을 준다. 

=> 생산성저하, 잦은 퇴사, 브랜드 이미지 실추, 서비스 품질 저하 

 

 

"이 기능은 에드워드가 출근해야 됩니다."

"그 쿼리는 건드리면 무조건 장애 납니다."

"서비스에서는 티가 잘 안나니 일단 적용할까요?" 

 

 

데이터베이스에 너무 의존적인 경우, "Query of Despair" 절망적인 쿼리가 서서히 자란다. 

 

 

 

 

예약 내역 테이블

- 요구사항: 관리툴에서 지난 4년간 매출을 월 단위로 볼 수 있게 하라.

 

 

이것을 1초 안에 가능하게 할 수 있을까? 

 

select date_format(date, '%M-%Y) as sdate.sum(payment) as 'netsales'
from reservationTable
where year(sdate) = year('2016-01-01)
group by year(sdate), month(sdate)
ordey by year(sdate, month(sdate)

 

공간 복잡도 = 4byte 기준 => 6GB 

 

group by 연산 + summation 연산 + key 키준 정렬 

-> 시간 복잡도 O(NM) + O(KlogK) 

 

 

 

이문제를 해결하기 위해서 느린 쿼리를 새벽 배치로 돌리고 쿼리 결과를 테이블에 담자 

-> 클라이언트 사이드에서는 결과 테이블만 조회한다. 

= materialized view = 일종의 캐싱 같은 개념 

 

그런데 이 묵직한 새벽 배치 쿼리가 도는 과정에서 데이터베이스 수정이 발생한다면? 

정합성이 발생하지 않는 문제가 발생할 수 있다. 

 

 

 

 

즉, 다시 정리하자면 

기술 부채 = 기술 요구 사항은 통과하지만 뭔가 잘못 짜여진 코드가 관리가 안될 때까지 조금씩 계속 불어나는 것 

 

 

이것을 어떻게 극복할 것인가? 

 

기술 부재가 나타나는 기업들의 특징

- 유저가 늘어날수록 개발자의 야근/주말 특근 증가, 점점 느려지는 앱 반응 속도 

- 성능 이슈, 장애 이슈, 매뉴얼 운영 인력의 증가

 

근본적인 원인은 이렇다. 

- 알고리즘과 자료구조 역량

- 확장성 있는 설게, 소프트웨어 디자인 연략

- 사람 대신 기계, 데이터 활용 역량 

 

 

반응형