현대적인 백엔드 스택 설명
모든 웹 앱에는 두 가지 측면이 있습니다. 사용자는 프론트엔드를 보지만, 백엔드가 이를 구동합니다.
백엔드는 로직, 데이터, 보안을 처리합니다. 백엔드 스택은 이러한 작업을 가능하게 하는 도구들의 집합입니다.
모든 도구를 마스터할 필요는 없습니다. 각 도구가 어떤 역할을 하는지만 알면 됩니다.
핵심 언어
- Node.js: API 및 실시간 앱에 적합합니다.
- Python: 데이터 및 AI에 가장 좋습니다.
- Go: 빠르고 트래픽이 많은 시스템에 완벽합니다.
- Java: 대규모 기업용 표준입니다.
프레임워크
- Express.js: Node.js를 위한 최소한의 유연한 프레임워크입니다.
- NestJS: 대규모 Node.js 프로젝트에 구조를 더해줍니다.
- FastAPI: Python API를 위한 빠르고 쉬운 선택입니다.
- Spring Boot: Java를 위한 신뢰할 수 있는 선택입니다.
데이터베이스
- PostgreSQL: 관계형 데이터의 골드 표준입니다. 가장 먼저 사용해 보세요.
- MySQL: 기존의 많은 시스템에서 안정적입니다.
- MongoDB: 유연하고 변화하는 데이터 구조에 가장 적합합니다.
데이터베이스 규칙:
- 명확한 관계와 금융 데이터에는 SQL을 사용하세요.
- 비정형 데이터나 대규모 확장에는 NoSQL을 사용하세요.
통신 및 보안
- REST APIs: 서비스를 연결하는 표준이자 가장 간단한 방법입니다.
- GraphQL: 클라이언트가 특정하고 맞춤화된 데이터 세트가 필요한 경우 사용하세요.
- JWT: 상태가 없는(stateless) 인증을 처리하는 일반적인 방법입니다.
- OAuth 2.0: "Google로 로그인" 기능의 표준입니다.
속도 및 확장성
- Redis: 캐싱을 통해 앱을 더 빠르게 만드는 인메모리 저장소입니다.
- RabbitMQ: 백그라운드 작업을 처리하는 간단한 방법입니다.
- Kafka: 방대한 양의 실시간 데이터를 처리하는 데 사용됩니다.
인프라
- Docker: 어디서든 실행될 수 있도록 앱을 패키징합니다.
- Kubernetes: 많은 컨테이너를 동시에 관리합니다.
- AWS/Azure/GCP: 주요 클라우드 제공업체입니다.
관측성
- 보이지 않는 것은 고칠 수 없습니다.
- 에러 처리를 위해 Sentry와 같은 도구를 사용하세요.
- 성능 추적을 위해 Datadog 또는 Prometheus를 사용하세요.
피해야 할 실수들:
- 너무 많은 도구 추가하기. 복잡성은 문제를 야기합니다.
- 보안 무시하기. 첫날부터 보안을 구축하세요.
- 잘못된 데이터베이스 설계. 지금 수정하지 않으면 나중에 비용이 많이 듭니다.
- 모니터링 건너뛰기. 사용자가 사이트가 다운되었다고 화를 내기 전까지 기다리지 마세요.
탄탄한 스택을 선택하세요. 기본기를 익히세요. 프로젝트를 출시하세요.
출처: https://dev.to/digitalunicon/the-modern-backend-stack-explained-142l