| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 1 | ||||||
| 2 | 3 | 4 | 5 | 6 | 7 | 8 |
| 9 | 10 | 11 | 12 | 13 | 14 | 15 |
| 16 | 17 | 18 | 19 | 20 | 21 | 22 |
| 23 | 24 | 25 | 26 | 27 | 28 | 29 |
| 30 | 31 |
- 방사성 동위원소 치료
- MYSQL
- Android
- 프로그래머스
- 저요오드식
- 맛집
- android auto
- firebase
- 림프절전이
- 동위원소치료
- Compose
- 전이
- 카페
- leetcode
- kotlin
- 갑상선암
- 안드로이드
- 코틀린
- 객체
- 수술
- 폐CT
- Android Compose
- 백준알고리즘
- 입원
- 방사성동위원소치료
- java
- 알고리즘
- 자바
- 임파선전이
- 정렬 알고리즘
- Today
- Total
목록전체 글 (224)
새우버거의 개발 블로그
1. 제네릭 타입 파라미터코틀린은 제네릭스를 사용하면 타입 파라미터를 받는 타입을 정의할 수 있습니다. 제네릭 타입의 인스턴스를 만들 때에는 타입 파라미터를 구체적인 타입 인자로 치환합니다. List 타입을 List, List처럼 사용할 수 있습니다. Java는 1.5부터 제네릭을 도입했기 때문에 타입 인자가 없는 제네릭 타입을 허용합니다. 예를 들어 Java에서는 리스트 원소 타입을 지정하지 않고, List 타입의 변수를 선언할 수 있습니다. 하지만, 코틀린은 처음부터 제네릭을 도입했기 때문에 제네릭 타입의 타입 인자를 명시하거나 컴파일러가 추론할 수 있어야 합니다.val readers: MutableList = mutableListOf()val readers = mutableListOf() 1) 제네..
1. 고차 함수 정의고차 함수는 다른 함수를 인자로 받거나 함수를 반환하는 함수입니다. 함수를 일급 객체로 취급하는 코틀린에서는 함수를 변수에 할당할 수 있고, 함수의 인자로 전달하거나 반환할 수 있습니다. 1) 함수 타입코틀린의 타입 추론으로 인해 람다를 변수에 대입할 경우, 타입을 지정하지 않아도 됩니다. val sum = { x: Int, y: Int -> x + y }val action = { println(42) } 함수 타입을 정의하기 위해서는 함수 파라미터의 타입을 ( ) 괄호 안에 넣고, 그 뒤에 화살표(->)를 추가한 다음, 함수의 반환 타입을 지정하면 됩니다.val sum: (Int, Int) -> Int = { x: Int, y: Int -> x + y }val action: () -..
코틀린에서는 특정 연산자나 언어 기능이 미리 정해진 이름의 함수와 연결되도록 하는 규칙을 관례(convention)라고 합니다. 이러한 함수명을 정의하면 해당 연산자를 사용할 때 자동으로 그 함수가 호출됩니다. 1. 산술 연산자 오버로딩1) 이항 산술 연산 오버로딩코틀린에서는 더하기, 빼기, 나누기 등 이항 산술 연산자를 오버로딩할 수 있습니다. 연산자마다 미리 정해진 함수명을 사용해 구현되어야 하고, 반드시 operator 키워드를 붙여야 합니다.식함수 이름a * btimesa / bdiva % bmod / rema + bplusa - b minus 두 피연산자의 타입이 반드시 같을 필요 없고, 반환 타입도 자유롭게 정할 수 있습니다. 관례를 따르는 확장함수도 가능합니다. data class Point..
1. 널 가능성 (nullability)널 가능성(Nullability)은 코틀린 타입 시스템의 특징 중 하나로 NullPointerException과 같은 오류를 방지하는 데 도움을 줍니다. 코틀린을 비롯한 최신 프로그래밍 언어들은 변수나 객체가 null이 될 수 있는지 여부를 컴파일 시점에 미리 검사하여 런타임에서 발생할 수 있는 잠재적인 오류를 효과적으로 줄여줍니다. 이를 통해 코드의 안정성과 안전성을 높일 수 있습니다. 1) 널이 될 수 있는 타입코틀린과 Java의 가장 중요한 차이는 코틀린이 널이 될 수 있는 타입을 명시적으로 지원한다는 것입니다. 널이 될 수 있는 타입은 프로그램 안의 프로퍼티나 변수에 null을 허용하게 만드는 방법입니다. 아래와 같은 Java 함수에 null을 넘기면 Nu..
1. 람다 식과 멤버 참조1) 람다 소개함수형 프로그래밍에서는 함수를 값처럼 다루기 때문에 클래스의 인스턴스를 함수에 넘기는 대신 함수를 직접 다른 함수에 전달할 수 있습니다. 람다 식을 사용하면 함수를 선언할 필요없이 코드 블록을 직접 함수의 인자로 전달할 수 있기 때문에 코드가 간결해집니다.// Javabutton.setOnClickListner(new OnClickListener() { @Override public void onClick(View view) { // ... }});// 람다button.setOnClickListenr { //... } 람다 식의 문법중괄호 {}로 감쌉니다.인자 목록은 괄호 없이 바로 작성하며, 화살표(->)로 인자 목록과 람다 본문을 구..
1. 클래스 계층 정의1) 코틀린 인터페이스코틀린 인터페이스는 interface 를 사용합니다. 코틀린 인터페이스 안에는 추상 메소드 뿐만 아니라 구현이 있는 메소드도 정의할 수 있습니다.interface Clickable { fun click()} Clickable를 구현하는 모든 클래스는 click에 대한 구현을 제공해야 합니다. Java에서는 상속을 할 때, extends와 implements 키워드를 사용하지만, 코틀린에서는 콜론(:)을 붙입니다. override 변경자는 상위 클래스, 인터페이스에 있는 프로퍼티나 메소드를 오버라이드한다는 표시로 코틀린에서는 필수로 사용해야 합니다.class Button : Clickable { override fun click() { }}..
1. 코틀린에서 컬렉션 만들기코틀린은 자체 컬렉션을 제공하지 않고, Java 컬렉션과 똑같은 클래스를 사용합니다.val set = hashSetOf(1, 7, 54)val list = arrayListOf(1, 7, 54)val map = hashMapOf(1 to "one", 7 to "seven", 54 to "fifty-four")println(set.javaClass)println(list.javaClass)println(map.javaClass)// class java.util.HashSet// class java.util.ArrayList// class java.util.HashMap 따라서 Java에서 코틀린 함수를 호출하거나 코틀린에서 Java 함수를 호출할 때, 서로 변환할 필요가 없습니..
코틀린이란 무엇이며, 왜 필요한가?1. 코틀린의 주요 특성코틀린은 Java 플랫폼에서 돌아가는 프로그램 언어로, 이제 안드로이드 어플리케이션을 개발하는 사람이라면 대부분 Java만큼 사용하고 있는 언어입니다. Java와 코틀린은 모두 정적 타입 지정 언어이지만, 코틀린은 타입 추론, 널 안정성 등 더 편리하고 유용한 기능을 제공합니다. 1) 정적 타입 지정 언어코틀린은 Java와 마찬가지로 정적 타입 지정 언어입니다. 정적 타입 지정 언어란 변수나 함수의 타입이 컴파일 시점에 미리 결정되는 언어입니다. 예를 들어, Int 타입 변수에는 반드시 정수가 들어가야 하며, String 등 다른 타입의 값을 넣으려 하면 컴파일 오류가 발생합니다.val num: Int = 1num = "hello" // 컴파일 오..
Android Auto와 Automotive OS는 사용자에게 앱이 표시되는 방법에 차이가 있기 때문에 지원되는 앱 카테고리도 서로 다릅니다. 따라서 자동차용 앱을 개발할 때는 각 플랫폼의 요구사항과 특성을 충분히 고려해야 합니다. Android AutoAndroid Auto는 스마트폰을 유선 또는 무선으로 차량에 연결하여 차량 디스플레이에서 운전에 최적화된 앱 환경을 제공합니다. 스마트폰에 설치된 앱을 자동차 디스플레이 UI와 UX에 맞게 보여지는 것이기 때문에 단독으로 설치가 불가능합니다. Android Automotive자동차 제조 업체에서 자동차에 빌드한 인포테인먼트 플랫폼으로 에어컨, 난방, 오디오 기능과 같은 차량의 기능도 제어할 수 있습니다. 스마트폰 없이도 호환 앱을 직접 설치하고, 자동..
Android Auto 앱을 개발하고 테스트할 때는 데스크톱 헤드 유닛(Desktop Head Unit, DHU)을 사용하는 것이 일반적입니다. 데스크톱 헤드 유닛을 사용하면 실제 차량 없이도 바로 Android Auto 환경을 시뮬레이션하여 테스트할 수 있습니다. 실제 차량에서도 테스트가 가능하지만 환경이 제한적이고 디버깅이 어렵기 때문에 디버그 빌드 테스트를 위해서는 DHU에서 확인하는 것이 권장됩니다.⚠️ 실제 차량에서 테스트하기 위해서는 내부 앱 공유 또는 내부 테스트 트랙을 사용하여 앱을 설치해야 합니다. Android Auto 개발자 옵션에서 '알 수 없는 소스 허용'을 허용하면 미디어, 메시지 알림, 주차 앱에서는 실제 차량에서 확인 가능하지만, Car app 라이브러리를 사용하여 빌드한 앱..