paint-brush
오픈 소스와 JavaScript의 힘: 글로벌화의 여정by@globalping
111

오픈 소스와 JavaScript의 힘: 글로벌화의 여정

Globalping7m2023/10/05
Read on Terminal Reader

이 블로그 게시물에서는 스타트업과의 경험에서 얻은 통찰력과 교훈, 그리고 이것이 Globalping에서의 접근 방식에 어떤 영향을 미치는지 공유하겠습니다. 특히 우리가 JavaScript 기반 오픈 소스 플랫폼을 구축한 이유와 이러한 선택이 프로젝트를 어떻게 변화시켰는지에 대해 쓰겠습니다.
featured image - 오픈 소스와 JavaScript의 힘: 글로벌화의 여정
Globalping HackerNoon profile picture

새로운 제품을 만들 때 갑자기 수많은 도전과 결정에 직면하게 됩니다. 안타깝게도 이제 막 시작한 기업이든 노련한 기업가이든 올바른 선택을 하기 위한 마법의 공식은 없습니다. 팀으로서 이 길을 여러 번 걸었기 때문에 우리는 그것이 가져올 수 있는 흥분과 걱정을 이해합니다.


우리는 최근 글로벌 네트워크 테스트 플랫폼인 Globalping을 출시한 소규모 팀입니다. 이번 프로젝트는 비슷한 제품 아이디어를 가진 스타트업이 원하는 결과를 얻지 못한 후 두 번째 시도라는 점에서 특별합니다. Globalping을 통해 우리는 제품에 대한 목표와 비전을 달성하기 위해 다른 접근 방식을 취하고 있습니다.


이 블로그 게시물에서는 스타트업과의 경험에서 얻은 통찰력과 교훈, 그리고 이것이 Globalping에서의 접근 방식에 어떤 영향을 미치는지 공유하겠습니다. 특히 우리가 JavaScript 기반 오픈 소스 플랫폼을 구축한 이유와 이러한 선택이 프로젝트를 어떻게 변화시켰는지에 대해 쓰겠습니다.

성찰하고 배우기: 과거 경험에서 성장하기

PerfOps라는 스타트업을 설립했던 몇 년 전으로 돌아가 보겠습니다. 아이디어는 인터넷 기반 애플리케이션을 최적화하기 위한 B2B SaaS 플랫폼을 구축하는 것이었습니다. RUM(Real User Monitoring) 데이터를 사용하여 CDN 공급자에 대한 성능 지표를 수집하고 다중 CDN 로드 밸런싱 기능을 활성화했습니다.


보너스로 사용자는 경로 추적과 같은 네트워크 측정 요청을 실행하고 전 세계 여러 위치에서 발굴할 수도 있었습니다.


많은 스타트업과 마찬가지로 우리도 자금이 필요했습니다. VC 지원을 받으면서 행운이 우리 편이 되었고, 팀을 구성하고 수백 대의 VM(가상 머신)을 임대하여 주문형 네트워크 테스트를 위한 글로벌 네트워크를 구축할 수 있었습니다. 결과적으로 우리는 수십억 개의 RUM 데이터 포인트를 분석하고 이를 DNS 기반 로드 밸런싱에 실시간으로 활용하는 새로운 기술을 개발할 수 있었습니다.


이 벤처는 계획대로 진행되지 않았지만 얻은 경험은 매우 귀중했으며 오늘날 Globalping의 길을 형성했습니다.


몇 가지 시사점:

  • 압력은 열정을 약화시킵니다 . VC 투자로 인해 업무 속도와 우선 순위를 바꾸도록 촉구되었습니다. 다음 라운드의 자금 조달을 확보하기 위해 측정 기준을 충족하는 데 집중하고 우선 순위를 소규모 기업과 단일 사용자에서 대기업으로 바꾸면서 우리 아이디어에 대한 기쁨과 열정이 사라지는 것을 느꼈습니다.


  • 사용자를 위한 구축 : 투자자의 기대에 부응하기 위한 제품 개발은 사용자가 필요로 하는 것을 구축하려는 우리의 비전과 일치하지 않는 경우가 많았습니다. 업계와 시장을 이해하는 한 사용자가 원하고 필요로 하는 것에 초점을 맞추는 것이 중요합니다. 이는 투자자들이 경험이 없었고 호환되지 않는 다양한 지표와 우선 순위를 개선하기 위해 추진한 것입니다.


  • RUM 데이터는 신뢰할 수 없습니다 . 많은 양의 경우 유용하지만 대부분의 RUM(Real User Monitoring) 데이터가 문제가 있고 네트워킹 문제를 디버깅하는 데 적합하지 않다는 사실이 금방 명백해졌습니다. 문제가 CDN에 있는지 아니면 테스트를 실행하는 클라이언트에 있는지 결코 알 수 없습니다. 또한 RUM 데이터는 재현할 수 없습니다. 테스트가 실행되면 변경 사항의 영향을 평가하기 위해 동일한 위치에서 다시 실행할 수 있는 방법이 없습니다.


  • 블랙박스는 도움이 되지 않습니다 . VC의 지원을 받는 회사로서 우리는 모든 코드와 데이터를 비밀로 유지하고 대중에게 숨겨야 했습니다. 우리 사용자는 표시된 데이터의 신뢰성과 정확성을 결코 확인할 수 없습니다. 더욱이, 우리가 그 반대를 증명하지 못한 채 고액 고객에게 유리하게 성과 순위를 수동으로 변경했다고 주장할 수 있는 사람도 있습니다.


