전체 글 187

[Android] Room DB 사용법 및 예제 - Kotlin

오늘은 안드로이드의 Room을 이용해 LocalDB를 구성한 예제를 소개하려고 한다. Room에는 다음과 같은 3가지 개념이 존재한다. Database (데이터베이스) Entity ( 데이터베이스 내의 테이블 ) DAO ( 데이터베이스에 접근하는 함수. insert, update, delete 등등 ) 이 개념을 가지고 Room을 이용해 보자. 먼저, Room을 이용하기 위해선, build.gradle에 다음과 같이 추가하자. implementation 'androidx.room:room-runtime:2.2.6' kapt 'androidx.room:room-compiler:2.2.6' 그리고 Entity를 구성해보자. 다음과 같이 History라는 데이터클래스 파일을 만들고 class위에 Entity ..

Android 2023.02.02

[Android] View Binding(뷰바인딩) - Kotlin

오늘은 안드로이드의 View Binding(뷰바인딩)에 대해 알아보려고 한다. ViewBinding ViewBinding(뷰 바인딩)은 뷰와 상호작용하는 코드를 보다 쉽게 작성할 수 있는 기능이다. 뷰바인딩을 사용함으로써, 기존에 사용하던 findViewById를 대체할 수 있다. 뷰 바인딩을 이용하기 위해서는 build.gradle에 다음과 같이 명시하여야 한다. viewBinding { enabled = true } 그럼 이제 실제로 뷰 바인딩을 이용해보자. 먼저 예시에서는 메인 액티비티에서 사용을 하려고 한다. 기존에는 MainActivity와 activity_main_xml을 연결하기 위해 override fun onCreate(savedInstanceState: Bundle?) { super.o..

Android 2023.02.02

[Android] Retrofit 사용 예제 (Kotlin)

오늘은 간단한 예제를 통해, 안드로이드에서 Retrofit을 사용하는 방법에 대해 알아보려고 한다. 학습내용 Kotlin을 이용한 Retrofit 사용법 숙지 Retrofit을 이용해 인터파크 도서 api 데이터 가져오기 받아온 api 데이터를 바탕으로 안드로이드 뷰 그려보기 코틀린에서 Retrofit 사용 먼저 사용하기 전에, gradle에 코드를 추가하여 셋팅을 하자. implementation 'com.squareup.retrofit2:retrofit:2.9.0' implementation 'com.squareup.retrofit2:converter-gson:2.9.0' 그럼 본격적으로, Retrofit을 이용해 인터파크 도서 api의 데이터를 받아오자. 먼저, 이번 학습에서는 데이터를 받아오기만 ..

Android 2023.02.01

[Oracle] 오라클 parallel 힌트 (병렬처리)

오늘은 오라클 DML을 병렬처리 하는 기술인 Parallel 힌트에 대해 알아보려고 합니다. parallel 힌트란? 하나의 DML을 여러개의 쓰레드에 분산하여 병렬처리하는 기술이다. 하나의 코어로 처리하던 SQL을 여러개의 코어로 처리하기 때문에 시간은 훨씬 단축된다는 장점이 있어 대용량의 데이터 처리시 사용된다. 하지만, 그만큼 시스템 자원을 많이 쓰기 때문에 주의해서 사용해야 한다. 사용방법 1. 사용 전 해당 Session에 대해 Parallel DML을 Enable 시키는 명령어 수행 alter session enable parallel dml; 2. 다음과 같이 DML 수행 select /*+ parallel(A,4) */ from tmp A; 위의 쿼리처럼, /*+ parallel(테이블, ..

Oracle 2023.01.11

[Oracle] 오라클 테이블 사이즈 조회

오늘은 오라클 DB의 테이블 사이즈를 조회 하는 방법과 인덱스 사이즈 그리고 1Row 별 사이즈 까지 조회하는 방법에 대해 알아보겠습니다. 1. 테이블 사이즈 조회 아래 쿼리는 소유자 별로 소유한 테이블들의 사이즈를 조회하는 쿼리이다. SELECT owner, segment_name, segment_type, sum(bytes)/1024/1024 as MB FROM dba_segments WHERE segment_type='TABLE' AND owner = '소유자명' GROUP BY owner, segment_name, segment_type ORDER BY MB desc; ex) 쿼리 조회 결과 OWNER SEGMENT_NAME SEGMENT_TYPE MB HONGCODING MY_TABLE1 TAB..

Oracle 2023.01.09

[Dart] final과 const의 차이

final vs const final과 const의 공통점 변수를 한 번 선언하면 값을 변경할 수 없다. final과 const의 차이점 final 실행 중에 값이 결정된다. 즉, 코드를 컴파일 하는 시점이 아닌, 컴파일이 완료된 후 실제 프로그램을 실행하여 final 변수가 실행될 때 값이 결정된다. const 컴파일 시에 값이 결정된다. 즉, 코드를 컴파일 하는 시점에 값이 결정된다. 둘의 차이를 DateTime.now()라는 함수를 통해서 좀 더 쉽게 이해해보자. DateTime.now() 함수는 컴파일이 완료된 후 해당 코드가 실행될 때의 현재 시간을 불러오는 함수이다. 그래서 아래와 같은 코드를 실행했을 때, final Datetime nowDate = DateTime.now(); const D..

Flutter/초급 2022.10.21

[백준] 11660 구간 합 구하기 5 (Python 파이썬)

https://www.acmicpc.net/problem/11660 11660번: 구간 합 구하기 5 첫째 줄에 표의 크기 N과 합을 구해야 하는 횟수 M이 주어진다. (1 ≤ N ≤ 1024, 1 ≤ M ≤ 100,000) 둘째 줄부터 N개의 줄에는 표에 채워져 있는 수가 1행부터 차례대로 주어진다. 다음 M개의 줄에는 네 www.acmicpc.net 문제 설명 N×N개의 수가 N×N 크기의 표에 채워져 있다. (x1, y1)부터 (x2, y2)까지 합을 구하는 프로그램을 작성하시오. (x, y)는 x행 y열을 의미한다. 예를 들어, N = 4이고, 표가 아래와 같이 채워져 있는 경우를 살펴보자. 1 2 3 4 2 3 4 5 3 4 5 6 4 5 6 7 여기서 (2, 2)부터 (3, 4)까지 합을 구하..

Algorithm/DP 2022.08.12

[백준] 16139 인간 (Python 파이썬)

https://www.acmicpc.net/problem/16139 16139번: 인간-컴퓨터 상호작용 첫 줄에 문자열 $S$가 주어진다. 문자열의 길이는 $200,000$자 이하이며 알파벳 소문자로만 구성되었다. 두 번째 줄에는 질문의 수 $q$가 주어지며, 문제의 수는 $1\leq q\leq 200,000$을 만족한다. 세 번째 www.acmicpc.net 문제 설명 특정 문자열 S, 특정 알파벳 α와 문자열의 구간 [l,r]이 주어지면 S의 l번째 문자부터 r번째 문자 사이에 α가 몇 번 나타나는지 구하는 프로그램을 작성하자. 문자열의 문자는 0번째부터 세며, l번째와 r번째 문자를 포함해서 생각한다. 풀이 과정 이 문제는 누적 합 으로 풀어야 시간초과 없이 해결할 수 있다. 만약, 매번 l부터 r..

[백준] 2559 수열 (Python 파이썬)

https://www.acmicpc.net/problem/2559 2559번: 수열 첫째 줄에는 두 개의 정수 N과 K가 한 개의 공백을 사이에 두고 순서대로 주어진다. 첫 번째 정수 N은 온도를 측정한 전체 날짜의 수이다. N은 2 이상 100,000 이하이다. 두 번째 정수 K는 합을 구하기 www.acmicpc.net 문제 설명 그림과 함께 제공되는 문제이니 자세한 문제설명은 위 링크를 참조해주세요. 풀이 과정 이 문제는 누적 합 으로 푸는 문제이다. 누적합을 이용하지 않고 단순 합계를 이용한다면 시간초과 오류가 나게 된다. 한번 구간합을 구하는 시간복잡도는 O(n)이고 m번동안 수행을 하게 된다면 총 시간복잡도는 O(nm)이 되는데 데이터가 10만개가 되면 시간초과 오류가 나게 된다. 그래서 매번..

[백준] 11659 구간 합 구하기4 (Python 파이썬)

https://www.acmicpc.net/problem/11659 11659번: 구간 합 구하기 4 첫째 줄에 수의 개수 N과 합을 구해야 하는 횟수 M이 주어진다. 둘째 줄에는 N개의 수가 주어진다. 수는 1,000보다 작거나 같은 자연수이다. 셋째 줄부터 M개의 줄에는 합을 구해야 하는 구간 i와 j www.acmicpc.net 문제 설명 수 N개가 주어졌을 때, i번째 수부터 j번째 수까지 합을 구하는 프로그램을 작성하시오. 풀이 과정 이 문제는 누적 합 으로 푸는 문제이다. 누적합을 이용하지 않고 단순 합계를 이용한다면 시간초과 오류가 나게 된다. 한번 구간합을 구하는 시간복잡도는 O(n)이고 m번동안 수행을 하게 된다면 총 시간복잡도는 O(nm)이 되는데 데이터가 10만개가 되면 시간초과 오류..