android
-
[Kotlin - Basic Types] StringsSoftware/Kotlin : 코틀린 2019. 12. 20. 01:49
Strings String은 변경불가성(Immutable)으로 String의 요소는 indexing operation : s[i]로 접근 가능한 characters 이다. String은 for-loop를 통해 반복될 수 있다. for (c in str) { println(c) }+ 연산자를 통해 strings에 값을 더 붙일 수 있는데 만약 표현식에서 뒤에 붙는 값이 String이 아닌 다른 자료형일지라도 만약 앞에 값이 String인 경우 해당 연산의 값은 String이 된다. val s = "abc" + 1 println(s + "def")String literals 코틀린은 두 가지 타입의 String literals를 가지고 있다. : Escaped string은 newlines와 arbitary..
-
[Kotlin - Basic Types] Character, Booleans, ArraysSoftware/Kotlin : 코틀린 2019. 12. 17. 00:23
Characters Characters는 Char 자료형으로 표현된다. Characters는 숫자로 직접 취급될 수 없다. fun check(c: Char) { if (c == 1) { // ERROR: incompatible types // ... } }여기서 Characters는 문자 그대로 '1'을 의미한다. 만약 특수 문자의 경우 ''을 사용해서 나타낼 수 있다. (\t, \b, \n, \r, ', ", \ and $) 다른 문자 인코딩을 위해서는 Unicode의 escape 시퀀스 구문을 사용해야 한다: 'uFF00' Booleans Booleans는 "true" 와 "false" 두 가지 값만 가지며 booleans로 표시한다. 아래와 같은 내..
-
[Java 8] Android Studio 3.x와 Java 8Software/Android : 안드로이드 2019. 3. 12. 01:01
Android Studio 3.0 버전이 2017년 10월에 정식 배포된 지 벌써 1년이 훌쩍 지났다.당시 Android Studio 3.0에 새롭게 탑재된 신규 기능들 (Android Profiler 나 APK Profiling and debugging)과 Kotlin을 정식 지원 등 많은 변화가 있었지만 그 중 많은 안드로이드 개발자들의 관심을 받은 것은 Java 8 기능과 라이브러리들에 대한 지원이었다. 구글이 Kotlin을 안드로이그 공식 개발 언어로 지정한 것이 꽤나 신선한 충격이었지만 기존의 Java를 사용해 오던 안드로이드 개발자들에게 있어서는 Kotlin보다 Java 8에 대한 지원이 더욱 반가운 소식이었을 것이다. 그래서 이번 포스팅에서는 Android Studio 3.0이상 버전부터 지..
-
[ImageView] ScaleType: Matrix (예제)Software/Android : 안드로이드 2018. 8. 20. 23:41
예제: 이제 실제 코드를 통해서 Matrix의 Scalling, Rotation, Translation 등을 살펴보도록 하자. 예제에 앞서 일반적으로 Scaling -> Rotation -> Translation 순으로 연산 한다는 것을 기억하자. 연산의 순서가 달라지면 실제 연산 결과 값이 달라 질수 있기에 연산 순서에 꼭 신경 쓰도록 하자. 목표 300 * 200 이미지를 3배로 Scaling하고 90도로 회전 시킨 후 Center crop하여 500 * 500 ImageView에 보이도록 한다. scaleType 설정 Layout xml에서 ImageView에서 scaleType을 matrix로 설정. 이 경우 ImageView의 사이즈 보다 Image의 사이즈가 작기 때문에 ImageView의 하..
-
[ImageView] ScaleType: Matrix (행렬)Software/Android : 안드로이드 2018. 8. 14. 01:25
Android에서 ImageView는 해당 View의 이미지가 어떤 형태로 어떻게 배치될 것인 지를 ScaleType을 통해 설정할 수 있다. ScaleType은 아래와 같이 총 8가지가 있고 xml의 "scaleType" attribute로 설정하거나 Code level에서 ImageView의 setScaleType(ImageView.ScaleType scaleType)을 통해 설정 가능 하다. ImageView.ScaleType Values CENTER Center the image in the view, but perform no scaling. CENTER_CROP Scale the image uniformly (maintain the image's aspect ratio) so that both..
-
[SQLite] 동적 자료형 (Dynamic Datatype)Software/SQLite 2018. 5. 20. 20:42
보통 대부분의 테이블 컬럼은 특정 자료형만 저장할 수 있는 정적 자료형(Static datatype)을 사용한다. 즉 Integer 타입으로 선언된 컬럼은 Integer 값만 저장할 수 있고 Float 타입의 값은 저장할 수 없다는 것이다. 그러나 SQLite3에서는 일반적인 다른 DBMS와는 달리 동적 자료형(Dynamic datatype)을 지원하고 있다. SQLite3에서는 테이블을 생성할 때 이전에 했던 것 같이 컬럼의 자료형을 명시하지 않아도 된다. sqlite> CREATE TABLE tblDynamic (id, value); sqlite> INSERT INTO tblDynamic VALUES (1, 'Test'); sqlite> INSERT INTO tblDynamic VALUES ('ind..
-
[SQLite] 락 매커니즘 & 트랜잭션Software/SQLite 2018. 5. 12. 23:11
SQLite3는 기본적으로 다수의 프로세스가 하나의 데이터베이스 파일을 읽고 쓸수 있다. 그런데 만약 다수의 프로세스가 동시에 동일 데이터 베이스 파일에 접속해서 읽거나 쓰게 되면 데이터베이스 무결성이 깨지게 되는 문제가 발생하게 된다. 이러한 문제가 발생하는 것을 막기 위해 데이터베이스를 읽거나 쓰기 위해서는 해당 프로세스가 적절한 잠금(LOCK)권한을 획득하도록 하고 있다. 아래는 프로세스 관점에서 바라 본 데이터베이스 파일의 잠금 상태(Locking states)들이다. 잠금 상태내용 UNLOCKED프로세스가 파일을 열기(Open)만 한 상태이며 읽기/쓰기는 하지 않은 상태 : 다른 프로세스에서 읽기/쓰기 가능 SHARED프로세스에서 파일을 읽고 있는 상태 : 다른 프로세스에서 동시 읽기 가능. 그..
-
[SQLite] 트랜잭션 (TRANSACTION)Software/SQLite 2018. 5. 9. 23:45
데이터베이스에서 트랜잭션 (Transaction)은 SQL 작업의 무결성 (Integrity)을 유지하기 위한 매우 중요한 개념이다. 즉 우리가 현실 세계에서 이루어지는 "거래" 시스템과 마찬가지로 특정 작업이 모두 수행되거나 모두 수행되지 않게 함으로써 그 무결성을 유지하는 것이다. (돈은 냈지만 물건을 받지 않았다면 거래는 성립되지 않는다. 그 반대도 마찬가지이며 거래 당사자들의 이해 조건이 모두 충족된 경우에만 거래가 성립한다.) 트랜잭션 구문 트랜잭션 구문의 시작은 BEGIN 키워드로 시작한다. BEGIN 이후 실행하고자 하는 SQL 구문들을 추가하면 되며 마지막으로 COMMIT 명령어를 통해 트랜잭션이 시작된 이후 수행된 모든 SQL 연상이 데이터베이스 파일(물리적)에 추가된다. 즉 BEGIN ..