Apple is Apple
더블 콜론 참조(::)
Language/Kotlin 2024. 5. 9. 21:23

안드로이드나 코틀린으로 개발하다보면 더블콜론 (::) 을 자주 접하게 된다. 더블콜론은 무엇을 의미할까 보통 더블콜론은 리플렉션을 위해 사용한다. 그럼 리플렉션이란 무엇인가? 간단하게 알아보고 넘어가보자 리플렉션은 실행 중에 프로그램의 구조를 검사하고 수정할 수 있는 기능을 말한다. 이는 객체나 클래스의 속성, 메소드 등의 정보를 런타임에 동적으로 조작할 수 있게 해준다. ( 런타임상 컴파일된 바이트코드에서 작성한 코드가 어느 곳에 위치하는지 모르기에 바이트코드를 이용해 참조하려는 값을 찾기위해 사용) 사용법은 다음과 같다. JAVAAClass.classKotlinAClass::class 하지만 우리가 안드로이드 프로그래밍을 할 땐 AClass::class.java// exIntent(this, Some..

저장소
카테고리 없음 2024. 4. 30. 21:19

https://github.com/Kim-Min-Jong/android_practice_project2?tab=readme-ov-file GitHub - Kim-Min-Jong/android_practice_project2: practice projectpractice project. Contribute to Kim-Min-Jong/android_practice_project2 development by creating an account on GitHub.github.com   application context로 UI 작업을 권장하지 않는 이유스레드 안정성(Thread Safety): 안드로이드에서는 UI 작업은 메인 스레드(Main Thread)에서 이루어져야함. 하지만 애플리케이션 컨텍스트는 메인..

Operating System basic
CS/OS 2024. 4. 22. 15:17

학부 때 들었던 강의 내용을 복습하면서 정리해보기.... Operating System운영 체제는 응용 프로그램이 실행될 수 있는 환경을 제공할 뿐만 아니라 컴퓨터 하드웨어를 관리하는 소프트웨어이다. (sw와 hw 사의의 sw)어떤 컴퓨팅 자원아게 어떻게 할당할 것인가를 결정하는 자원 관리자의 역할을 한다.컴퓨터의 오류 및 부적절한 사용을 방지하기 위한 제어 프로그램이기도 하다.컴퓨터의 동작 과정컴퓨터가 켜질 때 (부팅), Bootstrap 프로그램이 함께 켜진다. 이 프로그램은 ROM 이나 EEPROM에 적재되어 있으며 일반적으로 펌웨어라고 알려져있다.펌웨어는 시스템을 초기화 하고 운영체제 커널을 로딩하고 실행 시킨다.실행된 운영체제는 첫 번째 프로세스 실행을 시작하고 일부 이벤트가 발생할 때까지 기다..

URL Encoding
Language/Kotlin 2024. 4. 2. 15:04

안드로이드 서버 통신을 하다 보면 가끔 "%EC%AD~~" 이런 식으로 응답이 오는 경우가 있다. 보통 응답 값이 특수문자 이거나 한글일때 발생한다. URL Encoding이란 URL에서 URL로 사용할 수 없는 문자나 URL로 사용할 수 있지만 의미가 왜곡 될 수 있는 문자들을 "%XX" 형태로 변환한다 (여기서 XX는 16진수) 코틀린에서 URL Encoding을 하는 방법을 알아보자. 자바 표준 라이브러리의 URLEncoder / URLDecoder를 통해 쉽게 인코딩, 디코딩을 할 수 있다. // 클래스 호출 import java.net.URLEncoder import java.net.URLDecoder // 함수 자체 호출 import java.net.URLEncoder.encode import..

article thumbnail
[Android] Clean Architecture
Android 2024. 3. 11. 21:17

