go

gRPC가 얼마나 빠른지는 이 포스트에서 알아봤었고 스트리밍 방식의 종류는 이 포스트로 알아봤습니다.이제는 동영상 전송에서의 예시를 작성해 봅시다. 1. Idea 동영상 파일을 단순히 전송하는 것을 넘어, 동영상 청크를 서버로 전송할 때마다 서버가 실시간으로 처리 상태(예: 처리 시간, 상태 코드 등)를 클라이언트에 전송하도록 구현해 봅니다.이를 통해 중간 오류 감지, 타임아웃, 재시도 등의 기능을 활용하여 안정적인 동영상 스트리밍 시스템을 구성합니다. gRPC 활용양방향 스트리밍 활용클라이언트는 동영상 파일을 일정 크기의 청크로 나누어 서버로 전송하고, 서버는 각 청크를 처리한 후 즉시 처리 결과(청크 순서, 처리 상태, 소요 시간 등)를 스트리밍으로 응답합니다.실시간 모니터링클라이언트에서는 서버로부터..
최근 많은 시스템이 마이크로서비스 구조를 전환하면서, 서비스 간 통신 방식도 REST API가 아닌 gRPC 고려해야 하는 상황이 늘고 있습니다. 본 글에서는 두 기술의 개념과 쓰임새를 정리하고, Go 언어를 사용한 예제와 벤치마크 테스트를 통해 어떻게 다른지를 비교해보려 합니다. 사실 gRPC를 다 쓰길래 얼마나 좋으면 그렇게 쓰는지가 궁금했고이미 형태가 정형화돼서 생산성이 좋은 REST API와의 차이점이 궁금했는데 이점이 글을 쓴 이유입니다. RPCRPC부터 짚고 넘어가죠RPC, Remote procedure call : 원격 프로시저 호출로 원격 호출(remote invocation) 또는 원격 메소드 호출(remote method invocation)로도 불립니다. 분산 네트워크 환경에서 쉽게 ..
개요https://www.acmicpc.net/problem/1027백준의 고층 건물 문제를 풀어봅시다 문제를 정리하면 다음과 같습니다.  단위가 1인 직성상에 건물이 50보다 작거나 같은 수로 주어지고 이는 차례대로 세워지는데이 건물들의 높이는 1,000,000,000보다 작다.이때 한 빌딩에서 올라갔을 때 가장 많은 빌딩이 보이는 수는 몇 개인가? 이때 빌딩이 보인다는 개념은 단순히 건물의 높이가 높다고 보이는 게 아니고 한 빌딩에서 보는 시각을 기준하기에 이를 풀기 위해서는 단순한 높이차가 아닌 보이는  시각즉 현재 빌딩과 바라볼 빌딩의 간의 기울기를 기준으로 문제를 다가가야 합니다. 기울기 공식은 다음과 같습니다기울기 = y의 증가량/x의 증가량 기울기를 베이스로 문제를 풀면 다음과 같은 그림이 ..
개인적으로 만들고 싶은 게임에 대한 아이디어 생겨서모바일 게임에 개발 환경이 궁금해졌습니다 개발에서 중요한건 대중적이고 널리 알려져서 자료가 많은 게 중요하다고 생각해서후부군을 다음과 같이 리스트업을 해봤습니다. 개발 도구 Unity가장 인기 있는 크로스플랫폼 게임 엔진C# 언어 사용2D 및 3D 게임 개발에 적합하며, AR 및 VR 게임 개발에도 우수한 지원을 제공언리얼 대비 빠른 컴파일 수정이 용이해서유연성이 좋음 소규모 개발집단에 적합Unreal Engine고품질, 고 사양의 게임을 만드는 데 사용되는 강력한 게임 엔진주로 C++를 사용하며, 블루프린트 비주얼 스크립팅 시스템을 통해 프로그래밍 없이 게임을 개발 가능언리얼보다 확연히 좋은 그래픽 퀄리티 보유참고로 유니티와 언리얼은 다음처럼 상황마다 ..
개요백준의 1012번 문제를 풀어봅시다, 문제는 다 알고 계시겠지만 링크는 아래와 같습니다https://www.acmicpc.net/problem/1012요약하자면 x,y로 된 배추 밭에 값이 1로 묶인 묶음 하나당 배추흰지렁이가 한마리가 필요하다면 전체 밭에서 필요한 배추흰지렁이의 최소 수는?조건에 묶음이란 상하좌우가 이어진게 한 묶음으로 봅니다 즉 아래 그림은 총 5마리가 필요한 걸 알 수 있습니다.  다가가기처음에 문제를 보고 가장 먼저 떠오른 생각은 왼쪽 위 부터 차례대로 오른쪽 아래로 내려오니깐현재 좌표에서 오른쪽, 아래 값만을 체크하면서 내려오면 되지 않을까라는 생각을 가장 먼저 해봤는데 아래와 같은 배추 밭에서는 에서는 아래 처럼 왼쪽와 아래에 1이 있을 경우 소거법으로 진행할 경우 성공적으..
🔍 문제 톺아보기https://www.acmicpc.net/problem/10191,000,000,000보다 작거나 같은 N이 주어질 때 1 ~ N까지의 페이지 번호에서 0~9가 몇 번 나오는지 구해보자 백준에서는 1초당 1억을 넘어가면 시간초과를 하게 됩니다하지만 문제는 10억이기에 당연히 반복문으로 모든 경우의 수를 체크하는 방법은 시간초과가 발생합니다. 🔍규칙 찾기시간초과가 발생함은 곧 규칙이 있고 이거를 찾으면 해결할 수 있다는 의미죠저 10억 자리의 수를 무언가 하려면 수로 접근하는 게 아닌 문자열로 접근해야 합니다 다가가기 1일단 1부터 99는 구할 수 있을까?💡어디 보자 십의 자리만 두고 생각하면 1~9가 10번 반복되고 (각 십의 자릿수는 일자리가 9까지 돌기 때문에)일의 자리는 1부..
개요 문제 https://www.acmicpc.net/problem/1005 📃 해당 문제는 이전에 풀었던 위상 정렬 문제인 2252번을 이용하시면 쉽게 이해할 수 있습니다. https://seung.tistory.com/entry/GoLang-%EB%B0%B1%EC%A4%80-2252%EB%B2%88-%EC%A4%84-%EC%84%B8%EC%9A%B0%EA%B8%B0%EC%9C%84%EC%83%81%EC%A0%80%EB%A0%AC [GoLang] 백준 2252번, 줄 세우기(위상 정렬) 개요 https://www.acmicpc.net/problem/2252 2252번: 줄 세우기 첫째 줄에 N(1 ≤ N ≤ 32,000), M(1 ≤ M ≤ 100,000)이 주어진다. M은 키를 비교한 회수이다. 다음..
개요 https://www.acmicpc.net/problem/1004 1004번: 어린 왕자 입력의 첫 줄에는 테스트 케이스의 개수 T가 주어진다. 그 다음 줄부터 각각의 테스트케이스에 대해 첫째 줄에 출발점 (x1, y1)과 도착점 (x2, y2)이 주어진다. 두 번째 줄에는 행성계의 개수 n이 주 www.acmicpc.net 처음 이 문제를 보고 골치가 아플 것 같았는데 유심히 보니 정답률이 높아서 계속 문제를 읽었더니 이 문제는 낚시가 있어서 이 부분만 안 속으면 매우 쉽습니다. 문제가 아래처럼 주어진다면 뭔가 아래처럼원 사이를 구불구불 지나가야 제대로 푼 거 같은 기분이 들지만 사실 아래처럼 간단하게 뒤로 돌아간다는 경우의 수가 항상 존재합니다! 즉 문제에서 말한 행성의 경계에 진입/이탈하는 경..
개요 https://www.acmicpc.net/problem/2252 2252번: 줄 세우기 첫째 줄에 N(1 ≤ N ≤ 32,000), M(1 ≤ M ≤ 100,000)이 주어진다. M은 키를 비교한 회수이다. 다음 M개의 줄에는 키를 비교한 두 학생의 번호 A, B가 주어진다. 이는 학생 A가 학생 B의 앞에 서야 한다는 의 www.acmicpc.net 📃 해당 문제는 위상 정렬로 해결할 수 있습니다. 이를 알 수 있는 이유는 키를 비교하는 것이기에 만약 1번이 2번보다 작다, 2번은 3번보다 작다 근데 3번이 1번 보다 작다와 같이 순환되지 않는다는 걸 의미합니다 거기에 문제에서 답이 여러 가지인 경우 아무거나 출력한다고 말했으니 그 말은 비교했을 때 순서가 동일한 게 생긴다는 의미입니다. 이걸로..
개요 https://www.acmicpc.net/problem/1009 1009번: 분산처리 입력의 첫 줄에는 테스트 케이스의 개수 T가 주어진다. 그 다음 줄부터 각각의 테스트 케이스에 대해 정수 a와 b가 주어진다. (1 ≤ a < 100, 1 ≤ b < 1,000,000) www.acmicpc.net 이 문제는 제곱수는 구하는 문제라 쉽게 자료형의 한계 값을 넘어버릴 수 있습니다. 이를 대처하기 위해선 제곱 수의 일의 자리의 특성을 알면 좋습니다. 제곱 수의 1의 자리는 4번 주기로 반복됩니다. 수학적으로 증명하기에는 너무 복잡하기에 "그렇구나" 정도로 알아두는 게 좋습니다. 이를 이용하면 문제에서 입력되는 b를 최소화할 수 있습니다. 코드 package main import ( "bufio" "f..
DSeung
'go' 태그의 글 목록