IT Study
-
[Android] 액티비티의 라이프 사이클 (생명주기, Life cycle)IT Study/Android 2024. 1. 20. 14:47
안녕하세요. 이번 블로그 글에서는 Android 개발 시 주로 사용되는 Activity의 생명주기에 대해 알아보도록 하겠습니다. 먼저, Activity의 Life Cycle을 확인하기 위해 아래와 같은 테스트 시나리오를 작성하였습니다. 📊 테스트 시나리오 1. Activity 실행, 종료 시의 Life cycle 2. 다른 App 실행 시 (= 홈 버튼 클릭 시)의 Life cycle 3. 다른 Activity 실행 시의 Life cycle 또한 Activity의 Life Cycle을 확인하기 위해 아래와 같은 테스트 코드를 작성하였습니다. MainActivity.kt package fastcampus.part0.kotlin import android.content.Intent import android..
-
[CS] 신입 개발자 기술면접 질문 - 안드로이드 편 (feat. 진행 중 ing)IT Study/컴퓨터 기초 2024. 1. 15. 20:37
안드로이드 OS에 대해 설명해주세요. 안드로이드 OS는 구글이 개발한 오픈 소스 기반의 모바일 운영체제입니다. 스마트폰 뿐만 아니라, TV나 자동차와 같은 다양한 플랫폼에서 동작할 수 있다는 특징을 가지고 있습니다. 자바와 코틀린의 차이에 대해 설명해주세요. 코틀린은 null 안정성을 제공합니다. 코틀린에서는 변수를 선언할 때, null을 가질 수 있는지 여부를 명시해야 하는데, 이를 통해 Java에서 자주 일어나는 Null pointer exception과 같은 에러를 피할 수 있습니다. 또 코틀린은 간결하고 표현력이 높은 문법을 가지고 있습니다. 타입 추론을 통해 변수의 데이터 타입을 명시하지 않거나 데이터 클래스를 통해 게터/세터/이퀄/해시코드와 같은 메서드를 자동으로 만들어줍니다. 또한 코틀린에는..
-
[Kotlin] 코틀린 중급 (feat. 람다, 확장함수, Scope function, 초기화 지연 등...)IT Study/Android 2024. 1. 15. 15:37
람다 package fastcampus.part0.kotlin fun main() { // 1. 람다 // 익명 함수 (일회용 함수) // 변수처럼 사용할 수 있다. (함수의 argument, return으로 사용) val a = fun() { println("hi") } val b: (Int) -> Int = { it * 10 } // (input) -> return = { 함수 구현부 } val c = { i: Int, j: Int -> i * j } // { input -> 함수 구현부 } val d: (Int, String, Boolean) -> String = { _, string, _ -> string } // _ : 미사용 파라미터 a() println(b(10)) println(c(2, 5..
-
함수의 Parameter와 Argument (feat. 매개변수? 전달인자?)IT Study/컴퓨터 기초 2024. 1. 14. 23:09
안녕하세요, 오늘은 프로그래밍에서 자주 접하게 되는 개념인 Parameter(매개변수)와 Argument(전달인자)에 대해 알아보려고 합니다. 이 두 용어는 코드의 특정 부분을 가리키는 말로, 종종 혼용되어 사용되지만 실제로는 약간 다른 의미를 가지고 있습니다. 정리를 통해 확실히 잡고가도록 하죠. Parameter (매개변수) Parameter, 즉 매개변수는 함수의 입력으로 사용되는 변수를 의미합니다. 함수를 선언하거나 정의할 때, 함수 괄호 안에 선언되는 변수들이 바로 매개변수입니다. fun add(a: Int, b: Int): Int { return a + b } 위의 코드에서 a와 b는 매개변수입니다. 이들은 add라는 함수에서 사용되는 입력값들을 대표하는 변수로, 함수의 동작에 필요한 데이터를..
-
[Kotlin] 코틀린 기초 (feat. 함수, 클래스, Null 등...)IT Study/Android 2024. 1. 14. 22:53
함수 1. 유닛 반환 타입(Unit Return Type): 반환값 없는 함수에 대한 타입 표현, 생략 가능 2. 기본 인수(Default Arguments): 함수 매개변수에 기본값 설정으로 함수 오버로딩 필요성 감소 3. 명명된 인수(Named Arguments): 매개변수 이름을 통한 인수 전달로 인수 순서 자유로움 4. 단일 표현식 함수(Single Expression Functions): 함수 본문 축약 표현으로 코드 간결성 향상 package fastcampus.part0.kotlin fun main() { println("Hello") test1(1, 2) test1(1, 3) test2(1) test2(l = 1, n = 3) // 2-3. 함수 안에서 선언 값에 대해 작성 가능 (순서 무..
-
[백준 알고리즘/Kotlin] 2751번 수 정렬하기2 (feat. 코드 비교하기)IT Study/백준 알고리즘 2024. 1. 6. 15:44
문제 N개의 수가 주어졌을 때, 이를 오름차순으로 정렬하는 프로그램을 작성하시오. 입력 첫째 줄에 수의 개수 N(1 ≤ N ≤ 1,000,000)이 주어진다. 둘째 줄부터 N개의 줄에는 수가 주어진다. 이 수는 절댓값이 1,000,000보다 작거나 같은 정수이다. 수는 중복되지 않는다. 출력 첫째 줄부터 N개의 줄에 오름차순으로 정렬한 결과를 한 줄에 하나씩 출력한다. 예제 입력 1 5 5 4 3 2 1 예제 출력 1 1 2 3 4 5 제출한 2개의 코드를 확인해보며, 두 코드를 비교하도록 하겠습니다. 최초 제출 코드 (1번) import java.lang.StringBuilder import java.util.PriorityQueue fun main() = System.`in`.bufferedReade..
-
[백준 알고리즘/Kotlin] 1847번 스택 수열 (feat. Stack, 스택 관련 메서드)IT Study/백준 알고리즘 2024. 1. 4. 14:36
저는 처음에 이 문제를 접했을 때에는 풀이 방법을 생각하지 못했습니다. 그러나 아래와 같이 로직을 정리하고, 코드를 작성해보도록 하겠습니다. 1. 만들어야 하는 수열을 순서대로 읽으면서 해당 숫자가 스택의 top에 있지 않다면, 그 숫자가 나올 때까지 스택에 숫자를 push합니다. 이 때, push하는 숫자는 1부터 n까지 순서대로 push하고, 각 push 연산마다 + 를 출력합니다. 2. 만약 스택의 top에 있는 숫자가 현재 수열에서 읽은 숫자와 같다면, 스택에서 그 숫자를 pop하고 - 를 출력합니다. 3. 만약 스택의 top에 있는 숫자가 현재 수열에서 읽은 숫자보다 크다면, 주어진 수열을 만들 수 없는 경우이므로 NO를 출력하고 프로그램을 종료합니다. 스택의 top에 있는 수가 현재 수열에서 ..
-
[Kotlin] 배열의 내용을 비교하는 contentEqualsIT Study 2024. 1. 3. 14:05
Kotlin에서 배열을 비교할 때는 주의해야 합니다. 배열이 참조 타입이기 때문에 '==' 연산자를 사용하면 배열의 참조가 비교되기 때문인데요. 이는 다음과 같은 예제 코드에서 확인할 수 있습니다. val arr1 = intArrayOf(1, 2, 3) val arr2 = intArrayOf(1, 2, 3) println(arr1 == arr2) // 출력: false arr1과 arr2는 같은 내용을 가지고 있지만, '==' 연산자를 사용하면 false가 출력됩니다. 이는 '==' 연산자가 두 배열의 참조를 비교하기 때문입니다. 그렇다면, 배열의 내용 자체를 비교하려면 어떻게 해야 할까요? 이때 사용할 수 있는 것이 바로 contentEquals() 함수입니다. 이 함수는 배열의 내용이 같은지를 비교합..