Kotlin - 고차 함수(High-order function), 함수 타입(function type), 람다(lambda), 익명함수(anonymous function)

코틀린 함수는 일급(first-class) 함수 입니다. 이것이 의미하는 것은 코틀린에서 함수가 변수와 자료구조에 저장될 수 있고, 함수의 매개변수로 보내질 수 있고, 다른 고차 함수로부터 반환되어질 수 있다는 것입니다. 코틀린의 함수는 일급 함수이므로 함수가 아닌 값에 대해 수행할 수 있는 모든 연산을 함수에 대해서도 수행할 수 있습니다. 1. 고차 함수(Higher-order functions) 고차 함수는 함수를 함수의 매개변수로 받을 수 있고, 함수를 반환할 수 있는 함수입니다. 2. 함수 타입(Function types) 코틀린은 함수 타입을 가집니다. 이것은 정수 타입, 실수 타입과 같은 타입을 말합니다. 함수 타입은 (Int) -> String 과 같이 쓰여질 수 있습니다. 이것은 정수를 매..

프로그래밍/Kotlin | 2021. 8. 15. 20:52

Eclipse에서 Kotlin 플러그인을 사용해서 Kotlin 프로그램 실행시 오류 발생

이전에 전자정부표준프레임워크에 Kotlin 플러그인을 설치하고, 예제 프로그램을 테스트 해보았었습니다. 그런데, 최근 다시 실행을 해보니 아래와 같은 오류가 발생했습니다. 'Launching Config - HelloKotlin.kt' has encountered a problem. Plug-in "org.eclipse.jdt.launching" was unable to instantiate class "org.eclipse.jdt.internal.launching.JavaSourceLookupDirector". Excepting a stackmap frame at branch target 50 Exception Details: Location: org/eclipse/debug/core/sourceloo..

프로그래밍/개발도구, 프로그램 | 2021. 8. 9. 23:15

View Binding 사용법

View Binding은 안드로이드 앱에서 레이아웃 내의 위젯(버튼, 텍스트뷰 등)들에 프로그램으로 접근하기 위한 방법입니다. View Binding은 Android Studio 3.6 Canary 11 이상 부터 사용할 수 있습니다(Canary 채널은 개발자들이 안드로이드 스튜디오 최신 버전을 테스트할 수 있는 빌드를 제공합니다). 예제로 사용할 HelloKotlin 프로젝트 구성 입니다. 메인 레이아웃: activity_main.xml * TextView : id - hello_text * include : id = text_panel include로 포함되는 레이아웃 : inclue_text_panel.xml * TextView : id - msg_text * Button : id - msg_btn..

프로그래밍/안드로이드 | 2021. 8. 8. 22:20

GIMP 2 사용법 - 직선 그리기

GIMP에서 직선을 그리는 방법을 알아 봅니다. 1. 펜, 붓 등 그리기 도구를 선택합니다. 그리기 위한 두께도 선택합니다. 2. 그리기 시작할 지점에 마우스 왼쪽 클릭하여 점을 하나 찍습니다. 3. 선이 끝나는 지점으로 마우스 포인터를 이동합니다(마우스 버튼은 누르지 않습니다). 이제 Shift 키를 누릅니다. 시작점과 끝점을 잇는 가이드 선이 만들어 집니다. 4. Shift 키를 누른 상태에서 마우스 오른쪽 키를 누릅니다. 직선이 그려집니다. 이것으로 직선이 그려졌습니다. 추가로 이 상태에서 마우스 포인터를 다른 곳으로 옮기고, Shift 키를 누르면 마지막 클릭했던 곳에서 부터 현재 위치까지 가이드선이 나타나고, 마우스 오른쪽 클릭하면 직선을 그릴 수 있습니다. 다른 곳에 직선을 그리려면 그리고자 ..

프로그래밍/개발도구, 프로그램 | 2021. 8. 7. 23:57

안드로이드 앱에서 타이틀바 없애기 및 전체화면 만들기

안드로이드 앱에서 타이틀 바를 없애는 방법입니다. 이 타이틀 바라는 명칭은 타이틀이 나오는 부분이라는 의미로 사용했습니다. 실제로는 안드로이드가 버전업 해오면서 변해 온 앱바(App Bar), 액션바(Action Bar), 툴바(Toolbar) 중의 하나일 것입니다. 이 바(Bar) 들의 기능중에 타이틀을 보여주는 기능이 있는 것입니다. 전체화면 만들기는 앱이 아니라 휴대폰 화면 상단의 통신연결, 배터리 사용량, 시간 등을 보여주는 부분입니다. 이 부분을 보통 상태바라고 부릅니다. 1. 타이틀바 없애기 ※ styles.xml 파일 또는 themes.xml 파일에서 설정할 수 있습니다. - styles.xml 파일이 있으면 기존의 스타일 아래에 다음 항목을 추가합니다. true 위 코드가 추가된 style..

프로그래밍/안드로이드 | 2021. 8. 6. 22:42

안드로이드 스튜디오 Gradle 업데이트 오류

안드로이드 스튜디오에서 작업중 Gradle 업데이트가 있다고 알림이 떠서 업데이트를 했는데, 다음과 같은 오류가 발생하였습니다. Cannot find AGP version in build files. Gradle 버전 4.2.2에서 7.0.0으로 업데이트 도중에 오류가 발생하였습니다. 해결 방법은 간단 하였습니다. "File" 메뉴의 "Sync Project width Gradle Files"를 실행하니 업데이트가 되었습니다. 추가로 현재 프로젝트에 설정되어 있는 Gradle 버전을 알아보는 방법입니다. "File -> Project Structure..." 를 실행하면 프로젝트에 설정되어 있는 현재 그레이들 버전을 알 수 있습니다. 다른 방법으로는 build.gradle 파일을 열어보면 버전 정보를 볼..

