본문 바로가기

전체 글75

[Android] Room Database 기초 Room Database Room은 SQLite에 대한 추상화 레이어를 제공하여 원활한 데이터베이스 액세스를 지원하는 동시에 SQLite를 완벽히 활용하는 라이브러리이다. ( 일명 ORM ) Room 라이브러리는 데이터를 로컬로 유지하여 데이터 캐싱이 가능하다. 이는 모바일 기기가 네트워크에 접속할 수 없게 되었을 때 오프라인 상태에서도 사용자가 여전히 콘텐츠를 탐색할수 있으며, 나중에 다시 온라인 상태가 되면 사용자가 오프라인 상태에서의 콘텐츠 변경사항이 서버에 동기화 시킬수 있다. (모바일 DB의 사용 이유중 하나) Room Library를 사용하기 위해선 gradle에 다음 종속을 추가해준다. def room_version = "2.2.5" implementation "androidx.room:ro.. 2020. 8. 5.
[Java] JVM 메모리 구조 (JVM Memory Structure) JVM 이란 Java Virtual Machine, 자바 가상 머신의 약자를 떠서 줄여 부르는 용어이다. JVM 의 역할은 자바 애플리케이션을 클래스 로더를 통해 읽어 들여 자바 API와 함께 실행한다. 또한 JVM은 Java 와 OS사이에서 중개자 역할을 수행하여 Java 가 OS에 구애받지 않고 재사용을 가능하게 해준다. JVM 메모리 구조는 크게 4개로 나뉘어 져잇다. 1. Method Area (Class Area) 해당영역은 JVM이 시작될 때 생성(Class Loader)되며, JVM에 의해 loading 된 클래스들이 저장된다. 클래스에서 구현한 메소드들과 상수들 (Constant Pool)을 저장한다. 또한 static 변수 또한 해당 메모리에 저장된다. 해당 변수들은 프로그램 종료까지 메.. 2020. 8. 4.
[Java] == 연산자와 equals() 매서드의 차이 두 값 비교하기 Java 언어에서 두 변수의 값을 비교할 때 '==' 연산자를 이용한다. == 연산자는 Primitive value의 경우 두 변수의 값을 비교하게 된다. Java 에서 Primitive value는 다음과 같이 8가지 종류가 존재한다. byte 8bits -2^7 ~ 2^7-1 (-128 ~ 127) short 16bits -2^15 ~ 2^15-1 (-32768 ~ 32767) int 32bits -2^31 ~ 2^31-1 (-2147483648 ~ 2147483647) long 64bits -2^63 ~ 2^63-1 (-9223372036854775808 ~ 9223372036854775807) float 32bits 0x0.000002P-126f ~ 0x1.fffffeP+127f .. 2020. 8. 4.
[Java] Call by value & Call by reference 프로그래밍에서 함수의 호출 방식으로 Call by value 와 Call by reference 방식이 있다. 이는 함수에 매개변수를 넘겨줄 때 '값(value)'을 넘겨주느냐 '주소(reference)'를 넘겨주느냐는 차이에서 생겨난 용어이다. Call by value 먼저 c 언어로 되어있는 예시를 보자. #include void swap(int a, int b){ int temp; temp = a; a = b; b = temp; } int main(){ int a, b; a = 10; b = 20; printf("swap 전 : %d %d\n", a, b); swap(a, b); printf("swap 후 : %d %d\n", a, b); return 0; } 스스로 이해해본 결과 이는 main 에.. 2020. 7. 29.
[Kotlin] 기초이론-1 문법 Kotlin 맨땅에 해딩하기. Day 01 참고 문헌 -Kotlin_docs Basic Syntax - Kotlin Programming Language kotlinlang.org 기본적으로 kotlin은 세미콜론 (;)을 작성하지 않는다. Kotlin에서의 메인문(Program entry point) fun 을 이용하여 함수를 구현 콘솔 디버깅을 위해 사용하는 함수 fun main(){ // java에서의 main thread 와 같은 문맥 // Debug 시 해당 블록을 실행한다. } Hello world! fun main(){ println("Hello, World!") } ![image-20200728215730260](/Users/choehyegeun/Library/Application Supp.. 2020. 7. 29.