- 전략 패턴 (Strategy Pattern)
일반적인 설명
전략 패턴은 실행 중에 알고리즘을 선택할 수 있게 하는 행위 디자인 패턴입니다. 즉, 여러 알고리즘을 각각의 클래스로 캡슐화하고 이들을 상호 교체 가능하게 만듭니다. 클라이언트는 구체적인 알고리즘 구현 방식에 의존하지 않고, 추상적인 인터페이스를 통해 원하는 알고리즘을 사용하게 됩니다.
| package com.example.datetime; | |
| import com.fasterxml.jackson.annotation.JsonFormat; | |
| import com.fasterxml.jackson.databind.ObjectMapper; | |
| import com.fasterxml.jackson.datatype.jsr310.JavaTimeModule; | |
| import org.junit.jupiter.api.Test; | |
| import java.time.*; | |
| import java.util.Map; |
일반적인 설명
전략 패턴은 실행 중에 알고리즘을 선택할 수 있게 하는 행위 디자인 패턴입니다. 즉, 여러 알고리즘을 각각의 클래스로 캡슐화하고 이들을 상호 교체 가능하게 만듭니다. 클라이언트는 구체적인 알고리즘 구현 방식에 의존하지 않고, 추상적인 인터페이스를 통해 원하는 알고리즘을 사용하게 됩니다.
Kotlin과 Java는 예외를 기본 오류 처리 메커니즘으로 사용합니다. 이는 Rust처럼 Result 타입을 중심으로 설계된 언어와는 다른 접근 방식입니다.
그럼에도 Kotlin에서 Result를 사용하는 이유는 해당 작업이 실패할 수 있다는 것을 명시적으로 표현하기 때문입니다.
대부분의 웹 프레임워크는 전역 예외 핸들러(Global Exception Handler) 기능을 제공합니다. 따라서 개발자는 프레임워크 내부의 비즈니스 로직 작성에만 집중할 수 있습니다.
| // 2-17 | |
| function last_pair(items) { | |
| return is_null(tail(items)) | |
| ? head(items) | |
| : last_pair(tail(items)); | |
| } | |
| const odds = list(1, 3, 5, 7); | |
| last_pair(odds); |
Ken Thompson의 Reflections on Trusting Trust라는 글이 PDF로 되어있어서 보기 어려움. 이를 마크다운으로 변환 -> 한국어 변환을 수행해서 보기 좋게 바꿈.
시스템은 완전히 안전하지 않다. 기술적으로 완전한 신뢰는 불가능하다. 그렇다고 해서 우리가 개인/사회의 책임을 저버려서는 안 된다.
Important
This is an unofficial Korean translation of The Grug Brained Developer by Carson Gross.