자바에서는 여러 클래스에서 사용해야하는 중복된 코드를 Utils 클래스로 빼서 사용하기도 하는데 코틀린에서도 Utils 클래스로 분리가 필요한 메소드 사용이 필요해졌다. 코틀린에서는, 이런 클래스를 따로 빼지 않고도 Util 역할을 하는 메소드 사용이 가능하다. 그걸 바로 확장 함수라 칭한다. 대신에 확장 함수는 최상위 수준의 클래스에 위치하기만 하면 된다. 그 확장 함수는 그 파일의 맨 앞에 정의된 패키지의 멤버 함수므로, 다른 패키지에서 사용할 시에는 그 확장 함수가 정의된 패키지를 임포트해서 사용할 수 있다. 사용법은 간단하다. fun 확장할 클래스.함수명: 리턴할 타입 { return 리턴 값 } 예를 들어, String 클래스를 확장하여 String 앞에 hashtag 처럼 '#'을 붙이고 싶으..
build.gradle 파일에 의존성을 넣어준다. dependencyManagement { imports { mavenBom("org.springframework.cloud:spring-cloud-dependencies:Hoxton.SR9") } } dependencies { implementation("org.springframework.cloud:spring-cloud-starter-openfeign") implementation("io.github.openfeign:feign-httpclient:11.0") } Applicaton.kt 에 @EnableFeignClients 어노테이션을 이용해 Feign 클라이언트 사용을 선언해준다. import org.springframework.boot.auto..
작년, 2021년 12월 10일 아주아주 세계적으로 이슈가 된 아파치의 log4j 2 보안 취약 문제! (https://blog.alyac.co.kr/4341) 그 주말 새벽에 보안팀에서 연락받고나서야 긴급하게 우리 모든 서버에 올라간 소스를 열어 log4j 라이브러리를 사용하고 있는 곳이 있나 다 살펴봤다. 다행인 점은 워낙 레거시라 그런지 log4j를 써도 버전 1을 사용 중이었고, 대부분은 slf4j를 사용 중이었다. 하지만 오히려 가장 최근 소스인 Spring Boot를 사용한 서버에서는 Spring Boot에 내장된 log4j 버전 2가 빌드되어 있었다. 사용하진 않지만 빌드되어 있는 것만으로도 문제가 될까 싶어 우선 build.gradle 파일의 dependencies에 log4j 버전을, 문..