반응형
반응형

아직도 PHP를 사용하는 사람들은 누구입니까?

 

https://medium.com/@PurpleGreenLemon/who-are-the-people-still-using-php-36a720ef50f0

 

Who are the people still using PHP?

The current state of PHP for 2023

medium.com

저는 PHP 개발자로 개발 생활을 시작했습니다. 수년 동안 JavaScript의 모든 것에 중점을 두었습니다. 부분적으로는 프런트엔드 웹이 어떤 식으로든 JavaScript에서 실행되기 때문입니다. 지난 10년 동안 제가 살았던 곳입니다.

최근에 저는 PHP와 관련된 일을 했습니다. 처음에는 PHP가 받는 나쁜 평판 때문에 놀랐습니다. 대부분은 구식 WordPress 설치와의 오랜 연관성 때문입니다. 그러나 그것은 PHP가 아닌 WordPress입니다.

그래서 궁금해졌습니다. 실제로 PHP를 사용하는 사람들은 누구입니까? 그들은 왜 그것을 사용하고 있습니까? JavaScript 서버 측 백엔드의 작은 세계와 어떻게 비교합니까?

PHP가 곧 죽을까요?

PHP의 진화와 세계에서의 현재 상태

PHP는 원래 "Personal Home Page"를 의미했지만 지금은 "PHP: Hypertext Preprocessor"를 의미하며 1994년 Rasmus Lerdorf가 만들었습니다 . 처음에 PHP는 Lerdorf의 개인 홈페이지를 유지하기 위한 간단한 Perl 스크립트 세트로 설계되었습니다. 수년에 걸쳐 완전한 기능을 갖춘 스크립팅 언어로 발전하여 전 세계 수백만 개의 웹 사이트를 지원합니다.

처음부터 PHP는 몇 가지 주요 버전 릴리스를 거쳤습니다.

수년에 걸쳐 PHP는 최신 코딩 방식을 채택하여 보다 다재다능하고 개발자 친화적인 언어로 만들었습니다. PHP 5의 객체 지향 프로그래밍(OOP) 채택은 게임 체인저였으며 개발자가 유지 관리 및 재사용 가능한 코드를 더 많이 만들 수 있도록 했습니다.

또 다른 중요한 발전 은 PHP 프로젝트에서 타사 라이브러리를 사용하는 프로세스를 간소화한 의존성 관리자인 Composer 의 도입이었습니다 . Composer를 사용하면 개발자가 보다 쉽게 ​​종속성을 관리하고 서로 다른 라이브러리 버전 간의 충돌을 피할 수 있습니다.

PHP 커뮤니티는 모범 사례 및 코딩 표준을 장려하기 위해 PSR(PHP Standard Recommendations) 도 제정했습니다. PSR은 코딩 스타일, 자동 로딩 및 미들웨어와 같은 PHP 개발의 다양한 측면을 다루므로 PHP 프로젝트의 일관성과 상호 운용성을 보장합니다.

PHP의 현재 상태(PHP 8.x 기능 및 채택)

적시 컴파일러(JIT)

PHP 8의 가장 주목할만한 기능 중 하나는 JIT(Just-In-Time) 컴파일러 입니다 . JIT 컴파일러는 런타임 중에 PHP 코드를 기계 코드로 컴파일하므로 계산 집약적인 작업 또는 오래 실행되는 CLI 스크립트와 같은 특정 유형의 애플리케이션에 대해 상당한 성능 향상을 가져올 수 있습니다. JIT 컴파일러는 웹 기반 애플리케이션의 성능에 큰 영향을 미치지 않을 수 있지만 PHP의 진화에서 한 걸음 더 나아가 현대화에 대한 노력을 보여줍니다.

속성

