목차
비동기 모드
Node.js
Coroutine
PHP & Swoole
헤드라인 2018년 백엔드 기술 동향에 대한 간략한 논의

2018년 백엔드 기술 동향에 대한 간략한 논의

Jan 25, 2018 pm 02:06 PM
기술 경향

이 글에서는 백엔드 기술에 대한 보다 명확한 이해를 돕기 위해 2018년 백엔드 기술 동향을 주로 다루겠습니다.

비동기 모드

Go 언어는 점점 더 대중화되고 있으며 많은 대형 인터넷 회사들이 백엔드를 GO로 전환하고 있습니다. Java 분야에서 잘 알려진 서비스 지향 프레임워크인 Dubbo도 비동기 모드로의 전환을 발표했습니다. 이는 큰 추세이며 비동기식 모델은 시장에서 검증되고 인정되었습니다.

웹 서버를 선택할 때 대부분의 사람들은 몇 년 전부터 동기식 차단 Apache 대신 비동기식 비차단 Nginx를 선택하기 시작했습니다. Nginx와 같은 비동기 프로그램이 더 나은 적응성과 더 강력한 동시성 기능을 제공하기 때문입니다. 이제 백엔드 비즈니스 개발 프로그래밍 측면에서 강력한 기술 역량을 갖춘 팀이 기술 스택을 동기 모드에서 비동기 모드로 전환하기 시작했습니다.

동기식 차단 모드에는 약한 동시성, 낮은 적응성, 느린 요청 등 많은 결함이 있어 서비스를 사용할 수 없습니다. 예를 들어, 백그라운드 인터페이스에서 타사 API를 호출하는 시나리오에서 동기화 모드는 효과가 매우 낮습니다. 과거에는 Java, PHP, C++, Python 및 Ruby 언어를 사용하여 개발된 동기식 차단 모드 프레임워크를 사용하는 사람이 점점 줄어들었습니다.

Node.js

Node.js도 매우 유명하고 유명하지만 Node.js를 회사 백엔드의 주요 프로그래밍 언어로 사용하는 기업은 여전히 ​​흔하지 않습니다. C++, Java, PHP 및 Python 언어에도 Node.js와 유사한 비동기 콜백 모드를 기반으로 하는 Swoole-1.0을 포함하여 유사한 솔루션이 있습니다.

핵심적인 이유는 Promise, Future, Yield/Generator, Async/Await 등을 포함하여 비동기 콜백의 기술 솔루션과 이에 기반한 일부 최적화 솔루션이 프로그램 개발 스타일과 습관을 변화시켰기 때문입니다. 이러한 기술을 사용하려면 엔지니어는 이러한 키워드와 기능을 사용하는 방법을 추가로 학습해야 합니다.

이러한 기술 솔루션을 사용하면 기존 프로그램과 호환되지 않습니다. 연구개발 비용이 엄청나고 원활한 전환이 어렵다고 할 수 있습니다. 비동기 콜백 기술 스택의 인기에 영향을 미쳤습니다. 이 프로그래밍 모델은 모든 사람이 받아들이기 어렵습니다.

Coroutine

코루틴 모드는 동기 차단의 유지 관리 가능성과 비동기 비차단의 높은 동시성 기능을 고려합니다. 이는 향후 백엔드 개발 분야의 주류 기술 솔루션이 될 것입니다.

가장 중요한 점은 코루틴 모드를 실행하려면 기존 프로젝트 코드를 약간만 조정하면 되며 이전 프로젝트와도 완벽하게 호환된다는 것입니다. 호환성을 위해서는 프레임워크 레이어만 필요합니다. 이를 통해 팀의 원활한 전환이 가능합니다.

코루틴 모드를 사용하면 개발자는 추가 키워드 및 기능 사용법을 전혀 배울 필요가 없습니다. 코딩 스타일은 동기 모드와 완전히 동일합니다.

다양한 코루틴 기술 중에서 GO가 가장 눈부신 기술입니다. 코루틴, 채널, 정적 언어, 성능, 풍부한 컴파일, 풍부한 표준 라이브러리, 완전한 생태학, Google 등 장점이 너무 많습니다. GO 是最耀眼的那一个。协程、通道、静态语言、性能、富编译、标准库丰富、生态完整、Google 等,优势太多了。GO 语言,个人认为是目前所有编程语言中,最值得学习的

Swoole 2.x 让 PHP 这门 20多年历史的老牌后台编程语言也能有协程的能力。相比 Go 这样的技术,PHP + Swoole 的技术栈,更适合快速开发、快速迭代、业务驱动的场景。毕竟动态语言比静态语言还是要更加灵活、开发效率更高。而 Go 更适合编写系统级软件、核心业务。

