전체 글 29

Android Studio) Context란?

애플리케이션 환경에 대한 글로벌 정보의 인터페이스 Application의 현재 상태를 갖고있다. Activity와 Application Class는 Context 클래스를 상속받은 클래스들이다. 종류 1. Application Context(애플리케이션 컨텍스트) 애플리케이션 자체 생명주기에 영향을 받는다 애플리케이션 실행되어 종료될 때까지 동일한 객체를 참조 Activity에서 getApplicationContext함수를 통해 접근 가능 2. Activity Context(액티비티 컨텍스트) 엑티비티 라이프사이클과 연결, Activity에서 사용가능 엑티비티 내 컨텍스트 전달 혹은 라이프사이클이 현재의 컨텍스트에 붙은 컨텍스트가 필요할 때 사용 Activity에서 사용되는 Dialog, Toast 등의..

Android Studio 2023.01.06

Android Studio) 안드로이드 구성

안드로이드 4대 컴포넌트 구성 각 컴포넌트는 고유의 기능을 수행 각 컴포넌트는 인텐트를 통해 서로 상호작용함 1. Activity(엑티비티) UI 화면 담당하는 컴포넌트 자바 소스에서 activity 클래스를 상속하고 기본으로 가지고 있는 생명주기 메소드를 재정의하여 기능을 구현한다. 적어도 하나의 액티비티를 갖고 있어야 한다. 하나 이상의 View or ViewGroup을 가지고 있어야 한다. 2. Service(서비스) 백그라운드에서 실행되는 프로세스(동작은 메인스레드에서 한다.) 음악 앱 같은 경우 Background에서 음악을 계속 재생시키기 때문에 서비스에 해당된다. 네트워크와 연동 가능하다. Activity와 Service는 UI 스레드라고 불리는 동일한 애플리케이션 스레드로 실행된다. 3. ..

Android Studio 2023.01.06

Android Studio) 기본 구성과 개념

Manifest - 앱에 대한 필수적인 정보를 시스템에 제공하는 목록, 반드시 선언되어야 하는 정보(밑) 1. package name 매니페스트 파일의 Root element()에는 앱 패키지 네임이 반드시 기재되어야 한다. App Resource 접근하는데 사용하는 R클래스 네임스페이스로 적용하기 위해 사용 상대 경로에 적용(ex. ) 2. App Components Activity, Service, Broadcast, Receiver, Content Provider을 사용한다면 매니페스트에 선언해야함 4대 컴포넌트들은 각 인텐트 의해 활성화된다.(인텐트: 명령이나 작업에 필요한 데이터를 포함한 메세지 객체) 3. 권한(Permission) 민감한 유저 정보, 카메라, 인터넷 등 특정 시스템 기능을 사..

Android Studio 2023.01.06

[Algorithm]쉘 정렬, 기수 정렬, 트리 정렬

1. 쉘 정렬: 원소 비교 연산과 먼 거리의 이동을 줄이기 위해 서브리스트로 나누어 삽입 정렬을 반복 수행 2. 방법: 정렬에서 사용할 간격(interval) 결정 -> 첫번째 interval에 따라 서브리스트로 분할 -> 각 서브리스트에 대해 삽입 정렬 수행 -> ... -> 리스트 전체에 대해 삽입 정렬 수행(마지막 interval = 1) - 시간 복잡도: O(n^1.25) ---------------- 그림 설명 ---------- 3. ShellSort Algorithm shellSort(a[]) interval 1) do{ interval

알고리즘 2022.11.25

[Algorithm] 퀵 정렬

1. 퀵 정렬: 분할 정복(divide and conquer) 정렬 방법 중 하나 - 방법: 배열 a[m:n]의 한 원소를 pivot으로 선정 -> pivot 기준으로 두개의 파티션으로 분할(왼쪽: 작은 값 원소들, 오른쪽: 큰 값의 원소들) - 시간 복잡도: O(nlogn) - QuickSort Algorithm quickSort(a[], m, n) // 배열 a의 부분 배열 a[m:n]을 오름차순 정렬 if(m>=n) then return; // 정렬 원소 수가 0이거나 1일때는 복귀 p = partition(a,m,n) // p는 파티션이 끝난 뒤 사용된 pivot 인덱스 quickSort(a[], m, p-1); quickSort(a[], p+1, n); ※ patition 알고리즘: 부분 배열 ..

알고리즘 2022.11.22

[Algorithm] 위상순서, 임계경로

※ 위상 순서 1. 부분 순서(partial order) i) 이행적(transitive), 비반사적(irreflexive)인 선행관계일때, 관계 R은 부분 순서라고 한다. ii) 집합S, 관계R에서 S의 원소 i, j, k : ①R은 S에서 이행적이라면 -> iRi&iRk이면 iRk가 성립 ②비반사적일때->모든 i가 iRi가 성립하지않음 iii) 이행적이면서 대칭적(symmertric)이라면 부분 순서 성립x: 이 관계는 반사적이고 반사적이면 부분 순서가 성립x iv) DAG(Directed Acyclic Graph): 비반사적 그래프는 싸이클이 없고 이를 DAG라 한다. 2. 위상 순서(topological order) i) 정의: 방향그래프에서 정점 i가 선행자이면 i > j 순서를 가진 순차리스트..

