Uknow's Lab.
article thumbnail
[코파기 1부] 11. 코틀린과 함수 (Function)

함수란 무엇일까요. 처음 들어본건 수학시간 때 였습니다. f(x) = 2x + 5 등 형태였지요. 프로그래밍에서 말하는 함수도 수학시간 때 배웠던 함수와 비슷합니다. 프로그래밍에서의 함수는 쉽게 말하자면, '특별한 작업을 수행할 목적으로 작성된 일련의 코드 블록' 입니다. 함수를 쓰는 이유는 간단합니다. 반복적인 코드를 피할 수 있거든요. 반복적인 코드가 줄어들면, 개발이 용이할 뿐 아니라, 유지보수 역시 쉬워집니다. 함수(Function) vs 메소드(Method) 함수(Function)는 특정 작업을 수행할 목적으로 작성된 일련의 코드 블럭입니다. 그리고 메소드(Method)는 이러한 함수가 클래스 내에서 정의된 형태입니다. 즉, 함수와 메소드는 독립적이냐, 클래스에 종속적이냐로 볼 수 있는데요. 두..

article thumbnail
[코파기 1부] 10. 코틀린과 반복문 (2) : 흐름제어 - continue, break + 라벨링

반복문을 반복하고 있다가, 중간에 반복문을 멈추거나, 해당 회차를 건너뛰고 싶을 때가 있습니다. 이럴때 쓰기 좋은 반복문의 흐름 제어 방법에 대해 알아봅시다. break for(i in 0 until 10) { if(i == 5) { break } printin(i) } // 출력 >> 0 1 2 3 4 break는 반복문을 탈출하는 키워드입니다. 위 프로그램은 i가 0 부터 10까지 1씩 증가하지만, i가 5가 되는 순간(i == 5) break를 걸어 반복문을 탈출하는 프로그램입니다. 주로 if / when문과 같이 쓰이곤 합니다. 2중 for문에서 break는 어떻게 동작할까? for(i in 0 until 3) { for(j in 0 until 3) { if(j == 2) break println..

article thumbnail
[코파기 1부] 9. 코틀린과 반복문 (1) : for, while, do-while, repeat, forEach

프로그래밍은 굉장히 많은 일을 할 수 있습니다. 계신기부터 자율 주행 시스템까지, 수많은 기술들이 그렇겠지만, 정보 기술의 등장 이래 프로그래밍은 현대 사회의 근간을 바꿔왔고, 바꿀 기술이라 생각합니다. 이런 프로그래밍을 활용해 할 수 있는 일 중 하나는 바로 반복적인 일을 처리하는 것이지요. 네 그렇습니다. 이번에 소개해 드릴 것은 코틀린의 반복문입니다. for C와 Java 처럼 코틀린에서도 for을 사용한 반복문이 있습니다. 하지만 구조는 조금 다릅니다. // Java for(int i = 0; i>> 55 반복문과 세트로 항상 같이 나오는 예시이죠. 1부터 10까지의 합 구하기 입니다. 1 .. 10 (혹은 1 until 11)으로 1부터 10까지의 범위를 돌며, sum에 값을 누적시켜 구할 수 ..

article thumbnail
[코파기 1부] 8. 코틀린과 리스트 (List)

List란 무엇일까요. 배열(Array)는 연속된 데이터의 집합으로, 메모리에 물리적으로 연속되어 저장됩니다. 하지만 그렇다보니, 단점이 하나 있습니다. 바로 크기가 고정되어 있다는 것이죠. 한 번 생성하면, 크기를 줄이거나 늘리지 못합니다. 이러한 점 때문에 리스트(List)가 등장하였습니다. 리스트는 각 원소가 다음 원소의 주솟값(포인터)를 갖고있어, 메모리에 물리적 연속이 아니라 논리적으로 서로 연속되어 있습니다. 즉, 크기를 줄였다 늘였다 할 수 있는 가변 크기의 연속된 데이터이죠. 다만, 물리적 연속이 아닌 논리적 연속이기 때문에 속도는 배열보다 느립니다. 불변(Immutable) 리스트 val list = listOf(1, 2, 3) val list2 = List(3) { it } 코틀린의 L..

article thumbnail
[코파기 1부] 7. 코틀린과 배열 (Array)

배열 (Array)란, 여러개의 데이터를 효율적으로 처리하기 위해 고안된 자료구조입니다. 원소들이 연속적으로 나열되어 있는 형태이며, 한 번 선언된 배열의 크기를 바꾸는 것은 불가능합니다. 굉장히 자주 쓰이는 기본적인 자료구조인데요. 자바를 자주 쓰셨던 분들이라면 int[] arr = new int[3]; 과 같은 형태로 많이 쓰셨을텐데, 코틀린에서는 어떻게 배열을 생성하고 사용할까요? 코틀린의 배열 생성 var arr = arrayOf(1,2,3) // 0번째 인덱스 -> 1, 1번째 인덱스 -> 2, 2번째 인덱스 -> 3 println(arr[1]) // 출력 2 코틀린에서 배열은 위와 같이 arrayOf(원소 1, 원소 2, 원소 3, ... )으로 생성할 수 있습니다. val intArr = i..

