Java는 JVM 위에서 실행되며, JIT컴파일링, 런타임 최적화 등이 있음, 기본 연산속도로 따졌을 때 Python보다 약 1020배, JavaScript보다 약 25배 빠름
C / C++
컴파일 언어
연산 속도 : 1초에 10억 ~ 50억
C와 C++은 컴파일 언어로, 코드가 기계어로 직접 변환되기에 가장 빠른 속도
하드웨어와 매우 가까운 수준에서 작업 가능
C#
연산 속도 : 1초에 5억 ~ 10억
C#은 Java와 유사한 속도, .NET의 JIT 컴파일러와 런타임 최적화가 되어있음
PHP
인터프리터 언어
1초에 약 1억 ~ 2억
C 기반으로 구현된 함수와 라이브러리를 호출
데이터 베이스 구현 언어
현재 주력 데이터베이스들인 MySQL, PostgreSQL, Oracle등 대부분의 데이터베이스는 C 또는 C++로 구현되어 있어 기계어에 가까운 최적화된 실행 성능을 갖고 있다.
정리
기본 연산속도가 가장 빠른 언어는 C, 그 외의 언어는 연산속도를 보장하기 위해 JIT 컴파일러, c언어 기반의 최적화된 라이브러리 등을 지원하여, 연산속도를 보완한다.
추가로 개발자들이 사용하는 것들(ex: MySQL, PHP, 파이썬 라이브러리)이 C 기반으로 만들어지는 이유를 추측하자면, 연산속도를 포함하여 low한 레벨에서 하드웨어에 가깝게 빠른 동작을 실행하려면 메모리, Disk I/O등 C언어 방식으로 직접 관리하는 것이 가장 최적화에 도움을 주는 방식이기 때문이 아닐까 생각된다.
Broadcast::channel('comment.{boardId}', function ($user, $boardId) {
// 게시판의 모든 사용자가 이 채널을 들을 수 있도록 설정
$board = \\App\\Models\\Board::find($boardId);
if (!$board) return false;
// 이 예제는 간단하게 모든 사용자에게 접근을 허용합니다.
return true;
});
구독채널 설정
Events/CommentPosted.php
<?php
namespace App\\Events;
use Illuminate\\Broadcasting\\Channel;
use Illuminate\\Queue\\SerializesModels;
use Illuminate\\Broadcasting\\PrivateChannel;
use Illuminate\\Broadcasting\\PresenceChannel;
use Illuminate\\Foundation\\Events\\Dispatchable;
use Illuminate\\Broadcasting\\InteractsWithSockets;
use Illuminate\\Contracts\\Broadcasting\\ShouldBroadcast;
use App\\Models\\Comment;
class CommentPosted implements ShouldBroadcast
{
use Dispatchable, InteractsWithSockets, SerializesModels;
public $comment;
public function __construct(Comment $comment)
{
$this->comment = $comment;
}
public function broadcastOn()
{
return new PrivateChannel('comment.' . $this->comment->board_id);
}
}
ShouldBroadcast를 상속받은 구현체를 만들어서 채널명과 구독방식 등을 정해둘 수 있다.