모바일 앱 붐과 관련하여 서버 측 기술 세계에서 어떤 일이 일어나고 있습니까?


12

모바일 기술이 점차 대중화되면서 백엔드와 통신해야 할 때 대부분의 앱에서 서버 측에서 어떤 일이 일어나고 있습니까?

나는 10 년 전 대부분의 리소스에 액세스했을 때 기술적 인 세계에 익숙해졌습니다. 동적 웹 페이지에 요청한 뒤에는 서버 측 언어를 사용하여 관계형 데이터베이스에서 필요한 정보를 얻었습니다.

이것은 여전히 ​​그렇습니까? 아니면 그렇지 않은 경우 큰 변화는 무엇입니까?


많은 작은 앱은 Google App Engine에 의존합니다. :)
MrFox

답변:


7

내 머리 꼭대기에서 :

  1. 클라이언트에서 DB에 직접 액세스하는 대신 웹 서비스 사용
  2. SOAP 대신 REST. SOAP는 백엔드와의 모바일 통신에 너무 무거워 보입니다. JSON을 사용하는 REST는 설정 및 소비가 훨씬 간단합니다. 특히 클라이언트와 서버에서 다른 기술을 사용하는 경우.
  3. 웹 페이지의 여러보기에 중점을 둡니다. 하나는 데스크톱 용이고 다른 하나는 모바일 용입니다. 누군가가 MVC를 사용하면 쉽지만 여전히 문제가 있습니다.

아마도 더있을 것입니다. 모바일 앱은 대부분 데이터를 소비하고 표시하는 일반 클라이언트로 간주됩니다.


6

기술

  • JSON을 직렬화로 사용하는 RESTful API — 기본 앱, 하이브리드 앱 및 모바일 웹 앱에서 동일한 API가 사용됩니다. 전자의 경우에도 클라이언트 측 템플리트가 자주 사용됩니다 ( "먼지에서 JSP 떠나기 : LinkedIn을 dust.js 클라이언트 측 템플리트로 이동"의 훌륭한 예 참조 ).

  • 가볍고 비동기식 (이벤트 기반) 서버 – 더 이상 포크 아파치가 없습니다. Nginx, node.js, Twisted, Tornado 등이 현재 사용됩니다.

  • OAuth / 소셜 로그인 — 사용자는 개별 앱마다 계정을 등록하지 않아도됩니다. 따라서 대부분의 앱은 FB, TW 및 기타 공급자와의 로그인을 허용합니다. FB의 경우 Android와 iOS 모두 Single-Sign-On 옵션을 제공합니다.

고려할 사항

  • 모바일 네트워크는 대기 시간이 매우 높습니다.
  • 클라이언트가 연결을 느슨하게하는 것은 정상입니다.
  • 클라이언트가 세션 중에 IP를 변경하는 것은 정상입니다.
  • 모바일은 데스크탑 / 노트북만큼 강력하지 않습니다.

4

REST는 이야기의 절반입니다. 더 가벼운 프로토콜보다 더 흥미로운 것은 더 가벼운 웹 응용 프로그램 서버 및 스택입니다. 작은 데이터 그램에 대한 대량 요청과 비교적 두꺼운 렌더링 HTML은 요구 사항이 다릅니다. 몇 가지 예 :

  • node.js는 아마도 이것의 정식 예일 것입니다. 대부분의 사람들은 서버에서 자바 스크립트 기능에 매달리지 만 빨간색 청어입니다 .js를 넘어서 진행할 수는 없지만 중요하지 않은 아이들에게는 시원합니다. 정말 근사한 부분은 비동기 적 특성으로, 특히 작고 날카로운 RESTful 서비스를 제공하면서도 확장 성이 뛰어납니다. 유사성이있는 일부 다른 스택은 python의 경우 또는 .NET의 경우 manos de mono에서 비틀어집니다.

  • nginx는 node.js와 동일한 이벤트 IO (libuv)를 많이 사용하며 일부 서클에서 서버 시장을 정리하고 있습니다. 아파치보다 훨씬 더 집중적이고 미친 듯이 빠릅니다.

  • 씬 서버 스택은 전통적으로 두꺼운 프레임 워크가 있었지만 많은 추정을했던 환경에서 나타납니다. IE, 루비에서는 레일 균형을 맞추기 위해 sinatra가 있습니다. 파이썬에는 장고와 균형을 맞추기 위해 플라스크와 다른 것들이 있습니다. .NET에는 MVC와 WebForms의 균형을 맞추기위한 WebAPI가 있습니다. 내가 언급 한 모든 스택은 매우 얇고 웹 페이지가 아닌 데이터 그램 제공에 더 중점을 둡니다. 내가 언급 한 것들은 요즘 일반적인 웹 스택에서 기대할 수있는 일종의 템플릿 및 ORM이 없습니다.

그러나 기존의 10 년 된 서버 측 웹 앱을 해킹하여 다른 HTTP 엔드 포인트에서 json을 제공함으로써 모바일 앱을 제공하는 사람이 더 많지 않습니다. 세계는 그다지 바뀌지 않았습니다. 경영진은 여전히 ​​2 개의 바퀴와 도넛을 가지고 다닐 수 있다고 생각합니다.


1

이것은 여전히 ​​그렇습니까? 아니면 그렇지 않은 경우 큰 변화는 무엇입니까?

언급 된 서버 측 또는 클라이언트 서버 아키텍처를 사용하는 응용 프로그램이 여전히 있다고 생각합니다. 그러나 최근에는 SOA (Service Oriented Architecture) 로 큰 변화가 있습니다. 따라서 보안 서비스를 통한 통신은 모든 클라이언트 애플리케이션에 새로운 기능을 제공하고 동시에 백엔드 비즈니스 서비스에 액세스 / 재사용합니다.

신흥 모바일 및 태블릿 시장 에서 클라이언트 서비스에 확장 된 서비스를 제공 하기 위해 HTTP 서비스 를 중요한 통신 채널로 사용하는 것이 더욱 중요 해지고 있습니다.


1

대부분의 백엔드는 이제 SOAP뿐만 아니라 JSON 및 REST를 지원합니다. 그 외에 웹 프론트 엔드와 모바일 앱 사이에는 큰 차이가 없습니다. 모바일 앱에 대한 대부분의 문제는 프런트 엔드에 있다고 생각합니다 (정보를 작은 화면에 맞추는 가장 좋은 방법). 일부 앱은 위치 정보 전송과 같은 모바일 기능을 활용하기 시작했지만 양쪽 모두에 있습니다.

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