그러나 스타트업의 불행한 운명 이후에도 우리는 정확하고 개방적이며 안정적인 네트워크 테스트 및 성능 모니터링의 잠재력과 필요성을 여전히 인식했습니다. 그리하여, 일을 다르게 하고 경험을 바탕으로 사용자와 우리 자신을 위한 더 나은 서비스를 만들 수 있는 두 번째 기회인 Globalping이 탄생했습니다. 이제 그 방법을 알려드리겠습니다.

오픈 소스 수용 및 사용자 우선주의

우리는 Globalping을 오픈 소스 프로젝트로 만드는 것이 자연스러운 진행이라고 믿습니다. 일단 우리는 이미 그 개념에 익숙합니다. 우리는 월간 2,300억 건 이상의 요청을 처리하는 무료 오픈 소스 다중 CDN 서비스인 jsDelivr을 약 10년 동안 운영해 왔습니다.


그래서 우리는 오픈 소스의 장점과 단점, 무엇을 해야 할지, 무엇을 피해야 하는지를 이미 알고 있었습니다. 이에 대해 더 많이 생각할수록 Globalping이 오픈 소스여야 한다는 것이 더 이해가 되었습니다.


Globalping을 오픈소스로 만든 주요 이유는 다음과 같습니다.

  • 커뮤니티 활용 : 프로젝트에 기여하는 대부분의 사람들도 커뮤니티를 사용합니다. 따라서 그들은 자신의 기술을 제공하거나 단순히 피드백을 제공하여 자체 도구를 구축하고 원하는 기능을 얻는 데 도움을 줍니다. 또한 테스트 네트워크를 구축하기 위해 VM을 임대하는 대신 커뮤니티에 의존하여 집과 사무실에서 Globalping 프로브를 호스팅하기 때문에 Globalping은 커뮤니티와 함께 성장합니다.


  • jsDelivr 활용 : 커뮤니티 구축은 하루아침에 이루어지지 않습니다. 운 좋게도 우리는 이미 jsDelivr이라는 다른 프로젝트를 지원하는 훌륭한 커뮤니티를 갖고 있습니다. 기술적인 중복으로 인해 많은 기존 사용자와 지지자들이 Globalping에 참여할 수 있습니다. jsDelivr은 전 세계적으로 분산된 인프라를 제공하고 Globalping은 이러한 글로벌 시스템을 모니터링, 테스트, 디버그 및 비교하는 방법입니다.


  • 모두를 위한 구축 : 성장과 수익의 부담이 줄어들면서 이제 우리는 모두가 접근할 수 있는 플랫폼을 구축하는 데 집중할 수 있습니다. 이 플랫폼은 무료이며 한도가 넉넉하여 대기업이든 인터넷 작동 방식을 막 배우는 학생이든 관계없이 모든 사람에게 동일한 기능을 제공합니다.


  • 투명성 : 오픈 소스는 우리의 작업을 모두에게 투명하고 볼 수 있게 만듭니다. 프로브든 핵심 API든 누구나 코드와 로직을 검토할 수 있습니다. 이를 통해 보안 및 개인 정보 보호 주장을 검증하고 우리가 공정하고 평가를 판매하지 않으며 편향된 알고리즘을 사용하여 CDN 성능을 계산하지 않는다는 점을 사용자에게 확신시킬 수 있습니다. 또한 코드나 기능에 문제가 있는 사람이나 회사는 패치를 제출하여 업데이트나 수정 사항을 추가하도록 요청할 수 있습니다.


당연히 오픈 소스에도 어려움이 있습니다. 제품 개발에는 개발자, 디자이너, 마케팅 담당자, 개발자 관계 전문가가 필요합니다. 커뮤니티의 기술 전문가들의 지원을 받는 동시에, 우리는 여전히 그들의 작업에 대해 보상을 받는 핵심 팀과 협력하고 있습니다.


VC 자금에 의존하는 대신 이제 우리는 같은 생각을 가진 회사와 파트너십을 구축하고 기부금을 통해 우리를 계속 운영하는 GitHub 스폰서의 지원을 구하고 있습니다.