PHP 8에는 개발자가 클래스, 메서드, 속성 및 기타 언어 구성에 메타데이터를 추가할 수 있는 주석이라고도 하는 속성이 도입되었습니다 . 속성은 번거로운 docblock 주석을 대체하고 보다 표현력이 풍부한 코드를 활성화하여 코드를 단순화하고 정리할 수 있습니다. 특성은 일반적으로 라우팅, 유효성 검사 및 종속성 주입과 같은 작업을 위해 프레임워크 및 라이브러리에서 사용됩니다.

Union 유형 및 기타 새로운 기능

PHP 8의 또 다른 추가 기능인 Union 유형을 사용하면 개발자가 단일 변수, 매개변수 또는 반환 값에 대해 여러 유형을 지정할 수 있습니다. 이 기능은 유형 힌트를 개선하고 코드를 더 읽기 쉽고 강력하게 만듭니다.

PHP 8의 다른 새로운 기능에는 명명된 인수 , 생성자 속성 프로모션  nullsafe 연산자가 포함되며 , 이 모든 기능은 PHP를 보다 현대적이고 표현력이 풍부한 언어로 만드는 데 기여합니다.

PHP

PHP의 장점

간단히 말해서 PHP의 장점은 다음과 같습니다.

단순성과 학습 용이성

PHP의 가장 중요한 장점 중 하나는 단순성과 학습 용이성 입니다 . 이 언어는 기능 코드를 빠르게 선택하고 작성하기 쉽게 만드는 간단한 구문을 사용하여 초보자가 쉽게 접근할 수 있도록 설계되었습니다. 이 낮은 진입 장벽은 웹 개발자들 사이에서 PHP의 광범위한 채택과 인기에 기여했습니다.

광범위한 내장 기능

PHP 는 개발자가 문자열 조작, 날짜 및 시간 계산, 파일 처리와 같은 일반적인 작업을 쉽게 처리할 수 있도록 하는 풍부한 내장 함수 세트를 자랑합니다 . 이 광범위한 내장 기능은 외부 라이브러리의 필요성을 줄이고 개발을 단순화하여 개발자가 애플리케이션의 핵심 기능을 구축하는 데 집중할 수 있도록 합니다.

대규모 커뮤니티 및 풍부한 리소스

PHP는 크고 활동적인 개발자 커뮤니티의 혜택을 받습니다. 즉, 학습 및 문제 해결에 사용할 수 있는 리소스가 풍부합니다. 공식 문서 및 자습서에서 포럼, 블로그 및 Stack Overflow에 이르기까지 개발자는 풍부한 정보와 지원에 액세스할 수 있습니다. 또한 PHP 커뮤니티는 개발을 간소화하고 생산성을 향상시키는 데 도움이 되는 라이브러리, 프레임워크 및 도구의 방대한 생태계에 기여합니다.

광범위한 호스팅 옵션 및 호환성

PHP는 모든 PHP 기반 프로젝트의 요구 사항을 충족하는 호스팅 솔루션을 쉽게 찾을 수 있도록 웹 호스팅 제공업체 로부터 탁월한 지원을 받고 있습니다. 플랫폼과 서버 전반에 걸친 광범위한 호환성을 통해 PHP 개발자는 번거로움을 최소화하면서 애플리케이션을 배포할 수 있습니다. 이 광범위한 호스팅 옵션은 소규모 프로젝트와 대규모 프로젝트 모두에 대해 비용 효율적인 솔루션을 쉽게 찾을 수 있음을 의미합니다.

고성능 프레임워크(Laravel, Symfony, Yii 등)

PHP의 에코시스템 에는 개발자가 강력하고 확장 가능하며 유지 관리 가능한 응용 프로그램을 만드는 데 도움이 되는 여러 고성능 프레임워크가 포함되어 있습니다. Laravel, Symfony 및 Yii와 같은 프레임워크는 웹 애플리케이션 구축을 위한 견고한 기반을 제공하고 라우팅, 데이터베이스 액세스 및 양식 처리와 같은 작업을 단순화하는 도구 및 추상화를 제공합니다. 이러한 프레임워크는 PHP 개발자가 깨끗하고 유지 관리 가능한 코드를 작성하는 데 도움이 되는 최신 코딩 관행 및 표준도 따릅니다.

