저널
학습 로그와 데이터 인사이트, 그리고 에세이를 싣는다.
스스로 채점하는 배 TrendReport SNS, 120시간 390커밋의 출항
NIPA-Google Study Jam PBL 3기 120시간에 트렌드 수집부터 AI 영상 숏폼 게시까지 도는 파이프라인을 월 0원 인프라에 올렸다. 예측에 자동 채점을 붙였더니 모델이 아니라 재는 대상이 틀렸다고 나왔다. 영상 수에서 검색량으로 바꾸자 동전 수준을 넘어 66~78%가 됐다.
다시 띄운 배 TrendReport SNS, 열흘 270커밋의 채비
교육 첫날 합류한 RAG 챗봇 팀 대신, 운영 중인 SNS에 실제로 필요한 TrendReport SNS를 1인 팀으로 다시 띄웠다. 열흘 270커밋에 생성·승인 콘솔·네 곳 게시 경로까지 이었고 병목은 만들기에서 올리기로 옮겨 갔다.
2주짜리 항해로 진수한 팝콘톡에서 내가 맡은 두 갑판
5인 팀 'hope'로 2주간 NCP 위에 영화 추천 AI 에이전트 '팝콘톡'을 올려 우수상을 받았다. 나는 어드민 콘솔(FE·BE)과 리뷰 데이터 수집을 맡아 명세를 먼저 쓰고 CI로 지키게 했다. 관람평 12만 건은 모아서 HyperCLOVA X로 회원 리뷰로 바꿨다.
NCP 인프라와 CLOVA로 빌린 바다에서 배를 짓는 첫 주
NIPA·네이버클라우드 Sovereign AI PBL 과정 3주 중 첫 주에 VPC부터 모니터링까지 인프라를 손으로 깔고 CLOVA는 플레이그라운드와 멀티 에이전트를 훑었다. 모의시험 72점을 받고 만들 줄 아는 것과 아는 것이 다르다는 걸 알았다.
미래 날짜로 출항한 리포트 — 저자가 둘이면 배가 흔들린다
7월이 절반밖에 안 지났는데 '2026년 07월 증시 월간 리포트'가 미래 날짜(7/31)를 달고 공개돼 있었다. 내가 테스트로 돌린 산출물을 커밋했더니 15분 뒤 파이프라인이 주워서 게시했다. 게시자는 파일 존재만 믿었다. 게시·커밋·푸시 경계에 관문 세 겹을 세웠고 첫 진단이 틀렸다는 것도 적어 둔다.
무료 회원제로 전환하며 경계를 파일로 가르다
리포트 완성도가 올라와 무료 회원제로 전환했다. 691줄 f-string 하나가 화면 전부였는데 이제 Next.js가 그리고 파이썬은 파이프라인으로 남는다. 회원 경계는 CSS 대신 파일로 가르고 server-only를 방어선으로 삼았다. 배포가 일곱 번 막혔는데 그중 다섯은 저장소 밖에 있었다.
세 번 틀린 뒤에 얻은 답 — 실적발표일, 종목은 요동친다
9종목 중 8종목이 실적발표일에 평소의 1.6~6.3배로 요동친다(다중비교 보정 후). 지수에서는 12개 카테고리 전부 검정력 미달이라 판정조차 못 했지만 종목으로 내려가니 신호가 잡음보다 컸다. 이 저장소에서 보정을 뚫은 최초의 결과다. 여기 오기까지 세 번 틀렸고 매번 결과가 화려했다.
코드로만 빚어 색을 쪼개는 유리 큐브
레퍼런스 이미지 한 장에서 출발해 모델링 UI를 열지 않고 bpy + Cycles 코드만으로 색분산 유리 큐브 필드를 재현했다. 3D 아이콘 파이프라인에서 파생된 랩 작품이다. Dispersion 입력이 없는 유리를 Glass BSDF 3개의 채널별 IOR로 속이는 법과 조명 시행착오 4회를 적었다.
@seohyo 작가님을 오마주한 그리드 필드 스터디
@seohyo 작가님의 그리드 기반 제너러티브 애니메이션을 분석해 바닐라 Canvas 2D로 재현했다. 시간축을 가진 노이즈 필드를 밴드로 양자화하고 밴드마다 제한된 글리프 어휘와 4색 팔레트를 매핑하면 등고선을 따라 도넛 사슬이 나타난다.
네이버 API 뉴스 수집을 함수화·모듈화하기
네이버 검색 API로 핀테크 뉴스 제목을 수집해 MySQL과 CSV에 저장했다. 반복되는 코드는 함수화·모듈화(myfunc)로 정리해 수집 스크립트를 재사용할 수 있는 도구로 바꿨다.
의사결정나무와 앙상블로 입문한 분류 모델
첫 분류 모델링 파이프라인을 밟았다. 대출 승인 예측으로 의사결정나무를 학습·해석했고 텔코 고객이탈 예측에서는 인코딩·스케일링과 배깅/부스팅 앙상블을 다뤘다.
데이터 전처리의 결측값 처리와 얕은/깊은 복사
Kaggle House Prices 데이터로 전처리 파이프라인을 짰다. 결측값은 수치형/범주형에 맞게 다르게 채웠고 얕은 복사와 깊은 복사의 차이도 직접 확인했다.
데이터 척도와 IQR로 이상치 다루기
House Prices 데이터의 이상치를 Boxplot·Scatter로 눈으로 찾고 IQR로 경계를 계산했다. 제거할지 클리핑할지 판단하며 처리 전/후 분포를 비교했다.
House Prices로 배우는 탐색적 데이터 분석(EDA)
House Prices 데이터로 EDA의 전체 흐름을 밟고 인사이트를 서술로 정리했다. 구조 파악과 결측 탐색, 수치형/범주형 분석, 타깃 분포와 로그 변환, 상관 히트맵을 차례로 거쳤다.
matplotlib·seaborn으로 데이터 시각화하기
매출 데이터로 13가지 그래프를 실습하며 명확성·일관성·맥락이라는 시각화 원칙을 익혔다. Line·Bar·Pie·Histogram·Box·Scatter·Heatmap에 Twin Axis·Log Scale·주석까지 다뤘다.
Selenium 환율 수집 자동화, 예외 처리와 DB 적재
Selenium으로 하나은행 환율을 수집하면서 공휴일·오류 상황을 방어하고 외부 dbio 모듈로 DB에 적재했다. 크롤링은 현실에서 오류를 만나며 완성해 가는 일이었다.
분석의 뼈대 NumPy·Pandas
데이터 분석의 기본 도구를 문제 풀이로 손에 붙였다. NumPy 100문제로 ndarray·shape·슬라이싱·브로드캐스팅을 익혔고 Pandas 문제로 DataFrame 조작·조건 필터링·문자열 메서드를 다뤘다.
딕셔너리와 조건문·반복문 흐름 제어 실전
딕셔너리에 if·for를 결합해 이름을 입력하면 가격을 알려주는 실전 로직을 짰다. 자료구조와 흐름 제어가 만나는 지점을 연습했다.
공공 API·크롤링·DB 저장으로 뗀 데이터 수집 첫걸음
데이터를 가져와서 쌓는 파이프라인을 처음 만들어 봤다. 소상공인 상권정보 API로 치킨집 데이터를 수집했고 하나은행 환율은 read_html로 크롤링해 자동화한 뒤 Selenium+DB까지 붙였다.
클래스로 상태와 행동을 묶어 배우는 객체지향
데이터(상태)와 기능(행동)을 하나로 묶는 객체지향의 감각을 잡았다. Person·BankAccount·Student 같은 예제로 클래스·생성자·메서드·인스턴스 변수를 익혔다.
자료형·함수·예외처리로 파이썬 기초 다지기
파이썬의 기본기를 문제 풀이로 다졌다. 출력·자료형·연산자와 리스트·딕셔너리, 함수와 예외 처리, 환경변수 관리와 JSON 다루기를 두루 풀었다.
Sakila로 SELECT와 JOIN을 익힌 SQL 첫걸음
MySQL 예제 DB Sakila로 조회(SELECT)의 전 범위를 직접 쿼리하며 익혔다. 조건·연산자·BETWEEN·IN·LIKE·NULL과 정렬·집계·GROUP BY·HAVING을 거쳐 여러 테이블을 잇는 JOIN까지 다뤘다.
지도 위의 POI 핀 하나를 웹 3D로 옮기기
TINA 로고 토큰이 박힌 3D 위치 핀(POI) 모델을 웹 뷰어로 게시한 두 번째 편이다. 이번에는 거대한 작업 씬에서 히어로 오브젝트만 추려내고 glTF가 실어주지 않는 절차적 재질의 색을 살려내야 했다.
glTF·Draco·three.js로 Blender 모델을 웹에서 돌려보기
Blender로 만든 3D 모델을 이미지나 영상 대신 3D 그대로 이 블로그에 올려 three.js 뷰어로 직접 돌려보게 했다. .blend는 애니메이션째 glTF로 내보냈고 Draco로 12MB를 629KB까지 줄였다.