2018 年我重构了 swoole framework 这个很老的项目,底层支持 Swoole 2.x 协程模式。主要原因是车轮公司内部有很多项目基于这个框架,尤其是服务层全部用了 swoole framework。我们希望业务代码一行不改,可以一键切换为协程模式。理论上其他的同步阻塞 PHP 框架,如 Laravel 、Yii ,都可以实现只修改底层兼容 Swoole 2.x 协程,实现项目代码无缝切换协程模式。

使用协程后,整个系统的性能、并发能力、稳定性有了巨大提升。过去,线上经常出现一个慢请求导致整个服务器卡住的问题不存在了。

PHP & Swoole

虽然 Swoole 2.0 只有不到两年的历史,相比 Go 语言 10 年的耕耘,还有很长一段路要走。但相比 GO 这样的静态语言,PHP + Swoole 还是有很多优势的,PHP 更加简单易用,PHP 是动态语言,使用起来更加灵活。

当然,如果是新项目还是推荐使用 Swoft 这个专门为 Swoole 2.x내 생각에는 GO 언어가 현재의 모든 프로그래밍 언어 중에서 가장 배울 가치가 있는 언어입니다

.

Swoole 2.x를 사용하면 20년 이상의 역사를 지닌 베테랑 백엔드 프로그래밍 언어인 PHP에 코루틴 기능을 사용할 수 있습니다. Go와 같은 기술과 비교할 때 PHP + Swoole의 기술 스택은 신속한 개발, 빠른 반복 및 비즈니스 중심 시나리오에 더 적합합니다. 결국 동적 언어는 정적 언어보다 개발에 더 유연하고 효율적입니다. 그리고 Go는 시스템 수준 소프트웨어 작성 및 핵심 비즈니스에 더 적합합니다.


2018년에 저는 아주 오래된 프로젝트인 swoole 프레임워크를 리팩터링했습니다. 기본 레이어는 Swoole 2.x 코루틴 모드를 지원합니다. 주된 이유는 휠 회사 내에서 이 프레임워크를 기반으로 하는 프로젝트가 많기 때문입니다. 특히 서비스 계층에서는 모두 Swoole 프레임워크를 사용합니다. 비즈니스 코드가 한 줄도 바뀌지 않고 클릭 한 번으로 코루틴 모드로 전환될 수 있기를 바랍니다. 이론적으로 Laravel 및 Yii와 같은 다른 동기식 차단 PHP 프레임워크는 기본 호환 Swoole 2.x 코루틴만 수정하여 프로젝트 코드에서 코루틴 모드를 원활하게 전환할 수 있습니다.

코루틴을 사용한 후 전체 시스템의 성능, 동시성, 안정성이 크게 향상되었습니다. 과거에는 느린 요청으로 인해 종종 전체 서버가 온라인 상태로 멈추던 문제가 더 이상 존재하지 않습니다. PHP & Swoole

Swoole 2.0이 출시된 지 2년이 채 안 됐지만, 10년 동안 Go 언어를 열심히 개발한 것에 비하면 아직 갈 길이 멀다. 그러나 GO와 같은 정적 언어에 비해 PHP + Swoole은 여전히 ​​많은 장점을 가지고 있습니다. PHP는 동적 언어이며 사용이 더 쉽습니다. 물론, 새로운 프로젝트라면 Swoole 2.x용으로 특별히 설계된 프레임워크인 Swoft를 사용하는 것이 좋습니다.

이제 Swoole 2.0 코루틴을 통해 우리는 여전히 PHP의 미래에 대해 확신을 갖고 있습니다. 관련 추천:


성장하는 프로그래머가 해야 할 7가지🎜🎜🎜🎜PHP 프로그래머의 성장 경로🎜🎜🎜🎜PHP 프로그래머의 미래에 대한 간략한 이야기🎜🎜🎜🎜🎜
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.

핫 AI 도구

Undresser.AI Undress

Undresser.AI Undress

사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover

AI Clothes Remover

사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool

Undress AI Tool

무료로 이미지를 벗다

Clothoff.io

Clothoff.io

AI 옷 제거제

Video Face Swap

Video Face Swap

완전히 무료인 AI 얼굴 교환 도구를 사용하여 모든 비디오의 얼굴을 쉽게 바꾸세요!

뜨거운 도구

메모장++7.3.1

메모장++7.3.1

사용하기 쉬운 무료 코드 편집기

SublimeText3 중국어 버전

SublimeText3 중국어 버전

중국어 버전, 사용하기 매우 쉽습니다.

스튜디오 13.0.1 보내기

스튜디오 13.0.1 보내기

강력한 PHP 통합 개발 환경

드림위버 CS6

드림위버 CS6

시각적 웹 개발 도구

SublimeText3 Mac 버전

SublimeText3 Mac 버전

신 수준의 코드 편집 소프트웨어(SublimeText3)

