목차
기술로 처리하기
코드의 효율 높이기
•
최대 루프 수 고려하기, 불필요한 동작 줄이기, if else 줄이기
•
최대 데이터 크기 고려하기
•
긴 요청은 백그라운드로 처리하고 알리기
코드 성능 최적화하기
•
효육적인 데이터 베이스 구조 만들기
•
이 함수는 몇 번의 쿼리를 하는지, 개선 가능한 사항이 있는지 기록하기
•
데이터 생성량이 년 당 최대 몇 건 예상 되는지, 예상 활성 사용자는 얼마나 되는지 예측하기
시간 투입 대비 효용 체크하기
•
사람들이 많이 사용하지 않는 기능을 최적화할 필요가 있는가?
•
하면 좋지만, 그 시간에 다른 일을 하는게 낫지 않을까?
캐싱을 이용한 대용량 트래픽 처리하기
컴퓨터 저장소
•
CPU
◦
CPU 내부에도 자체적인 메모리가 존재합니다.
◦
하지만 이는 아주 작으며, 저장 용도가 아닌 계산을 위한 임시 저장소 입니다.
◦
< 1 ns
•
RAM(Random Access Memory)
◦
SRAM(Static RAM)
▪
SRAM 은 데이터를 저장하는 동안 데이터를 새로 고칠 필요가 없습니다.
▪
데이터 보존이 안정하며, 읽기 및 쓰기 속도가 빠릅니다.
▪
KB ~ MB
▪
0.5 ~ 3 ns
▪
SRAM 은 속도와 안정성이 중요한 응용 프로그램에서 사용합니다.
◦
DRAM(Dynamic RAM)
▪
50 ~ 100 ns
▪
GB
▪
DRAM 은 비용 효율적인 대용량 메모리에 적합합니다.
•
DISK-DB
◦
SSD
◦
HDD
API 호출 및 결과 반환 DB 조회 대비 캐싱 효율
code 에서 Redis
키 생성 규칙
{
"key":"value"
}
----
import Redis
cache = Redis()
cache.set("key", "value", ttl=600)
value = cache.get("key")
--
domain:model
cache.set("user:users:1", {..}, ttl=600)
value = cache.get("user:users:1")
key = "user:users:1:collections"
Python
복사
•
DB 커넥션
◦
서버 - DB 서버
◦
커넥션 open
◦
통신
자원으로 처리
•
서버의 성능
◦
서버
◦
데이터베이스 서버
•
서버 다중화
◦
스케쥴링
•
부하 분산 (MSA)
서비스 이용 규칙
•
실시간성을 보장합니다.
•
최종 업데이트 시간
•
통계 생성 버튼
•
구독에 따른
◦
무료 회원 / 브론즈 / 실버 …
◦
년간, 월간, 일간, 실시간, 30분 통계…
◦
최대 7 일, 최대 30 일
◦
최대 블락 1000 건
◦
비용 지불하면 무제한, 실시간 등
•
생성 후 알림