본문 바로가기

Java, Kotlin, Spring/kotlin7

자바개발자가 보기에 Kotlin 에서 좋아보이는 것들 - 5 자바개발자가 보기에 Kotlin 에서 좋아보이는 것들 - 5 비동기 프로그래밍 기술 (Asynchronous Prgramming Techniques) 블로킹은 사용자들을 기다리게 만들고, 애플리케이션을 확장하는데 병목 현상을 초래한다. 애플리케이션에서 블로킹을 어떻게 막을 것인지 여러 방법이 있다. 쓰레딩 Threading 블로킹을 막기 위한 가장 잘 알려진 방법. 한 메인 프로그램에서 여러 쓰레드가 실행되며 동시 처리한다. fun postItem(item: Item) { val token = preparePost() val post = submitPost(token, item) processPost(post) } fun preparePost(): Token { // 요청을 보내 토큰을 받음 return.. 2022. 11. 12.
자바개발자가 보기에 Kotlin 에서 좋아보이는 것들 - 4 자바개발자가 보기에 Kotlin 에서 좋아보이는 것들 - 4 함수 (Functions) 기본값, 이름있는 아규먼트 (Default, Named arguements) 파라미터가 기본 값을 가지도록 할 수 있다. (default arguments) 이름있는 아규먼트 (named arguments)를 사용하여, 함수를 호출할 때 어떤 파라미터에 어떤 값을 넣는지 명시할 수 있다. 파라미터가 여러 개 있을 때 특히 유용하다. varargs 여러 아규먼트를 한나의 변수에 받아올 수 있다. variable number of arguments 라 한다. fun sum(vararg nums: Int) : Int { var result = 0 for (num in nums) { result += num } return .. 2022. 11. 7.
자바개발자가 보기에 Kotlin 에서 좋아보이는 것들 - 3 자바개발자가 보기에 Kotlin 에서 좋아보이는 것들 - 3 클래스와 객체에서 제네릭(Generics: in, out, where) 여기서는 공변, 반공변에 대한 개념이 조금 필요하다. 혹시 간단하게 알고싶다면 공변, 반공변이란 무엇일까 를 참고해보면 좋을 것 같다. 선언위치 변성 (Declaration-site variance) interface Factory { fun pop(): T fun push(t: T) // compile error } Factory 라는 클래스는 제네릭 파라미터 T 에 대해 공변(covariant) 임을 의미한다. Factory 클래스는 T 의 producer 만 가능하다고 생각할 수 있다. consumer 는 될 수 없다. 따라서 메소드 파라미터로 타입이 T 인 변수를 받.. 2022. 11. 3.
자바개발자가 보기에 Kotlin 에서 좋아보이는 것들 - 2 자바개발자가 보기에 Kotlin 에서 좋아보이는 것들 - 2 이 글은 이전에 작성했던 자바개발자가 보기에 Kotlin 에서 좋아보이는 것들 - 1 에 이어서 연재됩니다. 클래스와 오브젝트(Classes and objects) 안에서 클래스(Classes) Trailing comma data class Todo( val id: Long, val title: String, val description: String, ) 맨 밑에 작성된 프로퍼티 맨 끝에도 , 를 사용할 수 있어서 일관적으로 작성할 수 있다. trailing comma 가 없다면 새로운 프로퍼티를 추가할 때, 2줄을 수정해야 해야 한다. 반면에 trailing comma 가 있다면 한 줄만 수정해도 된다. 사소하지만 이 부분은 코드리뷰시 수정.. 2022. 10. 15.
자바개발자가 보기에 Kotlin 에서 좋아보이는 것들 - 1 자바개발자가 보기에 Kotlin 에서 좋아보이는 것들 - 1 1) 기본 타입(Basic Types) 숫자(Numbers) Byte(8 bits), Short(16), Int(32), Long(64) Float(32), Double(64) 자바에서 숫자 타입은 primitive, wrapper 타입으로 나뉘어있다. 보통은 primitive 를 쓰고, 콜렉션이나 제네릭 안에 사용되는 타입으로 wrapper 타입을 많이 사용한다. 혹은 null 필요할 경우도 wrapper 를 사용한다. (혹은 그냥 모두 wrapper 로 통일한다.) 코틀린에서는 이런 고민없이 타입이 모두 wrapper 이다. 컴파일러가 가장작은 범위의 타입으로 값을 자동으로 암시해준다. val three = 3 // Int val three.. 2022. 10. 13.
Kotlin 서버 개발하기 2 Kotlin 서버 개발하기 2 Pomodoro 최근에 알게 된 공부/일 집중 방법으로 '뽀모도로' 기법이 있습니다. 쉽게 말해 25분 공부하고, 5분 쉬는 것인데요. 실제 타이머로 25분을 재면서 어떤 일에 몰두하면, 생각보다 집중이 잘 되서 효과를 볼 수 있습니다. 특히, 25분이 끝나올 때 다급해지는 마음에 더 집중이 잘 되기도 합니다. 뽀모도로 기법은 이 포모도르를 4번 시행하면 1시간이 채워지는데, 이 때는 5분보다 좀 더 긴 휴식 시간을 가지길 권장합니다. 이렇게 한 싸이클이 끝나면, 다음 목표를 향해 다음 싸이클을 반복하면 됩니다. 지금 이 블로그 글쓰기 역시 뽀모도로 기법을 통해 집중해서 진행하고 있습니다. 이번 프로젝트는 뽀모도로 기법을 통한 자기 관리 앱을 만들 것 입니다... 2022. 9. 30.
Kotlin 서버 개발하기 1 Kotlin으로 서버 개발하기 1 개발하다보면 조금 더 간결한 표현 방법은 없는지 많이 고민하게 됩니다. 나도 동료도 코드를 더 쉽게 읽을 수 있다면 덜 피곤해지기 때문이죠. 이번 글에는 코틀린 서버 개발 세팅을 진행합니다. 프로젝트를 만들면서 진행합니다. 1. 프로젝트 생성 인텔리제이 Ultimate 버전입니다. 무료로 진행하려면 https://start.spring.io/ 에 방문하셔서 zip 파일 형태로 프로젝트를 생성할 수 있습니다. 언어: kotlin, Java 17 빌드 및 의존성 도구: gradle 2. 의존성 추가 리액티브 웹 앱 생성을 위해 아래의 의존성을 추가합니다. 리액티브로 웹 앱 간단한 예제 프로젝트입니다. (Web MVC 로 하셔도 됩니다.) 이 글의 초점은 코틀린을 활용한 웹 .. 2022. 9. 28.
728x90