Skip to content

Instantly share code, notes, and snippets.

View YangSiJun528's full-sized avatar

sijun-yang YangSiJun528

View GitHub Profile
@YangSiJun528
YangSiJun528 / DateTimeSerializationTest.java
Last active June 18, 2025 06:48
`@JsonFormat` LocalDateTimed와 timezone 설정하는법 & FE/BE에서 타임존 포함 시간 관리 관리하는 법
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;
@YangSiJun528
YangSiJun528 / README.md
Created July 30, 2025 12:54
스프링 코드 내부에서 팩토리 메소드 패턴
  1. 전략 패턴 (Strategy Pattern)

일반적인 설명

전략 패턴은 실행 중에 알고리즘을 선택할 수 있게 하는 행위 디자인 패턴입니다. 즉, 여러 알고리즘을 각각의 클래스로 캡슐화하고 이들을 상호 교체 가능하게 만듭니다. 클라이언트는 구체적인 알고리즘 구현 방식에 의존하지 않고, 추상적인 인터페이스를 통해 원하는 알고리즘을 사용하게 됩니다.

@YangSiJun528
YangSiJun528 / README.md
Last active August 1, 2025 03:43
Kotlin에서 Result 타입 사용에 대한 고찰

Kotlin에서 Result 타입 사용에 대한 고찰

기본 차이점

Kotlin과 Java는 예외를 기본 오류 처리 메커니즘으로 사용합니다. 이는 Rust처럼 Result 타입을 중심으로 설계된 언어와는 다른 접근 방식입니다.

그럼에도 Kotlin에서 Result를 사용하는 이유는 해당 작업이 실패할 수 있다는 것을 명시적으로 표현하기 때문입니다.

프레임워크 차원의 예외 처리

대부분의 웹 프레임워크는 전역 예외 핸들러(Global Exception Handler) 기능을 제공합니다. 따라서 개발자는 프레임워크 내부의 비즈니스 로직 작성에만 집중할 수 있습니다.

@YangSiJun528
YangSiJun528 / 2-17,2-18,2-20,2-21,2-23.js
Last active September 8, 2025 07:38
SCIP in JS 실습
// 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);
@YangSiJun528
YangSiJun528 / README.md
Last active September 17, 2025 10:04
Kotlin but Rust style

Kotlin, but Rust-style

I know Kotlin and I'm learning Rust.
I just realized that Kotlin can be used in a Rust-like style.

☠️☠️☠️

@YangSiJun528
YangSiJun528 / README.md
Last active October 16, 2025 07:11
Reflections on Trusting Trust 한국어 AI 번역

Ken Thompson의 Reflections on Trusting Trust라는 글이 PDF로 되어있어서 보기 어려움. 이를 마크다운으로 변환 -> 한국어 변환을 수행해서 보기 좋게 바꿈.

원본 자료 링크

결론

시스템은 완전히 안전하지 않다. 기술적으로 완전한 신뢰는 불가능하다. 그렇다고 해서 우리가 개인/사회의 책임을 저버려서는 안 된다.

내용 해석 추가

@YangSiJun528
YangSiJun528 / kotlin-logging-style-guide.md
Created October 30, 2025 03:16 — forked from djkeh/kotlin-logging-style-guide.md
kotlin-logging 사용법: logger 스타일 가이드

개요: kotling-logging 사용법

kotlin-logging에서 logger를 선언하는 방법은 2가지로 정리할 수 있다.

1. 표준안, 정석: static logger outside class

import io.github.oshai.kotlinlogging.KotlinLogging

private val logger = KotlinLogging.logger {} // 로거를 클래스 밖에 두는 방법
@YangSiJun528
YangSiJun528 / the_grug_brained_developer_ko.md
Created November 10, 2025 01:58 — forked from wjkoh/the_grug_brained_developer_ko.md
그럭 뇌 개발자: 자각 있는 작은 뇌처럼 생각하기 위한 평신도 안내서 by Carson Gross

Important

This is an unofficial Korean translation of The Grug Brained Developer by Carson Gross.

grug

그럭 뇌 개발자: 자각 있는 작은 뇌처럼 생각하기 위한 평신도 안내서

| 상품

소개

@YangSiJun528
YangSiJun528 / Custom Wireshark Dissector 만드는 법.md
Last active November 14, 2025 06:36
Custom Wireshark Dissector 만드는 법.md

Wireshark Lua Dissector 구현 가이드

주의사항

  • 이 글은 lua랑 wireshark api 경험 없는 사람이 한 번 시도해보고 적은 글임
  • lua 문법은 다루지 않음. 문법이 어렵진 않지만 일반 언어와 다른 함정이 몇가지 있으니 간단하게라도 찾아보기.
  • 누군가 삽질했던 기록 정도로 읽기
  • 아직도 모르는게 많음
    • Expert Info는 뭔지 아직도 잘 모르곘음
  • 예외처리, UDP와 같은 상황을 처리하는 일반적인 방법
@YangSiJun528
YangSiJun528 / Base64가 있는데 왜 Base62를 써야 하나요?.md
Last active November 21, 2025 07:28
Base64가 있는데 왜 Base62를 써야 하나요?.md & BaseN 인코딩 비교.md

Base64가 있는데 왜 Base62를 써야 하나요?

TL;DR

Base64가 Base62보다 효율적이지만, 사용 환경에 따라 Base64의 특수문자(+, /, =)가 문제를 일으킬 수 있어 Base62를 사용합니다.


진법 표기법 기초