본문 바로가기

자율 프로젝트

(4)
[자율 프로젝트] 안드로이드 스튜디오의 Room 사용하기 우리는 채팅을 주로 다루는 앱인데 심지어 통신이 끊긴 상황에서도 사용해야하므로 휴대폰 로컬의 DB가 필요하다.특히 카카오톡도 애플리케이션의 내장 DB로 SQLite를 사용한다고 한다.우리도 애플리케이션 내부에 들어가는 DB를 활용할 예정이다. Room이란?스마트폰 내장 DB에 데이터를 저장하기 위해 사용하는 라이브러리SQLite를 활용하면서 편한 데이터베이스 엑세스가 가능하도록 SQLite의 추상화 계층 제공 SQLite가 기존 스마트폰 내장 DB인데 이걸 사용하기 위한 학습 시간이 아주 길고, 쓰는 것이 어렵다고 한다. 그래서 이걸 편하게 사용할 수 있게 하는 느낌의 라이브러리,,? Room의 세가지 주요 구성 요소 데이터베이스 클래스 : DB를 보유하고 앱의 영구 데이터와의 기본 연결을 위한 액..
[자율 프로젝트] BLE 란?_3-1. 코드 분석 누군가 7년전쯤 스마트폰 간 BLE Mesh를 시도해본 git 코드가 있었다. 이를 이용해 테스트를 한번 해보려고 gemini ai 모델에 github 폴더를 담아서 최신 버전의 테스트 코드를 작성해달라고 했다.그랬더니 A가 B를 소형 기지국으로 사용하여 C에게 통신하는 Unicast 테스트는 성공하였으나코드의 가독성이 너무 안좋고 결합도가 매우 높다,,,(그냥 MainActivity안에 1000줄 넘게 들어있음,,) 그래서 나는 이 코드를 분석해서 어떤 방식으로 동작하는지 알아보고자 한다. 아마 이 코드를 다 분석하고 나면 모듈화해서 파일을 잘게 쪼갤 수 있을 것이고, 채팅이 가능할 것 같다. 변수 선언 구간 1. 권한 체크 경고 무시@SuppressLint("MissingPermission") 가..
[자율 프로젝트] BLE란?_2 IoT 간 통신이 아닌 유사 BLE Mesh 구조를 실전으로 테스트해보고자 한다. 준비물1. 휴대폰 3대 목표1. 연결된 모든 휴대폰에게 메세지 보내기(Broadcast) 2. 특정 휴대폰에게 하나 거쳐서 메세지 보내기 (A가 C에게 메세지를 보낼건데 사이에 B가 있는 경우)(Unicast) Broadcast 인근에 나를 아는 모두에게 나를 알리는 것이다.이전에 말했던 광고, 스캔방식을 이용하는 것인데, 모든 휴대폰이 광고를 하고 모든 휴대폰이 스캔을 하면 된다. 기존의 휴대폰의 경우, BLE를 스캔하는 모드는 늘 켜져있지만, 광고하는 모드는 제한되어있다.그래서 늘 BLE로 자신을 광고하는 에어팟, 워치, 버즈 등의 IoT는 휴대폰과 자동으로 연결되는 것이다. 그래서 가장 먼저 휴대폰 내의 광고를 계속..
[자율 프로젝트] BLE 란?_1 이번 프로젝트에서는 아주 새로운 기술을 다루고자 한다.바로바로,,,, BLE 라는 기술인데, 이를 선택한 계기가 있다. 이번 프로젝트에서 채팅앱을 개발하고자 한다. 그냥 채팅앱은 이미 많이 개발되어있고, 특색과 서비스성을 가진 채팅앱을 만들 것이다.네트워크가 없이도 채팅이 가능하도록 구현하고자 한다. 네트워크가 없는 채팅은 재난 상황, 비행기 내부,네트워크가 터지지 않는 공간(예를 들어 지하, 특정 지역) 등에서 사용될 수 있을 것이다. 특히 최근 대형 산불의 경우, 기지국이 무너졌을 때 인근 지역 내에서는 통신이 되지 않으므로 유용히 사용할 수 있겠다고 생각하여 진행하게 되었다. 이를 위하여 BLE에 대해 지금부터 알아보도록 하겠다,,BLE : 저전력 블루투스(Bluetooth Low Energy) 앱..