Meteor에 대해 말할 수는 없지만 Sails를 만들었 기 때문에 Sails에 대한 약간의 배경 지식을 제공 할 수 있습니다.
tldr;
Sails는 웹의 모든 문제에 대한 만병 통치약은 아니지만 Node.js는 그렇다고 믿습니다. Sails의 목표는 node.js에 구축 된 완전하고 확장 가능하며 시작 및 엔터프라이즈 친화적 인 애플리케이션을 개발하기위한 실용적인 프레임 워크를 제공하는 것입니다. 저는 "모든 것에 Node.js를 사용할 수 있습니까?"라는 질문으로 Balderdash 를 시작했습니다 . 돛이 답입니다.
우리에서 새 문서 :
물론 Sails는 웹 프레임 워크입니다. 그러나 물러서십시오. 그게 무슨 뜻입니까? 때때로 "웹"을 지칭 할 때 "프런트 엔드 웹"을 의미합니다. 웹 표준, HTML 5 또는 CSS 3과 같은 개념을 생각합니다. 그리고 Backbone, Angular 또는 jQuery와 같은 프레임 워크. Sails는 "그런 종류"의 웹 프레임 워크가 아닙니다. Sails는 Angular 및 Backbone과 잘 작동하지만 이러한 라이브러리 대신 Sails를 사용하지 않습니다.
반면에 "웹 프레임 워크"에 대해 말할 때 "백엔드 웹"을 의미하기도합니다. 이것은 REST, HTTP 또는 WebSockets와 같은 개념을 불러 일으 킵니다. Java, Ruby 또는 Node.js와 같은 기술을 기반으로합니다. "백엔드 웹"프레임 워크는 API 구축, 데이터베이스와 상호 작용, HTML 파일 제공, 수십만 명의 동시 사용자 처리와 같은 작업을 수행하는 데 도움이됩니다. Sails는 "그런 종류의"웹 프레임 워크입니다.
몇 년 전에 Node.js를 모든 것에 사용하겠다고 약속했습니다 . 첫눈에 반했습니다 . 저는 Express 와 Socket.io 위에 Sails를 구축 했습니다. 왜냐하면 그것들은 각각의 사용 사례에 대해 가장 잘 확립 된 노드 모듈 이었기 때문입니다. Sails의 요청 처리 코드는 Socket.io에 대한 암시 적 지원의 추가 이점과 함께 Express와 호환됩니다.
Sails는 Angular, Backbone, iOS / ObjC, Android / Java에서 프런트 엔드를 구축하거나 다른 웹 서비스 또는 사용자가 사용할 원시 API를 제공하기위한 모든 전략과 호환되도록 설계되었습니다. 개발자 커뮤니티. 접근 방식을 변경하거나 (예 : Backbone에서 Angular로 전환) 새로운 프런트 엔드를 완전히 구축 (예 : Windows Phone 기본 앱 구축)하는 경우에도 Sails 앱은 계속 작동합니다. 이미 알고 계시 겠지만, 어떤 사람들은이 접근 방식을 서비스 지향 아키텍처 (SOA)라고 부릅니다 ( Joe McCann 은이 주제에 대한 훌륭한 자료를 가지고 있습니다.)
같은 맥락에서 Sails는 표준 MVC 구조, 깨끗한 API를 생성 할 수있는 기능, 개방적이고 구성 가능하며 확장 가능하며 스왑 가능한 핵심 모듈과 같은 웹 서버 구축을위한 다른 익숙한 규칙을 유지합니다. 이것은 Sails가 사용자의 필요에 따라 필요한만큼 낮은 수준으로 맞춤화 될 수 있음을 의미합니다.
2013 년에 프레임 워크는 엄청난 인기를 얻었으며 컨설팅 비즈니스도 성장했습니다. 나머지 핵심 메인테이너들과 저는 백엔드 개발을 가능한 한 빠르고 간단하게 만드는 데 초점을 넓혔습니다. 후크 (플러그인), 테스트 및 문서와 같은 Sails의 관련 측면은 모두 지난 한 해 동안 우리의 핵심 팀과 (계속 확장되는) Sails 커뮤니티의 노력 덕분에 먼 길을 걸어 왔습니다. 아직 작업중인 로드맵 항목이 많이 있지만 Sails는 현재 Node에서 안정적이고 유지 관리 가능한 MVC 개발을위한 최상의 옵션이라고 생각합니다. 나머지 팀과 저는 지속적인 유지 관리 및 기능 개발에 전념하고 있으며 모든 고객 프로젝트에 사용하기 때문에 아무데도 가지 않습니다.
저는 Sails를 최고의 웹 프레임 워크로 만들기 위해 최선을 다하고 있지만 Node.js를 희생하지 않았습니다. 핵심 팀과 저는 Node 생태계의 향상에 끊임없이 전념하고 있으며 이는 NPM을 수용하고 기존 Node 기술과 모범 사례 등을 활용하는 것을 의미합니다. 더 합리적 일뿐만 아니라 우리가 Node.js 개발자이기 때문입니다. 우리의 모든 노력에 대한 동기는 Node를 대체하는 것이 아니라 접근성을 높이는 것입니다. 따라서 이상한 평행 우주에서 Sails를 다른 언어로 변환하거나 Sails를 완전히 버리지 만 여전히 Node를 사용할 수있는 Faustian 선택권이 주어진다면 후자를 선택합니다.
추가 자료 :
FAQ | 돛 101 | 오리지널 스크린 캐스트 | 기여 가이드 | 스택 오버플로
Google 그룹 | 로드맵 | IRC : Freenode의 #sailsjs | 빌드 상태