Stable Diffusion 3 논문이 드디어 공개되고, 아키텍처의 세부 사항이 공개되어 Sora를 재현하는 데 도움이 될까요? Stable Diffusion 3 논문이 드디어 공개되고, 아키텍처의 세부 사항이 공개되어 Sora를 재현하는 데 도움이 될까요? Mar 06, 2024 pm 05:34 PM

StableDiffusion3의 논문이 드디어 나왔습니다! 이 모델은 2주 전에 출시되었으며 Sora와 동일한 DiT(DiffusionTransformer) 아키텍처를 사용합니다. 출시되자마자 큰 화제를 불러일으켰습니다. 이전 버전과 비교하여 StableDiffusion3에서 생성된 이미지의 품질이 크게 향상되었습니다. 이제 다중 테마 프롬프트를 지원하고 텍스트 쓰기 효과도 향상되었으며 더 이상 잘못된 문자가 표시되지 않습니다. StabilityAI는 StableDiffusion3이 800M에서 8B 범위의 매개변수 크기를 가진 일련의 모델임을 지적했습니다. 이 매개변수 범위는 모델이 많은 휴대용 장치에서 직접 실행될 수 있어 AI 사용이 크게 줄어든다는 것을 의미합니다.

자율주행과 궤도예측에 관한 글은 이 글이면 충분합니다! 자율주행과 궤도예측에 관한 글은 이 글이면 충분합니다! Feb 28, 2024 pm 07:20 PM

자율주행 궤적 예측은 차량의 주행 과정에서 발생하는 다양한 데이터를 분석하여 차량의 향후 주행 궤적을 예측하는 것을 의미합니다. 자율주행의 핵심 모듈인 궤도 예측의 품질은 후속 계획 제어에 매우 중요합니다. 궤적 예측 작업은 풍부한 기술 스택을 보유하고 있으며 자율 주행 동적/정적 인식, 고정밀 지도, 차선, 신경망 아키텍처(CNN&GNN&Transformer) 기술 등에 대한 익숙함이 필요합니다. 시작하기가 매우 어렵습니다! 많은 팬들은 가능한 한 빨리 궤도 예측을 시작하여 함정을 피하기를 희망합니다. 오늘은 궤도 예측을 위한 몇 가지 일반적인 문제와 입문 학습 방법을 살펴보겠습니다. 관련 지식 입문 1. 미리보기 논문이 순서대로 되어 있나요? A: 먼저 설문조사를 보세요, p

DualBEV: BEVFormer 및 BEVDet4D를 크게 능가하는 책을 펼치세요! DualBEV: BEVFormer 및 BEVDet4D를 크게 능가하는 책을 펼치세요! Mar 21, 2024 pm 05:21 PM

본 논문에서는 자율 주행에서 다양한 시야각(예: 원근 및 조감도)에서 객체를 정확하게 감지하는 문제, 특히 원근(PV) 공간에서 조감(BEV) 공간으로 기능을 효과적으로 변환하는 방법을 탐구합니다. VT(Visual Transformation) 모듈을 통해 구현됩니다. 기존 방법은 크게 2D에서 3D로, 3D에서 2D로 변환하는 두 가지 전략으로 나뉩니다. 2D에서 3D로의 방법은 깊이 확률을 예측하여 조밀한 2D 특징을 개선하지만, 특히 먼 영역에서는 깊이 예측의 본질적인 불확실성으로 인해 부정확성이 발생할 수 있습니다. 3D에서 2D로의 방법은 일반적으로 3D 쿼리를 사용하여 2D 기능을 샘플링하고 Transformer를 통해 3D와 2D 기능 간의 대응에 대한 주의 가중치를 학습하므로 계산 및 배포 시간이 늘어납니다.

'마인크래프트'가 AI 마을로 변신, NPC 주민들이 실제 사람처럼 역할극 '마인크래프트'가 AI 마을로 변신, NPC 주민들이 실제 사람처럼 역할극 Jan 02, 2024 pm 06:25 PM

이 네모난 남자는 눈앞에 있는 '불청객'의 정체를 고민하며 미간을 찌푸리고 있다는 점에 주목해주세요. 알고 보니 그녀는 위험한 상황에 처해 있었고, 이를 깨닫자마자 문제를 해결하기 위한 전략을 찾기 위해 재빨리 정신적 탐색을 시작했습니다. 결국 그녀는 현장을 떠나 가능한 한 빨리 도움을 구하고 즉각적인 조치를 취하기로 결정했습니다. 동시에 반대편에 있는 사람도 그녀와 같은 생각을 하고 있었는데... <마인크래프트>에도 모든 캐릭터가 인공지능에 의해 조종되는 장면이 있었다. 예를 들어 앞서 언급한 소녀는 17세지만 똑똑하고 용감한 택배기사입니다. 그들은 마인크래프트를 배경으로 한 이 작은 마을에서 인간처럼 기억하고 생각하며 살아갈 수 있는 능력을 가지고 있습니다. 그들을 움직이는 것은 아주 새로운 것입니다.

