Skip to content

Instantly share code, notes, and snippets.

View khaki4's full-sized avatar
πŸ’­
On Focus to the SICP

Jiwon khaki4

πŸ’­
On Focus to the SICP
View GitHub Profile
@khaki4
khaki4 / .luarc.json
Created March 7, 2026 13:13
AstroNvim v5 configuration
{
"format.enable": false
}

AI μ‹œλŒ€μ˜ TDD: 닀관점 μ‘°ν•© μ „λž΅

λ°°κ²½

전톡적 TDD(Test-Driven Development)λŠ” μ‚¬λžŒμ΄ μ½”λ“œλ₯Ό μž‘μ„±ν•˜κΈ° 전에 ν…ŒμŠ€νŠΈλ₯Ό λ¨Όμ € μž‘μ„±ν•˜μ—¬ 섀계λ₯Ό κ°•μ œν•˜κ³  ν’ˆμ§ˆμ„ ν™•λ³΄ν•˜λŠ” 방법둠이닀. AI μ—μ΄μ „νŠΈκ°€ μ½”λ“œλ₯Ό μƒμ„±ν•˜λŠ” μ‹œλŒ€μ— TDDκ°€ μ—¬μ „νžˆ μœ νš¨ν•œμ§€, μœ νš¨ν•˜λ‹€λ©΄ μ–΄λ–€ ν˜•νƒœμ—¬μ•Ό ν•˜λŠ”μ§€λ₯Ό κ²€ν† ν•œλ‹€.


@khaki4
khaki4 / serena-worktree-cache-hook
Last active March 1, 2026 02:36
Git post-checkout ν›…: μƒˆ worktree 생성 μ‹œ Serena MCP .serena/ μΊμ‹œ μžλ™ 볡사. cold-start LSP 인덱싱 제거. claude --worktree, git worktree add λ“± λͺ¨λ“  worktree 방식 지원.
#!/bin/bash
# Git post-checkout ν›…: μƒˆ worktree 생성 μ‹œ .serena/ μΊμ‹œλ₯Ό μžλ™ 볡사
#
# 문제: Serena MCPλŠ” LSP 인덱슀 μΊμ‹œλ₯Ό .serena/ 디렉토리에 μ €μž₯ν•œλ‹€.
# μƒˆ worktreeλ₯Ό λ§Œλ“€λ©΄ 이 μΊμ‹œκ°€ μ—†μ–΄μ„œ 맀번 μ²˜μŒλΆ€ν„° 인덱싱이 μ‹œμž‘λœλ‹€.
#
# ν•΄κ²°: 이 훅이 메인 worktree의 .serena/λ₯Ό μƒˆ worktree둜 μžλ™ λ³΅μ‚¬ν•œλ‹€.
# claude --worktree, git worktree add λ“± λͺ¨λ“  worktree 생성 방식에 λ™μž‘ν•œλ‹€.
#
# ──────────────────────────────────────────────
@khaki4
khaki4 / ghostty_config
Last active February 28, 2026 13:07
Ghostty terminal config
# ============================================
# Ghostty Terminal - Complete Configuration
# ============================================
# File: ~/.config/ghostty/config
# Reload: Cmd+Shift+, (macOS)
# View options: ghostty +show-config --default --docs
# --- Typography ---
font-family = JetBrainsMono Nerd Font
@khaki4
khaki4 / flow.md
Created February 14, 2026 13:13
ai work flow

λΈŒλΌμš΄ν•„λ“œ AI 개발 μ›Œν¬ν”Œλ‘œμš°

핡심 원칙: μ½”λ“œμ˜ μ‹ λ’°λŠ” μž‘μ„±μžκ°€ μ•„λ‹ˆλΌ 검증 μ‹œμŠ€ν…œμ—μ„œ μ˜¨λ‹€. μ‚¬λžŒμ΄ μ§œλ“  AIκ°€ μ§œλ“  ν…ŒμŠ€νŠΈμ™€ 리뷰둜 κ²€μ¦λœ μ½”λ“œλ§Œ μ‹ λ’°ν•œλ‹€.


μ „μ œ 쑰건

  • Phase 0: document-project β€” μ™„λ£Œ μƒνƒœ
@khaki4
khaki4 / ani.jsx
Created January 21, 2024 09:37
물방울 μ—λ‹ˆλ©”μ΄μ…˜ with framer
import { useScroll, motion, useSpring, useTransform } from "framer-motion";
import React, {useRef, useState} from "react";
const ScrollAnimations = () => {
const carouselRef = useRef(null)
const { scrollYProgress } = useScroll()
const scaleX = useSpring(scrollYProgress)
const background = useTransform(
@khaki4
khaki4 / day5-part1.js
Created January 4, 2022 14:50
advent of code 2021 day5-part1
let inputs = values
.split("\n")
.map((c) => c.split(" -> ").map((v) => v.split(",").map(Number)));
const gameBoard = new Array(1000).fill(0).map(() => new Array(1000).fill(0));
let refinedArray = [];
function isValidSegment([[x1, y1], [x2, y2]]) {
if (x1 === x2) return "y";
if (y1 === y2) return "x";
return false;
@khaki4
khaki4 / day4-part2.js
Created January 3, 2022 15:36
advent of code 2021 day4-part2
const callOrder = inputs[0].split(",").map(Number);
class BingoGame {
#callOrder = [];
#bingoBoard = [];
#bingoBoardIndex;
#lastCalledNumber;
constructor(bingodata) {
this.#setCallOrder(bingodata);
@khaki4
khaki4 / day4-part1.js
Created January 3, 2022 13:23
advent of code 2021 day4-part1
const callOrder = inputs[0].split(",").map(Number);
class BingoGame {
#callOrder = [];
#bingoBoard = [];
#bingoBoardIndex;
#lastCalledNumber;
constructor(bingodata) {
@khaki4
khaki4 / day3-part2.js
Created January 2, 2022 08:44
advent of code 2021 day3-part2
function rating(arr) {
return (derminFn) => {
let inputs = [...arr];
let index = 0;
while (inputs.length > 1) {
let zeroCount = 0;
let oneCount = 0;
const bucket = { 0: [], 1: [] };
for (const v of inputs) {