프로그래밍 언어

클로저함수 안의 함수를 결과로 반환할 때, 그 내부 함수를 클로저(Closure)라고 한다. 사용되는 곳은 다음과 같다.콜백(Callback) 함수에 사용함수의 순차적 실행데코레이터 함수 # 받은 수에 3을 곱하는 함수def mul3(n): return n * 3mul3(3)3# 받은 수에 5를 곱하는 함수def mul5(n): return n * 5mul5(3)15 이때 비슷한 기능을 하는 mul6, mul7, mul8... 도 만들어야 할까??  방법 1. 클래스(class) 사용class Mul: def __init__(self, m): self.m = m def mul(self, n): return self.m * nif __name__ == "__m..
지금까지 JAVA에서 '제네릭'이라고 하면 그냥 T로 작성해서 어떤 객체든 들어올 수 있게 하는 것 정도로만 이해하고 있다가 이번에 인터넷 강의를 들으면서 제네릭이 생각보다 더 많이 쓰이고 더 많은 내용을 담고 있어서 한번 이해해 보고자 나름대로 정리해 봤다. JAVA 제네릭Java에서 제네릭(Generic)은 코드의 재사용성을 높이고 타입 안전성을 강화하기 위한 중요한 기능이다. 이번 포스트에서는 제네릭의 개념과 함께 TraceTemplate 클래스 예시를 통해 제네릭 메서드가 어떻게 사용되는지 자세히 살펴보겠다. 제네릭이란?제네릭은 코드를 작성할 때는 타입이 결정되지 않지만, 실행 시점에 타입이 결정되도록 하는 기법이다. 이는 주로 컴파일 타임에 타입 검사를 강화하고, 런타임 시 타입 안정성을 보장하..
코드를 짜다가 foreach문을 중첩으로 사용하는 경우가 생각보다 자주 있다. 이를 더 개선할 방법이 없을까 하다가 이번에 새롭게 알게 된 문법을 소개해보려고 한다.  Function.identity()Function.identity()는 Java 8에서 도입된 함수형 프로그래밍 인터페이스 중 하나인 Function 인터페이스의 정적 메서드이다. 이 메서드는 입력 값을 그대로 반환하는 함수 객체를 생성하는 데 사용된다. 즉, Function 타입의 객체로서, 입력 값을 변경하지 않고 그대로 반환한다.import java.util.function.Function;  예제: Function.identity() 사용다음은 Function.identity()를 사용하여 리스트를 맵으로 변환하는 예시 코드이다:i..
코틀린과 스프링 부트 3에서 DynamoDB 항목 추가하기 📌 서론 이전 글에서 DynamoDB에 테이블을 생성했고 항목을 추가해 봤다. 이제 스프링 부트에서 DynamoDB를 연동해서 스프링 부트 코드에서 DynamoDB 테이블에 항목을 추가해 보자 dependencies 추가 코틀린과 DynamoDB와 연동하려면 일단 디펜던시가 필요하다. 나는 아래 링크에서 디펜던시를 가져왔다. https://central.sonatype.com/artifact/aws.sdk.kotlin/dynamodb Maven Central: aws.sdk.kotlin:dynamodb Discover dynamodb in the aws.sdk.kotlin namespace. Explore metadata, contributors..
코루틴과 suspend로 간단한 비동기 처리 📌 서론 이 글에서는 코루틴과 suspend 함수를 사용하여 복잡한 비동기 작업을 간단하게 처리하는 방법을 정리해보려고 한다. 코루틴(Coroutines) 기본 코루틴은 비동기 프로그래밍을 단순화하는 코틀린의 기능으로, 비동기 작업을 동기 작업처럼 쉽게 작성할 수 있게 해 준다. 코루틴을 사용하면, 복잡한 콜백(callbacks)이나 별도의 스레드 관리 없이 비동기 코드를 작성할 수 있다. 비동기 프로그래밍을 단순화하는 코틀린의 기능으로, 경량 스레드(lightweight threads)라고도 불린다. 그리고 비동기 작업을 동기 작업처럼 쉽게 작성할 수 있게 해준다. 코루틴을 사용하면, 복잡한 콜백(callbacks)이나 별도의 스레드 관리 없이 비동기 코드를..
코틀린과 스프링 부트 3에서 Feign Client 적용하기 📌 서론 코틀린을 적용한 알림 서버에 feign client를 적용하는 방법을 알아보자 현재 프로젝트 기술 스택이다. 코틀린 1.9.22 버전 스프링 부트 3.2.2 버전 1. build.gradle.kts에 openfeign 의존성 주입 2024년 2월 기준으로 build.gradle.kts에 추가해줘야 할 의존성은 다음과 같다. extra["springCloudVersion"] = "2023.0.0" dependencies { implementation("org.springframework.cloud:spring-cloud-starter-openfeign") } dependencyManagement { imports { mavenBom("o..
폴링(Polling) 사용해서 CompletableFuture 결과 확인하기 📌 서론 이전 글에서 CompletableFuture를 사용해서 서버에서 비동기를 적용한 내용을 작성했다. 그 후에 서버에서 비동기로 처리한 결과를 클라이언트에게 어떻게 알려줄까?라는 게 궁금해져서 해당 내용을 알아보았다. 🔻 CompletableFuture가 무엇인지 궁금하다면? 🔻 CompletableFuture를 활용한 비동기 메일 전송 구현 CompletableFuture를 활용한 비동기 메일 전송 구현 CompletableFuture를 활용한 비동기 메일 전송 구현 📌 서론 Java Mail Sender를 사용하여 메일 전송 기능을 개발하는 과정에서, 외부 라이브러리의 동기적 특성으로 인해 응답 시간이 길어지는 문제에 ..
CompletableFuture를 활용한 비동기 메일 전송 구현 📌 서론 Java Mail Sender를 사용하여 메일 전송 기능을 개발하는 과정에서, 외부 라이브러리의 동기적 특성으로 인해 응답 시간이 길어지는 문제에 직면했다. 이러한 문제를 해결하기 위해, 메일 전송 로직을 비동기적으로 처리하기로 결정하였고, 이 과정에서 CompletableFuture를 도입했다. CompletableFuture의 사용은 비동기 프로그래밍의 복잡성을 줄이고, 애플리케이션의 성능을 향상시키는 데 큰 도움이 되었다. 아래에서 Future와 CompletableFuture의 차이점, 그리고 실제 서비스 코드에 적용한 예를 통해 비동기 프로그래밍의 장점을 설명해보겠다. Future와 CompletableFuture 차이 기..
평양냉면7
'프로그래밍 언어' 카테고리의 글 목록 (3 Page)