글로벌핑 개발을 위해 JavaScript 선택

다음으로 중요한 결정은 Globalping을 구축하려는 기술이었습니다. 우리는 대규모 실시간 JavaScript 앱 운영 경험을 바탕으로 자신있게 JavaScript를 선택했습니다.


언어에 대한 친숙함의 이점은 이미 성과를 거두었으며, 익숙하지 않은 언어를 사용할 때보다 새로운 기능을 더 빠르게 구축하고 버그를 더 쉽게 찾고 수정할 수 있게 되었습니다.


또한 전 세계 앱 및 웹 개발자들 사이에서 JavaScript가 인기를 끌면서 우리는 JavaScript를 선택하게 되었습니다. 이 언어에는 개발 목표에 부합하는 도구, 라이브러리 및 패키지로 구성된 풍부하고 강력한 생태계가 있습니다. 다른 오픈 소스 프로젝트를 사용하면 수레바퀴를 재발명하지 않고도 커뮤니티의 지식과 노력을 활용할 수 있습니다.


JavaScript 자체에는 광범위한 커뮤니티가 있으므로 Globalping에 잠재적인 기여자가 많이 있습니다. 그리고 JavaScript 코드는 대부분 읽기 간단하기 때문에 초보자가 소스 코드를 탐색하고 이해하는 것이 더 쉽습니다.


결과적으로 개발자는 더 빠르게 기여할 수 있어 동기를 부여하고 프로젝트를 추진할 수 있습니다.


궁극적으로 우리 핵심 팀이 Globalping에 지속적으로 노력하는 동안 플랫폼에 대한 기여를 환영합니다 . JavaScript를 선택함으로써 우리는 Globalping을 유용하고 사용자 친화적인 네트워크 테스트 플랫폼으로 만드는 데 관심이 있는 모든 사람을 초대하는 개방적이고 협력적인 환경을 유지할 수 있습니다.

자신 또는 팀에서 글로벌핑 사용하기

마지막으로 Globalping 플랫폼에 대해 간략하게 소개하고 팀의 문제 해결 및 네트워크 테스트를 개선하기 위해 이를 사용해 보고 싶은 호기심을 불러일으키기를 바랍니다.


측정 결과에 빠르게 액세스: 우리는 네트워크 전문가이든 초보자이든 다양한 사용자의 요구 사항을 충족하기 위해 다양한 통합을 개발했습니다. 터미널 사용이 가장 편한 경우 CLI 도구를 사용하세요. GitHub 봇Slack 앱은 네트워크 문제를 해결하기 위해 팀이 협력하는 데 훌륭한 도우미입니다.


마지막으로, 예를 들어 일반적인 설정에 액세스할 수 없을 때 웹 사이트의 간단하고 사용자 친화적인 그래픽 인터페이스에서 Globalping을 사용하여 테스트를 실행할 수도 있습니다.


통합 전반에 걸쳐 일관되게 명령 작성: 통합을 전환할 때마다 처음부터 모든 것을 배우는 것을 원하지 않기 때문에 통일된 명령 구조를 구현했습니다. 일반적으로 모든 Globalping 명령은 동일한 형식을 따릅니다.

 globalping [command type] [target] from [location] [flags]


예를 들어, 두 개의 프로브(limit 플래그로 정의됨)를 사용하여 비엔나와 베를린에서 jsdelivr.com 으로 ping을 실행하려면 다음 명령을 작성합니다.

 globalping ping jsdelivr.com from "Vienna, Berlin" --limit 2


결과는 다음과 같습니다.

Globalping을 사용하여 전 세계 어디에서나 ping


API를 사용하여 나만의 도구 만들기: Globalping 플랫폼을 사용하여 나만의 도구를 만들고 싶으십니까? 문제 없습니다. REST API(한도가 넉넉함)를 사용하여 원하는 것은 무엇이든 만들 수 있습니다!


네트워크의 일부가 되세요: Globalping은 커뮤니티가 제공하는 전 세계적으로 분산된 프로브 네트워크를 사용합니다. 모든 사용자에게 신뢰할 수 있는 결과를 무료로 제공하기 위해 집, 사무실 또는 서버에서 Docker에 프로브를 설정하는 모든 분을 환영합니다.

미래를 바라보며: 함께 글로벌화 구축

오늘 우리는 과거 경험과 학습을 통해 Globalping이 어떻게 진화하고 성장하는지 확인하게 되어 기쁩니다. 결국 우리는 Globalping이 인터넷 성능, 대기 시간 및 가동 시간과 관련된 모든 것을 위한 플랫폼이 되기를 바랍니다.


우리는 관심 있는 사람이라면 누구나 플랫폼을 사용할 수 있도록 계속해서 기능을 개선하고 훌륭한 사용자 경험을 제공할 것입니다.