본문 바로가기

전체 글104

HMAC Signature(ft. 가상 시나리오, 예시 코드) HMAC이란? HMAC(Hashed Message Authentication Code)는 메시지 인증 코드를 생성하기 위해 암호화 해시 함수와 함께 사용되는 키 기반 알고리즘이다. HMAC은 메시지의 무결성(integrity)과 인증(authenticity)을 보장하게 됩니다. HMAC은 해시 함수와 비밀 키를 사용하여 작동합니다. 메시지와 함께 비밀 키를 입력으로 사용하여 특정 출력(즉, HMAC 값)을 생성합니다. 수신자는 동일한 비밀 키와 메시지를 사용하여 HMAC 값을 계산하고, 수신된 HMAC 값과 비교합니다. 일치하면 메시지가 변경되지 않았으며 예상된 발송자로부터 왔음을 확신할 수 있습니다. HMAC이 필요한 이유 데이터 무결성: 전송 중인 데이터가 변경되지 않았음을 보장하기 위해 인증: 메시.. 2023. 10. 20.
Sealed Class란 무엇인가? Kotlin에서 sealed class는 한정된 클래스 상속을 제공하여 표현력 있는 도메인 모델을 구성할 수 있는 방법을 제공합니다. 즉, sealed class는 자신을 상속할 수 있는 클래스의 종류를 제한함으로써, 특정 상태와 행동을 더 명확하게 표현할 수 있습니다. Sealed Class의 주요 특징 제한된 상속: Sealed 클래스의 모든 하위 클래스는 동일한 파일 내에 정의되어야 하므로 컴파일러가 가능한 모든 하위 타입을 알 수 있습니다. 상태 표현: Sealed 클래스는 앱의 명시적인 상태를 나타내는 데 사용될 수 있습니다. 각각의 하위 클래스는 앱의 상태의 일부 또는 전이를 나타냅니다. Exhaustive 체크: when 표현식에서 sealed 클래스를 사용하면, 모든 경우가 처리되었는지 컴.. 2023. 10. 13.
Event Sourcing을 통한 함수형 프로그래밍의 적용 함수형 프로그래밍은 이뮤터블한 데이터와 순수 함수들을 사용해 프로그램을 표현하는 패러다임입니다. 한편, Event Sourcing은 이와 관련 깊은 관계를 가지고 있는 아키텍처 패턴입니다. Event Sourcing이란? Event Sourcing은 시스템의 상태가 아닌, 상태를 변화시키는 이벤트들을 저장하고, 이를 기반으로 시스템의 상태를 구축하는 패턴입니다. 주요 특징은 다음과 같습니다. 이벤트 저장: 모든 상태 변화는 이벤트로 저장됩니다. 상태 재구축: 현재 상태는 초기 상태에서 시작하여, 저장된 이벤트를 순차적으로 적용하여 재구축됩니다. 이벤트 재생: 이벤트는 시스템의 다른 부분에서도 재생될 수 있어, 다양한 응답과 프로세스를 구현할 수 있습니다. Event Sourcing의 장점 이력 추적: 모.. 2023. 10. 13.
코틀린에서의 `reduce` Kotlin은 여러가지 내장 함수를 제공하며, 이를 통해 개발자는 간결하고 효과적인 코드를 작성할 수 있습니다. 여기서 reduce 함수는 특히 시퀀스나 컬렉션을 활용한 연산에서 강력한 유용성을 발휘합니다. reduce의 기본 구조 reduce 함수는 컬렉션의 원소들을 하나씩 순회하면서 주어진 연산을 누적적으로 적용하고, 그 결과를 반환합니다. 그 기본적인 형태는 다음과 같습니다. fun Iterable.reduce( operation: (acc: T, T) -> T ): T 이 함수는 두 개의 파라미터를 받는 operation 람다를 인자로 받습니다. acc: 누적값으로써, 연산의 중간 결과를 저장합니다. T: 현재 순회중인 컬렉션의 원소입니다. 기본 사용 예시 먼저 간단한 예를 들어 reduce의 사.. 2023. 10. 13.