[바미] 세그먼트를 중심으로 다시 그려본 스트리밍 아키텍처
·
Networking
들어가기 전에...동영상 스트리밍 시스템을 설계하다 보면, 대부분의 사람은 이렇게 말하고 싶어 합니다. 그냥 영상 URL 하나만 다른 기기에 넘겨주면 안 되나요? 겉으로 보면 그럴 듯하다. 재생 가능한 URL 하나만 알면, 어디서든 그 주소로 접속해서 영상을 볼 수 있을 것 같지만 실제 스트리밍 세계를 조금만 들여다보면 이 단순한 상상은 금방 깨지게 됩니다.그 이유는 스트리밍은 ‘파일 1개’가 아니라 ‘세그먼트 수십~수백 개’의 행렬이기 때문이죠. 그래서 이번 포스팅에서는 스트리밍을 세그먼트라는 단위에서 다시 바라보고, 그 관점으로 클라이언트 앱 - 프록시 - 플레이어 디바이스 구조를 어떻게 설계할 수 있는지 이야기해보도록 하겠습니다. 우리가 보지 못하는 것, 세그먼트의 행렬일반 사용자가 보는 플레이어 ..
AWS? AWS 퍼블릭 클라우드? 온프레미스까지 한번에 정리해보기
·
DevOps/AWS
클라우드를 공부하다 보면 이런 고민을 한 번쯤 하게 됩니다. “AWS랑 AWS 퍼블릭 클라우드는 같은 말이야?” “온프레미스랑은 뭐가 다른 거지?” 이렇듯 용어가 헷갈리면 개념도 같이 꼬여서, 공부할수록 더 어려워지죠.이 글에서는 AWS, 퍼블릭 클라우드, 온프레미스 개념을 한 번에 정리해 보겠습니다.클라우드를 처음 접하는 분도 이해할 수 있도록 최대한 쉽게 풀어볼게요.온프레미스(On-Premises)란 무엇인가?먼저, 가장 전통적인 방식인 온프레미스부터 보겠습니다.온프레미스(On-Premises)란 말 그대로 내(우리 회사) 건물·데이터센터 안에 서버와 네트워크 장비를 직접 구축해서 쓰는 방식을 뜻합니다. 온프레미스의 특징이러한 온프레미스의 특징으로는 서버, 스토리지, 네트워크 장비를 직접 구매해서 설..
[바미] RG406V를 구매하다 겪었던 불미스러운 일
·
이것저것/일상
이 글은 2025년 09월 23일 그*플*그 월*보합 이라는 네이버 쇼핑몰에서 겪은 환불 관련 문제를, 소비자 피해 예방을 위해 제 경험과 증빙에 근거해 기록한 것입니다. 안녕하세요. 정말 오랜만에 일상 포스팅을 쓰는 것 같습니다. 제가 이 글을 쓴 이유는 위에도 언급했듯이 제가 겪은 일을 이 글을 읽으시는 분들은 당하지 않으셨으면 하여 쓰게 되었습니다. 저는 아케이드 게임을 좋아하던 사람이였고, 친한 형이 R36S라는 제품을 선물받아 거기 있는 구성을 보니 추억도 새록새록 생각나 비슷한 제품이 뭐가 있을까? 하며 찾아보게 되었고, 그 중 'RG405V' 라는 제품이 맘에 들어 2025년 09월 05일 'RG405V'이라는 모델과 '한방팩(256GB)'이라는 제품을 구매하게 되었습니다. 이러한 종류의 기..
[바미] 멱등성에 대해 알아봅시다.
·
프로그래밍(Basic)/이론
멱등성이 뭔가요?컴퓨터 과학에서 멱등하다는 것은 첫 번째 수행을 한 뒤 여러 차례 적용해도 결과를 변경시키지 않는 작업 또는 기능의 속성을 뜻합니다. 즉, 멱등한 작업의 결과는 한 번 수행하든 여러 번 수행하든 같다는 뜻이되죠. 수학적 예로는 절대값 함수가 있어요. 같은 입력에 대해 몇 번을 적용해도 결과가 변하지 않죠. 이 아이디어를 웹 API에 가져오면, 중복 요청·재시도에도 상태가 뒤틀리지 않도록 만드는 설계 원칙이 됩니다. HTTP 메서드와 멱등성어떤 메서드가 멱등(Idempotent)한지부터 봅시다.GET, PUT처럼 리소스를 조회하거나 대체하는 메서드는 멱등하고, DELETE 역시 여러 번 호출해도 삭제된 리소스에 대한 결과는 달라지지 않죠. 반면 POST, PATCH는 멱등한 메서드가 아..
[바미] 새로 쓴, 대용량 데이터 베이스 솔루션 Vol.1를 읽고..
·
이것저것/책 후기
올해의 목표는 내가 약했던 DB의 지식들을 채우는 데 초점을 두었다. 그렇게 알게 된 책이 '새로 쓴, 대용량 데이터 베이스 솔루션 Vol.1'이라는 책이었다. 지금까지 백엔드 개발을 하면서 Maria DB 또는 NoSQL 외에는 다뤄보지 못했다. 처음에 이 책을 보기 전 제목만 접했을 때는 RDB 개발자들에게 도움이 되는 책으로 생각을 했다. 나는 이 책이 Oracle DB와 관련된 책인 줄 전혀 몰랐다. 그래서인지 처음엔 굉장히 생소했다. Oracle 전용 용어들만 다루고 있었기 때문에 하루 하루 공부한 내용들을 블로그에 정리하며 '과연 내게 얼마나 도움이 될까?'라는 의심이 들었다. 그럼에도 불구하고 하루 하루 꾸준히 공부하며 정리할수록 내려갈수록 걱정과는 무색하게 공통의 원리가 또렷이 보이기 시..
[바미] - 자료구조 정리(JS)
·
프로그래밍(Basic)/이론
자료구조자료구조(data structure)는 데이터를 어떤 형식으로 조직해 저장할 것인지와 관련되어 있음.알고리즘은 각각의 자료구조로 표현된 데이터를 이용해 문제를 해결하는 과정.배열배열(Array)은 정수형이면 정수형, 문자형이면 문자형처럼 동일한 데이터 타입의 여러 데이터를 저장하는 자료구조.데이터 하나하나의 크기가 모두 같고, 메모리상의 연속된 공간에 데이터가 저장.배열에서 각 요소를 탐색하는 시간은 시간 복잡도O(1), 삽입 또는 삭제하는 맨 마지막의 요소의 경우 O(1)가운데 요소의 경우 O(n)소요 → O(n)은 요소의 수(n)에 비례해 요소의 수가 많을수록 더 많은 시간이 걸린다.O(1) - 상수 시간 복잡도 : 입력되는 요소 수에 상관없이 항상 동일한 시간이 걸린다.O(n) - 선형 시간..
[바미] - 정렬 알고리즘 정리 (JS)
·
프로그래밍(Basic)/이론
Quick Sort (퀵 정렬)피벗(pivot)을 기준으로 배열을 두 부분으로 나누고, 각각을 재귀적으로 정렬하는 분할 정복 알고리즘.동작 방식배열에서 피벗을 하나 선택피벗보다 작은 값은 왼쪽, 큰 값은 오른쪽으로 분할각 부분 배열에 대해 재귀적으로 다시 정렬정렬된 하위 배열을 합쳐 최종 결과 생성시간 복잡도평균: O(n log n)최악: O(n^2) (피벗이 항상 최소/최대일 경우)특징빠르다, 특히 대부분의 실제 상황에서제자리 정렬 (in-place, 추가 메모리 거의 없음)불안정 정렬 (같은 값의 원소 순서 보장 안 됨)실무에선?대용량 데이터 정렬JavaScript의 V8 엔진 (내부적으로 QuickSort 사용)성능이 중요한 백엔드 API에서 자주 활용코드// Quick Sortfunction qu..
[바미] 새로 쓴, 대용량 데이터 베이스 솔루션 Vol.1 - 2부 - 2장 조인의 최적화 방법
·
프로그래밍(Web)/공부일기
새롭게 안 사실들 전부...?공부한 내용들제 2장 조인의 최적화 방안 대부분의 데이터 처리 작업에서는 하나 이상의 테이블을 엮는 조인이 필요하다. 특히 관계형 데이터베이스는 정규화를 중시하기 때문에, 정보를 다수의 테이블에 분산 저장하고 이들 간의 관계를 바탕으로 조인을 수행해야만 데이터를 재구성할 수 있다. 조인은 단순히 테이블을 연결하는 방식에 그치지 않으며, 실행 계획 및 처리 방식에 따라 성능이 크게 좌우된다. 과거의 파일 시스템이나 망형/계층형 DBMS에서는 배열로 데이터를 저장하면서도 큰 성능 문제가 없었다. 그러나 관계형 데이터베이스에서는 서로 다른 테이블을 연결해야 하기 때문에, 조인을 제대로 이해하고 최적화하는 것이 중요하다. 특히 2차원 테이블 구조를 기반으로 설계된 관계형 데이터베이스..
[바미] - 산업안전 및 사고 예방 교육(해답)
·
이것저것/일상
1. 사업주는 차량계 하역 운반기계와 차량계 건설기계를 사용하여 작업을 하는 경우 제한속도를 지정해야 한다.답: O2. 사업주는 크레인 거더(Girder)의 통로 끝과 크레인 거더의 간격을 1m 이상으로 유지해야 한다.답: X3. 구내 운반차를 사용하는 경우 전조등과 후미등을 갖추어야 한다.답: O 4. 기계의 운전을 시작하는 경우, 일정한 신호 방법과 해당 근로자에게 신호할 사람을 정해야 한다.답: O→ 신호 방법에 따라 해당 근로자에게 신호를 하도록 해야 하며, 이는 작업 중 충돌이나 오작동을 방지하기 위한 필수 안전조치입니다."X입니다. 신호는 주지 않는 게 안전합니다."는 잘못된 설명입니다. 5. 순간풍속이 초당 35미터를 초과할 경우 옥외 승강기의 이동 속도를 절반으로 줄여야 한다.답: X→ 순..
Bami
기록하며 성장하기