PHP Core 팀의 지속적인 개발 및 지원

언어 개발 및 개선에 대한 PHP 코어 팀의 지속적인 노력은 PHP의 또 다른 장점입니다. 이전 섹션에서 살펴본 바와 같이 PHP는 언어를 더욱 강력하고 표현력 있게 만드는 기능을 도입하는 새 릴리스가 출시될 때마다 수년에 걸쳐 크게 발전했습니다. 이러한 지속적인 개발 및 지원을 통해 PHP는 웹 개발자를 위한 실행 가능한 옵션으로 유지되어 최신 기술 및 모범 사례를 따라잡을 수 있습니다.

당신의 혈액형은 무엇입니까?

PHP의 단점

그러나 단점은 어떻습니까? 다음은 빠른 실행입니다.

레거시 문제 및 오래된 관행

PHP의 단점 중 하나는 레거시 문제와 이전 PHP 프로젝트에서 구식 사례가 널리 퍼져 있다는 것 입니다. 오랜 역사와 광범위한 채택으로 인해 PHP는 상당한 양의 "잘못된 코드"와 레거시 응용 프로그램에서 지속되는 구식 기술을 축적했습니다. PHP를 처음 사용하는 개발자는 이전 프로젝트로 작업할 때 이러한 문제에 직면할 수 있으며, 이는 실망스럽고 생산성을 저해할 수 있습니다.

보안 문제

PHP는 보안 취약점에 취약하다는 평판을 얻었지만 이는 언어 자체에 내재된 결함이 아니라 잘못된 코딩 관행 때문인 경우가 많습니다 . 그러나 구식 PHP 프로젝트가 많고 WordPress와 같은 콘텐츠 관리 시스템에서 PHP가 광범위하게 사용되면서 PHP가 안전하지 않다는 인식이 생겼습니다. PHP로 작업하는 개발자는 애플리케이션에 취약성이 도입되지 않도록 보안 모범 사례에 대해 주의를 기울여야 합니다.

함수 이름 지정 및 매개변수 순서의 불일치

PHP의 내장 함수는 명명 규칙과 매개변수 순서의 불일치로 인해 개발자에게 혼란을 줄 수 있습니다. 이러한 불일치는 수년에 걸친 PHP의 유기적 성장과 다양한 소스의 기능 포함의 결과입니다. 딜 브레이커는 아니지만 개발자가 보다 일관된 언어를 사용할 때보다 더 자주 문서를 참조해야 합니다.

최신 언어(Go, Node.js 등)에 비해 성능에 대한 비판

PHP는 Go 및 Node.js 와 같은 최신 언어와 비교하여 성능에 대한 비판에 직면해 있습니다 . PHP의 성능은 특히 PHP 7의 출시와 PHP 8의 JIT 컴파일러 도입으로 수년에 걸쳐 크게 향상되었지만 특정 사용 사례에서 일부 최신 언어보다 여전히 뒤쳐질 수 있습니다. 성능이 중요한 응용 프로그램을 구축하는 개발자는 원하는 결과를 얻기 위해 대체 언어 또는 기술을 고려해야 할 수 있습니다.

현대성의 부족 인식

마지막으로, PHP는 때때로 새로운 언어와 프레임워크에 비해 현대성이 부족하다는 인식을 가지고 있습니다. PHP는 현대 코딩 관행을 수용하고 새로운 기능을 도입하는 데 상당한 진전을 이루었지만 "오래된" 언어라는 명성은 흔들리기 어려울 수 있습니다. 이러한 인식은 일부 개발자의 눈에는 PHP가 최신 기술과 경쟁하는 것을 어렵게 만들 수 있으며 새 프로젝트를 시작할 때 새로운 언어를 선호하게 만들 수 있습니다. 그러나 이전 섹션에서 살펴본 것처럼 PHP는 현대 웹 개발의 요구 사항에 맞게 계속 발전하고 적응하는 강력하고 다양한 언어로 남아 있습니다.

