분류 전체보기
-
Kotlin fold, reduce 메서드Kotlin/Kotlin 2024. 3. 10. 00:01
Reduce 메서드 public inline fun Iterable.reduce(operation: (acc: S, T) -> S): S { val iterator = this.iterator() if (!iterator.hasNext()) throw UnsupportedOperationException("Empty collection can't be reduced.") var accumulator: S = iterator.next() while (iterator.hasNext()) { accumulator = operation(accumulator, iterator.next()) } return accumulator } reduce 메서드의 경우 Iterable의 확장함수입니다. 초기값은 컬렉션의 첫 ..
-
Kotlin associateBy, groupBy 함수Kotlin/Kotlin 2024. 3. 9. 00:01
개요 Kotlin의 Collection을 다루는 방법 중 associateBy 함수와 groupBy 함수에 대해서 알아보고자 합니다. associateBy와 groupBy 함수 둘의 공통점은 collection의 특정한 키로 map을 만들어냅니다. 키는 KeySelector 매개변수에 정의되고 valueSelector는 키의 값에 어떤 내용을 저장할지를 정의합니다. associateBy와 groupBy 함수의 차이점 associateBy 함수는 key가 동일할 때 마지막으로 등장한 값을 덮어씌워서 사용하며 groupBy는 key가 동일하더라도 list로 모든 값을 다룰 수 있습니다. associateBy 내부구현 //key값만 받음 public inline fun Iterable.associateBy(k..
-
Adaptor 패턴으로 호출가능한 Local 환경 만들기Spring Framework 2024. 3. 8. 00:01
개요 FeignClient를 활용하다 보면 Local 호출 테스트를 수행하기 위해 MockServer를 띄우는 작업을 수행해야 합니다. 어떻게 하면 Dummy값으로라도 Local에서도 호출 테스트를 수행해 볼 수 있을까요? 문제 상황 @FeignClient( name = "localTestFeign", url = "http://external-service:8080", dismiss404 = true, ) interface ExternalServiceCallFeignClient { @GetMapping("/external-service-call") fun getExternalInformation(): String } feignClient url을 가상의 외부 도메인을 호출한다고 가정하겠습니다. @Rest..
-
Adaptor 패턴이란?디자인패턴 2024. 3. 7. 00:01
Adaptor란 무엇인가? 일반적으로 어댑터는 다른 전기나 기계 장치를 서로 연결해서 작동할 수 있도록 만들어주는 결합 도구입니다. 일상생활에서는 110V를 220V로 변환해주는 어댑터를 활용하거나 휴대폰을 220V 콘센트에 바로 연결할 수 없기 때문에 충전기라는 어댑터를 활용합니다. 소프트웨어에서는 Port and Adaptor라는 개념으로도 자주 등장합니다. 공통점은 내가 바로 제어할 수 없는것을 한단계 Layer를 통해 제어할 수 있도록 만든다는 것입니다. Adaptor 패턴 구조 코드를 통하여 바로 살펴보겠습니다. class AdaptorPatternTest { /** * Adapter 가 구현하는 인터페이스 * Client Interface : 클라이언트가 접근해서 사용할 고수준의 어댑터 모듈 ..
-
신용보증기금 신용보증재단 차이점금융지식쌓기 2024. 3. 6. 00:01
개요 신용보증기금, 신용보증재단 이름은 유사한데 어떤 차이가 있는지 구분해보고자 합니다. 공통적인 요소 해당 기관들은 은행에게 정부기관인 우리가 대신 보증을 서 줄 테니 사업자들에게 돈을 빌려주라는 보증서 업무를 수행합니다. 하지만 두 기관은 신용보증을 수행하지만 보증 대상에 차이가 나타납니다. 간단하게는 신용보증기금이 더 큰 규모의 기업을 대상으로 신용 보증 업무를 수행합니다. 신용보증기금 금융위원회 산하에 있는 준정부 기관입니다. 담보력이 미약한 중소기업의 채무를 보증하여 국민경제 발전에 이바지함을 목적으로 합니다. 신용보증재단 중소벤처기업부 산하의 신용보증재단중앙회와 각 지자체 산하의 지역신용보증재단으로 나뉩니다. 각 지역신용보증재단을 통해 보증업무가 수행됩니다. 신용보증재단법은 지역 내 담보력이 ..
-
kotlin interface default methodKotlin/Kotlin 2024. 3. 5. 00:01
개요Java8부터는 interface의 default method를 지원하지만 kotlin에서는 어떻게 활용해 볼 수 있을지에 대해 알아보고자 합니다. 문제 상황No property betweenOsVer found for type ${EntityName} JPA를 활용하기 위해서는 interface를 정의하지만 해당 interface 내부에 기본 구현을 적용하고 싶어 default method를 활용하였습니다. default method를 활용하면 spring-data-jpa가 메서드의 이름을 기반으로 쿼리를 만들어주지 않기 때문에 하지만 kotlin에서는 deafult method를 기본적으로 지원하지 않아 메서드 이름을 기반으로 쿼리를 만들어주려다가 약속된 네이밍이 아니기 때문에 위와 같은 에러메..
-
금융소비자 보호법이란?금융지식쌓기 2024. 3. 4. 00:01
개요 줄여서 금소법이라고 많이 불리는 금융소비자 보호법에 대해 알아보고자 합니다. 금융소비자보호법이란? 2021년 3월 25일에 시행되었으며 다양항 금융회사와 금융상품에 적용되는 법입니다. 금융소비자가 위법 행위로 인한 손해를 보호받을 권리에 대한 규정을 수행합니다. 다양한 조항들이 있지만 대표적으로는 6대 판매원칙, 청약철회, 손해배상, 위법계약해지, 분쟁조정제도를 규정합니다. 금융소비자의 권인 증진과 건전한 시장질서를 구축하기 위한 목정으로 제정되었습니다. 6대 판매원칙 6대 판매원칙은 금융회사가 소비자에게 금융상품을 판매할 때 지켜야 하는 여섯 가지 원칙입니다. 적합성원칙 - 충분한 정보 확인 없이 소비자에게 부적합한 상품을 권유하지 않아야 한다. 적정성원칙 - 소비자가 특정 상품을 가입하려고 해도..
-
Delegate Pattern이란디자인패턴 2024. 3. 3. 00:01
Delegate Pattern이란? Delegate는 위임이라는 뜻을 가지며 객체가 자신의 기능을 다른 객체에게 위임하여 기능을 실행하는 디자인 패턴입니다. 동일한 기능에 대해 여러번 구현하기 힘드니 한번만 구현해두고 이를 위임시키는 방법을 사용합니다. 예제 - kotlin class Animal(private val cat: Cat){ fun cry() = cat.cry() } class Cat(){ fun cry() ="야옹" } @Test fun `delegate를 직접 구현해서 동물의 울음소리를 고양이 클래스에게 위임한다`(){ println(Animal(Cat()).cry()) } Animal이란 클래스가 Cat 클래스를 인자로 받고 Cat의 cry 메서드를 그대로 사용합니다. Animal 클래..