Skip to main content

12 posts tagged with "java"

View All Tags

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

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

Background

earth image reference[^footnote]

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

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

@JsonNaming 사용 방법

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

API 에서 제공하는 json naming 방식과 어플리케이션 내의 naming 전략이 다를 경우가 있습니다.

{
"Title": "Frozen",
"Year": "2013",
"Type": "movie",
"Poster": "https://m.media-amazon.com/images/M/MV5BMTQ1MjQwMTE5OF5BMl5BanBnXkFtZTgwNjk3MTcyMDE@._V1_SX300.jpg",
"imdbID": "tt2294629"
}
private String title;
private String year;
private String imdbId;
private String type;
private String poster;

변수명을 json key 와 일치시키지 않으면 데이터에 값이 들어가지 않습니다.

이 때 @JsonProperty(value)를 사용하면 프로젝트 안에서의 변수명을 바꾸지 않고 데이터를 매핑할 수 있습니다. 하지만 @JsonProperty(value)는 필드에 작성해야하므로 naming 전략이 다른 필드가 많다면 과하게 많은 어노테이션을 작성하게 되어 코드가 어노테이션으로 지저분해지겠죠.

바로 이럴 때 클래스레벨에 작성하여 클래스의 naming 전략을 한 번에 바꿀 수 있는 어노테이션이 바로 @JsonNaming 입니다.