기술공부 167

안드로이드 - 안드로이드 4대 구성 요소 - Activity 실행하기

1. 안드로이드 4대 구성요소 - 하나의 애플리케이션은 독립된 실행단위인 4대 구성 요소로 구성된다. 1. Activity - 눈에 보이는 화면(UI요소)을 관리하는 실행단위 - 여러개의 화면이 떠있는 App의 경우 여러개의 Activity가 있는 것이다. 2. Service - 백그라운드에서 실행되는 실행단위 3. BroadCastReceiver - OS가 전달하는 메세지(Ex. 배터리 닳음, 메세지 도착 등)를 전달 받아 실행되는 실행단위 4. ContentsProvider - 저장된 데이터를 제공하기위한 실행단위 2. AndroidManifest.xml - 안드로이드 4대 구성요소는 AndroidManifest.xml에 전부 기록되어야 한다. - AndroidManifest.xml은 개발자가 안드로..

안드로이드 - RunOnUiThread

1. RunOnUiThread란 - RunOnUiThread 메서드는 개발자가 발생시킨 일반 Thread에서 코드 일부를 Main Thread가 처리하도록 하는 메서드이다. - JAVA에서는 메서드로 제공되나 Kotlin에서는 람다식으로 제공되고 있으므로 작성하는 것이 간편하다. - 전의 내용에서는 네트워크나 5초 이상 걸리는 작업들은 Main Thread에서 작업이 안되기 때문에 일반 Thread에서 작업하다가 화면에 대한 처리가 필요하면 Handler나 AsyncTask를 이용하는 방법으로 화면 처리만 Main Thread에게 맡겼다. - 하지만, 둘 다 클래스를 상속받아야하므로 작업량이 많아졌는데, RunOnUiThread메서드를 사용하면 그 때 그 때 원할 때 마다 Main Thread에 작업을 ..

안드로이드 - AsyncTask

1. 개요 스레드를 사용하면서 UI 객체에 접근하려면 핸들러를 통하면 된다. 하지만 Message 객체를 사용할 경우 코드가 길어진다는 문제가 생긴다. AsyncTask는 하나의 클래스 안에 스레드로 동작하는 부분과 UI 객체에 접근하는 부분을 함께 넣을 수 있도록 합니다. 이 때문에 스레드를 사용하는 하나의 작업 단위가 AsyncTask라는 하나의 클래스로 만들어질 수 있다. 1. AsyncTask - AsyncTask는 비 동기 처리를 위해 제공되는 클래스 이다. - 개발자가 발생 시키는 쓰레드와 핸들러의 조합으로 쓰레드 운영 중 화면 처리가 가능했던 구조를 클래스로 제공하는 것이다. - AsyncTask를 사용하면 개발자가 발생시키는 일반쓰레드와 화면 처리를 위해 MainThread를 이용하는것을 ..

안드로이드 - Handler를 통한 화면 처리

1. 개요 1-1) 메인스레드 메인스레드는 애플리케이션 객체인 액티비티, 브로드캐스트 수신자 등과 새로 만들어지는 윈도우를 관리하기 위한 메세지 큐(Message Queue)를 실행한다. 1-2) 메세지 큐 순차적으로 코드를 수행하는 자료구조 1-3) 핸들러 메세지 큐를 이용해 메인 스레드에서 처리할 메세지를 전달하는 역할을 담당한다. 특정 메세지가 미래의 어떤 시점에 실행되도록 스케줄링을 할 수 있다. 2. Handler를 통한 처리 2-1) obtainMessage() -> Intent와 비슷한 개념 - 호출의 결과로 메세지 객체를 리턴. 2-2) sendMessage() - 메세지를 메세지 큐에 넣는다. 2-3) handleMessage() - 메소드에 정의된 기능이 수행됨 - 코드가 수행되는 위치..

안드로이드 - Handler를 이용한 반복 작업

1. Main Thread에서의 반복 - Main Thread에서 처리하는 코드(Activity내의 코드) 중에 일정 작업을 계속 반복 처리해야할 경우가 있다. - 이 때 무한 루프를 쓰면 화면처리가 불가능하다. - Handler를 통하면 원하는 코드를 Main Thread로 하여금 반복해서 작업하는것이 가능하다. -> Handler를 통해 작업하면 Android os가 한가해질 때 마다 작업을 요청할 수 있다. 2. Handler - Handler는 개발자가 안드로이드 OS에게 작업 수행을 요청하는 역할을 한다. - 개발자가 작업을 요청하면 안드로이드 OS는 작업을 하지 않을 때 개발자가 요청한 작업을 처리하게 된다. - 이 처리는 Main Thread에서 처리한다. - 5초 이상 걸리는 작업은 불가하..