소프트웨어 아키텍처 소프트웨어 시스템을 추론하기 위해 필요한 구조들의 모임이며, 그러한 시스템과 구조를 만드는데 필요한 규율이다. 소프트웨어 시스템 클래스 함수.. 인터페이스 함수.. 등등.... 좋은 아키텍처를 만드는법 - 함수, 클래스, 컴포넌트 소프트웨어 본연의 목표를 충족 기능적: 원하는 기능을 제공 구조적: 기능의 변화에 따라 유연하게 변경되어 제공 좋은 아키텍처는 소프트웨어의 목표를 최소한의 비용으로 가능하도록 하는 구성요소와 규칙의 모임 (Uncle bob https://blog.cleancoder.com/uncle-bob/2012/08/13/the-clean-architecture.html) 중요성 현대 소프트웨어는 지속적으로 변화가 필요함 (요구사항의 증대... 변경사항....) 변경이 ..

article thumbnail
[Kotlin] Coroutine
Language/Kotlin 2024. 3. 7. 22:07

코루틴 소개 코루틴이란 코틀린, 안드로이드에서 간단하게 비동기적으로 코드를 실행 할 수 있는 동시성 디자인패턴이다 (구글 문서 발췌) 비동기 프로그래밍이란? 여러 작업을 동시에 수행할 수 있도록 하는 프로그래밍 패러다임 Non blocking 방식으로 수행하며 CPU리소스를 효율적으로 사용 전통적으로는 쓰레드 기반 작업으로 진행되었음 (쓰레드 -> 코루틴) synchronous - 작업을 순서대로 수행 asynchronous - 순서와 무관하게 작업을 수행 Blocking - Caller가 Callee를 호출 하면서 작업을 멈추고 대기함 Non-Blocking Non Blocking - Caller는 Callee를 호출하고 대기하지 않음. 바로 다음 작업을 수행 Asynchronous with non b..

article thumbnail
[Android] Compose (RE)
Android 2024. 3. 4. 22:17

Compose Jetpack Compose is Android’s recommended modern toolkit for building native UI. It simplifies and accelerates UI development on Android. Quickly bring your app to life with less code, powerful tools, and intuitive Kotlin APIs. from Android Document 컴포즈는 안드로이드가 추천하는 네이티브 UI 작성을 위한 모던 툴킷이다. 컴포즈는 안드로이드의 UI 개발을 빠르고 간단하게 해줍니다. 어서 앱에 적용해서 적어진 코드, 강력한 도구들, 직관적인 API를 누려 보자.. (구글 문서 발췌) 컴포즈는 무엇이고..

article thumbnail
[BOJ - 22233] [백준 - 22233] 가희와 키워드[Silver - 2] [Solved by Kotlin]
PS/BOJ 2024. 2. 19. 16:35

문제 설명 가희는 블로그를 운영하고 있습니다. 가희는 블로그에 글을 쓰기 위해, 메모장에 키워드를 적곤 합니다. 지금까지 메모장에 써진 키워드는 모두 서로 다르며, 총 N개가 존재합니다. 가희는 새로운 글을 작성할 때, 최대 10개의 키워드에 대해서 글을 작성합니다. 이 키워드들 중에 메모장에 있었던 키워드는 가희가 글을 쓴 이후, 메모장에서 지워지게 됩니다. 가희는 블로그에 글을 쓰고 나서, 메모장에 있는 키워드 개수가 몇 개인지 알고 싶습니다. 가희를 도와주세요. 입출력 예 입력 첫 번째 줄에 가희가 메모장에 적은 키워드 개수 N, 가희가 블로그에 쓴 글의 개수 M이 공백으로 구분해서 주어집니다. 2번째 줄부터 N+1번째 줄까지 메모장에 적은 키워드 N개가 주어집니다. N+2번째 줄부터 N+M+1번째..

[Android] Dagger (basic)
Android 2024. 1. 29. 22:46

DI (Dependency Injection) DI(dependency injection)는 프로그래밍에 널리 사용되는 기술이며 Android 개발에 매우 ​​적합하다. DI 원칙을 따르면 좋은 앱 아키텍처의 토대를 마련할 수 있다. 종속성 주입을 구현하면 다음과 같은 이점이 있다. 코드 재사용성 리팩토링이 용이 테스트 용이성 먼저, 앱 수준 gradle에 플러그인을 추가 plugins { id 'com.android.application' id 'kotlin-android' // dagger를 위한 plugin id 'kotlin-android-extensions' // 어노테이션을 통해 컴파일 타임에 코드 생성을 도와줌 id 'kotlin-kapt' } 그 후, dagger 라이브러리를 추가 depe..

2024-01-26
TIL 2024. 1. 26. 22:07

DI (Dependency Injection) DI(dependency injection)는 프로그래밍에 널리 사용되는 기술이며 Android 개발에 매우 ​​적합하다. DI 원칙을 따르면 좋은 앱 아키텍처의 토대를 마련할 수 있다. 종속성 주입을 구현하면 다음과 같은 이점이 있다. 코드 재사용성 리팩토링이 용이 테스트 용이성 먼저, 앱 수준 gradle에 플러그인을 추가 plugins { id 'com.android.application' id 'kotlin-android' // dagger를 위한 plugin id 'kotlin-android-extensions' // 어노테이션을 통해 컴파일 타임에 코드 생성을 도와줌 id 'kotlin-kapt' } 그 후, dagger 라이브러리를 추가 depe..