알고리즘 2022.11.02

[Algorithm] MCSP_최단거리

1. 최소 비용 신장 트리 a. 가중치 그래프 혹은 네트워크: 간선에 가중치가 부여된 그래프 b. 최소 비용 신장 트리(간선들의 가중치의 합): 합이 최소가 되는 트리 c. 갈망기법: 최적의 해를 단계별로 구현 # 신장트리 제한 조건: 무방향 그래프, n - 1(n=IVI)개의 간선만 사용 2. Kruskal 알고리즘 i) 방법: ˙비용이 가장 작은 간선 하나 선택 -> 최소비용신장트리(T)에 추가(n개의 정점 가진 그래프G의 간선 집합 E(G)로부터 n-1개의 간선 선정과정) ˙이미 T에 포함된 간선과 사이클은 제외 시킴 ii) 구현: ① 최소비용 간선을 선택 -> ② T에 추가로 포함될 정점들을 연결 요소별로 그룹을 만들어 유지 Kruskal(G, n) // G=(E,V)이고 n=|V|(|V|는 정점..

알고리즘 2022.10.26

[BigData] 데이터 가공과 시각화

1. 데이터 가공(data processing): 데이터를 보다 효과적으로 분석하기 위해 데이터를 필요한 모양으로 가공하는 작업 - base R을 이용해 샘플과 속성 추출 a. 행에는 행번호 지정이 일반적 ex. gapminder[1:15, ] b. 조건을 이용한 내용 추출: ex. gapminder[gapminder$country == "Cro", c("lifeExp","pop")] -> 추출할 속성이 여러개일 경우 c 함수를 통해 묶을 수 있음 c. 행/열 단위 연산: apply(x,MARGIN, FUN, optional arguments to FUN) 행 또는 열별 함수적용, Margin값 1 = 행, 2 =열 2. dplyr(디플라이어)를 이용한 데이터 가공 - 인덱스 기반 데이터 접근에 기초한다..

빅데이터 2022.10.19

[BigData]파일 읽고 쓰기와 데이터 정제

1. 파일 읽기: read.table 함수 -> 일반 텍스트 파일을 읽어 데이터 프레임 생성 read.csv 함수 -> CSV파일 읽어 데이터 프레임 생성 2. 파일 쓰기: write.table , write.csv 3. 데이터 정제 - 데이터 정제를 위해 특정 조건에 맞는 값을 찾아내거나 일부 구간 값을 추출하여 연산하는 등 목적에 맞게 작업 a. 조건문 형식 ㉮ []에 행/열 조건 명시(변수명[행 조건식, 열 조건식]) - 벡터일때, test = c(1,2,3,NA,5) -> test[test character[character$gender="F"] ㉯ if 문 사용(if, else if, else, ifelse) - x=5, if(x%%2==0) print("짝수") else print("홀수") ..

빅데이터 2022.10.19