전체 글 179

BABIL_DB스키마

큰일난것 같다. DB를 너무 쉽게 생각한 모양이다. 왜 그러는지는 명세를 작성하며 정리해보자. 먼저 모듈 얘기 부터 하자. 우리는 바빌키를 판매한다. 판매한 바빌키는 구매한 소비자에게 넘어갈 것이고, 소비자는 앱을 이용하여 어떤 인증과정을 통해 해당 바빌키를 활성화 시킨다. 활성화 과정 중, 유저는 자신의 바이크 정보를 앱에 기입한다. 우리 쪽에서는 이제, 어떤 사람이 (가입해야지만 활성화가 가능하니까 결국 활성화 한 사람이 누군지 알 수 있는것), 또 어떤 바이크에 장착하여, 어떤 바빌키를 이용하는지 알 수 있게된다! 유저가 바빌키를 이용하던 도중 문제가 발생할 수 있다. 그렇다면, 우리는 바빌키 장착 후 얼마만큼 시간이 지나서 문제가 발생했는지 (장착해야지만 모듈이 가동될테니까), 어떤 모델에 장착했..

오토바이 DB

아무리 파이어베이스가 백엔드를 날로먹는다고는 하지만, 결국 데이터 구조를 짜는것은 개발자의 몫인것은 당연하다. 그래서 미약한 지식으로 최대한 빠르게 작업해보자 한다. 음... 그럼 db에서 가져올 "데이터"는 도대체 뭐가 있을지 부터 한번 보자. --------------------------------------------------------------------------------- DB는 이도윤 팀원과 함께 진행하기로 했다. babil_프로토타입_ver01.3 (adobe.com) babil_프로토타입_ver01.3 46 Screens, Last modified on Jan 24, 2022 08:12 GMT xd.adobe.com 먼저, 화면 상 띄워주는 데이터들은 아래 자료들 정도이다. 말 그..

BLE_SCAN 액션 수정 (main/index.js)

이 페이지에서는 일단 컴포넌트에 진입하여 scan을 시작하면 stop 할 필요가 없다. 스캔은 계속 진행 하되, 새로고침 버튼을 누르면 BLEList를 초기화하고 다시 스캔한다. 즉, 만약 처음 메인페이지 진입 시 available 했던 디바이스가, 어떤 연유로 더이상 scan 되지 않을 수 도 있지 않은가? 그런 경우 새로고침을 누르면 화면에 반영이 되는 것이다. ble_actions.js export const emptyBLEList = () => (dispatch, getState, DeviceManager) => { DeviceManager.stopDeviceScan() return dispatch ({ type: EMPTY_BLE, payload: [] }) } main/index.js clas..

BABIL_PROJECT/BLE 2022.04.11

BLE_SCAN 액션 수정 (babilScan.js)

위 메인 페이지에서 "연결된" 오토바이를 터치하면, 제어 페이지로 넘어가야 하는데, 이 과정에서 BLE 디바이스가 연결된다. 반대로 뒤로가기를 누르면 연결이 해제 되어야 한다. 그런데 보다보니 중요한 사실이 하나 떠오른다. 바로 scan 액션이 찾으려는 기기를 하나만 찾아도 바로 스캔을 종료시킨다는 것이다. 우리가 필요한 조건은, 인자로 넘겨주는 uuidList에 있는 요소들을 모두 찾았을 때 스캔을 종료하는 것이다. 몇시간 삽질 끝에 결국 전부 원래대로 되돌렸다. 생각을 해보자. 1. startScan 액션은, startDeviceScan 만 해줄 것. 2. startScan 액션은, 단 한번만 호출될것. 즉 렌더링 될 때마다 호출 되면 안된다. 3. startDeviceScan은 startScan 안..

BABIL_PROJECT/BLE 2022.04.10

Firebase (signIn & signUp)

팀원의 pull request 에 대한 코드 리뷰 중, auth 관련 사항들을 redux에 적용시켰다. 다음은 간략한 개발 내역이다. 먼저 firebase.js에 관련 모듈을 모두 import 한다. 앱에서 쓸일이 있으면 참조만 만들어 export 한다. import { initializeApp } from "firebase/app"; import { getAuth, // authentication 설정 signInWithPopup, // google 로그인을 팝업창에 띄우기 위해 GoogleAuthProvider, // google login 기능 signInWithEmailAndPassword, // email 로그인 createUserWithEmailAndPassword, // email 회원가입 ..

React 와 Redux 불변성 (Immutability in React and Redux)

Immutability in React and Redux: The Complete Guide (daveceddia.com) Immutability in React and Redux: The Complete Guide Learn about side effects and how to avoid them, how to wield immutablity to update objects and arrays in Redux reducers, and the easy way to update state with Immer. daveceddia.com 누군가가 내가 궁금한 부분을 딱 집어 포스팅 해놨다. 중요한 내용이니 번역하여 올려두려고 한다. Immutability in React and Redux: The Compl..

BABIL_PROJECT/BLE 2022.03.31

설계_주제 선정

서두 김한경 대표 (이하 바빌 대표)가 오토바이 셰어링 관련 사업을 준비하고 있다는 얘기를 들은게 그 해 초 였나, 아니면 중순 쯔음 부터였나 정확히 기억은 나진 않는다. 그 쯔음 취업에 대한 막연한 생각으로 여름방학 동안 영어회화 성적과 한국사 자격증을 따두었다. 학기 시작과 동시에 졸업 프로젝트를 시작해야 했으므로, 동기 세명과 함께 팀을 만들어 프로젝트 주제에 대한 얘기를 나누던 중 마침 바빌 대표의 사업 아이템이 생각나 팀원들에게 이야기를 꺼내봤다. 반응이 좋아 졸업 프로젝트에서 바빌의 아이템인 "오토바이 셰어링 서비스"를 개발해보기로 결정했다. 당시 난 프로젝트를 해본 경험도 전무하고 더군다나 팀장은 맡아본 적도 없는, 그야말로 별 생각이 없는 상태였다. 또한 분명 졸업 프로젝트와 사업화는 서로..

BLE-PLX

react-native-ble-plx가 안정적으로 동작할 수 있도록 기록을 남겨두려고 한다. constructor 와 componentDIdMount 의 lifecycle에 대해 아직 제대로 파악을 하지 못한것 같다. 하단 코드는 도움을 받아 작성한 코드로, 내용에 대한 정확한 파악은 이루어지지 않은 상태이다. class App extends Component { constructor() { super(); this.manager = new BleManager(); } componentDidMount() { setTimeout( () => { if (Platform.OS === 'android') { // Calling the permission function const granted = Permiss..

BABIL_PROJECT/BLE 2022.01.29