검토! 심층 모델 융합(LLM/기본 모델/연합 학습/미세 조정 등) 검토! 심층 모델 융합(LLM/기본 모델/연합 학습/미세 조정 등) Apr 18, 2024 pm 09:43 PM

9월 23일, 국립방위기술대학교, JD.com 및 베이징 공과대학이 "DeepModelFusion:ASurvey"라는 논문을 발표했습니다. 딥 모델 융합/병합은 여러 딥 러닝 모델의 매개변수나 예측을 단일 모델로 결합하는 새로운 기술입니다. 이는 더 나은 성능을 위해 개별 모델의 편향과 오류를 보상하기 위해 다양한 모델의 기능을 결합합니다. 대규모 딥 러닝 모델(예: LLM 및 기본 모델)에 대한 딥 모델 융합은 높은 계산 비용, 고차원 매개변수 공간, 서로 다른 이종 모델 간의 간섭 등을 포함한 몇 가지 문제에 직면합니다. 이 기사에서는 기존 심층 모델 융합 방법을 네 가지 범주로 나눕니다. (1) 더 나은 초기 모델 융합을 얻기 위해 손실 감소 경로를 통해 가중치 공간의 솔루션을 연결하는 "패턴 연결"

단순한 3D 가우스 그 이상입니다! 최첨단 3D 재구성 기술의 최신 개요 단순한 3D 가우스 그 이상입니다! 최첨단 3D 재구성 기술의 최신 개요 Jun 02, 2024 pm 06:57 PM

위에 작성됨 & 저자의 개인적인 이해는 이미지 기반 3D 재구성은 입력 이미지 세트에서 객체나 장면의 3D 모양을 추론하는 어려운 작업이라는 것입니다. 학습 기반 방법은 3차원 형상을 직접 추정할 수 있는 능력으로 주목을 받았습니다. 이 리뷰 논문은 새로운, 보이지 않는 뷰 생성을 포함한 최첨단 3D 재구성 기술에 중점을 두고 있습니다. 입력 유형, 모델 구조, 출력 표현 및 훈련 전략을 포함하여 가우스 스플래시 방법의 최근 개발에 대한 개요가 제공됩니다. 해결되지 않은 과제와 앞으로의 방향에 대해서도 논의한다. 해당 분야의 급속한 발전과 3D 재구성 방법을 향상할 수 있는 수많은 기회를 고려할 때 알고리즘을 철저히 조사하는 것이 중요해 보입니다. 따라서 이 연구는 가우스 산란의 최근 발전에 대한 포괄적인 개요를 제공합니다. (엄지손가락을 위로 스와이프하세요.

Redis: 실시간 순위 시스템 구축을 위한 핵심 기술 Redis: 실시간 순위 시스템 구축을 위한 핵심 기술 Nov 07, 2023 pm 03:58 PM

Redis는 오픈 소스 고성능 키-값 데이터베이스 시스템으로, 빠른 읽기 및 쓰기 속도, 다양한 데이터 유형 지원, 풍부한 데이터 구조 및 기타 특성으로 인해 실시간 순위 시스템에 널리 사용됩니다. 실시간 순위 시스템이란 게임에서의 포인트 순위, 전자상거래에서의 매출 순위 등 일정한 조건에 따라 데이터를 정렬하는 시스템을 말한다. 이 기사에서는 Redis가 실시간 순위 시스템을 구축하는 데 사용하는 핵심 기술과 구체적인 코드 예제를 소개합니다. 내용에는 다음 부분이 포함됩니다. Redis 데이터 유형 정렬 계산

Apollo의 차선 변경 전략과 실제 적용에 대한 심층 분석 Apollo의 차선 변경 전략과 실제 적용에 대한 심층 분석 Nov 07, 2023 am 11:37 AM

1. 소개 1.1 차선 변경 기능 간단히 말해서, 차선 변경 기능은 차선 계획 모듈에서 사용할 기준선 중 하나를 선택하는 것입니다. 오픈 소스는 Apollo이며 크게 축소되어 간단한 프레임워크만 남았습니다. 능동 차선 변경, 수동 차선 변경(장애물로 인해), 상대적으로 완전한 상태 기계, 차선 변경 창 및 간격 선택 등과 같은 많은 기능이 누락되었습니다. 이 기술 문서에서는 기존 프레임워크에 대한 내용만 보여줍니다. 다른 차선 변경 기능의 내용에 대해서는 후속 기사 1.2를 기대하십시오. 차선 변경 상태 머신 Apollo의 현재 차선 변경 상태 머신은 다음과 같습니다: 상태 머신에 대해 주목할 만한 몇 가지 사항이 있습니다: 여기서 IN_CHANGE_LAN