# 개발자 1인 회사인 분들, 기술 스택은 어떤걸 쓰시나요?

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

## Metadata

- GeekNews HTML: [https://news.hada.io/topic?id=7478](https://news.hada.io/topic?id=7478)
- GeekNews Markdown: [https://news.hada.io/topic/7478.md](https://news.hada.io/topic/7478.md)
- Type: news
- Author: [xguru](https://news.hada.io/@xguru)
- Published: 2022-09-26T11:26:01+09:00
- Updated: 2022-09-26T11:26:01+09:00
- Original source: [news.ycombinator.com](https://news.ycombinator.com/item?id=32960033)
- Points: 54
- Comments: 8

## Topic Body

- OVH 클라우드의 큰 서버 하나에서 여러개의 SaaS앱을 운영중   
  - 하루에 약 6백만개의 캐쉬 안된 리퀘스트를 처리   
  - 백엔드는 Django/Python + MySQL + Redis + WebSocket(Pub/sub)  
  - 나의 비밀은 OpenResty (Dynamic web platform based on NGINX and LuaJIT)  
    - Lua 스크립트를 이용하여 복잡한 페이지 캐슁을 처리하고, DDos를 막고, 웹소켓을 처리하고, 장기 실행용 요청들을 오프로딩 처리함   
    - 1500 짜리 Lua 코드로 구성된 "가난한 자의 Cloudflare"  
  - 이 앱들은 Docker 전에 만들어진 것들이라 그냥 프로세스로 실행됨(systemd)  
  - 초기엔 uwsgi를 사용했지만, gunicorn 이 훨씬 효율적이어서 이제 완전히 바꿈   
  - 나의 SPOF는 DNS임. 나는 DNSMadeEasy와 관계가 좋아서 자동 ban 걱정은 안했는데, 이제 DigiCert가 그들을 인수해버려서 문제   
  - 결제는 Stripe 와 Paypal 로 처리. Paypal을 싫어하는 데도 추가한 것은, 언제 Stripe가 경고없이 차단할지 몰라서임   
  - 사용자 업로드는 aiohttp Python 서버로 파일을 Wasabi 와 Backblaze로 보내고 nginx에서 캐쉬함. 그래서 클라우드 전송량 요금은 0임   
  - 웹소켓 레이어는 약간 불안정. 처음엔 파이썬 웹소켓 asyncio 라이브러리로 모든걸 처리했는데, 어느정도는 동작했지만 나중에 멀티 프로세스로 처리하려고 하자 리소스를 엄청 먹기 시작함   
  - 그래서 OpenResty 의 웹소켓을 이용하기로 결정했지만 복잡한 로직을 Lua로 작성하기는 싫었음   
    - Redis Pub/Sub을 이용해서 메시지를 파이썬 프로세스에 전달하도록 변경   
  - 하지만 내 서비스 이름은 알려주지 않을 거임(경쟁자가 더 생기는 것은 싫거든!)  
- 난 유명하지 않는 옵션을 선택하는 경향이 있는데, 솔로 개발자에게는 생산적이라고 생각   
  - PostgreSQL + SQLite  
  - 메인 언어 Rust  
  - 프론트엔드는 htmx + tailwindcss  
  - CloudFlare + Vultr 호스팅  
  - nginx + nixos + circle ci   
- 누군가는 싫어하겠지만 난 Wordpress 를 선택한게 최선이었음  
  - 포럼은 bbPress  
  - 멤버가 포스팅하는 커뮤니티는 buddyPress  
  - 뉴스레터는 무지 비싼 SaaS 대신 저렴한 mailster.co 플러그인(Critsend.com 이용)  
  - 원하는 대부분의 기능들은 플러그인으로 찾아보면 다 있음 : 검색 가능한 FAQ, Captcha, 광고, 디스코드에 포스팅하기, 사용자 신고 시스템 등등  
  - https://rpgplayground.com/ 운영중  
- OpenAI랑 경쟁하는 서비스인 https://text-generator.io 를 운영  
  - 기존엔 GCP에서 쿠버네티스 쓰다가, 이제는 Cloudflare 터널을 통해서 집에서 내 GPU들로 운영함. 이렇게 하면 GPU 가격이 10배 저렴.  
  - 입력된 링크나 이미지에서 Tesseract / Unified IO / OFA / Beautiful Soup 등을 통해서 분석하고 이미지/영수증에 대한 답변을 해줌   
  - 사이트 자체는 AppEngine에서 Python + Stripe + Firebase UI 로 되어있어서 매주 적은 비용으로 운영중   
- Render 에서 호스팅중   
  - PostgreSQL + Rails + Hotwire   
  - Stimulus 와 Turbo Frames를 정말 좋아함   
  - UI는 Tailwind 와 Tailwind UI를 사용   
  - APM은 https://skylight.io 와 https://sentry.io   
- https://allaboutberlin.com 운영중   
  - DigitalOcean 의 Docker 에서 Craft CMS로 운영중  
  - Craft는 워드프레스에서는 만들기 어려운, 사용자 정의 필드가 있는 사용자 정의 게시물 유형을 쉽게 만들수 있음  
  - 하지만 워드프레스가 아니기 때문에, 필요한 플러그인이 많지는 않음   
  - nginx 로 캐싱 및 많은 것들을 처리함   
- 생산적이 되고 싶으면 PETAL을 시도해봐   
  - Phoenix + Elixir + Tailwind + Alpine.js + LiveView   
- Rails + Postgres + Redis + SideKiq   
  - Herokus 에 호스팅, 에러 추적은 Sentry, 성능 모니터링은 New Relic, 메일은 ㄴend Grid   
  - 최근에 Google Analytics를 Plausible 로 교체하고, Ahoy(Rails Middleware) 사용해서 내부에서 심도있는 분석중   
  - 고객지원/채팅은 Intercom 사용중인데 Chatwoot로 교체예정   
  - Heroku 에서 벗어날 예정인데, 대표적인 대체제인 Render가 아직 자동 페일오버 되는 HA Postgres 옵션이 없음  
  - GitHub 마스터 브랜치에 푸시하면 프로덕션에 자동 디플로이.   
    - 마스터브랜치에 머지는 PR로만 가능하고, Linter(Rubocop) + Tests(Rspec on CircleCI) + 100% 커버리지(codecov.io) 에서 Green 이어야만 가능   
  - UI는 부트스트랩이고, 자바스크립트로 서버사이드 렌더링 중  
    - 더 인터랙션이 필요한 UI에 대해서는 Hotwire/Turbo vs. Alpine vs. Stimulus vs. React 고민중   
- Agtech 플랫폼 개발중   
  - 백엔드 : Rust, Rocket, sqlx, Postgres, Ansible 약간   
  - 프론트엔드 : Rescript + React. Rust/WASM 꽤 많이 사용중인데 이건 실수였음. 되돌리려고 시도중   
    - 왜 WASM 선택이 실수였는지는 자세히 설명한 댓글이 있음 https://news.ycombinator.com/item?id=32965809

## Comments



### Comment 12558

- Author: qkreoaksn
- Created: 2022-09-29T16:21:12+09:00
- Points: 1

와 혼자서 이걸 다 어떻게 관리하시나요 ㄷㄷ

### Comment 12522

- Author: galadbran
- Created: 2022-09-27T22:19:40+09:00
- Points: 1

오래 처리되는 웹 요청을 오프로드 한다는 게 어떻게 한다는 건지 참 궁금한게 별 이야기가 없네요 ^^;

### Comment 12507

- Author: bohblue23
- Created: 2022-09-26T18:51:58+09:00
- Points: 1

Dammm

### Comment 12506

- Author: yshrust
- Created: 2022-09-26T15:47:48+09:00
- Points: 1

와 정말 다양하게 쓰네요,, PETAL 이런 조합은 처음 봐요 굿

### Comment 12499

- Author: kandk
- Created: 2022-09-26T11:39:38+09:00
- Points: 1

👍

### Comment 12498

- Author: jujumilk3
- Created: 2022-09-26T11:37:06+09:00
- Points: 1

진짜 유용한 아티클이네요 감사감사!

### Comment 12497

- Author: xguru
- Created: 2022-09-26T11:27:01+09:00
- Points: 4

[1인 기술 스타트업의 아키텍쳐 스택](https://news.hada.io/topic?id=4055)  
[1인 SaaS인 Healthchecks.io의 기술 스택](https://news.hada.io/topic?id=6641)  
[1인 SaaS 개발자를 위한 도구 추천](https://news.hada.io/topic?id=5418)  
[스타트업을 년6$로 운영하기](https://news.hada.io/topic?id=1621)  
[최소한의 노력으로 소프트웨어 스타트업 운영하기](https://news.hada.io/topic?id=1534)  
  
Stimulus + Turbo Frames - [Hotwire : HTML Over The Wire](https://news.hada.io/topic?id=3479)

### Comment 12576

- Author: xguru
- Created: 2022-10-02T11:27:11+09:00
- Points: 1
- Parent comment: 12497
- Depth: 1

HN에 올라왔던 예전 글들도 참고하세요   
2021년 https://news.ycombinator.com/item?id=28299053  
2020년 https://news.ycombinator.com/item?id=25465582  
2019년 https://news.ycombinator.com/item?id=21024041
