Programing Language

Programing Language/Java

[Java] NullPointerException

NullPointerException NullPointerException은 참조 타입(reference type) 변수를 잘못 사용했을 때 발생한다. 기본 타입(primitive type) 변수는 애초에 null로 초기화가 불가능하므로 기본 타입 변수와 관련해서는 NullPointerException이 일어나지 않는다. 참조 타입 변수가 null 값을 가지는 건 힙 영역의 객체를 참조하지 않는다는 뜻이다. 따라서 참조 타입 변수에 저장된 주소 값이 없는 것일 뿐, 참조 타입 변수는 스택 영역에 생성되긴 한다. 참조 타입 변수를 사용한다는 건 객체를 사용한다는 것을 의미하는데, null 값을 참조 타입 변수에 저장한다는 의미는 참조할 객체가 없다는 의미이다. 따라서 null 값을 가진 참조 타입 변수는 ..

Programing Language/JavaScript

Object.defineProperty

Object.defineProperty https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/defineProperty Object.defineProperty() - JavaScript | MDN The static method Object.defineProperty() defines a new property directly on an object, or modifies an existing property on an object, and returns the object. developer.mozilla.org 객체의 동작을 재정의하는 메서드이다. Object.defineProperty(대상 객체,..

Programing Language/Kotlin

[Kotlin] addOnSuccessListener는 비동기 방식이다. (With. Firebase RTDB)

비동기 방식 동기 방식은 먼저 시작된 작업이 끝날 때까지 다른 작업을 시작하지 않고, 먼저 시작된 작업이 끝나야만 다음 작업을 처리하는 방식이다. 작업이 시작되고 끝나는 기준은 어떠한 것을 요청(작업 시작)하고, 그 요청에 대한 응답을 받는 것(작업 완료)이다. 비동기 방식은 동기 방식과는 달리, 먼저 시작된 작업이 완료됐는지 아닌지는 신경 쓰지 않고 다음 작업을 시작한다. 어떤 요청에 대한 응답을 기다리는 동안 다른 작업을 진행할 수 있으므로 자원을 효율적으로 사용할 수 있지만, 이를 잘 알지 못하는 상태로 활용하게 되면 내가 원하는 방식으로 프로그램이 동작하지 않을 수도 있다. addOnSuccessListener는 비동기 방식이다. (with Firebase RTDB) https://github.c..

Programing Language

[C] 메모리

메모리 공간 C언어에서 main 함수의 원형 char* argv[] : 첫 번째 문자열 argv[0]은 프로그램의 실행 경로로, 항상 고정된 값이다. 메모리 할당 메모리 영역에서 Data Segment, Block Started by Symbol, Stack, Heap의 위치 관계 스택(Stack) 동적 할당 직접 공부하여 작성한 내용이므로 불펌을 금합니다

Programing Language

[C] C언어란

C언어란 학부생 때 공부한 내용 정리 옛날에는 C언어도 재미있게 공부했었는데 말이죠..

Programing Language/Kotlin

[Android][Kotlin] Kotlin을 사용하여 JSON 데이터 파싱

Kotlin을 사용하여 JSON 데이터 가져오기 JSON 데이터 같은 경우는 assets 폴더 내에 있는 JSON 파일들만 인식할 수 있기 때문에 JSON 데이터를 다루려면 assets 폴더가 필요하다. 처음 생성한 프로젝트에는 assets 폴더가 없으니 생성해주어야 한다. 단순히 json 데이터를 가져와 사용하는 것은 쉽지만, json 내에서 단순히 object만 사용하는 게 아니라 array도 사용하고, object와 array를 함께 사용하는 경우도 있다. 개인적으로 object와 array를 혼합하여 사용하는 것 때문에 애를 먹었다. 폴더 생성 assets 폴더 내에 json 파일을 위치시키면 사용할 수 있다. test.json이라는 파일을 아래와 같이 만들어 assets 폴더 안에 추가한다고 가..

Programing Language/Kotlin

[Android][Kotlin] Binding 사용하여 RecyclerView GridLayout 만들기

[Android][Kotlin] Binding 사용하여 RecyclerView GridLayout 만들기 앞서 RecyclerView를 사용하여 LinearLayout을 만들어보았다. 해당 코드에 추가로 GridLayout을 만들어볼 것이다. [Android][Kotlin] Binding 사용하여 RecyclerView 만들기 Binding 사용하여 RecyclerView 만들기 Binding을 사용하여 생각보다 뚝딱뚝딱 RecyclerView를 만들어볼 수 있다. 안드로이드는 (아마도) 앞으로 할 예정이 없고, 할 마음도 없기 때문에 어떻게 구현되는 mimah.tistory.com 데이터 설정은 위 글에서 모두 하였기 때문에 GridLayout만 만들고 싶다면 관련 코드(CustomAdapter.kt,..

Programing Language/Kotlin

[Android][Kotlin] ImageView src 속성에 주소 값 넣기 - Glide

ImageView src 속성에 주소 값 넣기 기본적으로 ImageView의 src 속성에는 drawable 폴더 내에 있는 이미지만 들어갈 수 있다. 인터넷에 있는 이미지 값을 바로 불러오기 위해서는 Glide 라이브러리를 사용해야 한다. build.gradle:app implementation 'com.github.bumptech.glide:glide:4.11.0' annotationProcessor 'com.github.bumptech.glide:compiler:4.11.0' glide 라이브러리 사용을 위해 build.gradle:app 파일을 수정한다. dependencies 내에 위 내용을 추가한다. 사용 import com.bumptech.glide.Glide val tvStoreImg: I..

Programing Language/Python

[Python] reduce 함수 예제

reduce reduce 함수 사용을 위해서는 functools를 import 해야 한다. functools.reduce(function, iterable[, initializer]) reduce 함수를 사용하면 첫 번째 인자로 들어가는 function을 사용해서 iterable 한 값을 하나의 값으로 줄일 수 있다. initializer는 주어지면 첫 번째 인자로서 추가된다. 즉, 두 개의 입력을 하나의 결과로 만들 수 있다. 주어진 데이터들의 합을 구하는 함수를 작성해본다. dataset = [1, 2, 3, 4] def total(numbers): result = 0 for number in numbers: result += number return result total(dataset) Out :..

Programing Language/Kotlin

[Android][Kotlin] Binding 사용하여 RecyclerView 만들기

Binding 사용하여 RecyclerView 만들기 Binding을 사용하여 생각보다 뚝딱뚝딱 RecyclerView를 만들어볼 수 있다. 안드로이드는 (아마도) 앞으로 할 예정이 없고, 할 마음도 없기 때문에 어떻게 구현되는 건지만 살펴본다. RecyclerView는 개별 요소를 재활용하여 사용하는 것이다. 스크롤하여 화면에서 벗어나더라도 뷰를 제거하지 않고, 스크롤된 뷰를 재사용한다. 리사이클러뷰에서는 뷰의 데이터를 바인딩하기 위해 Adapter를 사용한다. 위와 같이 RecyclerView 두 개가 있는 있는 화면을 만들 것이다. build.gradle (:app) 안드로이드에서는 설정이 제일제일제일 중요하다. 버전도 중요하다. build.gradle에서는 안드로이드 앱이나 라이브러리를 컴파일, ..

Programing Language/JavaScript

[JavaScript] 호이스팅 (Hoisting) 예제

호이스팅(Hoisting) 스코프 안에 있는 선언들을 모두 스코프의 최상위로 끌어올리는 것이다. 선언문들을 미리 실행하는 것이라 생각하면 된다. 실제 메모리에서는 변화가 없다. var 키워드나 함수 선언문 같은 경우는 코드 실행 전 자바스크립트 내부에서 미리 변수를 선언하고 undefined로 초기화를 해놓는다. let 키워드, const 키워드와 함수 표현식도 호이스팅이 발생하긴 하나 변수를 선언만 해놓을 뿐 초기화하지 않는다. 초기화는 변수 선언문을 만났을 때 수행한다. 이때 선언과 초기화 사이에 일시적으로 변수 값을 참조할 수 없는 구간을 Temporal Dead Zone(TDZ)이라 한다. 예제 1 console.log(typeof(funcHello)); console.log(typeof(func..

Programing Language/Java

PreparedStatement - Connection.prepareStatement()

공식 문서 참조 https://docs.oracle.com/javase/7/docs/api/java/sql/PreparedStatement.html PreparedStatement (Java Platform SE 7 ) Sets the designated parameter to SQL NULL. This version of the method setNull should be used for user-defined types and REF type parameters. Examples of user-defined types include: STRUCT, DISTINCT, JAVA_OBJECT, and named array types. Note: To be portable, docs.oracle.com 데이..

밈아
'Programing Language' 카테고리의 글 목록 (2 Page)