전체 글 179

로또의 최고순위와 최저순위 (lv1)

설계 로또 번호 중 일치하는 숫자의 개수 + 알아볼 수 없는 숫자의 개수 = 최대 일치 개수 라고 봐도 될것 같다. 당첨 번호도, 내가 입력하는 번호도 전부 중복이 허용되지 않기 때문이다. 입력한 로또 번호와 당첨 번호의 교집합의 원소 개수가 곧 일치하는 숫자의 개수일 것이고, 알아볼 수 없는 숫자의 개수는 0의 몇개있는지만 세어보면 된다. 파이썬 강좌 – 조건 표현식 (Conditional Expression) – 간단한 분기 나타내기 – Under The Pencil (elvanov.com) 파이썬 강좌 – 조건 표현식 (Conditional Expression) – 간단한 분기 나타내기 – Under The Pencil 이번 시간에는 간단하게 표현식으로 조건을 나눌 수 있는 방법을 보여드립니다. 그..

신고 결과 받기 (lv1)

1. answer 배열 초기화 하기 우선 결과로 반환할 answer 배열을 알맞은 길이만큼 0으로 초기화 해야한다. 자바스크립트 배열 생성 & 초기화 한번에 하기 (velog.io) 자바스크립트 배열 생성 & 초기화 한번에 하기 따라서, 대표적 객체지향 언어인 자바와 마찬가지로 new Array()가 존재한다.new Array()의 첫번째 매개변수로 배열의 길이를 넘겨서 특정 길이로 배열의 생성은 할 수 있지만,초기값은 undefined로 설정 velog.io 위 블로그에서는 배열의 생성과 초기화를 동시에 하는 방법으로 두가지를 소개하고 있는데, 첫번째는 직접 초기화 하는 방법이며, 두번째는 from 메서드를 이용하여 초기화하는 방법이다. Array.from() - JavaScript | MDN (moz..

BLE

본 포스트는 졸업 프로젝트 중간 보고서로 제출한 내용 중 일부를 가져온 것입니다. 블루투스 4.0 스펙을 의미한다. Central 과 Peripheral 방식으로 장치 역할이 나뉘는데, 각자 규칙을 정하는 역할, 제시되는 설정에 따라 동작하는 역할로 보면 된다. 본 프로젝트는 BLE를 이용하므로 그 구조와 프로토콜에 대한 이해가 어느정도 필요하다. 다음은 BLE 의 프로토콜 스택 이미지이다. 크게 Host 와 Controller로 나뉘어 있다. PHY는 하드웨어, LL은 BLE 연결을 직접적으로 관리하는 계층이다. 하드웨어 계층과 직접적으로 연결된 LL에서 연결 상태가 정의 되므로 BLE를 이용하는데 있어 중요한 계층이라고 할 수 있다. 그림은 다음과 같다. Central 장치가 scanning 을 해서..

BABIL_PROJECT/BLE 2022.06.18

자동 로그인 구현

firebase api를 이용해서 자동로그인을 구현하는 방법이 없을까 (라기 보다는 추천하는 방법이 없을까) 해서 문서를 읽어보고있다. https://firebase.google.com/docs/auth/web/auth-state-persistence?hl=ko&authuser=0#supported_types_of_auth_state_persistence 인증 상태 지속성 | Firebase Documentation Join Firebase at Google I/O online May 11-12, 2022. Register now 의견 보내기 인증 상태 지속성 Firebase JS SDK를 사용하면 인증 상태를 유지하는 방식을 지정할 수 있습니다. 로그인한 사용자가 명시적으로 로그 firebase.goo..

React-Navigation & Lifecycle

한동안 개발일지 작성을 못했다. 최근엔 뭔가를 새로 배우기 보다는 노가다의 연속이 많기 때문이다. 물론 개선해야할 부분은 매우매우 많지만 (응답 실패에 대한 분기라던가) 먼저 1차 완성본을 만드는게 우선이라 많은 부분을 그냥 넘어가고 있다. 지금은 메인화면 index.js에서 화면을 벗어나면 스캔을 종료하는 로직을 구현하려고 한다. componentWillUnmount를 이용할 수 있을까 했는데, 그저 스크린이 넘어가는것이 unmount의 조건이 아닌것같다. react-navigation document를 참고하니 의외로 매우 쉽게 해결됐는데, react-navigation 역시 나름의 lifecycle이 있어 다른 스크린으로 navigate 한다고 해당 스크린을 구성하던 component들이 unmou..

BABIL_PROJECT/APP 2022.05.07

바이크 등록

할 일 바빌 키 등록의 성공 / 실패 화면으로 넘어가는 분기를 만들어야 한다. 분기는 크게 다음 두가지 상황에서 나타날 수 있다. 1. 타겟 디바이스를 입력한 뒤 babilScan.js 에서 해당 디바이스를 스캔한 결과에 따라. 2. 주변에 타겟 디바이스를 발견하여 닉네임을 설정했으나 서버로부터 응답이 거부된 경우. 닮아보이는 성공 실패 화면을 한 컴포넌트로 재활용하면 좋겠다는 생각이 든다. 해결 1. babilScan.js에서 타겟 디바이스를 어느정도 스캔해보고 promise로 결과를 받는다. 2. 그러기 위해선 먼저 nickName 화면 먼저 만들어야 한다. 그냥 문자열을 적어 제출하면 끝이다. userId : uid productId: device uid brand modelName bikeNick..

BABIL_PROJECT/APP 2022.05.02

모듈 등록 가능 여부 확인

할 일 QR을 찍는다는 것은, 바빌키 uid를 읽어 복호화 한다는 의미이다. 읽어낸 uid는 서버에 보내 실제로 있는 모델인지, 그리고 사용가능한지를 확인한다. 사용가능하면 차대번호를 입력해서 다음 화면으로 넘어간다. 해결 & 코드 QR코드 자체는 당장 우선순위가 아니고, 차대번호 역시 조금 밀린다고 본다. 따라서 지금은 직접 uid를 입력하는 방식으로 만들었다. 그저 db에 해당 uid가 있는지 확인하고, 사용 가능한지 확인하는 작업을 하는 액션이다. 추후 QR 인증 방식으로 전환하는게 좋겠다. babilLink.js renderCheckButton = (deviceUid) => { const disabled = this.state.targetProductUid ? true : false; const ..