구글은 ANGLE이라는 이름의 라이브러리를 잘 쓰고 있습니다.
구글답게 오픈소스로 풀려있습니다. 주로 안드로이드에서 이용중이지만 크롬에도 일부 적용중입니다.

https://github.com/google/angle

GitHub - google/angle: A conformant OpenGL ES implementation for Windows, Mac, Linux, iOS and Android.

A conformant OpenGL ES implementation for Windows, Mac, Linux, iOS and Android. - GitHub - google/angle: A conformant OpenGL ES implementation for Windows, Mac, Linux, iOS and Android.

github.com

사실 이 물건은 일종의 번역기입니다
리눅스 사용자들은 DXVK가 익숙하실수도 있습니다. DirectX로 만들어진 프로그램을 Vulkan으로 구동하게 만드는 라이브러리입니다.

이와 비슷하게 ANGLE은 그동안 모바일에서 쓰여온 OpenGLES를 최신API인 Vulkan나 윈도우의 DirectX등으로 구동되게 하는 물건입니다.

대체 왜 이걸 만든것이냐하면 사실 PC에서는 곁다리지원 정도고 모바일쪽이 개판되서 그렇습니다.

안드로이드에서  게임개발은 여전히 OpenGLES가 주력입니다. OpenGLES의 개발이 중단된지 오래지만 후속이라 할 수있는 Vulkan의 코드작성이 워낙 힘들고 그래픽칩셋업체(ARM Mali, Qualcomm Adreno)와 구글, 크로노스그룹 과의 손발이 안 맞아서 개판이된 상태라 아직도 절찬리에 OpenGLES가 이용중입니다.

모 게임회사에서는 OpenGLES로 만들던 게임을 Vulkan으로 가능하게 수정했더니 정상적으로 돌아가는걸 본 적이없다고 할 정도로 상태가 안 좋습니다.

저는 모바일Vulkan이 이 꼴이 된 제일 큰 범인으로 모바일 게임엔진의 투탑중 하나인 Unity를 꼽지만 Unity도 Vulkan을 이 따위로 만들고 싶어서 그랬을까요. (Unreal은 그나마 모바일 Vulkan의 상황이 괜찮습니다)

암튼 구글이 직접 OpenGLES로 만들어진 프로그램을 Vulkan으로 가능하게 만들어주기 위해 만들고 있는것이지요.

일부 커스텀 안드로이드에는 벌써부터 이를 적용해서 기존 Vulkan지원이 안되는 게임을 Vulkan으로 되게끔 하고 있더군요

EvolutionX의 게임옵션 중 일부 몇몇게임의 경우 확실히 프레임이 올라간다

실제로 DirectX로 돌아가게하는 기능도 있음에도 개발상황을 보면 Vulkan렌더링이 주력입니다. DirectX기능은 윈도용 크롬이 쓰는 중이라고 하지요.

이런걸보면 개판이 된 모바일 게임쪽을 구글이 총대를 멘듯한 느낌인데...ANGLE만 믿고 OpenGLES만 쓰는 일은 없어야 할텐데요. 과연...

,

요즘은 와이파이 확장에 무선 리피터보다 Mesh망을 더 많이 쓰는 듯 합니다

그도 그럴게 무선 리피터는 그냥 와이파이 신호를 받아서 다시 와이파이 신호를 쏘는 방식을 쓰는 반면 Mesh망은 여기저기 퍼진 노드들이 연계되면서 AP를 붙였다 뗐다 하는 방식이라 더 안정적이거든요

 

이렇게 되면 장점이 AP당 가해지는 부하가 분산 되면서 더 빨라지고 움직이면서 사용할 때 알아서 Handover 되면서 자연스럽게 속도 저하없이 와이파이 사용이 가능해집니다.

 

그에비해 리피터는 그냥 중간 지점에서 신호 중계하는 역할만 합니다. 그래서 대역폭이 반토막이 나는 문제가 생깁니다. 하지만 그만큼 오래된 기술이기에 그럭저럭 안정화 되어 최신 기기에선 적극적 Handover로 더 빠른 AP에 붙는 기능을 사용하면 그럭저럭 쓸만하게 인터넷을 쓸 수 있습니다.

 

다만 요즘 메쉬 기능이 갖는 큰 문제가 하나 있는데 제조사마다 호환을 말아먹은지 오래라서 같은 제조사제품 끼리만 된다는 겁니다. OpenWRT가 지원되는 공유기들이라면 이 문제는 빠져나갈 수 있지만 국내 원탑인 iptime제품은 OpenWRT가 쉽지 않지요. 그나마 MediaTek제품이면 어느정도 가능한데 대부분 쓰인 리얼텍 제품은 OpenWRT지원을 생각하기 힘듭니다.

 

 

 

