웹 개발자가 사물 인터넷에 대해 알아야 할 사항은 무엇입니까?
게시 됨: 2017-10-30웹 개발은 우리가 전화선을 통해 더 빠르고 더 강력한 컴퓨터가 서로 통신하기 시작한 인터넷 시대가 시작될 때 나타났습니다.
인터넷이 더욱 정교해짐에 따라; 웹 개발은 보다 기술적이고 전문적이었습니다. 이제 우리는 인터넷 시대를 뒤로하고 컴퓨터로 간주되지 않은 장치가 서로, 사용자 및 서버와 우리가 할 수 있는 방식으로 서로 통신할 수 있는 사물 인터넷(IoT) 시대로 이동하고 있습니다. 상상하다.
오늘날 우리는 물건을 사기 위해 컴퓨터 화면으로 웹사이트를 방문하지 않습니다. 대신 Alexa에게 음성 활성화 Amazon Echo를 통해 무언가를 구매하도록 요청합니다. 우리는 온도 조절 장치를 교체하기 위해 집에 올 때까지 단순히 기다리지 않습니다. Nest를 스마트폰에 연결하고 집에서 약 30분 거리에 있는 것을 전화로 감지하면 난방을 켜라고 합니다.
지금 우리는 이 수준의 연결이 매우 편안하다고 생각하지만 사물 인터넷 시대가 진행됨에 따라 전례 없는 방식으로 우리의 장치가 직장, 놀이 및 가정에서 동기화되는 것을 보게 될 것입니다. 사물인터넷은 우리가 알고 있는 우리의 삶에 너무 파괴적이어서 미래가 어떨지 정확히 상상하기 어렵지만, 우리가 확실히 알고 있는 것이 있습니다. IoT는 이미 웹 개발에 막대한 영향을 미쳤으며 그 영향은 점점 더 커질 것입니다.
이는 모든 웹 개발자가 어느 시점에서 IoT를 고려해야 한다는 것을 의미합니다. 앞서가기 위해 웹 개발자가 사물 인터넷에 대해 알아야 할 모든 것을 설정했습니다.
웹 개발 및 사물 인터넷
지금은 IoT 개발의 서부 시대입니다. 현재로서는 표준화가 거의 이루어지지 않은 채 많은 추측과 실험이 있습니다(최소 5개의 주요 조직에서 IoT 표준을 동시에 작업 중임). 그래서 우리는 상황이 어떻게 전개될지 정확히 모릅니다. 그러나 전문가들이 오늘날 웹 개발에 대한 IoT의 영향에 대해 논의할 때 특정 영역이 계속해서 나타나는 것을 볼 수 있습니다.
IoT가 웹 개발에 미치는 영향
- 백엔드는 어디에나 있습니다. 현재 각 장치는 고유한 작은 세계에 구축되어 있습니다. 각 회사에는 장치가 서로 연결되고 통신하는 고유한 방법이 있습니다. 각 장치는 고유한 종류의 데이터를 수집하고 각 장치는 고유한 종류의 명령을 사용하여 작동합니다. 즉, 많은 앱 개발 센터는 단순히 앱이 이미 구축된 다른 앱과 잘 맞도록 하는 데 중점을 둡니다. Node.js는 IoT 장치 간의 통신을 설정하기 위한 선도적인 프레임워크로 부상했기 때문에 이를 지원합니다. 그래도 문제는 거의 해결되지 않습니다.
- 인터페이스에는 단순성이 필요합니다 . 가전제품에 관해서는 복잡한 명령을 알아낼 시간이 아무도 없기 때문에 커피 메이커의 제어판에 명확성이 부족할 공간이 없습니다. 즉, 사용자 인터페이스는 선택하기 쉽고 응답성이 있어야 합니다. 사용성 벨트의 모든 도구는 IoT 장치용 사용자 인터페이스를 설계할 때 사용하게 됩니다. 특히 대부분의 회사는 제품이 스마트폰과 장치 자체 화면에서 제어되기를 원하기 때문입니다. 컨트롤은 기계에서처럼 전화기에서도 명확해야 합니다. 복잡성은 무대 뒤에서만 나타나야 합니다. 사용자에게 필요한 것은 깨끗하고 논리적인 디자인입니다.
- 네트워크 대기 시간 완화 : 프린터의 버튼을 누르면 즉시 인쇄가 시작될 것으로 예상합니다. 그러나 IoT 장치의 경우 명령이 화면에서 장치로 직접 이동하는 것이 아니라 화면에서 서버로 장치로 이동합니다. 이 추가 단계는 특히 느린 네트워크 연결에서 명령과 작업 사이에 버퍼를 생성할 수 있습니다. 사용자는 느리거나 비효율적인 제품을 보게 될 것입니다. 둘 다 자신의 삶에서 원하지 않습니다. 따라서 IoT 개발자는 느리고 중단된 연결을 처리할 수 있고 처리할 앱을 설계해야 사용자가 장치에서 원하는 것을 얻을 수 있습니다.
- 힘에 대해 생각하십시오 : 우리 모두는 힘에 대해 생각하는 것을 좋아합니다. 그렇죠? IoT 개발자는 모든 지점에서 앱이 차지하는 컴퓨팅 성능에 대해 생각해야 하기 때문에 대답이 '예'이기를 바랍니다. 왜요? 대부분의 IoT 장치는 배터리로 구동되는 무선이며 광범위한 메모리 칩을 위한 공간이 많지 않습니다. 앱이 더 복잡할수록 칩이 더 오랫동안 더 많은 전력을 소비해야 하므로 배터리가 소진되고 환불을 요구하는 실망스러운 고객으로 이어질 것입니다. 요컨대, 앱 디자인의 모든 부분은 절대적으로 최소한의 전력을 사용해야 합니다.
- 사생활과 보안 : 사생활과 보안이 너무 주관적이기 때문에 이 영역은 조금 어렵습니다. 무엇이 안전하고 무엇을 비공개로 유지해야 하는지에 대한 아이디어는 끊임없이 변하고 있습니다. 특히 편의를 위해 이를 교환할 때 더욱 그렇습니다. 예를 들어, 우리 대부분은 고용주가 우리의 움직임을 추적할 수 있도록 하는 이식형 센서에 대해 불편함을 느끼지만 스웨덴 스타트업 Epic entre의 직원은 기꺼이 주사를 맞고 이식형 기술을 갖기를 자원하는 다른 사람들을 위한 파티도 주최합니다. 그들은 이식 가능한 ID 장치의 편리함을 주요 동기로 언급합니다. 2000년대 초반 온라인 쇼핑에 대한 모든 두려움에 대해서도 생각해 보십시오. 신분 도용과 만연한 사기를 포함하여 그러한 두려움 중 많은 부분이 현실이 되었지만 우리 대부분은 집에서 편리하게 쇼핑하기 위해 보안을 기꺼이 바꿉니다. 하지만 범죄자들은 침투 가능한 네트워크에 더 많은 장치를 연결하면 사기와 훔칠 기회가 더 많다는 것을 알고 있습니다. 그렇기 때문에 ID 도용 보호와 전반적인 보안 및 개인 정보 보호 기능이 네트워크 자체와 장치에서 사용하는 앱 모두에 구축되어야 합니다. 허물어야 할 벽이 많을수록 범죄자가 가질 수 있는 동기와 기회는 줄어듭니다.
- 알고 있는 것을 고수한다고 해서 구원을 받을 수는 없습니다. IoT 개발에 참여하지 않기로 결정했더라도 무엇이든 개발할 때 IoT를 고려해야 합니다. 이렇게 생각해 보십시오. 약 3,560만 명의 사람들이 집에 음성 지원 스피커를 가지고 있습니다. 현재 그들은 회사 자체 웹사이트(Amazon에서 물건을 주문하는 Amazon Echo 사용자와 같은)에 액세스하는 데 사용하는 경향이 있습니다. 그러나 이 기능은 확장될 것이며 사용자는 거의 모든 IoT 장치에서 모든 웹사이트에 액세스할 수 있을 것으로 기대합니다. 따라서 이전의 반응형 디자인과 마찬가지로 웹 사이트 사용자의 상당 부분이 IoT 장치에서 올 것이라고 가정하고 그에 따라 빌드하는 것은 시간 문제일 뿐입니다.
지금 알아야 할 언어
따라서 IoT 개발의 행진은 기본적으로 불가피하며 IoT 개발을 시작할 때 특정 언어를 사용하기 시작해야 합니다. 오늘날 사용되는 프로그래밍 언어는 많지만 IoT 개발자가 가장 자주 사용하는 언어입니다.
- C : 메모리가 제한된 장치에서 잘 작동하는 간소화된 언어이기 때문에 현재로서는 일반적인 선택입니다. 그러나 장치가 더 발전하면 C의 기능을 능가할 것입니다.
- C++ : 강력하지만 여전히 매우 민첩하기 때문에 현재 일반적으로 사용되는 언어 중 가장 복잡합니다. 불행히도 그 복잡성은 대부분의 IoT 장치가 현재 처리할 수 없기 때문에 너무 광범위하게 채택되지 않는다는 것을 의미합니다. 따라서 개발자가 더 높은 수준의 더 일반적으로 사용되는 언어로 개발 문제를 처리하는 방법을 파악함에 따라 향후에도 채택되지 않을 수 있습니다.
- Java : Java는 가장 일반적으로 가르치는 개발 언어 중 하나이므로 거의 모든 사람이 사용 방법을 알고 있습니다. 또한 C++만큼 강력하지는 않지만 오늘날 IoT 장치의 제한된 메모리를 처리하는 것이 더 쉽습니다. 이 두 가지(광범위한 사용 및 대부분의 최신 개발 요구 사항에 대한 적합성)를 결합하면 가장 인기 있는 개발 언어 중 하나를 갖게 됩니다.
- Python : 이것은 Java와 같은 많은 이유로 현재 IoT 개발의 또 다른 큰 언어입니다. 그것은 잘 확립되어 있으며 널리 가르쳐지고 유연합니다. 한 가지 중요한 것은 Raspberry Pi입니다. Pi의 주요 프로그래밍 언어인 Python은 IoT 개발의 핵심입니다. Pi의 성능, 작은 크기 및 저렴한 가격대는 학습자와 실험자에게 이상적이며 이제 로봇 연구에서 매우 간단한 동작 활성화 카메라 구축에 이르기까지 모든 분야에서 사용됩니다.
IoT 및 웹 개발의 미래
이것은 실험과 억측의 시간일 수 있지만, 아직 눈앞에 몇 가지 분명한 변화가 있습니다. 웹사이트는 소비자가 제품을 조사하고 구매하는 유일한 장소가 아닙니다. 사무실 작업자의 효율성을 추적하는 재고 관리 앱 및 센서는 스마트 히터 및 인터넷 액세스 가능한 베이비 모니터처럼 사람들의 일상 활동에서 보편화될 것입니다. IoT의 영역에서 Google과 Apple은 함께 노는 법을 배워야 하거나, 둘 중 하나가 다른 하나를 먹게 될 것입니다. 결국 이 모든 것이 원활하게 작동해야 하기 때문입니다.
그러나 전문가들은 특히 웹 개발자에게 가장 큰 과제는 사고방식의 전환이 될 것이라고 확신합니다. 개별 장치와 인터넷 사용 방법에 대해 생각하는 대신 개발자는 제품과 거의 상관없이 광범위한 사용자 데이터를 사용하여 서비스를 형성해야 합니다.
IoT가 미래에 웹 개발에 영향을 미칠 가능성이 있는 곳
- 단순한 장치가 아닌 네트워크용 앱: 현재 IoT 장치용 앱은 특정 제품에 대한 맞춤형 솔루션처럼 작동합니다. 개발자는 장치에서 하고 싶은 멋진 일을 생각하고 이에 대한 지침을 구축하기 시작합니다. 그러나 미래에는 IoT 개발자가 더 광범위하게 생각하기 시작해야 합니다. 단일 장치용 앱을 만드는 대신 네트워크에서 작동하는 앱을 만들 수 있어야 합니다. 이렇게 생각하십시오. 현재 Wink와 같은 네트워크는 가정의 모든 IoT 장치를 하나의 마스터 원격 제어 아래 함께 연결하지만 데이터를 수집하고 정보를 공유하거나 지시를 수행하는 대부분의 앱은 여전히 개별 장치 내에 있습니다. 미래에 IoT 연결은 가장 강력한 앱이 장치가 아닌 네트워크 내에 있는 것을 보게 될 것입니다. 어떤 의미에서 네트워크는 모든 데이터 분석, 조정 및 지침을 제공하여 더욱 지능화되고 장치와 기기는 더 멍청해져서 단순한 데이터 수집자와 지침 추종자로 축소됩니다.
- 점점 개인화되는 웹사이트 : 장치가 서로 더 많은 데이터를 수집하고 공유할 수 있게 됨에 따라 인터넷 탐색 경험이 변경될 것입니다. 웹 사이트는 IoT 장치 및 제품에서 생성된 데이터를 기반으로 고객에게 맞춤형 서비스를 자동으로 제공할 수 있습니다. 이것은 연결된 냉장고, 세탁기 및 기타 가전 제품이 좋아하는 온라인 식료품 점으로 데이터를 보내는 것을 볼 수 있으므로 웹 사이트를 열면 자동으로 부족한 스테이플을 보여줍니다. 물론 식료품점 웹사이트가 시장에 나와 있는 모든 브랜드 및 종류의 기기와 통신할 수 있어야 하기 때문에 이를 위해서는 정교한 백엔드 개발이 필요합니다. 그리고 산업 표준이 설정될 때까지 그것은 실제로 매우 어려운 주문이 될 것입니다.
- 모든 수준에서의 통합 : 미래에 기업은 고객 요구에 즉각적으로 대응할 수 있기를 원할 것입니다. 예를 들어, 생산 라인은 웹사이트 구매 증가에 동적으로 반응합니다. 즉, 개발하는 모든 앱은 전체 생산 라인과 공급망에 통합되어야 합니다. 사실, 이러한 광범위한 통합이 바로 지금 표준화가 중요한 과제인 이유입니다.
- 화면이 유일한 방법은 아닙니다 . 미래에는 많은 장치가 사용자 상호 작용 방식에 큰 방해 없이 서로 대화할 수 있습니다. Nest와 마찬가지로 사용자는 간단한 제어판과만 상호 작용할 수 있으며 나머지 데이터는 사용자가 직접 상호 작용하지 않는 센서 및 앱에 의해 수집됩니다. 즉, 프론트엔드 디자인은 더 단순해지고 다른 모든 것은 훨씬 더 복잡해질 것입니다.
- 새로운 테스트 고려 사항 : IoT 애플리케이션을 테스트할 때 완전히 새로운 개념에 대해 생각해야 합니다. 네트워크가 지연되는 경우 사용자가 IoT 장치를 제어할 수 있습니까? 사용자와 장치 간, 장치와 서버 간의 네트워크 연결이 느리거나 중단되면 어떻게 됩니까? 앱의 기능을 유지하면서 전력 사용량을 줄이는 방법이 있습니까? 이것은 개발자가 테스트 단계에서 끊임없이 스스로에게 질문해야 하는 몇 가지에 불과합니다.
알아야 할 언어, OS 및 프로토콜
여기서 예측이 정말 흐릿해질 수 있습니다. 과거 프로그래밍 언어의 발전이 우리에게 가르쳐준 것이 있다면, 미래의 기술이 오늘날의 기술과 많은 공통점을 가질 것이라고 가정할 수 없다는 것입니다. 그럼에도 불구하고 이러한 도구가 유용할 것이라고 생각하는 몇 가지 이유가 있습니다.
- JavaScript : 이미 대중적이고 이미 사용되고 있으므로 많은 사람들은 JavaScript, 특히 Node.js 환경이 계속해서 인기를 끌 것이라고 생각합니다. 최소한 IoT 개발 화살통에서 가장 유용한 화살표 중 하나가 될 것입니다.
- Weave : 언어가 아니라 기계 간 통신 프로토콜에 가까운 Weave는 Google의 Brillo OS와 함께 작동하여 장치가 저렴하고 빠르게 서로 통신할 수 있도록 합니다. Brillo는 기본적으로 Android의 축소 버전이므로 기능이 제한된 기기에 더 유용합니다. 또한 Android보다 전력이 덜 필요하므로 IoT 개발을 위한 더 저렴하고 매력적인 옵션입니다.
- Swift : Apple의 오픈 소스 언어입니다. iOS, MacOS 및 HomeKit(Apple이 모든 IoT 장치를 연결하는 데 사용하는 운영 체제)에서 작동합니다. Apple의 IoT 세계와 함께 1층에 들어가고 싶다면 이것을 알아야 합니다.
- 아직 발명되지 않은 언어 : 우리는 이것들이 무엇일지 추측할 수 있을 뿐이며, 역사가 지나간다면 우리의 모든 예측은 거의 틀릴 것입니다.
결론
사물 인터넷 시대에 진입하는 것은 평등한 면에서 흥미롭고 도전적입니다. 우리가 지금 배우고 할 수 있는 것들이 있지만 실제로는 미래에 배우고 알아낼 것이 훨씬 더 많습니다. 우리는 대량의 데이터와 네트워크 연결이 우리 삶의 모든 부분을 형성하는 보다 원활하게 연결된 세상으로 이동하고 있다는 것을 알고 있지만 실제로 어떻게 보이는지는 누구나 추측할 수 있습니다. 우리는 JavaScript가 현재 유용하고 IoT 개발의 중추를 형성하기 위해 성장할 수 있다는 것을 알고 있지만 반드시 그렇게 할 것이라는 의미는 아닙니다. 우리는 모든 새로운 기회가 새로운 도전을 낳고 모든 새로운 솔루션이 우리가 시작조차 할 수 없는 고유한 기회와 도전을 낳는다는 것을 알고 있습니다.
물론 새로운 솔루션을 배우고 발명하는 도전은 대부분의 개발자를 해당 분야로 끌어들이기 때문에 앞으로 수십 년 동안 계속 관심을 갖고 고용할 수 있을 것입니다. 그리고 그것은 아마도 웹 개발자가 사물 인터넷에 대해 알아야 할 가장 중요한 것입니다.