프로그래머 유머

그렇다면 오늘날 누가 실제로 PHP를 사용하고 있을까요?

W3Techs 에 따르면 2023년 5월 현재 알려진 서버 측 프로그래밍 언어를 사용하는 모든 웹사이트의 78.9%에서 PHP를 사용하고 있으며 이는 웹 개발 커뮤니티에서 널리 채택되고 있음을 보여줍니다. 또한 PHP는 2,200만 개 이상의 라이브 웹사이트에서 PHP를 사용하고 있음을 보여주는 BuiltWith 통계 에서 알 수 있듯이 서버 측 프로그래밍 언어 사이에서 상당한 시장 점유율을 유지하고 있습니다 . 2021 스택 오버플로 개발자 설문조사 에서도 PHP가 개발자들 사이에서 8번째로 인기 있는 언어로 나타났으며, 응답자의 26.2%가 PHP를 사용한다고 보고했습니다.

많은 잘 알려진 회사와 웹사이트는 서버 측 프로그래밍 요구 사항을 위해 PHP를 사용합니다.

  • Facebook : Facebook은 Hack이라는 자체 PHP 파생 언어와 HHVM(HipHop Virtual Machine) 런타임을 만들었지만 초기 인프라는 PHP를 사용하여 구축되었습니다 .
  • Wikipedia : 전 세계에서 가장 많이 방문하는 웹사이트 중 하나인 온라인 백과사전은 PHP 및 오픈 소스 MediaWiki 소프트웨어 에서 실행됩니다 .
  • Slack : PHP는 Slack 기술 스택의 일부이며 StackShare에 설명된 대로 메시징 플랫폼을 강화하는 데 중요한 역할을 합니다 .
  • MailChimp : 인기 있는 이메일 마케팅 서비스 제공업체는 Quora에서 언급한 것처럼 백엔드 개발을 위해 PHP를 사용합니다 .
  • Etsy : 수제 및 빈티지 제품을 위한 전자 상거래 시장에서도 StackShare에서 볼 수 있듯이 PHP를 사용하여 웹 애플리케이션을 구동합니다 .

PHP는 또한 다음과 같은 다양한 목적을 위해 다양한 산업에서 널리 사용됩니다.

  • 콘텐츠 관리 시스템(CMS) : PHP는 WordPress, Drupal, Joomla와 같이 널리 사용되는 콘텐츠 관리 시스템의 기반입니다. 이 시스템은 WPBeginner가 설명하는 것처럼 전 세계 수백만 개의 웹사이트를 지원합니다 .
  • 전자 상거래 : Magento, WooCommerce(WordPress 플러그인) 및 PrestaShop과 같은 PHP 기반 전자 상거래 플랫폼은 Cloudways에서 설명한 대로 모든 규모의 기업에서 온라인 상점을 만드는 데 사용됩니다 .
  • 맞춤형 웹 애플리케이션 : 개발자는 PHP를 사용하여 의료 및 금융에서 교육 및 엔터테인먼트에 이르기까지 다양한 산업을 위한 맞춤형 웹 애플리케이션을 구축합니다. PHP의 다재다능함과 강력함은 웹 애플리케이션 개발을 위한 대중적인 선택입니다.

NodeJs 대 PHP: 2023년 통계, 기능 및 성능 비교

PHP 대 JavaScript 서버 측 백엔드

성능은 모든 웹 애플리케이션의 중요한 측면입니다. PHP는 PHP.net에 설명된 대로 JIT(Just-In-Time) 컴파일러를 도입한 PHP 7 및 PHP 8의 출시와 함께 상당한 성능 향상을 이루었습니다 . PHP의 성능은 이제 Node.js와 같은 JavaScript 서버 측 백엔드의 성능에 훨씬 더 가깝습니다. 그러나 V8 JavaScript 엔진을 사용하는 Node.js는 종종 특정 시나리오에서 PHP를 능가합니다. 이것은 주로 비차단 I/O와 RisingStack에서 설명한 것처럼 많은 동시 연결을 효율적으로 처리할 수 있는 능력 때문입니다 . 높은 동시성과 실시간 처리가 필요한 상황에서는 Node.js가 더 나은 선택일 수 있습니다.

