분류 전체보기 1203

Android ViewBinding VS DataBinding

개복치개발자 강의는 아래의 링크에서 확인할 수 있습니다. https://www.inflearn.com/course/%EC%B9%9C%EC%A0%88%ED%95%9C-jetpack-1?inst=3b988560 [중급편] 친절한 JETPACK 개론 (Android Kotlin) - 인프런 | 강의 코틀린으로 안드로이드 개발을 위한 젯팩(JETPACK) 개론입니다. 안드로이드 개발을 하면서 사용할 수 있는 다양한 테크닉을 연습할 수 있습니다., - 강의 소개 | 인프런... www.inflearn.com 안드로이드 뷰바인딩(ViewBinding)과 데이터바인딩(DataBinding)에 대해서 알아보겠습니다. 일단 뷰바인딩과 데이터바인딩을 쓰지 않으면 어떻게 될까 한번 생각을 해볼게요. 제가 간단하게 버튼을 클..

Android(Kotlin) 2021.08.18

Kotlin lambda

코틀린 뿐만이 아니라, 다른 언어들에서 람다 표현식(Lambda expression)에 대해서 들어본 적이 있으실겁니다. 함수형 프로그래밍에서 사용되는 방법으로, 익명 함수를 단순화한 것이라고 할 수 있습니다. 람다를 사용하면 뭐가 좋고 안좋은지를 살펴보면 장점으로는 코드가 간결해지고 재사용성이 높아지지만, 단점으로는 디버깅이 어려운 단점이 있습니다. 자, 그러면 kotlin에서 람다 함수를 간단하게 만들어보겠습니다. 간단하게 람다를 어떻게 사용하는지 살펴봤는데, 이 것을 좀 더 다양한 방법으로 사용하는 것을 알아보겠습니다. 인자가 1개일 경우 선언을 생략할 수 있으며 it 으로 접근 가능합니다. 기존 정의된 함수를 람다식으로 사용할 수 있습니다. - 참조 https://tourspace.tistory...

Android(Kotlin) 2021.08.16

Android Kotlin - let, with, run, apply, also

매번 공부해야지 하다가 거의 1년 미룬 let, with, run, apply, also에 대해서 알아보겠습니다. 구글 공식 문서나, 예제들을 찾아보다 보면 저 위의 친구들을 자주 만나게 되는데, 이 것들이 뭔지 대충은 알겠는데 설명해보라고 하면 뭐였지.. 라는 상황이 나옵니다. 사실 정리해도 잘 모르겠긴 합니다. 그래서 한번 알아보겠습니다. 맨 밑의 블로그 2개를 많이 참고했습니다. 일단 5개의 함수 정의부터 보겠습니다. inline fun with(receiver: T, block: T.() -> R): R { return receiver.block() } inline fun T.also(block: (T) -> Unit): T { block(this) return this } inline fun T..

Android(Kotlin) 2021.08.16

Kotlin 제네릭(Generic)

제네릭(Generic)에 대해서 알아보도록 하겠습니다. 사실 많이 들어보고, 써 보기도 했지만 여기에 대해서 깊게 고민하고 사용해본 적이 없습니다. 그러면 한번 자세히 알아보도록 하겠습니다. 일단 제네릭이 어떻게 생긴건지 한번 보고 가겠습니다. 아래처럼 라고 선언해주는 것입니다. 간단하게 말해서 설계할 때 구체적인 타입을 명시하지 않고, 타입 파라메터로 대체해서 실제로 사용될 때 구체적인 타입을 지정함으로써, 타입 변환을 최소하시키는 것입니다. 제네릭을 사용하면 얻는 장점으로는 - 컴파일 시 타입 체크로 에러를 사전에 잡을 수 있고 - 컴파일러가 타입캐스팅을 해주기 때문에 개발자가 편하고 - 코드의 재사용성이 높아집니다(당연하겠죠?) 그렇다면 간단한 예제를 보면서 어떻게 사용하는지를 한번 살펴보도록 하겠..

Android(Kotlin) 2021.08.16

Kotlin 반복문과, 이터레이터(Iterator)

