본문 바로가기

전체보기141

[BOJ] 단계별로 풀어보기 - 우선순위 큐 잠이 안와서 단계별로에서 이분탐색을 풀다가 멘탈이 나가서 만만한 우선순위 큐를 풀었다. 내일은 어떻게든 이분 탐색 문제를 다 풀어야지.. C++에서 STL을 이용하여 우선순위 큐를 사용할 수 있다. 근데, 이게 너무 편해서 한번 맛 보면 자꾸 생각나게 된다. int에 대한 priority queue를 구성하는데, less와 greater template를 이용해서 여러 자료형에 대한 비교 연산자를 구성할 수 있다. 3번째 인자로 구조체를 넣어야 하는데, 만약 일반적인 타입이 아니라 구조체 혹은 class에 대한 priority queue를 구성해야 한다면, 혹은 custom 연산자를 사용해야 하는 경우엔, 비교 연산자를 구현한 구조체를 넣어주면 된다. 마지막에 푼 가운데를 말해요 문제는 정말 재밌는 문제.. 2020. 7. 6.
[라이브 스트리밍 서비스] - 2. nginx 설정 및 https 설정 사실 nginx를 이용하면 하나의 서버에서 여러개의 도메인을 서빙할 수 있다. 근데 이 당시엔 그걸 몰라서, hls 서버랑 웹 서버의 도메인을 분리하기 위해 서버를 2개로 구성했던 것이다. 모든 서버는 단순히 route에 A Record를 직접 연결해서 구성했다. 로드밸런서 멀티캐스트 서버 이런거 없다. RTMP / HLS Server RTMP 처음 nginx를 빌드할 때 rtmp-module과 같이 빌드 한 nginx를 사용한다는 전제가 있다. hls_path는 임의로 설정할 수 있는데, 중요한 건 nginx user가 해당 폴더에 대한 소유권이 있어야 한다 nginx default user는 www-data 이니 chown 을 이용하자. latency를 최소화하기 위해서 fragment 크기를 줄이고.. 2020. 7. 4.
[라이브 스트리밍 서비스] - 1. 서비스의 구조 & 실행 방법 이 글은 제가 어떻게 서비스의 구조를 가져갔는지에 대한 기록이라, 몇몇 내용들이 생략될 수 있습니다. 서버를 2개나 잡아먹고 있어서 (사실 nginx를 쓰면 그럴 이유가 없었는데) 어서 내려야해.. (빈 지갑) 자세한 것과 궁금한 부분들은 댓글로 달아주시면 감사하겠습니다. 서비스의 구조 처음 프로젝트 구상을 할 땐 이런 구조를 생각했었다. rtmp와 hls를 동시에 수행하는 컨테이너에, 사용자가 송출한 영상을 multicast하여 각 컨테이너마다 이를 처리하여 hls fragment를 구성한다. user가 많아지면 컨테이너 수를 늘려 요청을 분산하는 식으로.. 근데 multicast를 어떻게 해야 할 지 몰라서 (+ 시간없음크리..) 우선 밑에와 같이 간단하게 구성하였다. 애는 내 TODO 에 포함되어 .. 2020. 7. 4.
2020 상반기를 돌아보며 1월 부스트캠프가 마무리되고, 좋은 친구들과 해커톤에 참여하여 심사위원 상을 받았다. 이에 관한 후기는 여기에 있다. 이를 기세로 동아리 홈페이지를 만들자는 계획을 세웠고, 웹을 공부하고 싶은 친구들을 실제로 작동하는 예시를 통해 가르쳐주고 역할을 부여했다. 동아리에 디자인을 좋아하는 친구들이 만들어준 디자인을 기반으로 페이지별로 역할을 나누어 개발하였다. 잘 진행되지 않은 이유가 있는데, 가장 큰 이유는 MVP 를 너무 크게 잡았던 것 이다. 개별 페이지를 각자 개발해서 합치면 된다는 naive한 생각을 했다니.. 코드 컨벤션도 맞추고 학습 수준도 최대한 끌어올려야 하는데, 커뮤니케이션보단 각자 페이지 구성에 집중하는 바람에 실제로 코드 리뷰를 할 수 있는 사람이 나밖에 없었고, git 충돌이 너무 많.. 2020. 6. 29.