본문 바로가기

CS 지식12

TDD(Test Driven Development)란? 정의 새로운 기능을 구현하기 전에 단위 테스트를 수행하여 소프트웨어를 개발하는 방식 어떻게 TDD가 생겨났을까? 소프트웨어 개발 프로세스는 항상 변화하고 있습니다. 그에 따라 소프트웨어 품질을 높이는 새로운 방법이 등장하는데, 그중 한 가지 방법으로 TDD(테스트 주도 개발)가 생겨났습니다. 테스트 주도 개발을 사용해야 하는 이유는 뭘까? 개인적인 생각에는 가장 중요한 이점은 코드의 전반적인 품질이 향상된다는 것입니다. 코드의 유지 관리 가능성을 향상할 뿐만 아니라 "생각지 못한 버그의 수"를 줄여줍니다. 새로운 기능 구현시 새로운 문제가 어디에서 오는지 알 수 없으면 정말 시간이 많이 걸린다는 것을 경험했습니다. 따라서 TDD를 사용하면 코드를 더 작은 단계로 확장할 수도 있으며, 새 기능을 작동하게 .. 2021. 11. 2.
IPFS란? 정의 "InterPlanetary File System"의 약자로서, 분산형 파일 시스템에 데이터를 저장하고 인터넷으로 공유하기 위한 프로토콜 탄생 배경 콘텐츠를 제공하는 WEB 서버에 장애가 생기거나 네트워크 문제 등으로 인해 서비스를 할 수 없는 상태가 되면 해당 콘텐츠의 제공이 중단됩니다. 이를 보완하기 위해 다양한 장애 대책이 H/W, S/W 적으로 적용되어 서비스되고 있습니다. 하지만, 2017년 터키 정부의 위키피디아 접속 차단과 같이 정부 차원의 강제적 차단은 콘텐츠 제공자의 노력과 상관없는 콘텐츠 제공 중단이라는 결과를 맞이하게 됩니다. 이러한 상황의 근본적 이유는 콘텐츠가 한 곳에 집중화되어 있기 때문에 벌어지는 문제입니다. 이러한 근본적인 문제를 분산 저장 시스템으로 해결할 수 있다고 .. 2021. 10. 27.
WebRTC 란? 정의 - 웹 브라우저 간에 플러그인 도움 없이 서로 통신할 수 있도록 설계된 오픈 소스 스트리밍 프로토콜 목적 - 브라우저 간의 P2P 통신을 허용하는 것을 목표로 하며 순수한 채팅 기반 애플리케이션을 위해 설계되었습니다. 특징 - 사용자가 특별한 소프트웨어를 다운로드하거나 동일한 브라우저 플러그인 또는 클라이언트를 사용할 필요 없이 서로 통신할 수 있습니다. 장점 - 대기 시간은 0.5초입니다. - 소프트웨어 설치가 필요하지 않습니다. - 최신 오디오(Opus) 및 비디오 코덱(VP8, H.264)을 사용한 고품질 데이터 전송이 가능합니다. 단점 - 확장성 문제 : WebRTC는 스트리밍 사용 사례를 위한 짧은 대기 시간 메시지 전달을 위해 설계되었기 때문에 각 브라우저에 피어 투 피어 연결이 있어야 .. 2021. 10. 1.
RTMP(Real-Time Messaging Protocol) 란? 정의 실시간 메시징 프로토콜(Real-Time Messaging Protocol)의 약자로 Macromedia(Adobe)에서 개발한 TCP 기반 프로토콜 RTMP 스트리밍 프로세스 1. 카메라 입력 카메라는 빛과 소리를 캡처하고 이러한 아날로그 입력을 원시(압축되지 않은) 디지털 형식으로 변환하는 작업을 수행 2. 인코딩 원시 오디오 및 비디오 데이터를 인식할 수 있는 품질 손실 없이 이상적으로는 더 작고 더 쉽게 처리할 수 있는 파일 크기로 압축 3. 배포 (업로드) 인코딩 된 미디어는 이제 미디어 서버에 배포되어야 하며 여기에서 RTMP가 필요합니다. RTMP는 캡처 및 인코딩 장치와 서버 간에 영구적인 연결을 설정하여 데이터를 빠르게 업로드할 수 있도록 합니다. 4. 미디어 서버(트랜스코딩 및 트.. 2021. 9. 14.