프로그래밍/안드로이드 | 2021. 8. 6. 11:09

안드로이드 스튜디오 프로젝트 여러개 열기

안드로이드 스튜디오에서 프로젝트를 하나 열어둔 상태에서 다른 프로젝트를 열면 기본적으로 현재 창에 열려서 여러개의 프로젝트를 동시에 열기가 안됩니다. 프로젝트를 열때 다른 창에서 열도록 설정하는 방법입니다. "File -> Settings" 메뉴 를 선택하여 Settings 창을 엽니다. "Appearance & Behavior -> System Settings"를 선택합니다. 오른쪽 Project 섹션에서 "Open project in New window" 를 선택합니다. 이제부터 프로젝트는 별개의 창에 열립니다.

프로그래밍/개발도구, 프로그램 | 2021. 8. 4. 22:17

Eclipse와 Android Studio 에서 Kotlin 버전 확인 방법

Kotlin을 배워보고 있는데, 갑자기 내가 쓰고 있는 Kotlin의 버전이 어떻게 되지 하는 생각이 들었습니다. 보통 언어의 버전에 민감한 편인데, 코틀린에 대해서는 왠지 아무 생각이 없었네요. https://kotlinlang.org 에서 확인한, 이 글을 쓰는 현재 안정된 최신 버전은 1.5.21 입니다. Eclipse와 Android Studio에서는 플러그인을 통해서 코틀린을 사용합니다. 쓸일이 있을까 싶긴 하지만, 명령행 컴파일러도 제공되고 있습니다(https://kotlinlang.org/docs/command-line.html). ※ Eclipse 에서 코틀린 플러그인 사용시 버전확인 방법 - 사용중인 Eclipse 버전은 2021-06입니다. 코틀린 플러그인 버전은 0.8.21 입니다. ..

프로그래밍/Kotlin | 2021. 8. 1. 00:34

안드로이드 스튜디오에서 개발용으로 스마트폰 인식 안될 때 사용해 볼 방법

안드로이드 앱개발에 코틀린을 사용해 보려고 오랜만에 안드로이드 스튜디오를 실행해 봤습니다. 업데이트를 마구 하다보니 안드로이드 스튜디오의 버전이 2020.3.1이 되어 있네요. 안드로이드 개발자 사이트에 들어가보니 이게 최신 버전이었습니다. 테스트용 앱을 만들고, 에뮬레이터에서 실행해보니까 잘됩니다. 이제 스마트폰을 연결하여 실행해 보려고하니까, 스마트폰이 인식 되지 않습니다. 좀 당황스럽네요. 스마트폰을 안드로이드 스튜디오에 연결하는 일반적인 방법은 예전에 작성한 글인 "안드로이드 앱 실행하기 - AVD"를 참고하시면 되겠습니다. 안드로이드 스튜디오 예전 버전에 관한 내용이지만 현재도 유효할 것 같습니다. 간단히 말해서 첫 번째로 스마트폰 회사에서 제공하는 전용 USB 드라이버가 필요한 경우가 있습니다..

프로그래밍/안드로이드 | 2021. 7. 31. 21:14

전자정부표준프레임워크 3.10 과 OpenJDK 16에서 WebappStructureSerializer 에러

전자정부표준프레임워크 3.10을 설치하고 이것저것 해보고 있습니다. 처음 했던게 업데이트 하는데 몇몇 업데이트 사이트 변경으로 오류가 발생해서 해결 했던 것입니다("전자정부 표준 프레임워크 eGovFrame 3.10 업데이트 오류 수정하기"). 두 번째는 Kotlin 플러그인을 설치하려고 하는데, JDK 11이 필요하다는 오류로 인해서 현재 최신인 OpenJDK 16을 설치하여 해결 하였습니다("전자정부표준프레임워크 3.10에 Kotlin 플러그인 설치오류 및 OpenJDK 16 설치하기"). 오늘 전자정부표준프레임워크 3.10의 모든 업데이트 가능한 항목을 업데이트 했습니다. 그랬더니 eclipse의 버전이 2020-06에서 최신인2021-06으로 바껴 버렸네요. 이클립스가 시작할때 스플래시 스크린이 ..

프로그래밍/개발도구, 프로그램 | 2021. 7. 28. 02:18

Kotlin - 함수(function)

※ 함수의 정의 함수는 fun 키워드로 시작합니다. ※ main 함수 - main 함수는 프로그램의 시작점입니다. 프로그램을 실행하면 메모리로 로드된 프로그램에서 main 함수를 찾아서 실행합니다. - 매개변수 args는 문자열 배열로 명령행에서 실행 프로그램명 뒤에 따라오는 인자들을 받아들입니다. fun main(args : Array) { /* ... */ } // 명령행 인자를 받지 않는 형태도 가능합니다. fun main() { /* ... */ } - 매개변수는 함수내로 값을 보내기 위해 사용됩니다. 여러개의 매개 변수가 콤마(,)로 분리되어 사용될 수 있습니다. 매개 변수가 없을 수도 있습니다. - 함수가 값을 반환하면 반환 타입을 지정해 줘야 합니다. - 값의 반환은 return 문 뒤에 값..

프로그래밍/Kotlin | 2021. 7. 26. 23:25