본문 바로가기

분류 전체보기

(54)
[자율 프로젝트] 안드로이드 스튜디오의 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) 앱..
[특화 프로젝트] Redis 사용하기 1. Ubuntu + docker 설치 현재 맡은 페이 로직에서 새로운 계좌를 자체 페이 시스템에 연결할 때 Redis가 필요하다.Redis란?Redis는 초고속 메모리 기반 데이터 저장소 [사용 예시] 세션 관리로그인한 사용자 정보 저장 (웹 서버가 재부팅돼도 빠르게 복구)캐싱DB에서 자주 조회되는 데이터를 Redis에 저장 → 성능 10배 향상메시지 큐실시간 채팅, 알림 시스템 구현 가능항목설명저장 방식RAM(메모리) 기반, 매우 빠름구조Key - Value 형태로 데이터 저장영속성 지원디스크 저장 옵션도 있어서 데이터 보존 가능특징 초고속 처리, 다양한 자료구조 지원 사용자의 계좌 정보가 금융망에서 유효한 값인지 확인이 되기 전까지 잠시 담아둬야하는 상황인데,이때 DB에 담아두기에는 너무 짧은 시간이 걸린다. 그래서, Redis + TT..
[특화 프로젝트] Redis 사용하기 2. Redis + Spring boot https://yuuu-ni-versee.tistory.com/55 [특화 프로젝트] Redis 사용하기 1. Ubuntu + docker 설치현재 맡은 페이 로직에서 새로운 계좌를 자체 페이 시스템에 연결할 때 Redis가 필요하다.Redis란?Redis는 초고속 메모리 기반 데이터 저장소 [사용 예시] 세션 관리로그인한 사용자 정보 저장 (웹yuuu-ni-versee.tistory.com이전 게시글에서 윈도우 환경에서 도커를 설치하는 방법을 설명하였다. 이제 명령프롬프트에서 레디스를 설치하고 Spring boot에서 설정하는 방법을 알아보자. 도커 활용하여 redis 설치 docker pull redis 명령어를 입력하면도커에서 redis의 latest 버전 이미지를 가져오게 된다. 이미지를 가져오고..
[특화 프로젝트] 페이 결제를 타파하자(feat. NFC+HCE+안드로이드 스튜디오) 이번 특화 프로젝트에서 우리 팀이 사용할 기능은 바로 페이이다.간편 결제인 페이를 사용하기 위하여 여러가지를 찾아보던 중 우리는 NFC를 이용한 페이 기능을 수행하고자 한다. 목차1. 페이란? 페이 예시, 페이 방식, 페이 종류, 결론적으로 어떤 로직을 선택할 것인가2. 우리의 로직. 로직을 구현하기 위한 방법 : 안드로이드 스튜디오, HCE, AID 등3. 구현 과정  1. 페이란?페이(Pay)란, 스마트폰 또는 디지털 기기를 이용하여 간편하게 결제하는 시스템이다. 다양한 방식이 존재하며, 대표적인 서비스로는 다음과 같은 것들이 있다.✅ 카카오페이, 네이버페이 - QR 코드 및 바코드를 활용한 결제✅ 삼성페이, 애플페이, 구글페이 - NFC 기반 결제✅ 신용카드 기반 결제 시스템 - MST(마그네틱 보..
[특화 프로젝트] 프로젝트 정리 공통 프로젝트가 성공적으로 끝나고 바로 특화프로젝트 주간이 시작되었다.사실 말은 바로긴 한데 한 주는 부트캠프 느낌으로 여유로운 시간이 되었다. 이번 우리 팀의 도메인은 핀테크! 팀원은 프론트엔드2, 백엔드4 이렇게 진행될 예정이다. 특화 프로젝트도 팀장과 ca를 맡게 되었다.이번엔 공통 프로젝트를 경험해봤으니 조금 더 체계적으로 관리하며 시간 관리를 더 잘해보고자 한다. 이번 특화 프로젝트에서 내가 얻고 싶은 것은,좀 더 전문적이고 새로운 기술의 사용 체계적인 일정 관리, 팀 관리인프라 경험테스트 코드 작성 경험공통 프로젝트에서 보완할 부분을 생각하면서 진행을 하고자 한다.2025년 2월 24일 - 28일 : 0주차  부트캠프 주간으로 굳이 기획이나 아이디어 회의를 하지 않아도 되는 주간이다.이 시기에..