PHP와 JavaScript 모두 광범위한 생태계와 라이브러리를 가지고 있습니다. PHP는 개발을 간소화하는 다양한 라이브러리, 프레임워크 및 도구에 기여하는 대규모 커뮤니티의 이점을 제공합니다. PHP의 종속성 관리자인 Composer를 사용 하면 패키지와 종속성을 쉽게 관리할 수 있습니다. 반면에 JavaScript는 거의 모든 요구에 맞는 대규모 패키지 모음을 제공하는 npm 레지스트리를 자랑합니다. PHP의 생태계는 웹 개발에 더 중점을 두고 있지만 JavaScript의 생태계는 더 광범위하며 프런트엔드 및 백엔드 개발 모두에 적합합니다. 이것은 JavaScript를 더 다재다능하게 만들지만 언어를 처음 접하는 개발자에게는 더 가파른 학습 곡선을 제공합니다.

구문 및 언어 기능 측면에서 PHP와 JavaScript는 크게 다릅니다. PHP는 강력한 내장 함수 및 기능 세트를 갖춘 성숙한 언어입니다. 최근 몇 년 동안 PHP는 유형 힌트, 속성 및 짧은 클로저와 같은 최신 언어 기능을 채택했습니다 . JavaScript는 일급 함수 및 비동기 프로그래밍과 같은 기능을 갖춘 보다 동적이고 유연한 언어입니다. JavaScript의 광범위한 콜백 및 약속 사용은 강력한 프로그래밍 패러다임을 가능하게 하지만 "콜백 지옥"으로 알려진 복잡하고 중첩된 코드 구조로 이어질 수 있으므로 강점이자 약점이 될 수 있습니다. 그러나 async/await의 도입은 이 문제를 완화하는 데 도움이 되었습니다 .

각 언어의 장단점을 고려할 때 특정 사용 사례 및 시나리오에 대한 적합성을 평가하는 것이 중요합니다. PHP는 종종 전통적인 웹 애플리케이션, 콘텐츠 관리 시스템(예: WordPress, Drupal, Joomla) 및 전자 상거래 플랫폼(예: Magento, WooCommerce, PrestaShop)에 더 나은 선택입니다. 단순성과 학습 용이성으로 인해 웹 개발을 막 시작하는 개발자에게 탁월한 선택입니다. 반면에 Node.js와 같은 JavaScript 서버 측 백엔드는 실시간 애플리케이션(예: 채팅 애플리케이션, 온라인 게임), 단일 페이지 애플리케이션(SPA) 및 프런트엔드 모두에 대해 통합 언어가 필요한 프로젝트에 더 적합합니다. 그리고 백엔드. Node.js는 애플리케이션이 많은 동시 연결 및 비차단 I/O 작업을 처리해야 하는 상황에서 탁월합니다.

재미있는 개발자

이제 뭐? PHP는 수많은 다른 백엔드 기술 중에서 하나의 옵션이어야 합니까?

PHP는 최신 코딩 방식, 성능 향상 및 최신 버전의 강력한 기능 추가를 통해 수년에 걸쳐 크게 발전했습니다. 레거시 문제와 시대에 뒤떨어진 관행에도 불구하고 PHP는 웹 개발을 위한 인기 있는 선택으로 전 세계 웹사이트의 상당 부분을 지원하고 있습니다. 단순성, 학습 용이성 및 광범위한 생태계는 모든 경험 수준의 개발자에게 매력적인 옵션입니다.

