전체 글 59

코틀린 it과 this 정확히 무슨 개념일까?

항상 간편하게 사용했지만 정확히 알지 못했던 it과 this의 개념을 정리해봤습니다. it it은 람다식 내부에서 사용되는 암시적 변수입니다. 람다식에서 인자가 하나인 경우 it을 사용해서 인자를 참조할 수 있습니다. val numbers = listOf(1, 2, 3, 4, 5) val evenNumbers = numbers.filter { it % 2 == 0 } 위의 예제에서 it은 numbers 리스트의 각 요소를 나타냅니다. this this는 클래스의 인스턴스를 참조하는데 사용됩니다. this를 사용하여 클래스 내부에서 멤버 변수나 멤버 함수를 참조할 수 있습니다. class Person(val name: String) { fun printName() { println(this.name) } ..

질문 정리 2023.03.15

코틀린과 지연 초기화, UninitializedPropertyAccessException 방지법

이번에 지연초기화에 대해서 배웠는데 너무 필요했던 내용들이라서 정리해두려고 합니다. lateinit 코틀린에서 지연 초기화란 객체의 초기화를 객체가 필요한 시점에 이루어지도록 늦추는 것을 의미합니다.원래는 선언하는 즉시 초기화 해야하는 것을 초기 값을 입력하지 않고, 이후에 초기화 할 수 있습니다. 따라서 객체가 다른 객체에 의존하는 경우 해당 객체들이 모두 생성되기 전까지 초기화를 지연시킬 수 있습니다. lateinit 지연 초기화를 사용하면서 주의할 점이 있습니다. 변수가 초기화 되기 전에 호출되는 경우, UninitializedPropertyAccessException이 발생할 수 있습니다. 이러한 문제를 방지하기 위해서 호출하기 전에 초기화가 되었는지 체크하는 것이 좋습니다. class MyCla..

질문 정리 2023.03.15

editText에 setText로 값을 넣어야하는 이유가 뭘까?

최근 안드로이드 앱 개발을 하다가 궁금한 것이 생겨서 정리했습니다. TextView에 String 값을 대입할 때는 binding.textView.text = "String"을 넣고, EditText에 String 값을 대입할 때는 binding.editText.setText("String")의 형식으로 넣고 있었습니다. 평소 너무 당연하게 사용하고 있었지만, 왜 이렇게 다른 방식을 사용하는 지는 모르고 있었습니다. TextView와 같은 방식으로 EditTextView에 대입을 하려고 하면 오류가 발생합니다. binding.editText.text = "String" binding.editText.text는 Editable 객체이고, "String"은 문자열(String) 타입입니다. 따라서, 두 개의..

질문 정리 2023.03.15

Toast.makeText()를 사용할 때, context를 달라고 하면 this를 입력하는 이유는 뭘까?

안드로이드 스튜디오를 사용하면서 Toast를 사용하게 될 일이 종종 있습니다. 여기서 context는 Toast가 표시될 Context, text는 Toast에 표시될 text, duration은 Toast가 표시될 시간을 의미합니다.따라서 아래와 같은 형식으로 사용할 수 있습니다. Toast.makeText(getApplicationContext(), "Hello, world!", Toast.LENGTH_SHORT).show(); 이 코드는 getAppicationContext()를 사용하여 현재 애플리케이션의 컨텍스트를 가져오고, "Hello, world!"라는 text를 짧게 표시합니다. 하지만 우리는 아래와 같은 형식으로 더 많이 사용합니다. Toast.makeText(this, "Hello, w..

질문 정리 2023.03.14

Object와 Any, void와 Unit

자바 Object와 코틀린 Any 코틀린의 Any 클래스는 자바의 Object 클래스와 기능이 유사합니다. 둘 다 모든 클래스의 기본 클래스이며, 모든 객체의 상위 클래스입니다. 하지만 Any 클래스는 자바의 Object 클래스보다 더 많은 기능을 제공합니다. 예를 들어, 코틀린의 Any 클래스는 다음과 같은 기능을 제공합니다. equals() : 메서드를 오버라이딩하여 객체의 값 비교를 할 수 있습니다. hashCode() : 메서드를 오버라이딩하여 객체의 해시 코드를 계산할 수 있습니다. toString() : 메서드를 오버라이딩하여 객체를 문자열로 표현할 수 있습니다. 따라서, 코틀린에서 Any 클래스를 사용하여 객체를 정의하면 equals(), hashCode(), toString() 등의 메서드..

질문 정리 2023.03.14

코틀린 Number란 무엇일까?

Number란? 코틀린에서 Number는 숫자 타입의 공통 기능을 제공하는 추상 클래스입니다. 코틀린에서 제공하는 숫자 타입은 다음과 같습니다. Byte: 8비트 부호 있는 정수 타입 Short: 16비트 부호 있는 정수 타입 Int: 32비트 부호 있는 정수 타입 Long: 64비트 부호 있는 정수 타입 Float: 32비트 IEEE 754 부동 소수점 타입 Double: 64비트 IEEE 754 부동 소수점 타입 이러한 숫자 타입은 Number 클래스를 상속하고 있으므로, 공통적으로 toByte(), toShort(), toInt(), toLong(), toFloat(), toDouble() 등의 메서드를 가지고 있습니다. 이 메서드들은 해당 숫자 타입으로 변환하는 기능을 제공합니다. 또한, 코틀린에..

질문 정리 2023.03.14

왜 List<String> list = new ArrayList<>()라고 쓸까??

= 업캐스팅을 하는 이유 List list = new ArrayList(); ArrayList list = new ArrayList(); List와 ArrayList는 다르다. public interface List extends Collection public class ArrayList extends AbstractList implements List, RandomAccess, Cloneable, Serializable List는 Collection을 상속(extends) 받은 interface이고, ArrayList는 List를 상속(implements) 받은 Class이다. 기본적으로 우리가 자바에서 할당을 하는 방법이다. ArrayList list = new ArrayList(); 우리는 보통 ..

질문 정리 2023.02.16

[SSAFY/싸피] 9기 합격 후기 & 준비 방법(에세이, 코테, 인터뷰)

싸피에 합격한 김에 좀 더 열심히 살기 위해서 블로그를 시작했습니다. 잘부탁드립니다. 싸피 합격 후기랑 준비 방법이 궁금하신 분들은 싸피가 뭔지 알고 있다는 가정하에 시작하겠습니다. 저는 일단 안드로이드 개발자를 목표로 공부하고 있습니다. 그래서 구미에 지원을 했습니다. 싸피에 지원하시는 분들은 지원하려는 해당 지역에 내가 원하는 반이 개설되는지 꼭 확인을 하시는 것을 추천 드립니다. 여름방학부터 취준생활을 즐긴지 조금 되었습니다. 그래서 싸피에 붙은게 기쁘고 의욕에 차 있는 상태입니다. 블로그 활동도 열심히 해보겠습니다. 1. 에세이 대학교 4학년 2학기 컴퓨터공학전공 지방국립대 학점 3.65/4.3 연구실 및 해커톤 경험 있음 CS와 알고리즘 스터디 진행중 인턴 경험 없음 자격증 없음 수상 기록 없음..

기록&후기 2022.12.23