코틀린의 반복문에 대해서 알아보겠습니다. 아래는 간단하게 숫자를 출력하는 예제입니다. 숫자 말고도 우리는 리스트의 값을 빼올 일이 많은데, 이 것은 어떻게 하는지 알아보겠습니다. 흔히 볼 수 있는, 반복문에 있는 값을 빼오는 문법입니다. 이번에는 indices를 사용해봤습니다. index와 같이 출력해봤습니다. 자, 여기까지 하면 그래도 반복문에 대해서 어느정도 알아봤습니다. 반복문을 공부하다보면 이터레이터(Iterator)라는 애가 나오는데 얘가 뭔지 한번 보겠습니다. Iterator는 컬렉션(Set, List, Map)에 저장되어 있는 것을 일관성있게 꺼내 오는 방법입니다. 아래와 같이 iterator가 다음 값이 있으면 출력되도록 해봤습니다. 이렇게 코틀린의 반복문과 이터레이터에 대해서 알아보았습니..

Android(Kotlin) 2021.08.16

DB Index

DB인덱스에 관한 부분에 대해서 알아보겠습니다. 이전에 기술면접 질문 중에 본 질문인데 DB인덱스는 왜 붙이는가? DB인덱스를 붙이는게 좋다면 왜 모든 테이블에 Index를 붙이지 않는가? 에 대해서 들어본 적이 있습니다. 이 질문에 대해 대답하기 곤란하시다면 아래의 글을 읽어보시면 좋을 것 같습니다. 자 우선은 index가 무엇인지 부터 직관적으로 알아봅시다. 위와 같이 서류정리함? 정도로 생각하시면 되는데, 각 분류마다 택을 붙여서 쉽게 찾아보게 만든 것이라고 생각하면 됩니다. 저 서류들을 1번부터 1000번까지 훑어서 찾는 것 보다, 저 데이터가 포함하는 인덱스로 가서 데이터를 찾는게 훨씬 더 좋습니다. 인덱스를 이용하면 얻는 장점으로는 당연히 전체데이터 훑기(full scan)보다 검색속도가 올라..

기술 2021.08.14

프로세스(Process)와 쓰레드(Thread)의 차이

한번쯤은 들어봤지만, 늘 헷갈리는 프로세스와 쓰레드의 차이에 대해서 알고 가겠습니다. 저도 컴퓨터공학 전공자이다 보니 수업시간에 들어봤고, 공부했던 내용이긴 하지만 이거 시험한번 치고나면 머리속에서 삭제되는게 가장 큰 문제죠. 자, 기억의 끈을 더듬어서 한번 자세히 살펴보겠습니다. 일단 이게 뭔지 궁금하면, 구글에 검색을 해봅니다. 물론 구글 검색해서 나오는 결과는 매우 두루뭉실하고 빡치게 설명되어있긴 합니다. 프로세스란 무엇인지 검색해보면 아래와 같이 나옵니다. 프로세스(process)는 컴퓨터에서 연속적으로 실행되고 있는 컴퓨터 프로그램을 말한다. 종종 스케줄링의 대상이 되는 작업(task)이라는 용어와 거의 같은 의미로 쓰인다. 여러 개의 프로세서를 사용하는 것을 멀티프로세싱이라고 하며 같은 시간에..

기술 2021.08.13

Android Activity 생명주기(Life Cycle)

안드로이드 액티비티의 생명주기에 관한 내용입니다. 대부분 한번정도는 들어봤지만, 계속 헷갈릴 때가 많으실테니 이렇게 정리해놓습니다. 여기에서 내가 아니 이 것을 왜 알아야하냐? 혹은 이거 몰라도 안드로이드 앱 개발할 수 있는데? 라고 생각하시는 분들이 있을 수도 있으시겠지만, 아마 이런분들은 실제로 앱을 개발까지만 해보고, 런칭해서 운영까지 안해보셨을 가능성이 매우 높습니다. 보통은 사용자가 중간에 앱을 강제 종료하기도 하고, 다른 앱 갔다가 돌아오기도 하는 경우가 많기 때문에, 이와 관련해서 액티비티 생명주기를 살펴보면서 알아보겠습니다. 일단 7개의 메서드를 하나씩 알아보겠습니다. 1. onCreate() 2. onStart() 3. onResume() 4. onPause() 5. onStop() 6...

Android(Kotlin) 2021.08.12