만들게 된 계기flutter를 그냥 이용하게 된다면 몇가지 아쉬운 점이있다.custom-hook등 처럼 상태관리 로직의 재활용이 쉽지않다.어떤 것이 구독(상태관리에의해 추적되는) 데이터인지 코드상에서 바로 확인이 불가능하다.그 중 1번은 react를 이용했을 때 가장 잘 활용하는 것이 었고 api로딩처리 같은 반복되는 상태관리 로직처리하기가 매우 쉬웠다.react의 hook처럼 flutter에 누군가 구현해 놓은 라이브러리가 있다. 바로 flutter-hook이다.하지만 이미 앱이 거의 다 완성된 상태였고, 다른 로직을 최대한 건들이지 않고 가장 많이 반복되는 코드인데이터를 fetching할때 로딩 , 에러등의 상태처리를 하는 부분만 분리하고 싶었다. 따라서 직접 api-hook을 만들게 되었다.이렇게하..
open ai에는 다양한 버전이 있다. 그중 일반적으로 쓰는 chat completion을 이용하여 pdf를 보내는 것을 시도해보려고한다.assistant api를 이용하거나 embedding을 이용하여 파일을 백터화한 후 vector store을 이용하는 방법도 있으나, 비싸고 일회성의 요청에는 너무 과하다.처음에는 pdf자체를 base64로 인코딩 하려고 했으나...실패버전 : pdf > base64 변환후openai 는 아래와 같은 타입을 지원한다.Supported values are: 'text', 'image_url', 'input_audio', 'refusal', 'audio', and 'file'.넣을 수 있을것이라고 예상되는것은 text, file 이 2가지다.혹시 몰라 image_url로..
일단 apple폰 (ios)와 센서간의 통신을 이용하려면 MFI에 등록해야한다.표준 USB 장치의 경우는 안해도 된다고 한다.하드웨어간의 통신은 ios, android 분기처리해서 개발해야함ios : https://mfi.apple.com/센서와의 직접 통신(유선)CDC(Communication Device Class)를 사용하는 것을 말함USB Host Mode를 이용하여 앱이 usb를 제어하고 통신할 수 있다.https://accessories.android.com/demokit/?hl=ko디바이스에 센서가 직접 쓰고 저장하고 센서의 상태를 확인하려면 이 통신을 이용해야할 것으로 보인다.각 기기의 이용 내부 프레임 워크android : UsbManagerios : External Accessory시리..
인공지능(AI)머신러닝 ⊂ AI학습방식 따른 분류지도학습입력데이터(레이블)와 정답이 주어짐분류회귀비지도학습레이블이 없는 데이터로 학습, 패턴이나 구조를 찾아냄군집화차원축소강화학습에이전트와 환경과 상호작용하면서 보상을 최대화 하기위해 행동강화학습은 기술적 기법알고리즘을 포함하므로 학습에따른 , 기법에따른 분류 두가지 모두 성립가능하다.기법 (기술적 접근)한가지기법만쓰지 않고 기법이 속해있을수잇다.딥러닝역전파는 신경망의 각 노드가 가지고 있는 가중치(Weight)와 편향(Bias)을 학습시키기 위한 알고리즘 (피드백)다층 퍼셉트론은 단층 퍼샙트론보다 정확도가 높다. 그러나 사라지는 경사 문제(오류전달못함) , 과적합 문제다층 신경망기법이용딥러닝 ⊂ 신경망 : https://namu.wiki/w/인공신경망#s..
기본 구성 방법이전에 말했듯 액티비티로 화면를 만든다.모든 앱에 화면이 있는건아니고 백그라운드에서만 실행하는 앱을 개발할 수도 있다.화면와 액티비티가 꼭 1대1 대응되어야하는건아니다.프래그먼트와 컴포즈를 이용하면 화면이 여러개여도 하나의 액티비티로 만들 수 있다.화면을 구성하기위해서는 2가지 방법으로 구분할 수 있다.엑티비티 내부에서 코틀린으로 구현하는 방법코드import android.graphics.Typeface // 글꼴 커스터마이징하는데 사용import androidx.appcompat.app.AppCompatActivity //activity종류중하나//액티비티간 데이터 전송에쓰임. 생명주기관련된 상태정보 저장 복원import android.os.Bundle import android.view..
이 시리즈의 글은 "Do it! 깡샘의 안드로이드 앱 프로그래밍 with 코틀린"을 읽으며 정리,각색 및 궁금한 것들을 추가하여 정리한 글입니다. 안드로이드리눅스 기반운영체제 > 리눅스 커널 사용HAL(하드웨어 추상화 레이어)자바 api프레임워크에서 하드웨어 기능을 이용할 수 있게 표준 인터페이스 제공ART(안드로이드 런타임)앱을 실행하는 역할DEX 파일을 해석하고 실행함안드로이드 앱은 dex파일로 빌드됨컴파일시클래스 파일이 만들어짐DEX파일로 컴파일ART에서 실행일반 자바코드와 안드로이드에서 자바코드 컴파일 차이컴포넌트컴포넌트가 핵심앱의 구성요소 이자 구성하는 단위.클래스로 컴포넌트를 개발함모든 클래스가 컴포넌트는 아니고 컴포넌트 클래스가 있음컴포넌트클래스의 경우 클래스와 컴포넌트가 1대1대응컴포넌트 ..
읽기 전에이 시리즈의 글은 "Do it! 깡샘의 안드로이드 앱 프로그래밍 with 코틀린"을 읽으며 정리 및 궁금한 것들을 추가하여 정리한 글입니다. 어쩌다가 안드로이드 native앱을 만들어야할 일이 생겨서 1-2주만에 책을 부셔보도록 하겠습니다.^*^프로젝트 생성기존 프로젝트에 모듈을 추가하는 방식으로도 앱을 생성가능안스에서 모듈 == 앱packagename : 앱의 식별값보통 도메인 역순 + 끝에 프로젝트명build configuration languagebuild.gradle 파일을 선택하는 부분Groovy DSL과 Kotlin DSL이 있다groovy : build.gradlekotlin : build.gradle.ktsDSL가 뭔지 & 문법차이https://blog.imqa.io/kotlin-..
dvtcoredeviceenabledstate_disabled dvtcoredeviceenabledstate_disabled set via user default (dvtenablecoredevice=disabled) xcodebuild: error: unable to find a destination matching the provided destination specifier 검색해보니 최근 fluuter버전서 종종 나타나는 애러라고한다. debug모드로 바꿔서 빌드하면된다. xcode로 빌드할땐 release로 해도 되는 것 같다. No profiles for 'bundle identity' were fode https://developer.apple.com/account/resources/ide..
항목 Elements : html/CSS 상태 확인 Console : 콘솔 (변수 정보를 확인하고 오류 메시지 표시) Sources : 스크립트 디버깅 (break point 지정 및 변수 모니터링 등) Network : 브라우저에서 발생하는 통신 상태 Performance(예전 Timeline패널) : 성능 측정 Memory(예전 Profiles 패널) : 메모리 사용 형태를 작성하고 누수 탐색. Application(예전 Resources 패널) : 쿠키 및 스토리지 등의 내용 수집 Audits : 페이지를 분석하고 최적화를 위한 팁 나열 Security : Mixed content 이슈, 인증서 문제 등을 디버깅 element 요소들을 드래그엔드랍으로 위치를 바꿀 수 있다. · event liste..
입력창에 추천 검색어를 띄워보자+최적화 > 목적 닉네임 검색시 추천되는 닉네임이 뜬다. 네이버처럼 추천 닉네임이 하단에 보인다. 해당 닉네임 hover시 해당 부분이 조금 밝아진다. 위아래 버튼 누를 시 해당 부분이 조금 밝아진다. 0. 기 mj-hope.tistory.com 추천 검색어를 띄워보는 것은 이전 포스트에서 볼 수 있다. 목적 검색엔진들 처럼 글자를 입력하면 추천검색어가 뜨고 다른곳을 클릭할 시 추천검색어가 닫히는 것을 목표로 했다. 고려한 방법 1. 전역에 클릭 이벤트를 감지 클릭 이벤트를 감지하여 해당 클릭이 입력창과 추천검색어 리스트 박스에 해당되면 그대로 유지 그렇지않으면 추천 검색어를 닫는다. -> 이방법은 모든 클릭 이벤트를 감지하기 때문에 효율적이지 않다고 생각했다. 그리고 나의..