최근 방에서 네트워크 속도가 너무 떨어져서 확인해보니 겨울이 되서 방문을 닫고 살아서 벽 2개를 뚫고 전파가 오기 힘들어서 그렇다는 결론을 냈습니다. 그래서 Mesh를 생각하고(방에서 쓰는 공유기가 A8004T로 컨트롤러모드가 가능한 제품입니다. 신호도 강한 편이지요. Mesh네트워크로 쓸만한게 무엇이 있을까 찾아보고 있었는데 밖에 비가 억수로 와서 나가기 귀찮음+방구석에서 옛날에 쓰던 A604(2014년 제조)이 보이는데 이건 Mesh가 안 되는 물건이라네요. 그래서 그냥 무선 리피터로 만들어서 달아봤습니다.

 

A604가 요상한 물건이라 유선은 100Mbps로 제한이 걸렸는데 무선은 867Mbps가 되는거라 무선 리피터용으로 쓰긴 좋았습니다. 무선을 받아서 무선으로 뿌리면 대역폭이 400정도로 반토막 나지만 어차피 유선이 100짜리인 이상한 물건이라 그냥 저냥 쓸 수 있습니다. 애초에 벽2개 뚫고 오는 신호도 80였었기에 박살나더라도 이게 어디냐 싶기도 했고요.

 

저희집 네트워크 구조는 대충 그리면 다음과 같습니다

 

방1에서 AP가 있고 다른 방에서 이 신호를 받아다가 인터넷을 합니다만 방1의 벽이 내력벽인 것인지 엄청 두꺼워서 다른 방에선 신호가 박살이 납니다.

 

그래도 거실은 문방향이기도 하고(문은 나무라 신호강도 문제가 없지요.) 거리상 문제로 속도가 떨어질 뿐이지만 다른 방은 속도가 엄청 떨어졌습니다. 특히 저 침실의 속도가 처참한데 5GHz는 포기해야 할 수준이고 2.4GHz가 딱 저 속도가 납니다. 심지어 화장실이 더 속도가 나네요. 그래서 메쉬를 쓰려고 한건데 역시 쉽지 않더군요. 대신 찾아보니 옛날에 쓰던 A604가 있더군요. 오래된 물건인데 어댑터가 망가진걸 제외하면 멀쩡합니다. 심지어 찾아보니 12V짜리 1A아무거다 꽂으면 된다네요.

 

그래서

 

이렇게 A604제품을 무선 리피터 설정 후에 돌리니까 침실에서 도저히 못볼 수준의 속도가 회복 되었습니다. 그리고 SSID와 비밀번호를 기존 A8004와 A604를 동일하게 하니 사용상의 큰 문제는 보이지 않았습니다. 

 

하지만 가끔 거실에서 침실로 들어오면 속도가 떨어지는 것이 보이더군요. 알고보니 무선 리피터는 동일한 SSID라도 성능이 더 높은걸 잡는게 아니라 기존에 잡았던 AP를 잡으려고 한다네요. Mesh는 컨트롤러가 이걸 확인하면서 다시 잡아주고요. (이러한 방식의 통신을 Backhaul이라고 합니다.) 물론 그럴때는 Wifi를 껐다 켜주면 되긴 합니다.

 

어쨌건 이것이 Mesh와 무선 리피터의 큰 차이점입니다. 알아서 더 강한 신호의 AP로 바꿔주는것과 기존의 것을 잡으려 시도하는 것. 당연히 Mesh가 쓸 수 있다면 무선 리피터 보다 훨씬 더 낫겠죠. 무엇보다 IP대역 하나를 더 먹지요. 어차피 255개중 하나라 크게 문제는 없겠지만...그리고 Iptime의 EasyMesh의 쉬운 구성방법보다 무선 리피터는 DHCP설정부터 해서 좀 복잡한 편이고요.

 

그러면 복잡한 방법을 한번 소개하고자 합니다.

 

우선, 위의 것을 생각해봅시다.

1. 2.4GHz는 이미 포화상태고 굳이 리피터로 퍼트릴 이유가 없습니다. 무엇보다 자세히는 말하지 않았지만 침실 앞에 전자렌지가 있다보니 2.4GHz는 기존 방1의 것만 쓰고 리피터로는 따로 안 쓰기로 합니다.

2. 그리고 리피터와 기존 AP의 이름을 동일하게 해서 귀찮음을 해소합니다.

 

그러기 위해선 우선 기존 공유기가 아닌 리피터로 쓸 공유기를 유선으로 연결합니다. 그리고 브라우저를 켜고 192.168.0.1(기본 관리자 모드)로 들어갑니다.

그리고 당연히 관리자 비밀번호를 바꿔야겠지요. 이건 뭐... 알아서 하실거고 기존 공유기와 충돌을 막기 위해 설정을 해야 합니다.

고급설정 - 내부 IP주소를 바꿔줍니다. 이게 곧 해당 리피터의 관리IP가 됩니다. 기존에 사용하던 공유기나 PC와 다른 IP를 써야 합니다. 그리고 DHCP를 꺼야 하는데 그냥 끄는 것이 아닌 간단한 옵션으로 DHCP가 유동적으로 꺼질 수 있게 하는 것이 좋습니다.

 

네트워크 관리 - DHCP서버설정에서 DHCP서버충돌에 "충돌 발견시 중단" 체크해 주시면 지금 설정 단계에선 DHCP가 동작하지만 만약 다른 공유기가 있거나 다른 DHCP서버가 있다면 알아서 서버가 꺼집니다.

 

이제 핵심기능입니다. 무선확장설정으로 들어가서 무선 확장 방식을 멀티브리지(리피터)로 바꾸고 AP검색 버튼을 눌러서 우리가 사용할 AP, 기존 공유기로 접속 합니다. 이때 접속이 되어다면 유선으로 연결된 PC에서 갑자기 인터넷이 될겁니다.

 

이제 편의를 위해서 무선설정/보안에서 기존에 쓰던 SSID와 비밀번호를 동일하게 합니다. 이래야 좀 편해질거거든요.

무선설정/보안에서 기존에 쓰던 이름과 암호를 그대로 넣어서 똑같이 해줍니다. 이러면 Handover가 되는 기기라면 알아서 바뀔것이고 안된다면 재접속시 더 강한 AP로 접속 할 겁니다.

 

설정이 완료된 공유기를 이제 중간 위치에 설치하면 리피터로 사용이 완료 됩니다.

 

Mesh가 안 되는게 아쉽기는하지만 이렇게라도 확장하니 그래도 편하네요.

,

1.1.1.1 Warp는 Cloudflare에서 제공하는 일종의 VPN서비스입니다.

사실 VPN이지만 속도도 준수하고 무료서비스로도 쓰는데 충분합니다.

 

가끔 1.1.1.1을 쓰면 안 되는 사이트들이 있지만 그렇게 많지는 않습니다. 애초에 Cloudflare가 한국 지사가 있는 서비스 업체라서 도리어 해외 서버의 딜레이를 줄여주는 역할을 합니다. 원래 이런 용도로 나온 것이기도 하고요.

 

본래는 모바일용으로만 나왔지만 데스크탑용으로도 나왔고 당연히 네트워크 서비스이기에 주요 리눅스에서도 사용이 가능합니다. 다만 Redhat과 Debian/Ubuntu 용으로만 나온 상태입니다.

 

https://developers.cloudflare.com/warp-client/get-started/linux/

 

Linux desktop client · Cloudflare WARP client docs

You have two ways of installing WARP on Linux, depending on the distro you are using:

developers.cloudflare.com

여기서 보면 쉽게 쓸 수 있게 되어있습니다.

 

방법은 Ubuntu/Debian 기준 (https://pkg.cloudflareclient.com/)

curl https://pkg.cloudflareclient.com/pubkey.gpg | sudo gpg --yes --dearmor --output /usr/share/keyrings/cloudflare-warp-archive-keyring.gpg
echo "deb [arch=amd64 signed-by=/usr/share/keyrings/cloudflare-warp-archive-keyring.gpg] https://pkg.cloudflareclient.com/ $(lsb_release -cs) main" | sudo tee /etc/apt/sources.list.d/cloudflare-client.list
sudo apt-get update && sudo apt-get install cloudflare-warp

위의 내용을 싹 터미널에 던져넣으면 cloudflare-warp가 설치 됩니다.

 

그 다음 사용에 동의 해주셔야 합니다.

warp-cli register

위 명령 사용후 나오는 내용에 동의를 위해 키보드 Y를 눌러줍니다.

그러면 Success라고 뜹니다.

 

그다음 warp를 활성화 하기 위헤

warp-cli connect

이제 Warp가 활성화 되었으니 해외 회선 속도가 어느정도 올라간 것이 확인 될 겁니다.

,