article thumbnail
[코파기 1부] 6. 코틀린과 null (.? !!. ?:)

코틀린은 설계부터 null을 고려하여 설계된 언어입니다. nullPointerException. 자바 개발자라면 정말 많이 마주쳤고, 그리고 마주칠 오류죠. 코틀린의 null 안전성을 고려한 설계는 개발자들이 null 값을 다룰 때, 개발자들의 실수를 줄여줄 수 있을 겁니다. 코틀린의 nullable var a: Int = null // 오류 발생! var a: Int? = null // ? 키워드를 붙여줌으로써 null 값을 가질 수 있도록 만듬 코틀린에서는 자료형 뒤에 ?를 붙임으로써 nullable(null값을 가질 수 있음)하게 만들 수 있습니다. 코틀린 표준 입출력편에서 나왔던 readln()과 readLine()의 차이점, 기억나시나요? readLine()는 null을 입력으로 받을 수 있지만..

article thumbnail
[코파기 1부] 5. 코틀린과 조건문. 그리고 표현식

이번 시간에는 코틀린의 조건문과 표현식에 대해 다뤄보겠습니다. if if. 만약이라는 뜻이죠? 어떤 조건에 따라 프로그램을 수행하고 싶을 때 사용하는 키워드입니다. val a = 3 if(a == 3) { println("YES. a is 3") } // 출력 YES. a is 3 if문은 if(조건) { (몸통) }과 같이 사용할 수 있으며, if 바로 뒤에오는 조건이 true이면 if문의 중괄호 내 코드를 실행합니다. val a = 3 if (a == 3) println("YES. a is 3") // 출력 YES. a is 3 조건문 블록 내 코드가 한 줄일 경우, 중괄호는 생략하여도 됩니다. if문 다중 조건 비교 val a = 3 val b = 4 if(a == 3 || b == 4) { // ..

article thumbnail
[코파기 1부] 4. 코틀린과 연산자

대입 연산자 fun main() { var n = 3 } 대입 연산자 (=)는 오른쪽의 값을 왼쪽에 대입하는 연산자입니다. 위 코드의 경우, n에 3을 대입하는 역할을 합니다. 산술 연산자 fun main() { var a = 5 var b = 2 var result1 = a + b // a와 b의 덧셈 var result2 = a - b // a에서 b를 뺌 var result3 = a * b // a와 b의 곱셈 var result4 = a / b // a에서 b를 나눔 (정수형의 경우 소숫점 절삭) var result5 = a % b // a에서 b를 나눴을 때의 나머지 println(result1) println(result2) println(result3) println(result4) prin..

article thumbnail
[코파기 1부] 3. 코틀린과 기본 입출력

이번엔 코틀린의 기본 입출력에 대해 알아보겠습니다. 표준 출력 (Standard Output) println("Hello Kotlin") // 자동으로 줄 바꿈 print("Hello Kotlin") // 자동으로 줄 바꿈 하지 않음 코틀린에서의 출력은 println(), print()를 사용합니다. 메소드 이름에서 유츄할 수 있듯, 둘의 차이는 개행문자(\n)로, 자동으로 줄 바꿈을 하냐 안하냐의 차이입니다. println("Hello Kotlin") println("Hello Kotlin") println("Hello Kotlin") println("Hello Kotlin") // 실행결과 Hello Kotlin Hello Kotlin Hello Kotlin Hello Kotlin print("Hel..

article thumbnail
[코파기 1부] 2. 코틀린과 자료형

코틀린의 기본 자료형(Primmitive)의 타입은 자바와 동일합니다. 크게 숫자 / 문자 / 논리 자료형으로 나눌 수 있는데, 이미 자바의 자료형에 익숙하신 분들이라면, 본 파트는 넘기셔도 됩니다. 숫자 자료형 (정수) Int var age: Int = 3 var age2 = 13 // 자료형 생략 가능 Int형은 정수를 담는 자료형입니다. 소숫점이하의 값은 담을 수 없습니다. Int형은 4바이트(32비트)로써, -2^31 ~ 2^31 - 1 반큼의 범위를 표현할 수 있습니다. Long var number: Long = 10000000000L // 접미사 L을 붙여 사용 var number2 = 10000000000L // L을 붙여 Long형임을 추론할 수 있으므로 자료형 생략 가능 Long은 Int..