패스트 캠퍼스 (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 = 일종의 캐싱 같은 개념
그런데 이 묵직한 새벽 배치 쿼리가 도는 과정에서 데이터베이스 수정이 발생한다면?
정합성이 발생하지 않는 문제가 발생할 수 있다.
즉, 다시 정리하자면
기술 부채 = 기술 요구 사항은 통과하지만 뭔가 잘못 짜여진 코드가 관리가 안될 때까지 조금씩 계속 불어나는 것
이것을 어떻게 극복할 것인가?
기술 부재가 나타나는 기업들의 특징
- 유저가 늘어날수록 개발자의 야근/주말 특근 증가, 점점 느려지는 앱 반응 속도
- 성능 이슈, 장애 이슈, 매뉴얼 운영 인력의 증가
근본적인 원인은 이렇다.
- 알고리즘과 자료구조 역량
- 확장성 있는 설게, 소프트웨어 디자인 연략
- 사람 대신 기계, 데이터 활용 역량
'Lecture' 카테고리의 다른 글
대규모 서비스에서 발생하는 데이터 처리, 백엔드 엔지니어링의 역할과 범위 (0) | 2023.07.04 |
---|---|
데이터 모델과 트랙잭션 디자인 / 개별 프로세스 운영 관리 및 배포 시스템 디자인 (0) | 2023.07.03 |
코드 유지보수성과 확장성을 높이는 디자인 패턴 (0) | 2023.07.03 |
대규모 서비스에서 알고리즘과 자료구조의 중요성 (0) | 2023.07.02 |
확장성과 안정성 있는 서비스 시스템 설계 패턴 (0) | 2023.07.02 |