분류 전체보기 (9) 썸네일형 리스트형 [C++17] execution performance benchmark execution_policyexecution_policy는 알고리즘이 실행되는 방식을 결정합니다. 세 가지 주요 policy가 있습니다:std::execution::seq순차적 실행(Sequential execution)을 의미합니다.하나의 스레드에서 순차적으로 작업이 처리됩니다.기본 실행 정책std::execution::par병렬 실행(Parallel execution)을 의미합니다.여러 스레드에서 병렬로 작업을 수행할 수 있습니다.작업이 병렬화되어 성능 향상이 가능하지만, 동기화 문제에 주의해야 합니다.std::execution::par_unseq (since C++20)병렬 및 비순차적 실행(Parallel and Unsequenced execution)을 의미합니다.병렬 실행뿐만 아니라, 명령어.. 카카오톡 링크 미리보기(썸네일). Open Graph 카카오톡이나, 각종 블로그 등 많은 곳에서 해당 기능을 지원한다. 여기서도 간단히 볼 수 있는데, 썸네일이 실시간으로 바뀌는 개인 스트리밍 방송(chzzk, twitch 등)의 썸네일이 동기화가 안되는게 신기해서 정리해본다. 실시간으로 바로 불러와준다면 이런 문제가 없을텐데, 실시간으로 계속 불러오면 트래픽량이 증가할 수 있기 때문에 일정 주기(?)로 캐싱하고 빠르게 꺼내서 보내주는 것 같다. 메타 태그 중 오픈그래프라는 태그가 있는데, 웹페이지의 내용을 소셜 미디어에서 공유할 때, 미리보기를 더 풍부하고 일관성 있게 표시할 수 있도록 하는 메타 태그 표준이라고 한다. 페이스북에서 처음 도입했다고 한다. 기본 구조는 다음과 같다. 치지직의 생방송 웹 소스는 다음과 같다. 일반적으로 캐싱.. System Call이 느린 이유 요약시스템 호출이 비용이 큰 주요 이유는 다음과 같다:사용자 모드와 커널 모드 간의 전환 오버헤드매개변수 검증 및 보안 검사CPU 파이프라인 플러시 및 캐시 오염 시스템 호출이 무거운 이유는 사용자 모드에서 커널 모드로 전환하는 과정 자체가 큰 오버헤드를 발생시키기 때문이다. 이 과정에서 발생하는 주요 원인을 정리해 본다.컨텍스트 스위칭 비용레지스터 저장 및 복원: 현재 실행 중인 프로세스의 상태를 저장하고, 새로운 프로세스의 상태를 복원해야 한다. 마치 짐을 싸고 푸는 것과 비슷한 과정이다. 이 과정은 상당한 시간을 요구한다.스택 전환: 사용자 모드와 커널 모드의 스택이 다르기 때문에, 모드 전환 시 스택을 교체해야 한다. 이 또한 오버헤드의 원인이다.메모리 관리 오버헤드주소 공간 변경: 사용자 모드와.. [NDC 리뷰] 실시간 MMORPG의 플레이 감각을 날카롭게 벼려보자! PART#1차지게 때리기PART#2정확하게 때리기 PART#3온라인 게임의 방향성 출처: https://www.youtube.com/watch?v=HSRo7TAV4T4 네트워크 레이턴시로 인한 게임 플레이의 불쾌감을 줄이기 위해서 예측과 보정을 수행한다. PART#1네트워크 지연이 길어질 때(LTE) 캐릭터 애니메이션과 피격 이펙트에 시간 차이가 생기면서 조작감이 나빠짐. 기존 스킬 시스템은 4개의 단계로 나뉘도록 설계했고, 각 단계에서 패킷을 송신함.ex) 애니메이션 -> 피격 효과 처리/자원소모 -> 데미지/힐 적용 -> 피격 후처리(스턴 등) / 타격자 위치 이동 - 문제네트워크를 타는 순간 딜레이가 생긴다.한 스테이지가 밀리면 앞, 뒤 스테이지와 부드럽게 이어지지 않는다. - 해결예측을 수행.원.. [NDC 리뷰] 쿠키런: 킹덤, 총 56시간의 긴급 점검 회고 서비스 안정화를 위한 보호 장치 도입DB 사용자 데이터 7중 replica 관리주기적인 백업 수행AWS Global Accelerator로 geo-region 단위 통신망 장애 대응3개의 IDC에 서버 인프라 분산클라이언트-서버 통신 로그 및 분석 로그 실시간 저장런칭 직후 성공적인 출발, 하지만 예상치 못한 문제 발생분산 SQL DB인 CockroachDB 사용"Horizontal Scale Out" 방식으로 대응주말 동안 데이터 수용량 한계 도달Catastrophic Failure 문제 예상Config 이슈로 인한 클러스터 비일관성 및 트랜잭션 처리 중단데이터 존재하나 클러스터가 데이터 인식 못함네트워크 또는 타임스탬프 문제로 인한 트랜잭션 손상 추정해결 방안 모색Storage Layer에서 수동 데.. [DB] CockRoach Cockroach DB는 Google Spanner의 주요 개념과 기술을 차용했습니다.(TrueTime, 외부 일관성, 디렉토리 기반 데이터 모델, 스키마 변경 관리, 분산 트랜젝션 관리 등) 1. 주요 특징1.1 수평적 확장성Cockroach DB는 수평적 확장성을 제공하여 시스템의 용량과 성능을 향상시킬 수 있습니다.새로운 노드를 클러스터에 추가함으로써 데이터 저장 용량과 처리 능력을 선형적으로 늘릴 수 있습니다.데이터는 자동으로 새로운 노드에 분산되며, 노드 간 부하 분산이 이루어집니다.이를 통해 대규모 워크로드를 처리할 수 있으며, 시스템을 유연하게 확장할 수 있습니다.1.2 강력한 일관성과 ACID 트랜잭션 보장Cockroach DB는 강력한 일관성을 제공하여 ACID 트랜잭션을 보장합니다.분.. [Jenkins][Docker][오류] the input device is not a TTY. If you are using mintty, try prefixing the command with 'winpty' the input device is not a TTY. If you are using mintty, try prefixing the command with 'winpty'Build Startgo version: 1.19execute docker run -it --rm -v ...the input device is not a TTY. If you are using mintty, try prefixing the command with 'winpty'Traceback (most recent call last): ... subprocess.CalledProcessError: Command '['docker', 'run', '-it', '--rm', '-v', ... returned non-zero exit.. [gRPC] CompletionQueue: 비동기 이벤트 관리 CompletionQueue는 비동기 서버와 클라이언트에서 이벤트를 관리하는 중요한 구성 요소입니다. 비동기 프로그래밍을 다룰 때 빠질 수 없는 구성 요소가 바로 CompletionQueue입니다. 이 구성 요소는 비동기 작업의 시작과 완료를 깔끔하게 관리해주며, 서버와 클라이언트 양쪽에서 모두 활용됩니다. 서버나 클라이언트가 비동기 작업을 시작할 때 사용되며, 해당 작업이 완료되었을 때 알림을 받기 위해 사용됩니다. 기본적으로 CompletionQueue는 다음과 같은 작업을 수행합니다:1. 태그 추가: 비동기 작업이 시작되면, 작업을 식별할 수 있는 태그(tag)가 CompletionQueue에 추가됩니다.2. 태그 제거/알림: 비동기 작업이 완료되면, 해당 태그가 CompletionQueue에.. 이전 1 2 다음