SQLD - 함수(FUNCTION)

1. 내장 함수(BUILT-IN FUNCTION) 개요 - 함수는 다양한 기준으로 분류할 수 있는데, 벤더에서 제공하는 함수인 내장 함수(Built-in Function)와 사용자가 정의할 수 있는 함수(User Defined Function)로 나눌 수 있다. - 내장 함수는 다시 함수의 입력 값이 단일행 값이 입력되는 단일행 함수(Single-Row Function)와 여러 행의 값이 입력되는 다중행 함수(MultiRow Function)로 나눌 수 있다. - 다중행 함수는 다시 집계 함수(Aggregate Function), 그룹 함수(Group Function), 윈도우 함수(Window Function)로 나눌 수 있다. - 함수는 입력되는 값이 아무리 많아도 출력은 하나만 된다는 M:1 관계 ..

Deperecated/SQLD 2020.02.17

SQLD - WHERE절

1. WHERE 조건절 개요 - 사용자들은 자신이 원하는 자료만을 검색하기 위해서 SQL 문장에 WHERE 절을 이용하여 자료들에 대하여 제한할 수 있다. - WHERE 절에는 두 개 이상의 테이블에 대한 조인 조건을 기술하거나 결과를 제한하기 위한 조건을 기술할 수도 있다. - 현실의 데이터베이스는 많은 사용자나 프로그램들이 동시에 접속하여 다량의 트랜잭션을 발생하고 있다. - WHERE 조건절을 사용하지 않고 필요 없는 많은 자료들을 데이터베이스로부터 요청하는 SQL 문장은 대량의 데이터를 검색하기 위해 데이터베이스가 설치되어 있는 서버의 CPU 나 MEMORY 와 같은 시스템 자원(Resources)들을 과다하게 사용한다. - 많은 사용자들의 QUERY 에 대해 바로바로 처리를 해주지 못하게 되고,..

Deperecated/SQLD 2020.02.16

SQLD - TCL

1. 트랜잭션 개요 - 트랜잭션은 데이터베이스의 논리적 연산단위이다. - 트랜잭션(TRANSACTION)이란 밀접히 관련되어 분리될 수 없는 한 개 이상의 데이터베이스 조작을 가리킨다. - 하나의 트랜잭션에는 하나 이상의 SQL 문장이 포함된다. - 트랜잭션은 분할할 수 없는 최소의 단위이다. 그렇기 때문에 전부 적용하거나 전부 취소한다. 즉, TRANSACTION 은 ALL OR NOTHING 의 개념인 것이다. 은행에서의 계좌이체 상황을 연상하면 트랜잭션을 이해하는데 도움이 된다. 계좌이체는 최소한 두 가지 이상의 작업으로 이루어져 있다. 계좌이체 사례 - STEP1. 100 번 계좌의 잔액에서 10,000 원을 뺀다. - STEP2. 200 번 계좌의 잔액 에 10,000 원을 더한다. 계좌이체라는..

Deperecated/SQLD 2020.02.16

SQLD - DML

앞 절에서 테이블을 생성하고 생성된 테이블의 구조를 변경하는 명령어에 대해서 알아보았다. (DDL) 지금 부터는 만들어진 테이블에 관리하기를 원하는 자료들을 입력, 수정, 삭제, 조회하는 DML(DATA MANIPULATION LANGUAGE) 사용 방법을 알아본다. mysql> DESC PLAYER -> ; +---------------+--------------+------+-----+---------+-------+ | Field | Type | Null | Key | Default | Extra | +---------------+--------------+------+-----+---------+-------+ | PLAYER_ID | char(7) | NO | PRI | NULL | | | PL..

Deperecated/SQLD 2020.02.14

SQLD - DDL

1. 데이터 유형 CHARACTER(s), - 고정 길이 문자열 -> 공백을 문자 취급하지 않는다. VARCHAR(s) - 가변 길이 문자열 -> 공백을 문자 하나로 취급한다. NUMERIC - 정수, 실수 등 숫자 정보 DATETIME - 날짜와 시각 정보 2. CREATE TABLE mysql> CREATE TABLE STADIUM ( -> STADIUM_ID CHAR(3) NOT NULL, -> CONSTRAINT STADIUM_PK PRIMARY KEY (STADIUM_ID) -> ); mysql> DESC STADIUM -> ; +------------+---------+------+-----+---------+-------+ | Field | Type | Null | Key | Default ..

Deperecated/SQLD 2020.02.14