클라이언트와 서버에 동일한 언어를 사용하는 것이 얼마나 중요합니까?


11

기본 앱 외에도 웹 서비스 / 앱을 제공하는 모바일 프로젝트의 아키텍처 솔루션을 평가하고 있으며 Meteor 와 같은 다양한 라이브러리, 프레임 워크 및 스택을 살펴 보았습니다 . 이는 일종의 "오픈 스택 패키지 프레임 워크"입니다. , Node.js 와 밀접하게 바인딩되어 있습니다.

클라이언트와 서버 측에서 동일한 언어를 사용하면 얻을 수있는 이점에 대해 많은 이야기가 있지만 이해가되지 않습니다. 클라이언트와 서버 모두에서 웹 응용 프로그램의 전체 상태를 미러링하고 싶지만 다른 승리를 찾기 위해 고심하고 있는지 이해할 수 있습니다 ... 워크 플로 효율성?

클라이언트 / 서버 언어 패리티가 성배로 여겨지는 이유를 이해하려고합니다. 소프트웨어 개발에서 클라이언트 / 서버 언어 패리티가 중요한 이유는 무엇입니까?


12
특히 JavaScript가 문제의 언어 일 때 이것이 반드시 좋은 것은 아니라고 주장합니다.
Latty

4
JS를 사용하여 주현절에 아직 도달하지 못했음을 인정해야하므로 서버 코드를 작성하려는 이유를 파악하지 못했지만 또 다른 주제입니다.
Makita

1
스택 교환 프로그래머에 대한 첫 번째 게시물을 작성해 주셔서 감사합니다. 투표 수를 최대화하고 투표 수를 최소화하는 방법에 대한 자세한 내용은 FAQ를 참조하십시오. 질문이 특정 답변이있는 것보다 채팅 주제에 가깝기 때문에 투표가 거부되었을 수 있습니다. 여기에서 형식에 익숙해지는 데 시간이 걸릴 수 있습니다. 세부 사항이없는 짧은 답변은 투표권이 없습니다. 주제를 토론하는 답도 있습니다. 질문이나 답변이 구체적이지만 충분히 보편적이며 적절한 세부 사항으로 주제를 공격하는 중간 근거가 있습니다.
DeveloperDon

1
나는 심지어 그것을 반대 할 것입니다. 서버와 클라이언트 모두에 동일한 언어를 사용하면 통신에 얽힘 및 언어 별 기능이 발생할 위험이 있습니다.
Pieter B

3
@Makita 나는 그것이 유효한 질문이라고 생각하지만 사람들은 예제를 요청할 때 downvotes에 만족하는 경향이 있습니다. 원래 질문의 특정 부분을 제거하고 왜 클라이언트 / 서버 언어 패리티가 중요한지에 대한 질문에 집중했습니다.
maple_shaft

답변:


5

PRO 측에서 :

  • 스키마와 코드를 양쪽에서 재사용 할 수 있다면 비슷한 논리와 데이터를 한 번만 구현하는 데 많은 효율성이 있습니다.

CON 쪽에서 :

  • 클라이언트는 주로 마크 업 또는 스크립트 언어에 적합한보기 일 수 있지만 서버는 주로 다른 언어에 더 적합한 비즈니스 논리 일 수 있습니다.

웹 개발에서 언어가 확산되어 시스템의 특정 부분을위한 강력한 도구를 만들뿐만 아니라 개발자 또는 개발자 팀이 많은 전문 지식을 배울 필요가 있습니다. 시스템 설계 방식을 따르는 트랜잭션 처리 또는 임베디드 시스템과 같은 다른 영역에서는 공용 언어를 사용하여 비용을 절약 할 수 있습니다.

새로운 자바 스크립트 프레임 워크는 우리에게 매우 빠른 것으로 보이며, 백엔드 용 API와 프런트 엔드 용 도구를 번들로 제공하기위한 일부 작업이 수행됩니다. 클라이언트와 서버 측 코드 사이에 유연성과 우려를 분리하여 특정 도구를 사용하여 너무 오래 붙지 않고 자유롭게 이동할 수있는 것이 현명 할 수 있습니다.


14

아마도 인식 된 이점은 다음과 같습니다.

즉, 프로젝트 관리자가 리소스를 쉽게 관리 할 수 ​​있고 기술적 인 이점이 거의 없거나 전혀 없습니다 (트릭 조랑말을 여러 개 고용하는 경우 부정적인 기술적 이점도있을 수 있음)


1
서버와 클라이언트간에 "정적"스위치가 없기 때문에 자체 개발하는 것이 좋습니다. 당신이 무언가를하고 자바 스크립트에서 큰 경험을 원한다면 아마 이런 식으로 더 빠르고 더 빠른 결과를 얻을 수 있지만, 아마도 그게 다일 것입니다.
K ..

또한 기술적 인 단점이 없으며 모든 단일 하위 시스템에 대해 다른 언어를 사용할 때 이점이 있다고 말할 수 있습니까?
Michael Borgwardt

1
@MichaelBorgwardt는 각 언어가 예라고 말할 수있는 하위 시스템에 적합하다고 가정하고 기술적 단점은 없지만 많은 이점은 없지만 팀 역학 및 고용에 큰 영향을 줄 수 있습니다. 물론 대부분의 하위 시스템은 어떤 언어로도 쉽게 구현할 수 있으므로이 극단적 인 상황은 예상하지 못합니다.
jk.

이 나쁜 생각에 대한 언급은 정당하지 않습니다. JavaScript로 컴파일 할 수있는 언어와 Lisp를 포함한 서버 측 언어가 많이 있습니다. Lisp 는 실제로 Joel의 블로그 게시물에서 칭찬하는 SICP 과정에서 사용되는 언어입니다.
back2dos

@ back2dos는 분명히 그것을 명확하게한다
jk.

2

이점은 양쪽에서 사람들의 전문 지식과 코드를 재사용 할 수 있다는 것입니다.

사람들

개발자는 단일 언어를 마스터하고 단일 풀을 구성해야합니다. 두 가지 전문 지식 풀이 아닙니다. 이를 통해 지식을보다 쉽게 ​​전달할 수 있으며 클라이언트와 서버간에 작업을보다 쉽게 ​​전환 할 수 있습니다. 마지막으로, 기술적 인 문제에 대해 논의 할 때 "다른 쪽"의 팀원과 의사 소통하는 것이 동일한 기술적 배경을 공유하기 때문에 가능합니다.

암호

때때로 클라이언트 측이나 알고리즘 또는 둘 다에 상태를 두는 것이 유용합니다. 때로는 양쪽에서 동일하게 수행됩니다. 멀티 플레이어 게임의 예를 보자. 클라이언트와 서버 모두에서 게임 상태를 나타내야한다. 또한 클라이언트 측 (응답 성)과 서버 측 (플레이어의 동작을 확인하기 위해)에 규칙을 구현해야합니다. 이러한 것들에 대해 코드를 재사용 할 수 있으면 큰 이점이 될 수 있습니다. ... 일부 다른 응용 프로그램에서는 전혀 필요하지 않습니다 ... 모두 사례에 따라 다릅니다.

... 물론 단점도 있지만 다른 게시물입니다.)

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.