Skip to main content

4 posts tagged with "kotlin"

View All Tags

[대규모 시스템 설계 기초] 직접 구현해보는 URL 단축기

· 8 min read
Haril Song
Owner, Software Engineer at 42dot

banner

info

코드는 GitHub 에서 확인하실 수 있습니다.

Overview

URL 길이를 줄이는 것은 이메일 또는 SMS 전송에서 URL 이 단편화되는 것을 방지하기 위해 시작되었습니다. 하지만 요즘에는 트위터나 인스타그램 등 SNS 에서 특정 링크 공유를 위해서 더 활발하게 사용되고 있습니다. 장황하게 보이지 않기 때문에 가독성이 개선되고 URL 로 이동하기 전에 사용자 통계를 수집하는 등 부가적인 기능을 제공할 수도 있습니다.

이번 글에서는 URL 단축기를 직접 구현해보며 동작 원리를 살펴봅니다.

[Kotlin] Infix functions

· 2 min read
Haril Song
Owner, Software Engineer at 42dot

Kotlin 에는 Infix function 이라는 메서드 정의 방법이 있는데요, Java 를 주언어로 쓰는동안엔 상상도 못했던 문법이라 처음 Kotlin 을 시작하시는 분들을 위해 소개합니다.

단일 매개변수를 가진 멤버 함수는 Infix functions 로 변환될 수 있습니다.

Infix functions 의 대표적인 예로는 기본 라이브러리에 포함된 to 가 있습니다.

val pair = "Ferrari" to "Katrina"
println(pair)
// (Ferrari, Katrina)

필요에 따라 to 와 같은 infix functions 을 새로 정의할 수 있는데 예를 들면 Int 를 다음과 같이 확장할 수 있습니다.

[Kotlin] 향상된 반복문(Loop)

· 3 min read
Haril Song
Owner, Software Engineer at 42dot

Kotlin 에서는 Java 보다 훨씬 심플하고 편리한 반복문을 작성할 수 있다. 어떻게 사용할 수 있는지 살펴보자.

1. .. operator

val fruits = listOf("Apple", "Banana", "Cherry", "Durian")

fun main() {
for (index in 0..fruits.size - 1) {
val fruit = fruits[index]
println("$index: $fruit")
}
}

.. 을 사용하면 1씩 증가하는 전통적인 반복문이 만들어진다.

Kotlin 으로 지구 타원체 활용하기

· 4 min read
Haril Song
Owner, Software Engineer at 42dot

Background

earth image reference[^footnote]

지구는 평평하지도 완벽한 구형(Sphere)도 아닌 비표준 타원체(Ellipsoid)임을 고려하면 서로 다른 경도 및 위도 위치에 있는 두 점 사이의 거리를 빠르고 정확하게 계산하는 완벽한 공식은 없습니다.

그래도 geotools 라이브러리를 사용하면 수학적으로 보정된 근사치를 꽤나 간단하게 얻어낼 수 있습니다.