들어가며 최근 Toss 같이 자바+스프링 대신 코틀린+스프링을 사용하는 기업들이 증가하고 있다. 지금 속한 동아리의 백엔드 팀에서도 자바가 아닌 코틀린을 사용하고 있다. 동아리에서 일년 가까운 기간동안 일하며 코틀린을 사용했지만, 지금까지 코틀린으로 작성한 코드를 살펴보니 단순히 자바 코드를 코틀린으로 번역한 수준에서 크게 벗어나지 않다는 것을 느꼈다. 그래서 향후 코틀린을 의미있게 사용하기 위해서, 자바 대신 코틀린을 사용했을 때 가질 수 있는 이점들을 정리하고자 한다. 컴파일 프로세스와 롬복 자바의 컴파일 과정에 대해서는 이전에 설명한 적이 있다. 그렇다면 코틀린은 어떻게 컴파일되고 실행될까?코틀린은 문법에서 차이가 있을 뿐, 자바와 완벽하게 상호 운영 가능하다는 특징을 가진다. 심지어 둘을 같이 ..
더보기 https://www.youtube.com/watch?v=jit8j4gblIk&list=PLxTmPHxRH3VXHOBnaGQcbSGslbAjr8obc&index=1&ab_channel=%EC%98%A4%EC%A4%80%EC%84%9D%EC%9D%98%EC%83%9D%EC%A1%B4%EC%BD%94%EB%94%A9 를 보고 연습해보기.. + developer 사이트 뒤지는거 너무 번거롭다 + 버전오류도 엄청 많이나는것같음 (unresolved나 메소드 못찾는 등 오류 뜨면 거의 버전오류임) 1. Room DB를 이용하여 데이터 저장하기. 안드로이드 공식사이트(developer.android.com)를 참조해보면 ROOM DB 사용을 위해서 가장 먼저 build.gradle을 수정해주자 //room ..
1-1. 람다 함수형 프로그래밍의 핵심이라고 할 수 있는 람다는 value처럼 다룰 수 있는 익명함수를 의미한다. 람다는 메소드의 파라미터로 넘겨줄 수 있으며, return값으로 사용할 수도 있다. val lamdaName:Type = {argumentList->codeBody} 선언과 타입(input,output)을 적고, 파라미터를 적고 어떻게 할지를 적어주는 식으로 동작한다. 예를 들면, val square = {number:Int->number*number} //방법 1 val square: (Int)->(Int) = {number->number*number} //방법 2 와 같이 작성하면, Int를 받아서 Int로 반환하는데, number를 받아서 number*number로 반환한다는 것을 알 ..
오랜만에 배우는 새로운 언어 1. 함수 fun functionName() { println("Hello World!"); } fun add(a:Int, b:Int) :Int { return a+b; } 자바와 다른 점은 변수/함수의 타입을 변수명/함수명 뒤에 별도로 선언해준다는 점이다. 2. 상수/변수 fun main() { val a:Int = 10; //상수(final) var b:Int = 20; //변수 } val은 상수, var은 변수를 의미한다. 추가적으로 선언과 동시에 초기화가 이루어질 경우 파이썬과 같이 dynamic type binding이 가능하기 때문에 타입을 별도로 지정하지 않아도 된다. 다만 선언과 동시에 초기화하지 않으면 별도로 타입을 지정해주어야 한다. 3. 변수 출력 val ..