반면에 Node.js와 같은 JavaScript 서버 측 백엔드는 특정 시나리오에서 뛰어난 성능, 다양한 생태계, 프런트엔드 및 백엔드 개발을 위한 통합 언어를 자랑하는 웹 개발 환경에서 강력한 경쟁자로 부상했습니다. JavaScript의 경우 학습 곡선이 더 가팔라질 수 있지만 JavaScript의 유연성과 강력한 언어 기능으로 인해 다양한 응용 프로그램에서 매력적인 선택입니다.

그렇다면 PHP는 수많은 다른 백엔드 기술 중에서 하나의 옵션이어야 할까요? 대답은 프로젝트의 특정 요구 사항, 언어에 대한 친숙도 및 구축 중인 애플리케이션 유형에 따라 다릅니다. PHP는 여전히 전통적인 웹 응용 프로그램, 콘텐츠 관리 시스템 및 전자 상거래 플랫폼을 위한 강력한 선택인 반면 JavaScript 서버 측 백엔드는 실시간 응용 프로그램, 단일 페이지 응용 프로그램 및 높은 동시성과 비차단 I/C가 필요한 시나리오에서 탁월합니다. O 작업.

궁극적으로 결정은 프로젝트 맥락에서 각 언어의 장단점, 강점 및 약점을 평가하는 것입니다. PHP 코어 팀의 지속적인 개발과 지원으로 PHP는 계속해서 성장하는 백엔드 기술 환경에서도 웹 개발을 위한 적절하고 실행 가능한 옵션으로 남아 있습니다.

반응형
반응형

EU·미국, 공동으로 AI 행동지침 만든다 "AI 법 제정까지의 공백 메울 것"

원문보기:
https://www.ciokorea.com/news/293173#csidx0de5b3cf12c17e2a3e1f76861767c7f 

 

AI가 불러올 위협을 두고 전 세계 IT 산업과 정치권의 논의가 계속되는 가운데, EU와 미국이 AI 행동 지침을 마련하기로 결정했다. 

유럽과 미국 모두 사법 부문에서 AI를 규제하는 공식 법안은 아직 마련 중이고, 그나마도 확정과 적용까지 수 년이 걸릴 수도 있다. 그에 비해 AI 행동 지침은 아직 안에 지나지 않으나 발의까지 몇 주가 채 걸리지 않고, 정식 입법까지의 공백을 메울 수 있다.
 

ⓒ Getty Images Bank
현재 유럽연합 집행위원회는 AI가 인권이나 안전에 위협이 될 경우 사용을 금지하고, 위험 수준에 따라 인공지능 사용 규정의 제한 수준을 조절하는 AI 법 초안을 공개한 상태다. 예를 들어 일반 고객과 챗봇의 상호작용은 위험 수준이 낮게 분류된다.

유럽의회 의원들은 법안 문구에 원칙적인 동의를 표했으나 유럽의회 표결 여부는 6월에 결정될 예정이다. 조 바이든 미국 대통령과 해리스 부통령은 최근 AI 기업 임원진을 만나 AI 기술 위험 가능성을 논의하면서 AI 규제 프레임워크를 논의하고 있다.

5월에는 미국 상원 위원회 두 곳이 오픈AI CEO 샘 알트먼, IBM 임원 크리스티나 몽고메리, 뉴욕대학교 명예교수 게리 마커스 등 업계 전문가를 만나기도 했다.
 

인공지능 책임론 대두

지난 5월 30일 수백명의 IT 업계와 학계 종사자 및 공적 인물들이 AI 기술의 진보로 결국 인류가 멸종할 것이라고 경고하는 공개 서한에 연명하면서 전 세계 최우선 과제로 인공지능 통제를 꼽았다.

다음날 스웨덴에서 개최된 EU-미국 무역기술위원회(TTC) 회의에서 유럽위원회 부위원장 마르그레테 베스타게르는 "책임감 있는 인공지능이 필요하다. 생성형 AI는 완전히 판도를 바꾸는 요소"라고 말했다.

