전체 글 (32) 썸네일형 리스트형 하네스 회고 — 무엇에 신경 썼고, 어디가 한계였고, 무엇을 배웠나 정리: 2026-08-11대상 기간: 2026-07-03 ~ 2026-07-08출처: 작업순서.txt(원본 지시), 0_HARNESS_PROCESS.md(실행 스펙), HARNESS_LOG.md(실행 기록 60건), .claude/skills/harness/SKILL.md(실행기)이 문서는 하네스를 다시 만들거나 다른 프로젝트로 옮길 때 읽는 회고다. 절차 자체의 정의는0_HARNESS_PROCESS.md 에 있고, 여기 있는 것은 그 절차가 왜 그 모양이 됐는가이다.────────────────────────────────────────────────────────────────────────0. 무엇을 만들었나──────────────────────────────────────────────.. 데이터 분석 연습+피드백 1일차 대회: 물류 유통량 예측 경진대회 링크: https://dacon.io/competitions/official/235867/data 물류 유통량 예측 경진대회 - DACON분석시각화 대회 코드 공유 게시물은 내용 확인 후 좋아요(투표) 가능합니다.dacon.io 한것- eda- baseline- combine(eda 기반 baseline 다시 잡기) 받은 피드백1. 어떠한 관찰을 발견했으면 파생변수로 어떻게 살릴까 까지 한 문장이라도 이어지면 완결된 사고가 될 것 같음2. 카테고리가 많으니 CatBoost가 유용할거라는 가설도 좋음. 모델 특성을 이해하고, 초기 베이스라인 모델을 잡으려는 시도 자체도 좋은 방법. 단, 대신 다른 모델을 처음부터 배제하면 안됨. 전처리 방식에 따라 XGBoost나 LGBM.. 원핫인코딩이 특히 불리한 경우 1. 카디널리티가 매우 높은 범주 고유값이 수천~수만 개면 차원이 폭증하고, 희소·메모리·학습 비용이 커집니다. (예: user_id, product_sku, zip code)2. 범주에 순서가 있는 경우 `낮음 3. 트리 기반 모델 XGBoost, LightGBM, Random Forest 등은 원핫보다 라벨/카테고리 네이티브 처리가 보통 더 잘 맞고, 원핫은 분할 효율을 떨어뜨릴 수 있습니다.4. 범주 간 유사도가 중요한 경우 `서울`≈`경기`, `개`≈`강아지`처럼 의미가 가깝다면 원핫은 전부 직교로 취급합니다. 임베딩·타깃 인코딩이 더 적합합니다.5. 새 범주가 자주 생기는 경우 학습 때 없던 값이 나오면 컬럼이 안 맞거나 전부 0이 됩니다. 온라인/스트리밍 데이터에 .. 레거시 3개 시스템을 하나로 옮기며 배운 것 — 스키마 불일치, 이중 저장소, 타임존, 그리고 “새 연결을 먼저”(2) 지난 글에 이어서..---6. Append-only 이벤트: 삭제도 사실을 추가한다### 이론이벤트 소싱의 핵심은 “현재 상태는 이벤트의 투영”이다. 물리 DELETE 대신 사실을 추가한다.### 적용하나의 업무 건(`reg_no` 같은 논리 ID)에 등록 → 수정 → 삭제 이벤트가 쌓이고, **최신 이벤트가 현재 상태**다. 삭제도 삭제 이벤트다. 이력 화면은 모든 이벤트, 운영 화면은 삭제되지 않은 최신 건만 본다.채번 경쟁은 UNIQUE만으로 막기 어려워 **advisory lock**으로 직렬화했다. 같은 행 안에서도 “사용자에게 보이는 식별자의 날짜 규약”과 “감사 시각의 저장 규약”이 다를 수 있음을 문서화했다.**교훈:** append-only는 감사에 강하지만, 현재 상태 조회는 항상 .. 레거시 3개 시스템을 하나로 옮기며 배운 것 — 스키마 불일치, 이중 저장소, 타임존, 그리고 “새 연결을 먼저”(1) 에너지·입찰 도메인의 레거시 웹·인증·WAS를 Next.js 모노레포 하나로 옮기는 작업을 했다. 겉으로는 “프론트/백엔드를 Next로 포팅한다”처럼 보이지만, 실무의 핵심은 UI 이식이 아니라 데이터 모델·경계·진실의 원천을 다시 설계하는 일이었다.아래는 그때 붙잡고 있던 이론과, 그걸 어떻게 코드·운영에 심었는지다.---1. 스트랭글러 피그(Strangler Fig): 한 번에 끊지 않는다### 이론마틴 파울러의 **스트랭글러 피그**는 레거시를 일괄 교체하지 않고, 새 시스템이 기능을 하나씩 감싼 뒤 오래된 경로를 점진적으로 제거하는 방식이다.### 적용작업 순서를 이렇게 고정했다.1. 신규 DB·신규 서비스로의 **연결을 먼저** 만든다 2. end-to-end로 **검증**한다 3. 그다음.. 현업에서 시계열 예측 분석할 때 사용하는 분석 기법들,, 몰랐던 내용 위주로 정리 ----- Tier 1 — 이미 있는 지표의 표준화 (저비용·고효과)1. Pinball loss / CRPS (분위 채점) — 가장 추천지금 구간 품질을 B-COVER(적중률)로만 재는데, 커버리지는 "넓게 치면 장땡"을 못 걸러냅니다. 현업(에너지 가격 예측, M-competition 계열)의 표준은 pinball loss(분위별)·CRPS(분포 전체)로, 캘리브레이션과 샤프니스를 한 숫자로 채점합니다. G블록의 "점으로는 naive를 못 이기지만 구간이 가치"라는 주장을 **"pinball loss에서 naive 구간 대비 x% 우위"**로 계량할 수 있어요 — 지금은 그 주장에 숫자가 없습니다.2. Kupiec POF + Christoffersen 검정 (P10 백테스트)B.. 결측 데이터들이 있을때, 백필(backfill)? 포워드필(ffill)? 먼저 용어를 구분하자.- 백필(backfill): 과거의 실제 관측값을 다른 API·원천에서 수집 - forward-fill(ffill): 결측일에 직전 관측값을 복사 - backward-fill(bfill): 미래 값을 과거에 복사 → 백테스트에서는 미래정보 누출이므로 원칙적으로 금지 -- 일반적인 접근 순서는 다음과 같다. 1. 결측 원인 분류- 수집 실패 → 같은 원천 재수집 - API 커버리지 부족 → 다른 신뢰할 수 있는 원천으로 백필 - 휴장·발표 주기 때문에 원래 값이 없음 → 필요할 때만 ffill - 장기간 원천 자체가 없음 → 결측 유지 또는 해당 변수를 제외 - 원본과 가공값 분리 2. 원본 테이블에는 실제 관측값만 저장 - 모델 입력 단계에서만 ffill - is_imputed, s.. 데이터분석응용 in R_로지스틱 회귀 pt2 실습260415 # 이전에 데이터부터 싹 깔끔히 날려주고# 새로운 시작!rm(list=ls()) # install.packages("caret")# install.packages("glmnet")# 혹시 안깔아뒀다면 스근하게 깔아주고~~ # 라이브러리 호출!library(tidyverse)library(caret) # 데이터 분할용library(glmnet) # 로지스틱 회귀 # 여기에서 ID, ZIP Code 열을 제거한 후# Personal.Loan 을 제외한 열들로 Personal.Loan을 예측해보겠다. # 1. 데이터 로드 및 기본 전처리bank_df # ID, ZIP Code 제거bank_df % select(-ID, -'ZIP.Code') # 참고로 ID, ZIP Code는 # Personal.L.. 이전 1 2 3 4 다음