본문 바로가기

프로젝트

(15)
[인스타그램 클론코딩] 회원가입 구조 사용자가 웹 또는 앱에서 회원가입을 하면서 성(First Name), 이름(Last Name), 이메일 등을 입력하면, 이 정보를 Amplify 모듈을 사용해 AWS Cognito에 보냅니다. Cognito에는 전달받은 사용자 정보를 승인하기 전에 개발자가 그 정보를 가로채서 수정할 수 있도록 Pre-SignUp 트리거를 제공합니다. 이 트리거에 전달받은 사용자 정보를 데이터베이스의 User 스키마에 저장하는 AWS Lambda 함수를 등록해 줍니다. Cognito를 통해 가입하면 사용자 정보가 Cognito에 저장되는데, 사용자 정보를 왜 다른 데이터베이스에 다시 저장하나요? 다른 데이터와의 연동때문입니다. 사용자로 부터 데이터만 생성되는 경우는 굳이 사용자 정보를 데이터베이스에 다시 복제할 필요가 없..
[Lambda + Prisma2+리액트] 인스타그램 클론 코딩 [인스타그램 클론코딩] 제작 관련 포스트 목록 ★ 채팅기능 추가: [인스타그램 클론코딩] 채팅기능 추가 ★ 노마드 코더님의 인스타그램 클론코딩 강의에 기반하고 있습니다. 자바스크립트와 JSX 코드에 익숙하신 분이나 위 강의를 수강하신 분에게 도움이 될 것 같습니다. iOS 작동 영상 [인스타그램 클론코딩] iOS 작동 영상 웹 작동 영상 [인스타그램 클론코딩] 웹 작동 영상 노마드 코더님의 강의와 다른점은 무엇인가요? 1. Prisma1에서 Prisma2로 변경 강의는 백앤드에서 Prisma1을 사용했습니다. 저는 Prisma2를 사용했는데요. 다음과 같은 Prisma1의 문제점 때문이었습니다. GraphQL 서버와 Prisma 서버를 별도로 구현해야 합니다. 자바 환경에서 동작하기 때문에 메모리 문제도..
[BLE] Noise Detector 개요 / 목차 / 동영상 개요블록 다이어그램과 핵심 변수/함수를 사용하여 핵심 알고리즘을 표현했습니다. 사실 이번 프로젝트를 만들면서 필기한 분량이 2천원짜리 노트 한권 분량입니다. 프로젝트와 관련된 기초적인 부분과 비슷한 내용을 조금씩 수정하면서 다시 그린 것이 대부분이지만, 대부분의 내용을 삭제하고 매우 핵심적인 부분만 포스팅했습니다. 프로젝트는 전체 시스템, 하위 시스템을 설계할 때마다 블록 다이어그램을 그리고, 그 그림에 따라 코드를 작성하거나 화로를 만들었습니다. 설명에 그려진 그림들은 큰 틀에서 제가 이번 프로젝트를 설계하는 과정과 일치합니다. 회로, BLE(Bluetooth Low Energy) 프로토콜, 자바, 안드로이드에 대한 기초적이 부분까지 설명하기에는 양이 너무 많기 때문에 "CAN 통신" 처럼 자세히 설명..
[AWS IoT 프로젝트] AWS LED Button 개요 / 목차 / 동영상 개요 결론적으로는 안드로이드 앱으로 ESP32와 연결된 LED를 켜고 끄는 아주 간단한 프로젝트입니다. 이번 프로젝트의 목표는 하드웨어를 제어하는 것이 아니라, 안드로이드 앱과 임베디드 시스템이 암호화된 웹 클라우드를 매개로 비동기적 통신 시스템을 구현하는 것이기 때문에 제어할 하드웨어 영역을 의도적으로 줄였습니다. 또한 단순한 장거리 통신은 WIFI를 사용하고 ESP32에서 HTTP 서버를 구축하여 구현할 수도 있지만, 아마존 웹 서비스(AWS)를 사용한 이유는 SDK에 보안과 통신을 담당하는 API가 이미 구현되어 있고, 또한 주요 언어, 플랫폼에 대해 제공되기 때문입니다. AWS C언어 SDK는 리눅스용이지만 ESP32 SDK에서 이미 포팅해서 제공하고 있었습니다. Android SDK 링크 제 블..
[AWS IoT 프로젝트] AWS LED Button 개발 환경 IDE는 이클립스, 툴체인은 xtensa-esp32-elf를 사용했습니다. xtensa-esp32-elf는 ESP32 제조사인 Espressif가 gcc 툴체인을 ESP32의 코어인 Xtensa LX6에 맞도록 수정한 것으로 알고 있습니다. 아두이노를 사용하는 방법도 있습니다. 아두이노 역시 xtensa-esp32-elf 툴체인을 사용하지만, 아두이노 특성상 항상 loop() 함수 안에서 모든 것을 처리해야 하기 SDK 이용이 약간 제한된다고 알고 있습니다. 그리고 맥 운영체제에서 개발했습니다. 윈도우(2015 i3 그램), 맥(2010 P8600 13인치 프로) 둘 다 사용해 봤는데, CPU 차이에도 불구하고 맥이 윈도우보다 20배 정도 빠릅니다. 이유는 Espressif가 리눅스용 gcc로만 xten..
[AWS IoT 프로젝트] AWS LED Button 목적 & 요구사항 & 시스템 흐름 제 블로그의 프로젝트 관련 포스트들은 모두 이용하는 제품이나 서비스에 대한 기본적인 이해를 가정하고 실제 구현을 목표로 하므로 기초적인 부분은 직접 공부해야 합니다. 목적 사물(Thing)과 클라이언트는 AWS IoT의 Thing Shadow를 얻어와 초기 동작/상태를 설정하고, AWS IoT를 통해 서로 통신한다. 클라이언트 (안드로이드 앱) 요구사항 회원가입을 하고 이메일 인증을 해야 해당 앱을 이용할 수 있다. 인증된 사용자라도 사물의 고유한 Device Serial Number(DSN)과 operation key를 알고 있어야 사물(Thing)에 접근할 수 있다. DSN과 operation key만 알고 있으면, 인증된 사용자(회원가입 + 이메일 인증)는 서로 다른 기기에서 로그인해도 해당 사물에..
[BLE 프로젝트] Noise Detector 목적 / 요구사항 / 시스템 흐름 제 블로그의 프로젝트 관련 포스트들은 모두 이용하는 제품이나 서비스에 대한 기본적인 이해를 가정하고 실제 구현을 목표로 하므로 기초적인 부분은 직접 공부해야 합니다. Noise Detector 목적 외부 소음을 탐지하여 지정한 값보다 크면 경고색 또는 진동을 사용하여 사용자에게 알려준다. 외부 소음을 녹음하기 위한 목적은 아니다. Noise Detector 요구사항 외부 소리에 대한 정보를 마이크를 통해 입력받아 BLE 통신을 사용하여 스마트폰으로 전송한다. 배터리 분리 없이 마이크로 USB 연결만으로 배터리를 충전시킬 수 있어야 한다. 저전력을 위해 연산 증폭기의 전원이 nRF51822에 의해 제어되어야 한다. 저전력을 위해 피어로부터 Noise Detector ON/OFF 명령을 받으면, 명령받은 동..