Kotlin

코틀린/문법및 라이브러리

[Kotlin] 단위 테스트 해보기(1)

https://seedpotato.tistory.com/276 [Effective Kotlin] 10. 안정성 - 단위 테스트(Unit Test)를 만들어라안드로이드 스튜디오를 사용하다 보면 이런 화면을 본 적이 있을 겁니다. 이곳은 단위테스를 하는 공간입니다. 그렇다면 단위테스트는 또 무엇일까요? 이번 포스팅에서는 단위테스트 무엇인지seedpotato.tistory.com이전에 책을 보다 보니 단위 테스트를 주제로 책의 내용이 진행되었습니다. 그 부분을 다 읽고 난생각은 단위테스트 어떻게 작성해야 되는가입니다. 단위 테스트가 좋은 것을 책을 봐서 알고 있습니다. 그렇다면 단위 테스트를 작성하는 문법과 양식은 무엇이고 실습을 해보며 포스팅을 진행해 보겠습니다.코틀린의 단위 테스트를 작성하고 실행하는 가장..

코틀린/문법및 라이브러리

[Kotlin] 여러 종류의 반복문

코틀린의 경우 여러 종류의 반복문이 있습니다. 이러한 반복문들은 2가지로 나눌 수 있습니다. for나 while 같은 예약어로 구성된 반복문과 repeat, foreach 같은 함수형 반복문이 있습니다. 오늘은 이 함수들을 알아보고 이반복문들의 비교를 해보도록 하겠습니다. 예약어 for for(i in Iterable){} 가장 기본적인 반복문입니다. 연속적인 값(Iterable)들을 순환하며 해당 값들을 i에 넣고 연속적인 값들의 크기만큼 순환합니다. while, do while while(조건){} do {} while(조건) 조건이 참일 경우에만 반복하는 반복문입니다. do while은 최소한번은 실행한다는 차이점이 있습니다. 함수형 반복문 repeat repeat(){} @kotlin.intern..

코틀린/문법및 라이브러리

[Kotlin] Contract 로 스마트 케스팅

