How to Design APIs Like a Senior Engineer (REST, GraphQL, Auth, Security)
- API 디자인은 주니어와 시니어 개발자를 구분하는 중요한 역량이며, 단순히 CRUD API를 만드는 것을 넘어 API의 작동 방식에 대한 깊은 이해가 필요함 🧑🎓
- REST, GraphQL, gRPC는 주요 API 스타일이며, 각각의 특징과 장단점을 이해하고 적절한 상황에 선택해야 함 🧐
- REST는 HTTP 메서드를 활용한 리소스 기반 접근 방식을 사용하며, 웹/모바일 애플리케이션에 적합함. stateless한 특징을 가짐 🌐
- GraphQL은 클라이언트가 필요한 데이터만 요청할 수 있는 쿼리 언어이며, 복잡한 UI에 적합함. 단일 엔드포인트를 사용 🌠
- gRPC는 고성능 RPC 프레임워크로, 프로토콜 버퍼를 사용하여 통신하며, 마이크로서비스 아키텍처에 적합함. 서버 간 통신에 효율적임 ⚙️
- 좋은 API는 일관성, 단순성, 보안, 성능이라는 네 가지 핵심 디자인 원칙을 준수해야 함. 문서 없이도 사용하기 쉬운 API가 가장 좋음 👍
- API 디자인 프로세스는 요구사항 이해, 디자인 접근 방식 선택, API 생명 주기 관리 단계를 거침. 유지보수 용이성을 고려해야 함 💡
- 프로토콜 선택은 API 디자인에 큰 영향을 미치므로, HTTP, 웹소켓, gRPC 등의 특징을 이해하고 API의 요구사항에 맞게 선택해야 함 🔑
- API는 설계, 개발, 배포, 유지보수, 폐기 단계를 거치며, 각 단계별 고려사항을 이해해야 함 🔄
- 인터뷰에서는 API 원칙에 대한 피상적인 지식만으로는 부족하며, 실제 코딩 능력이 중요함. 💻