질문있습니다!!
106
작성한 질문수 26
스노우 플레이크를 통해 id값을 만들어 내는 이유가 인덱싱(타임 스탬프 순으로의 정렬)과 절대 중복될 수 없는 key 값을 만들어내서, 기존 생성API의 메커니즘인 Select(중복 여부 조건 검사) -> Insert의 방식에서 스노우 플레이크로 인해 중복이 될 수 없으니 Select 쿼리에 대한 비용을 줄이는 것으로 성능을 개선하는 방식이다. 그리고 여기에 추가로 비동기로 URL 생성을 진행했하고 클라이언트는 응답을 미리 받고, 실질적으로 Insert 쿼리를 날려 DB에 저장하는 부분은 백그라운드로 진행함으로써 Latency를 앞당기는 것으로 성능을 개선했다고 이해하면 될까요??
답변 2
0
박철현님 안녕하세요~
넵 말씀하신 내용이 맞습니다.
스노우 플레이크를 사용하여 타임스탬프 기반의 정렬이 가능한 유일한 키를 생성할 수 있습니다. 이로 인해 기존의 Select(중복 여부 확인) 후 Insert 방식에서 중복 검사를 위한 비용을 줄일 수 있다는게 강의 내용이었습니다.
거기에 더해서 URL 생성 작업을 비동기로 처리하고 클라이언트에게는 응답을 미리 전달하여, 실제 DB Insert 작업은 백그라운드로 진행함으로써 전체 시스템의 Latency를 낮추고 성능을 개선하는 부분도 이해하신 내용이 맞습니다. 😀
또 궁금한 내용 있으면 질문 남겨주세요.
감사합니다.
0
안녕하세요, 인프런 AI 인턴입니다. 박철현님.
스노우플레이크(Snowflake)는 주로 고유하고 순차적인 ID를 생성하기 위해 사용되는 기법으로, 대량의 데이터를 효율적으로 처리할 수 있는 ID를 생성하는 데 도움을 줍니다. 스노우플레이크를 통해 ID 값을 만들어내는 주요 이유는 다음과 같습니다:
고유 ID 생성: 스노우플레이크는 고유의 ID를 생성하여 데이터베이스의 다른 레코드와의 ID 중복 문제를 방지합니다. 이는 전통적인
Select -> Insert의 중복 검사와 비교하여 성능을 크게 개선할 수 있습니다.순차성과 정렬: 스노우플레이크 ID는 시간 기반으로 생성되므로, 자연스럽게 타임 스탬프 순으로 정렬됩니다. 이 속성은 인덱싱과 같은 데이터 처리에서 효과적으로 활용될 수 있습니다.
스케일링 문제 해결: 대규모의 분산 시스템에서도 스노우플레이크의 ID 생성은 중앙 집중적이지 않으므로, 시스템의 확장성을 유지하면서도 고유한 ID를 보장할 수 있습니다.
기존의 Select 쿼리를 사용하는 중복 검사 방식 대신, 스노우플레이크를 통해 중복되지 않은 고유 ID를 생성함으로써 데이터베이스의 성능을 최적화할 수 있다는 이해는 매우 정확합니다.
관련 내용을 더 깊이 이해하고 싶다면, 다음의 유사한 질문에서 다른 사용자의 경험을 확인해 보시는 것도 좋을 것 같습니다:
- 관련 질문: 스노우플레이크를 활용한 ID 생성의 장점과 주의점
박철현님이 관심을 가지고 계신 성능 최적화 방법이 프로젝트에 큰 도움이 되길 바랍니다.
저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다.
현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏
추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.
Service Create/Update Record 운용과 Delete Record 미운용의 차이 질문
0
13
1
인프라 구성 중 ELB 관련하여 질문 드립니다.
0
26
2
비동기 스레드풀 분리 이유와 Virtual Thread 전환 시 고려사항
0
34
1
mysql 의 bitmap
0
35
1
redis VS valkey
0
196
2
23강 5:38 부분 질문 있습니다!
0
44
1
23강 17초 부분 질문있습니다~
0
49
2
Split 전략 강의 중 질문 있어요
0
57
2
질문이 있습니다!!
0
72
2
AsyncPERStrategy 비동기 처리 관련 이슈
0
50
2
강의평을 남겼는데 자료는 못 받는건가요?
0
74
2
디스코드 초대 안돼요
0
71
2
비트맵 자료구조 관련 질문
1
50
1
스프링 부트에 Redis 적용하기 질문
0
96
2
script Validate가 안됩니다.
0
57
1
강의내용 질문있습니다.
1
75
2
강의 1-4 QnA 관련 질문이 있습니다
1
58
1
RateLimitTest시 저는 2초로 해야 정상으로 나오는데
0
70
2
부하테스트 시나리오
0
51
1
섹션3에 22번째 강의에서 에러발생합니다..
0
115
4
http://localhost:8080/cache-strategy/{{cacheStrategy}}/items 호출 시 NPE 에러 문의
1
126
2
AWS 실습
1
144
2
레디스에 대해서 질문드립니다.
1
260
3
비동기 분리에 대해서 질문드립니다.
1
331
2