오늘은 함수들을 열어보다 처음 보는 예약어를 발견했습니다. contract { returns() implies value } 그렇기에 오늘은 이 예약어들을 알아볼까 합니다. Contract의 기능 fun String?.isNotNull(): Boolean = this != null fun foo(s: String?) { if (s != null) s.length if (s.isNotNull()) s?.length // No smartcast :( } 공식문서에서는 contact가 기존의 스마트케스팅을 할 때 해당 스코프를 나가게 될 경우 스마트 캐스팅이 되지 않았던 점이 있었습니다. 그래서 코틀린은 1.3 버전부터 해당기능을 지원하는 contract 함수를 이용할 수 있게 되었습니다. 이 함수의 장점은 ..

코틀린/문법및 라이브러리

[Kotlin] 시퀀스(Sequence) 파보기

오늘을 코틀린의 시퀀스(Sequence)를 알아볼까 합니다. 시퀀스 한국말로 해석하면 수열입니다. 수열은 수가 나열된 것을 말합니다. 코틀린에서도 이와 비슷하게 리스트처럼 수들을 가지고 있을 수 있습니다. 그렇다면 코틀린은 리스트도 있는데 왜 시퀀스를 만들었을까요. 그것은 시퀀스만의 장점이 있기 때문입니다. 시퀀스의 특징에 대한 설명에 앞서 하나의 코드를 보여주겠습니다. //1번 val list = "it is a test code".split(" ") val conversionList = list.filter { it.length > 1 }.map { "[$it]" }.take(2) println(conversionList.joinToString(" "))//[it] [is] println() //2번..

코틀린/Effective Kotlin

[Effective Kotlin] 2. 안정성 - 변수의 스코프를 최소화 하라

변수의 스코프를 최소화시켜야 하는 이유 책에서는 변수의 스코프를 최소화하라고 합니다. 예시를 봐봅시다. fun main(){ val a = 1 val b = 2 val c = 3 fun fizz() { println(a+b) } fun buzz() { println(a+c) } } 이예시에서는 b와 c는 fizz와 buzz에서 밖에 쓰이지 않습니다. 그렇다면 b와 c를 fizz와 buzz안에 넣으면 어떻게 될까요? fun main(){ val a = 1 fun fizz() { val b = 2 println(a+b) } fun buzz() { val c = 3 println(a+c) } } 이렇게 넣게 되면 b나 c라는 변수를 추적하거나 함수의 스코프 밖에서는 해당 변수를 사용할 수 없습니다. 이러한 부..

코틀린/Effective Kotlin

[Effective Kotlin] 1. 안전성 - 가변성을 제한하라

- 시작하며 - 만약 잘 넘어지는 아이가 뛰어놀고 있다면 가장 간단하게 넘어져 다치지 않게 만들 수 있는 방법이 무엇일까요? 저는 우선 아이를 우선 멈춰 새 울 것 같습니다. 멈춰 새운다면 돌아다니지 않으니 다치지 않을 것입니다. 코드도 이와 비슷한 점이 있습니다. 첫 Chapter인 안정성에서는 안정성이 있는 코드를 짜서 잠재적 오류를 배제하라고 합니다. 코드 또한 안전하게 만들기 위해서는 가장 간단하게 가변성을 제한한다면 예측가능한 상황으로 만들 수 있을 것입니다. - 본문 - 코틀린의 요소 중 일부는 var 또는 mutable을 사용하여 상태를 가질 수 있습니다. 이 요소가 작다면 예측가능한 패턴만 있겠지만 그 수가 많다면 생길 수 있는 패턴이 기하급수적으로 늘어날 것입니다. 패턴이 많으면 무슨 문..

코틀린/Effective Kotlin

[Effectiv Kotlin] 책소개및 클린코드의 정의

- 시작하며 - 프로젝트를 하다 보면 예전에 만들었던 코드들과 현재코드를 비교했을 때 통일성이 없을 때가 많습니다. 대부분 그 이유는 변수나 함수를 만들 때 따로 규칙 없이 생각나는 대로 이름을 정한다든가 비슷한 규칙을 다르게 표현하면 코드가 통일성이 없고 이해하기도 힘들어지니 유지보수하기도 어려워집니다. 이런 통일성 없는 코드들을 예방하기 위해서는 클린코드 규칙을 정하고 그 규칙을 따르며 코드들을 짜야합니다. - 본문 - Java 같은경우 클린코드규칙들을 정리한 Effective Java라는 책이 있습니다. Java를 바탕으로 나온 Kotlin 또한 Effectiv Kotlin이라는 클린코드규칙들을 정리한 책이 있습니다. 이 책 같은 경우 안전성, 가독성등 52가지 주제를 가지고 클린코드를 짜기 위한 ..

안드로이드/안드로이드

[안드로이드]Toast 메시지

토스트(toast)는 화면 아래쪽에 잠깐 보였다가 사라지는 문자열 다이얼로그를 말합니다. Added in API level 1이기 때문에 따로 호완성을 걱정할 필요는 없습니다만 토스트의 몇몇 함수 들은 Deprecated in API level 30 되었기 때문에 사용 시 주의가 필요합니다. 평상시 토스트는 다른 언어의 alert나 Log, print함수같이 변수나 상황 등을 출력하고 싶을 때 안드로이드 환경에서 사용할 수 있습니다. 토스트는 android.widget.Toast안에있어 사용 시 임포트 해줘야 합니다. 토스트는 Toast의 함수인 makeText() 함수로 만듭니다. 자바(Java) ver // 토스트 메시지 표시 Context context = getApplicationContext()..

파이썬/언어공부

파이썬 정리 04

리스트와 튜플 응용하기 a = [10, 20, 30] a.append([500, 600]) print(a) #[10, 20, 30, [500, 600]] print(len(a)) #4 리스트 안에 리스트 추가하기 : append는 append(리스트)처럼 리스트를 넣으면 리스트 안에 리스트가 들어갑니다. a = [10, 20, 30] a.extend([500, 600]) print(a) #[10, 20, 30, 500, 600] print(len(a)) #5 리스트 확장하기 : extend(리스트)는 리스트 끝에 다른 리스트를 연결하여 리스트를 확장합니다. a = [10, 20, 30] a.insert(2, 500) print(a) #[10, 20, 500, 30] print(len(a)) #4 a.in..

안드로이드/깡샘의 안드로이드 앱 프로그래밍

코틀린 공부04

클래스와 생성자 class Data{ // 선언부 //본문 내용이 업다면 생략가능 } fun main(){ val data = Data() data.함수() } 클래스의 멤버는 생성자, 변수, 함수, 클래스로 구성됩니다. 코틀린에서 객체를 생성할 때 new키워드를 사용하지 않습니다. 코틀린에서는 생성자를 주생성자와 보조 생성자로 구분합니다. 한 클래스에서 주 생성자만으로도 보조 생성자만으로도 또는 둘 다 선언할 수 있습니다. 코틀린의 생성자는 constructor키워드로 선언하는 함수입니다. 주 생성자 class Data constructor(name:String){ } 위코드는 주 생성자를 선언하는 코드입니다. 주 생성자는 한 클래스에 하나만 존재할 수 있습니다. 주 생성자 constructor 키워드..

감자씨앗
'Kotlin' 태그의 글 목록 (2 Page)