유럽연합의 경쟁과 디지털 전략 책임자인 베스타게르 부위원장은 미국과 유럽이 논의 중인 행동 지침이 절대적으로 시급한 문제라며, 가능한 많은 지역을 관할할 수 있도록 다른 전 세계 파트너의 동참을 독려해야 한다고 말했다.

베스타게르는 행동 지침을 홍보하기 위해 업계 관계자의 피드백을 얻고 가입을 권유할 것이라며 "업계가 자발적으로 참여할 수 있는 최종안이 곧 발표될 것"이라고 말했다.

무역기술위원회는 2021년에 미국과 EU간 기술과 무역 정책을 조율하기 위해 만들어졌다. 이 협의체는 기술 표준, 데이터 거버넌스, 기술 플랫폼, 보안과 인권을 위협하는 기술 오남용 등 특정 정책에 집중하는 10개의 실무 그룹으로 이루어져 있다.

한편, 지난달 오픈AI CEO 샘 알트먼은 EU의 AI 법이 과도한 규제라며 우려를 표명하고, EU의 AI 법이 현안대로 통과되면 유럽 내 사업을 중단해야 할 수도 있다고 발언해 유럽의회 의원을 비롯한 일부의 반감을 샀다. 결국 알트먼은 입장을 뒤집어 오픈AI는 유럽을 떠날 계획이 없다는 트윗을 올렸다.

반응형
반응형

https://netflixtechblog.com/native-frame-rate-playback-6c87836a948

 

Native Frame Rate Playback

This article talks about a novel HDMI technology and how it is used within the Netflix Application to improve a user’s experience.

netflixtechblog.com

소개

회원의 몰입도를 극대화하는 것은 Netflix 제품 및 엔지니어링 팀이 회원을 즐겁게 하고 콘텐츠에 완전히 몰입할 수 있도록 하는 중요한 목표입니다. 결함 없는 인앱 전환으로 원활한 재생 경험을 제공하기 위해 성숙한 최신 클라이언트 장치 기술을 적절하게 조합하여 활용하는 것은 이 목표를 달성하기 위한 중요한 단계입니다. 이 기사에서는 소비자 스트리밍 장치의 기능을 활용하여 회원에게 더 나은 시청 경험을 제공하기 위한 여정에 대해 설명합니다.

Roku 셋톱 박스(STB) 또는 Amazon FireTV 스틱과 같은 스트리밍 장치가 TV에 연결되어 있는 경우 장치 디스플레이 설정에서 콘텐츠 프레임 속도와 관련된 옵션을 보았을 수 있습니다. 장치 제조업체는 종종 이 기능을 "콘텐츠 프레임 속도 일치", "디스플레이 재생률 자동 조정" 또는 이와 유사한 이름으로 부릅니다. 이러한 기능이 무엇이며 어떻게 시청 환경을 개선할 수 있는지 궁금한 적이 있다면 계속 읽어보세요. 다음 섹션에서는 이 기능의 기본 사항을 다루고 Netflix 애플리케이션에서 이 기능을 사용하는 방법에 대해 자세히 설명합니다.

문제

Netflix의 콘텐츠 카탈로그는 초당 23.97에서 60 프레임(fps) 범위의 다양한 프레임 속도 중 하나로 캡처 및 인코딩된 비디오로 구성됩니다. 회원이 소스 장치 (예: 셋톱 박스, 스트리밍 스틱, 게임 콘솔 등)에서 영화 또는 TV 프로그램을 보기로 선택하면 콘텐츠가 전달된 다음 프레임인 기본 프레임 속도 로 디코딩됩니다. 디코딩 단계 후 소스 장치는 연결된 싱크 장치(TV, AVR, 모니터 등)의 HDMI 입력 포트 기능을 기반으로 구성된 HDMI 출력 프레임 속도로 변환 합니다 . 일반적으로 HDMI를 통한 출력 프레임 속도는 PAL 지역의 경우 50fps, NTSC 의 경우 60fps로 자동 설정됩니다.지역.

