전체 글
-
ScheduledThreadPoolExecutor란?Java/Executor Service 2024. 3. 17. 19:29
개요 ScheduledThreadPoolExecutor라는 개념을 알게 되어 이해해보고자 합니다. 해당 글을 읽기 전 Future, ThreadPool, ExecutorService, ThreadPoolExecutor 개념에 대해 잘 모른다면 다음 글을 읽고 오시면 좋습니다. ExecutorService란? ThreadPoolExecutor란? ScheduledThreadPoolExecutor란? val fixedThreadPool = Executors.newFixedThreadPool(2) val scheduledThreadPool: ExecutorService = Executors.newScheduledThreadPool(2) //newScheduledThreadPool 내부 구현은 Scheduled..
-
Kotlin takeIf와 takeUnless 함수Kotlin/Kotlin 2024. 3. 13. 00:01
개요 Kotlin에서 takeIf()와 takeUnless() 함수를 제공한다는 사실을 알게 되었고, 해당 함수들에 대해서 알아보고자 합니다. takeIf 함수 public inline fun T.takeIf(predicate: (T) -> Boolean): T? { contract { callsInPlace(predicate, InvocationKind.EXACTLY_ONCE) } return if (predicate(this)) this else null } takeIf 함수는 T (어떤 객체)의 확장함수입니다. predicate를 인자로 받아서 조건에 만족하는경우 자기 자신을 반환하거나 null을 반환합니다. takeUnless 함수 public inline fun T.takeUnless(predi..
-
SOHO란?금융지식쌓기 2024. 3. 12. 00:01
SOHO란? Small Office Home Office의 약자로 기존 사무실의 개념에 벗어나는 공간 내에서 이루어지는 사업을 뜻합니다. 창업용어로써 전문성을 가지고 적은 자본으로도 창업이 가능합니다. 흔히 가택 근무 형태나 인터넷 등을 통해 소규모 사업을 하는 개인 자영업자들을 말합니다. KB 국민은행의 SOHO센터 국민은행을 예로 들면 SOHO 센터를 운영하며 개인사업자 지원제도 및 전용대출상품등을 제공합니다. 참고자료 https://www.moef.go.kr/sisa/dictionary/detail?idx=224 https://m.blog.naver.com/sbcblog/222130815315 https://ko.wikipedia.org/wiki/%EC%86%8C%ED%98%B8_(%EC%98%A4..
-
logback 초간단 사용법모니터링 2024. 3. 11. 00:01
개요Logback은 Java 커뮤니티에서 가장 널리 사용되는 로깅 프레임워크 중 하나입니다. log4j를 대체하고 있으며 빠른 적용이 가능합니다. Dependencydependencies { implementation("ch.qos.logback:logback-core:1.3.5") implementation("ch.qos.logback:logback-classic:1.3.5") testImplementation("org.slf4j:slf4j-api:2.0.4")}3가지 의존성을 추가해주면 됩니다. Logback Architecture %d{HH:mm:ss.SSS} [%thread] %-5level %logger{36} - %msg%n ..
-
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 : 클라이언트가 접근해서 사용할 고수준의 어댑터 모듈 ..