분류 전체보기
-
Bluetooth Low Energy(BLE) 에서 GATT계층은 속성( attributes )으로 구성된 서비스와 특성을 정의하고, 이것들은 GATT서버에 저장된다.앞으로는 BLE에서 데이터의 교환에 대해 설명할 것인데, 이것을 이해하기 위해서는 서버와 클라이언트에서 어떤 작업을 하는지 알아야한다. 서버와 클라이언트의 데이터 교환 개요데이터 교환은 아래 두 가지로 이루어진다서버가 데이터를 직접 클라이언트로 보낸다클라이언트가 서버로부터 데이터를 요청한다.이 때, 효과적인 통신을 위해 클라이언트는 서버가 제공하는 서비스(services)와 특성(characteristics)을 알아야한다따라서, 클라이언트는 연결 초기에 *서비스 검색을 수행하여 서버의 서비스와 특성을 학습한 후, 이것에 접근하기 위한 작업..
[BLE]GATT operationsBluetooth Low Energy(BLE) 에서 GATT계층은 속성( attributes )으로 구성된 서비스와 특성을 정의하고, 이것들은 GATT서버에 저장된다.앞으로는 BLE에서 데이터의 교환에 대해 설명할 것인데, 이것을 이해하기 위해서는 서버와 클라이언트에서 어떤 작업을 하는지 알아야한다. 서버와 클라이언트의 데이터 교환 개요데이터 교환은 아래 두 가지로 이루어진다서버가 데이터를 직접 클라이언트로 보낸다클라이언트가 서버로부터 데이터를 요청한다.이 때, 효과적인 통신을 위해 클라이언트는 서버가 제공하는 서비스(services)와 특성(characteristics)을 알아야한다따라서, 클라이언트는 연결 초기에 *서비스 검색을 수행하여 서버의 서비스와 특성을 학습한 후, 이것에 접근하기 위한 작업..
2024.07.13 -
이전 포스팅에서 Bluetooth LE 장치들이 광고 및 연결 단계에서 서로 통신하는 방법을 정의하는 GAP 계층의 역할에 대해 정리했다. 광고(Advertising) 중의 통신은 장치 검색이나 데이터 브로드캐스팅에만 사용되며 GAP 계층 자체에서 처리된다.그러나 연결이 설정된 후에는 양방향 데이터 교환이 필요한데, 이를 위해 특정 데이터 구조와 프로토콜이 필요하다. 이번 포스팅에서는 이와 관련된 프로토콜을 정리할 것이다. Attribute 프로토콜 (ATT) 계층ATT 계층은 connection 단계에서 Bluetooth LE 장치 간에 데이터가 전송되고 수신되는 방법을 정의한다.이는 클라이언트-서버 아키텍처를 기반으로 한다 중앙 장치와 주변장치 모두 클라이언트 또는 서버가 될 수 있다. 즉, 애플리케..
[BLE] ATT & GATT이전 포스팅에서 Bluetooth LE 장치들이 광고 및 연결 단계에서 서로 통신하는 방법을 정의하는 GAP 계층의 역할에 대해 정리했다. 광고(Advertising) 중의 통신은 장치 검색이나 데이터 브로드캐스팅에만 사용되며 GAP 계층 자체에서 처리된다.그러나 연결이 설정된 후에는 양방향 데이터 교환이 필요한데, 이를 위해 특정 데이터 구조와 프로토콜이 필요하다. 이번 포스팅에서는 이와 관련된 프로토콜을 정리할 것이다. Attribute 프로토콜 (ATT) 계층ATT 계층은 connection 단계에서 Bluetooth LE 장치 간에 데이터가 전송되고 수신되는 방법을 정의한다.이는 클라이언트-서버 아키텍처를 기반으로 한다 중앙 장치와 주변장치 모두 클라이언트 또는 서버가 될 수 있다. 즉, 애플리케..
2024.07.11 -
Bluetooth Low Energy 프로토콜은 두 가지 다른 통신 스타일을 지원한다.Connection-oriented communicationBroadcast communication이번 블로그 포스트에서는 이러한 통신 스타일과 관련된 정의, 장치의 역할, 네트워크 토폴로지에 대해 정리해 볼 것이다. Communication style1. 연결 지향 통신(Connection-oriented communication)장치 간에 전용 양방향 연결을 형성하여 데이터를 원활하게 교환할 수 있다. 2. 브로드캐스트 통신 (Broadcast communication)장치가 먼저 연결을 설정하지 않고, 범위 내의 모든 장치에 데이터 패킷을 브로드캐스트하여 통신한다. Device roles 1. Advertis..
[BLE] GAPBluetooth Low Energy 프로토콜은 두 가지 다른 통신 스타일을 지원한다.Connection-oriented communicationBroadcast communication이번 블로그 포스트에서는 이러한 통신 스타일과 관련된 정의, 장치의 역할, 네트워크 토폴로지에 대해 정리해 볼 것이다. Communication style1. 연결 지향 통신(Connection-oriented communication)장치 간에 전용 양방향 연결을 형성하여 데이터를 원활하게 교환할 수 있다. 2. 브로드캐스트 통신 (Broadcast communication)장치가 먼저 연결을 설정하지 않고, 범위 내의 모든 장치에 데이터 패킷을 브로드캐스트하여 통신한다. Device roles 1. Advertis..
2024.07.11 -
Bluetooth LE란?Bluetooth Low Energy(BLE)는 저전력 장치 간 데이터 통신을 위해 사용되는 무선통신기술이다. 기존의 Bluetooth Classic과 차이가 있다면, 아래와 같다. Bluetooth Classic : 고속 데이터 전송 애플리케이션에 주로 사용ex) 무선 헤드셋, 음악 스트리밍Bluetooth Low Energy(BLE) : 전력 소비가 중요한 웨어러블 기기 및 대규모 Iot 배포에 최적화 BLE 특징BLE의 주요 특징은 아래와 같다.낮은 전력 소비 : 패킷 크기를 최소화하고 데이터를 가능한 드물게 전송함으로써 전력 사용을 줄인다.데이터 전송 속도: 데이터 패킷 크기는 27바이트에서 251바이트까지 다양하며, 데이터를 자주 전송하지 않도록 하여 전력 소비를 최소..
[BLE] Bluetooth LEBluetooth LE란?Bluetooth Low Energy(BLE)는 저전력 장치 간 데이터 통신을 위해 사용되는 무선통신기술이다. 기존의 Bluetooth Classic과 차이가 있다면, 아래와 같다. Bluetooth Classic : 고속 데이터 전송 애플리케이션에 주로 사용ex) 무선 헤드셋, 음악 스트리밍Bluetooth Low Energy(BLE) : 전력 소비가 중요한 웨어러블 기기 및 대규모 Iot 배포에 최적화 BLE 특징BLE의 주요 특징은 아래와 같다.낮은 전력 소비 : 패킷 크기를 최소화하고 데이터를 가능한 드물게 전송함으로써 전력 사용을 줄인다.데이터 전송 속도: 데이터 패킷 크기는 27바이트에서 251바이트까지 다양하며, 데이터를 자주 전송하지 않도록 하여 전력 소비를 최소..
2024.07.10 -
데이터 타입은 값의 '종류'를 의미한다.자바스크립트 (ES6)는 7개의 데이터 타입을 제공한다. 7개의 데이터타입은 원시 타입과 객체 타입으로 분류할 수 있다. 구분데이터 타입설명원시 타입숫자(number) 타입숫자, 정수와 실수 구분 없이 하나의 숫자 타입만 존재문자열(string) 타입문자열불리언(boolean) 타입논리적 참(true)과 거짓(false)undefined 타입var 키워드로 선언된 변수에 암묵적으로 할당되는 값null 타입값이 없다는 것을 의도적으로 명시할 때 사용하는 값심벌(symbol) 타입ES6에서 추가된 7번째 타입객체 타입객체,함수,배열 등 1. 숫자 타입C나 자바의 경우, 정수와 실수를 구분해서 int,long,float,double 등과 같은 다양한 숫자 타입을 제공한..
[Javascript] 데이터 타입데이터 타입은 값의 '종류'를 의미한다.자바스크립트 (ES6)는 7개의 데이터 타입을 제공한다. 7개의 데이터타입은 원시 타입과 객체 타입으로 분류할 수 있다. 구분데이터 타입설명원시 타입숫자(number) 타입숫자, 정수와 실수 구분 없이 하나의 숫자 타입만 존재문자열(string) 타입문자열불리언(boolean) 타입논리적 참(true)과 거짓(false)undefined 타입var 키워드로 선언된 변수에 암묵적으로 할당되는 값null 타입값이 없다는 것을 의도적으로 명시할 때 사용하는 값심벌(symbol) 타입ES6에서 추가된 7번째 타입객체 타입객체,함수,배열 등 1. 숫자 타입C나 자바의 경우, 정수와 실수를 구분해서 int,long,float,double 등과 같은 다양한 숫자 타입을 제공한..
2024.07.06 -
1. 변수란 무엇인가? 왜 필요한가?변수하나의 값을 저장하기 위해 확보한 메모리 공간 자체 또는 그 메모리 공간을 식별하기 위해 붙인 이름 변수가 필요한 이유기억하고 싶은 값을 메모리에 저장하고, 저장된 값을 읽어들여 재사용할 수 있기 때문에 필요하다. 변수가 없다면, 이전에 실행한 연산 결과를 재사용하고 싶을 때, 메모리주소를 통해 연산 결과가 저장된 메모리공간에 직접 접근해야함 -> 매우 위험변수를 통해, 개발자가 직접 메모리 주소를 통해 값을 저장하고 참조할 필요가 없고 변수를 통해 안전하게 값에 접근할 수 있다. 2. 식별자어떤 값을 구별해서 식별할 수 있는 고유한 이름을 말한다.식별자는 어떤 값이 저장되어있는 메모리주소를 기억(저장)한다.값이 아니라, '메모리 주소'를 기억하고 있다.즉, 식별..
[Javascript] 변수1. 변수란 무엇인가? 왜 필요한가?변수하나의 값을 저장하기 위해 확보한 메모리 공간 자체 또는 그 메모리 공간을 식별하기 위해 붙인 이름 변수가 필요한 이유기억하고 싶은 값을 메모리에 저장하고, 저장된 값을 읽어들여 재사용할 수 있기 때문에 필요하다. 변수가 없다면, 이전에 실행한 연산 결과를 재사용하고 싶을 때, 메모리주소를 통해 연산 결과가 저장된 메모리공간에 직접 접근해야함 -> 매우 위험변수를 통해, 개발자가 직접 메모리 주소를 통해 값을 저장하고 참조할 필요가 없고 변수를 통해 안전하게 값에 접근할 수 있다. 2. 식별자어떤 값을 구별해서 식별할 수 있는 고유한 이름을 말한다.식별자는 어떤 값이 저장되어있는 메모리주소를 기억(저장)한다.값이 아니라, '메모리 주소'를 기억하고 있다.즉, 식별..
2024.07.05 -
0. 초창기초창기 자바스크립트는 웹페이지의 보조적인 기능을 수행하기 위해 한정적으로 사용됨웹 서버 -> 대부분의 로직 실행브라우저 -> 서버로부터 전달받은 HTML과 CSS를 단순히 렌더링하는 수준 1. Ajax 1996년 Ajax의 등장 Javascript를 이용해 서버와 브라우저가 비동기(asynchronous) 방식으로 데이터를 교환하는 통신을 의미한다. 이전의 웹 페이지로 시작해 로 끝나는 완전한 html 코드를 서버로 부터 전송받아 웹페이지 전체를 렌더링함필요없는 부분까지 전부 렌더링 -> 불필요한 데이터 통신 발생성능 불리화면이 전환되면 서버로부터 새로운 HTML을 전송받아 웹페이지 전체를 처음부터 다시 렌더링 -> 화면 깜빡임 현상 발생 Ajax 도입 후서버로부터 필요한 데이터만 전송받아 ..
[Javascript] 자바스크립트 성장의 역사0. 초창기초창기 자바스크립트는 웹페이지의 보조적인 기능을 수행하기 위해 한정적으로 사용됨웹 서버 -> 대부분의 로직 실행브라우저 -> 서버로부터 전달받은 HTML과 CSS를 단순히 렌더링하는 수준 1. Ajax 1996년 Ajax의 등장 Javascript를 이용해 서버와 브라우저가 비동기(asynchronous) 방식으로 데이터를 교환하는 통신을 의미한다. 이전의 웹 페이지로 시작해 로 끝나는 완전한 html 코드를 서버로 부터 전송받아 웹페이지 전체를 렌더링함필요없는 부분까지 전부 렌더링 -> 불필요한 데이터 통신 발생성능 불리화면이 전환되면 서버로부터 새로운 HTML을 전송받아 웹페이지 전체를 처음부터 다시 렌더링 -> 화면 깜빡임 현상 발생 Ajax 도입 후서버로부터 필요한 데이터만 전송받아 ..
2024.07.04 -
React Navigation React Native에서 네비게이션을 구현하는데 사용되는 많은 라이브러리들이 존재한다. 그 중 대표적인 것이 React Navigation이다. ( React에서 react-router-dom을 사용하여 라우팅을 구현한다면, React-Native에서는 React Navigation을 사용한다) React Navigation를 적용해보자 패키지 설치npm install @react-navigation/native npm install @react-navigation/stack 이제 이 네비게이션을 바탕으로 App.tsx를 수정해 보자import React from 'react'; import { NavigationContainer } from '@react-navigati..
[React Native] React NavigationReact Navigation React Native에서 네비게이션을 구현하는데 사용되는 많은 라이브러리들이 존재한다. 그 중 대표적인 것이 React Navigation이다. ( React에서 react-router-dom을 사용하여 라우팅을 구현한다면, React-Native에서는 React Navigation을 사용한다) React Navigation를 적용해보자 패키지 설치npm install @react-navigation/native npm install @react-navigation/stack 이제 이 네비게이션을 바탕으로 App.tsx를 수정해 보자import React from 'react'; import { NavigationContainer } from '@react-navigati..
2024.07.03