목록전체 글 (212)
개발자 끄적끄적
- 시스템이나 다른 앱이 방송하는 메시지를 받는 리시버 - 시스템 이벤트시 방송 - 시스템 부트 완료, 충전 시작, 네트워크 연결 변경, 문자 수신 등의 이벤트 - 문자 수신과 같은 민감한 정보는 권한을 필요로 한다 - 사용 방법 - 1. BroadcastReceiver 상속한 클래스, onReceive() 재정의 - 2. registerReceiver()로 1번의 클래스 객체 등록 - 이 때 수신할 방송 종류를 IntentFilter로 정의하여 포함 - 3. 더 이상 수신할 필요가 없을 때 unregisterReceiver() 호출 - 안드로이드에서 보통은 다른 앱에 데이터를 제공해주기 위해 - 표준화된 인터페이스, 적절한 데이터 은닉과 보호 기능을 제공 - ContentProvider에 접근하기 위한..
- 인공신경망(artificial neural networks)으로도 불리는 신경망(neural networks)모형은 분류와 예측을 위해 사용되는 모형이다 - 신경망은 노의 뉴련들이 상호작용하고 경험을 통해 배우는 생물학적 활동을 모형화 한 것이다 - 신경망은 인간 전문가가 배우는 방식을 흉내 낸다 신경망의 학습 및 기억 특성들은 인간의 학습과 기억의 특성을 닮앗고 특정사건으로부터 일반화하는 능력도 또한 갖고 잇다 - 일반적으로 신경망의 가장 큰 장점은 높은 예측 성과에 있다 신경망의 구조는 다른 분류모형에서는 불가능한 입력변수와 출력변수 사이의 매우 복잡한 관계를 파악한다 - 입력정보를 복잡하고 변경이 용이한(flexible)신경망 "모델"과 결합 - 신경망 모델의 "계수"는 반복 과정(iterati..
- 무손실 및 손실 압축 - 손실 압축 : VQ(Vector Quantization), JPEG - 무손실 압축 : Huffman, DPCM(Differential Pulse Coded Modulation), RLE(Run Length Encoding) - 영상에서 그레이 값들을 표현하는데 고정길이코드(8비트)를 사용하지 않고 가변길이코드를 사용하는데, 영상 내에서 그레이 값들이 확률적으로 자주 나오는 값일수록 보다 짧은 코드를 사용하는 것이다 - 즉, 발생빈도가 많이 나오는 코드는 짧게 표현하고 발생빈도가 적게 나오는 코드는 길게 표현 -> 가변길이(Variable Length Coding) Gray value Probability Fixed code Variable code 0 0.2 00 000 1..
- 코틀린에서 병행(비동기) 수행을 프로그래밍하는 방법 - 병행 수행은 언제 ? - 네트워크나 I/O 등 비동기 처리가 필요한 경우 - 스레드를 직접 다루기보다는 코루틴을 사용하는 것이 편리하고 효율적 - 특징 - 가볍다 - 취소 가능 - 다양한 Jetpack에서 코루틴을 이용한 API 제공 - build.gradle - implementation 'org.jetbrains.kotlinx:kotlinx-coroutines-android:1.6.1' - Coroutine 1은 Coroutine2의 작업을 시작하고 Non-Blocking 상태로 계속 실행 - Coroutine 2는 Coroutine 1에 대해 비동기(Asynchronous)로 수행 - Coroutine 1과 Coroutine 2는 병행(co..
- 일반 응용 프로그램의 구성 - 명령어들의 집합(함수나 클래스 단위로 구성) - 데이터베이스 응용 프로그램의 구성 - 업무처리에 관련된 세부 프로그램 단위 - 세부 프로그램들은 데이터베이스에 대한 연산(검색/삽입/삭제/수정)으로 구성 - 예를 들어 은행에서 계좌이체, 대출, 예금, 출금 등의 업무 - 트랜잭션 - 논리적인 작업 단위를 구성하는 연산들의 집합 - 실행 중 멈추거나 중단되지 않는 최소 작업 단위 - 데이터베이스 응용 프로그램은 트랜잭션의 집합 - 대부분의 DBMS들은 이러한 상황을 방지하기 위한 기능을 갖춘다 - 데이터베이스 개발자는 작업 단위들을 트랜잭션으로 적절히 정의해야 한다 - 즉, 트랜잭션을 정의하는 것은 전적으로 개발자의 의무 - ACID 특성(ACID property) - 원자..
- 영상에 구멍(hole) 등 특정 물체의 수 또는 존재 여부에 관심을 가지는 경우, 한 영상의 이들 기본적 성절의 조사를 '디지털위상기하학' 또는 '영상위상기하학(image topology)라고 한다 >>nt=~im2bw(n,0.5); //black과 white를 서로 뒤집는다 >>n2=imopen(nt,strel('disk',5)); *strel('disk',5) //structural element(matlab 함수) - 화소 P가 4개의 이웃이 있는 경우 : 4-인접 - 화소 P가 8개의 이웃이 있는 경우 : 8-인접 -오브젝트 사이의 연결 - ex) - Distance=6(4연결) - Distatnce=4(8연결) - object 갯수를 count, default=8연결 - 목적(foregrou..
- 새로운 레코드를 '분류'하거나 '예측'할 때 사용 - 분류되어야 할 주어진 레코드에서 근접(유사) 레코드를 찾는다(k개를 선정) - "근접(nearby)"은 비슷한 예측변수 값을 가진 레코드를 뜻한다 - 근접한 레코드들("neighbor")이 주로 속한 클래스(우세한 클래스)로 해당 레코드의 클래스를 결정한다 - 특징 - 데이터에 근거한 추론 - 데이터에 대한 어떠한 가정도 없다 - 소속 클래스와 예측변수들간의 관계에 대한 가정이 없다(비모수적 : nonparametric) - 레코드들간의 유사성은 예측변수들로부터 얻는다 - 가장 많이 쓰이는 근접 측정방법은 '유클리드 거리'이다 - 예측변수의 척도를 균등하게 하기 위해 '표준화' - 새로운 레코드를 표준화 할 때는 '학습데이터의 평균과 표준편차'사용..
- 앱 전용 파일 - 내부 저장소 또는 외부 저장소 사숑 - 다른 앱에서 접근 불가, 앱 삭제 시 함께 삭제 - Preference - 키 : 값 형식으로 저장, 사용 - 내부 저장소 사용, 다른 앱 접근 불가, 앱 삭제 시 함께 삭제 - 공유 파일 - 미디어나 문서 파일 - 외부 저장소 사용, 다른 앱과 공유 가능 - 공유 데이터 블롭(Shared Data Blobs) - 안드로이드 11부터(API 30) - 기계학습이나 미디어 재생 등에 사용할 매우 큰 공유 가능한 파일 생성/사용 - 데이터베이스 - Room 라이브러리를 이용하여 구조화된 형태로 데이터 저장 - 예전엔 SQLite로 사용, 지금은 Room 권장 - 내부 저장소(Internal Storage) - 파일 소유한 앱에서만 액세스, 다른 앱..
- 실행 예 S(S#, SNAME, STATUS, CITY) //제품 PRIMARY KEY(S#) P(P#, PNAME, COLOR, WEIGHT, CITY) //공급자 PRIMARY KEY(P#) SP(S#, P#, QTY) PRIMARY KEY(S#, P#) FOREIGN KEY(S#)REFERENCES S FOREIGN KEY(P#)REFERENCES P SCP 테이블 S# CITY P# QTY S1 LONDON P1 100 S1 LONDON P2 100 - R을 릴레이션이라고하고 X와 Y를 R의 속성 집합의 임의의 부분 집합이라고 하자 그러면 'X가 Y에 함수적으로 종속' 되기 위한 필요 충분 조건은 R에 있는 각각의 X 값이 R에 있는 정확히 하나의 Y값과 관련을 갖는 것이다 - 이를 기호로 표..
- 초기에 항목을 나열하는 컨테이너로 ListView가 있었다 - 효율적인 Recycler View가 등장하고 ListView는 사용 지양 - 구성요소 - RecyclerView.Adapter - ViewHolder를 생성 - ViewHolder와 데이터 연결 - RecyclerView.ViewHolder - 뷰를 담아두는 상자 - LayoutManager - 항목 뷰들의 배치를 결정, 리스트, 그리드 등 - RecyclerView - Adapter로부터 ViewHolder를 가져와서 LayoutManager에 의해 뷰를 배치 - RecyclerView.Adapter를 상속하여 CustomAdapter를 생성 - 일반적으로, 사용할 ViewHOlder를 같이 정의 class CustomAdapter(pr..