나의 일지
close
프로필 사진

나의 일지

github: @alreadysons

  • 분류 전체보기 (19)
    • 개발일지 (8)
      • 안드로이드 (7)
      • 파이썬 (1)
    • 시사일지 (0)
    • 공부일지 (11)
      • Kotlin (6)
      • 정보처리기사 (1)
      • 알고리즘 (4)
  • 홈
[안드로이드] Wifi기반 체류 시간 앱 - 6

[안드로이드] Wifi기반 체류 시간 앱 - 6

1차 개발을 완료 하였다 기존의 아키텍처 설계는 이러한 식으로 하였다 하지만 추후 DBMS를 Mysql을 바꾸었다 그리고 API는 다음과 같이 구성하였다그리고 앱 화면은 다음과 같이 구성하였다 그리고 ERD는 다음과 같이 구성하였다 이후 user_name 칼럼은 제거하였다 앱 시작에 관한 시퀀스 다이어그램이다앱이 시작되면 기기에서 저장되어있는 user_id를 불러오고, user_id가 있다면 해당하는 wifi의 ssid와 bssid를 불러온다그리고 사용자에게 location 권한을 확인하고, 1분마다 worker를 설정하여 wifi 연결 여부를 확인한다. 그리고 wifi가 연결이 되어있을 경우 wifi의 정보를 받아온다. 이후 wifi가 연결이 되어있다면 지속적으로 화면에서 연겨되어 있는 wifi 정보..

  • format_list_bulleted 개발일지/안드로이드
  • · 2025. 8. 23.
[안드로이드] Wifi기반 체류 시간 앱 - 5

[안드로이드] Wifi기반 체류 시간 앱 - 5

잔여 작업1. datastore로 response data 저장 로직(user_id 혹은 log_id)2. 네트워크가 없을 시 (offline) 네트워크가 연결 되었을때 즉시 log 종료 호출3. 백그라운드 실행(로그)4. 통계 분석 API 개발5. 통계 시각화6. 클라우드 배포 다음의 작업 중에서 우선 앱 디자인을 먼저 하였다 다음의 형식으로 디자인을 하였으며 이후 통계 분석 API 개발하였다 from sqlalchemy.orm import Sessionimport modelsfrom datetime import datetime, timedelta, timezonefrom typing import Dict# 한국 시간대 설정KST = timezone(timedelta(hours=9))def get_..

  • format_list_bulleted 개발일지/안드로이드
  • · 2025. 8. 18.

[안드로이드] Wifi기반 체류 시간 앱 - 4

체류 시간 로컬 로깅에 대해 진행하겠다 우선 backend 부터 시작했다다음의 log_api를 만들었으며from sqlalchemy.orm import Sessionimport models, schemasfrom datetime import date, datetime, timezone, timedelta# 한국 시간대 설정KST = timezone(timedelta(hours=9))# 새로운 로그 생성def start_log(db: Session, wifi_log: schemas.WifiLogCreate): db_wifi_log = models.WifiLog( user_id=wifi_log.user_id, start_time=datetime.now(KST) ) d..

  • format_list_bulleted 개발일지/안드로이드
  • · 2025. 8. 16.
[안드로이드] Wifi기반 체류 시간 앱 - 1

[안드로이드] Wifi기반 체류 시간 앱 - 1

1일차: 프로젝트 설계 및 환경 구축목표: 전체적인 구조 확정 및 개발에 필요한 환경 설정세부 할 일:개발 환경 구축DB 스키마 설계: Wi-Fi 정보, 접속 기록 등을 저장할 테이블 구조를 설계API 명세서 작성앱과 백엔드가 주고받을 데이터 형식 정의 개발 환경 구축Android Studio에 Kotlin 개발 환경 설정Python, FastAPI, Uvicorn 설치 및 기본 프로젝트 생성Mysql 설치 및 연동 확인 우선 다음과 같이 백엔드와 Andriod 부분을 DB 스키마 설계그리고 ERD는 다음과 같이 구성하였다 API 명세서 작성API 명세서 초안은 다음과 같다사용자 생성 및 정보 업데이트Endpoint: POST /users/설명: 신규 사용자를 등록하거나, 이미 등록된 경우 집 W..

  • format_list_bulleted 개발일지/안드로이드
  • · 2025. 8. 11.

[python] 알고리즘 및 자료구조 정리 -2- 필수 라이브러리 및 파이썬의 이점

입출력 최적화: sys.stdin.readline()으로 속도 향상input() 함수는 편리하지만 프롬프트 처리와 예외 처리로 인해 속도가 느림반면, sys.stdin.readline()은 표준 입력 버퍼에서 원시 바이트를 직접 읽어오므로 대량의 입력을 처리할 때 훨씬 빠름하지만 sys.stdin.readline()이 줄 끝의 개행 문자(\n)를 포함 하기 strip()이나 .rstrip()을 사용하여 이 문자를 제거해야함 lambda 활용lambda 함수는lambda x: x구문으로 정의되는 익명의 인라인 함수코딩 테스트에서 lambda의 주된 용도는 정렬 함수의 key 인자로 사용되며튜플 리스트를 두 번째 요소 기준으로 정렬하는 것과 같은 복잡한 정렬 기준을 한 줄로 간결하게 표현가능또한 map(),..

  • format_list_bulleted 공부일지/알고리즘
  • · 2025. 8. 8.

[python] 알고리즘 및 자료구조 정리 -1- 시간복잡도

시간 복잡도시간 및 공간 복잡도는 알고리즘을 실제로 실행하지 않고도 대규모 입력에 대한 성능을 예측하는 데 사용되는 공식적인 도구이다 점근적 표기법 해독Big-O (O): 상한선코딩 테스트에서 가장 중요한 표기법으로, 최악의 경우 성능을 설명하여 크기 n의 입력에 대해 알고리즘이 이 한계보다 느리게 수행되지 않음을 보장공식적인 정의는f(n) = O(g(n))$n이 무한대로 갈 때의 "성장률"에 초점을 맞추므로, 상수와 낮은 차수의 항은 무시Big-Omega (Ω): 하한선최상의 시나리오를 설명하며 성능의 하한을 제공합니다.Big-Theta (Θ): 엄밀한 경계최상과 최악의 복잡도가 동일할 때 사용되며, 정확한 평균 사례를 설명합니다. Big-O 계층 구조O(1) - 상수 시간복잡도의 정점으로, 입력 크기..

  • format_list_bulleted 공부일지/알고리즘
  • · 2025. 8. 8.
  • navigate_before
  • 1
  • 2
  • navigate_next
공지사항
전체 카테고리
  • 분류 전체보기 (19)
    • 개발일지 (8)
      • 안드로이드 (7)
      • 파이썬 (1)
    • 시사일지 (0)
    • 공부일지 (11)
      • Kotlin (6)
      • 정보처리기사 (1)
      • 알고리즘 (4)
인기 글
전체 방문자
오늘
어제
Copyright © JOEKR_SON 모든 권리 보유.
SKIN: Copyright © 쭈미로운 생활 All rights reserved. Designed by JJuum.
and Current skin "dev-roo" is modified by Jin.

티스토리툴바