# workerd - Cloudflare가 공개한 Workers 런타임 오픈소스

> Clean Markdown view of GeekNews topic #7500. Use the original source for factual precision when an external source URL is present.

## Metadata

- GeekNews HTML: [https://news.hada.io/topic?id=7500](https://news.hada.io/topic?id=7500)
- GeekNews Markdown: [https://news.hada.io/topic/7500.md](https://news.hada.io/topic/7500.md)
- Type: news
- Author: [xguru](https://news.hada.io/@xguru)
- Published: 2022-09-29T10:50:02+09:00
- Updated: 2022-09-29T10:50:02+09:00
- Original source: [blog.cloudflare.com](https://blog.cloudflare.com/workerd-open-source-workers-runtime/)
- Points: 23
- Comments: 2

## Topic Body

- 실제 CloudFlare Workers에서 사용하는 JavaScript/WASM 런타임 코드  
  - 다른 환경에 포팅 가능하도록 일부만 변경  
  - 이름은 Unix 서버의 -d "daemon" 에서 가져와서 "worker dee"   
### 용도   
- Workers를 셀프호스팅 가능. 단순히 API로 이용가능한 웹서버이기도 함. 어떤 환경에서도 쉽게 적용   
- 로컬 개발 및 테스팅용으로 사용   
- 프로그래밍 가능한 프록시(포워드 & 리버스). JavaScript로 요청/응답을 가로채서 처리 가능   
### What it is   
- Server-first : 많은 JS/WASM 런타임이 다용도로 사용가능하지만, workerd는 오직 서버에만 집중. 그중에서도 HTTP 서버  
- Web standard APIs : 웹브라우저에서 사용하는 것과 같은 표준 API를 제공(Fetch, URL, WebCrypto 등). 즉 여기서 개발한 코드는 브라우저로 포팅도 가능   
- Nanoservices : 이제 마이크로서비스를 넘어 나노서비스!  
  - 나노서비스는 독립적인 배포의 장점과 라이브러리 함수 호출 정도의 오버헤드만 가지는 새로운 모델   
  - workerd를 이용하면 많은 Worker들이 같은 프로세스 안에서 설정 가능하고, 각 Worker는 독립되어 실행되지만 서로간에 통신도 가능   
- Homogeneous deployment : 예전엔 특정 컨테이너에서 특정 서비스를 실행해야 했지만, workerd는 모든 머신들이 모든 서비스를 구동 가능   
- Capability bindings: 깔끔한 설정과 SSRF 안전성 보장   
- Always backwards compatible : 항상 하위 호환성 보장   
### What it's not  
- workerd is not a Secure Sandbox : 악성 코드가 실행될수도 있음. 이걸 방지하기 위해서는 별도의 샌드박싱 레이어가 필요   
- workerd is not an independent project : Cloudflare Workers의 핵심이자 일부. 외부 커밋을 받긴 하지만 보장하기는 어려움.  
- workerd is not an off-the-shelf edge compute platform : Workers 서비스 전체는 아님

## Comments



### Comment 12561

- Author: fastkoder
- Created: 2022-09-29T21:34:16+09:00
- Points: 1

공개되면 만들어보고싶었던건데 오호

### Comment 12560

- Author: galadbran
- Created: 2022-09-29T21:10:13+09:00
- Points: 2

> Homogeneous deployment : 예전엔 특정 컨테이너에서 특정 서비스를 실행해야 했지만, workerd는 모든 머신들이 모든 서비스를 구동 가능  
  
이게 무슨 의미인가 했더니 바로 앞에서 설명하는 나노서비스(functions) 방식으로 개발을 하게 되면 그냥 모든 나노서비스를 한 머신에 배포하고(오버헤드가 적어서 가능하다고) 필요하면 그냥 똑같은 머신을 늘리면 되니까 복잡한 배포 구성이 필요 없다는 말이었네요.