Netflix는 높은 프레임 속도의 콘텐츠(50fps 또는 60fps)를 제한적으로 제공하지만 당사 카탈로그 및 시청 시간의 대부분은 23.97~30fps 콘텐츠를 시청하는 회원이 차지할 수 있습니다. 이는 본질적으로 대부분의 경우 콘텐츠가 프레임을 복제하여 HDMI 출력 프레임 속도와 일치하도록 기본 프레임 속도에서 콘텐츠를 변환하는 소스 장치에서 프레임 속도 변환 (일명 FRC)이라는 프로세스를 거친다는 것을 의미합니다. 그림 1은 24fps 콘텐츠를 60fps로 변환하는 간단한 FRC 알고리즘을 보여줍니다.

그림 1 : 24FPS 콘텐츠를 60FPS로 변환하는 3:2 풀다운 기법

콘텐츠를 변환하고 HDMI를 통해 출력 프레임 속도로 전송하는 것은 논리적이고 간단하게 들립니다. 실제로 FRC는 출력 프레임 속도가 기본 프레임 속도의 정수배(예: 24→48, 25→50, 30→60, 24→120 등)일 때 잘 작동합니다. 반면에 FRC는 정수가 아닌 다중 변환이 필요한 경우(예: 24→60, 25→60 등) Judder 라는 시각적 아티팩트를 도입하며, 이는 아래 그림과 같이 고르지 못한 비디오 재생으로 나타납니다.

반응형
반응형

정렬 조건 없이 순번을 매겨보자

 

 

일반적으로 순번을 지정할 때 ROW_NUMBER(), RANK, DENSE_RANK 등을 이용한다.

 

[MSSQL] ROW_NUMBER, RANK, DENSE_RANK 순위함수
 

 

SELECT ROW_NUMBER() OVER(ORDER BY 컬럼명) FROM 테이블명
SELECT RANK() OVER(ORDER BY 컬럼명) FROM 테이블명
SELECT DENSE_RANK() OVER(ORDER BY 컬럼명) FROM 테이블명

 

 

 

이렇게 정렬할 기준 컬럼을 지정 후 순위를 매긴다.

 

하지만 SELECT 해서 나오는 결과 그대로 순위를 매기려고 한다.

 

SELECT ROW_NUMBER() OVER(ORDER BY 1)
FROM 테이블명

 

다음과 같이 ORDER BY 1로 하면 될 거 같은데...! 안된다..

 

그렇다면 어떻게 처리해야할까?

 

 

 

첫번째 방법. 의미없는 변수 사용

 

DECLARE @row INT = 1 -- 의미 없는 변수
 
SELECT ROW_NUMBER() OVER(ORDER BY @row)
FROM 테이블명

 

이렇게 의미없는 변수를 선언해주고 해당 변수를 ORDER BY 절에 넣어준다.

 

 

 

 

두번째 방법. SELECT 1 사용

 

SELECT ROW_NUMBER () OVER(ORDER BY (SELECT 1))
FROM 테이블명

 

 

 

반응형
반응형

https://wikidocs.net/book/1704

공학자를 위한 Python

 

반응형
반응형

[python] 스파이더, https://www.spyder-ide.org/

 

Home — Spyder IDE

Download Ready to give Spyder a try? Let's get started! Want to join the community of scientists, engineers and analysts all around the world using Spyder? Click the button below to download the suggested installer for your platform. We offer standalone in

www.spyder-ide.org

 

https://wikidocs.net/15313

 

1.2.2 Spyder

Spyder는 Anaconda 배포본에 포함되어 있는 IDE이다. 에디터와 콘솔을 지원하기 때문에 위의 작업을 편하기 수행할 수 있다. 또한, 프로젝트, 디버깅, 헬프, 변수 보…

wikidocs.net

https://docs.spyder-ide.org/current/quickstart.html

 

Quickstart — Spyder 5 documentation

 

docs.spyder-ide.org

 

반응형

+ Recent posts