03 / Journal
Observatory
학습 로그, 데이터 인사이트, 그리고 에세이.
팝콘톡 진수 — 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가 진짜 방어선이다. 그리고 배포가 일곱 번 막혔는데, 다섯이 저장소 밖에 있었다.
세 번 틀린 뒤에 얻은 답 — 실적발표일, 종목은 요동친다
지수에서는 12개 카테고리 전부 검정력 미달이라 판정조차 못 했다. 종목으로 내려가니 신호가 잡음보다 컸다 — 9종목 중 8종목이 실적발표일에 평소의 1.6~6.3배로 요동친다(다중비교 보정 후). 이 저장소가 보정을 뚫은 최초의 결과다. 그런데 여기 오기까지 세 번 틀렸고, 매번 결과가 화려했다.
색을 쪼개는 유리 큐브 — 코드로만 빚은 작품
3D 아이콘 파이프라인에서 파생된 랩 작품. 레퍼런스 이미지 한 장에서 출발해, 모델링 UI를 열지 않고 bpy + Cycles 코드만으로 색분산 유리 큐브 필드를 재현했다. 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 시각화
Line·Bar·Pie·Histogram·Box·Scatter·Heatmap부터 Twin Axis·Log Scale·주석까지 13가지 그래프를 매출 데이터로 실습하며, '명확성·일관성·맥락'의 시각화 원칙을 익힌 기록.
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 다루기까지 — 파이썬의 기본기를 문제 풀이로 다진 기록.
SQL 첫걸음 — Sakila로 배우는 SELECT부터 JOIN까지
MySQL 예제 DB Sakila로 조회(SELECT)의 전 범위를 직접 쿼리하며 익힌 기록 — 조건·연산자·BETWEEN·IN·LIKE·NULL부터 정렬·집계·GROUP BY·HAVING, 그리고 여러 테이블을 잇는 JOIN까지.
지도 위의 핀 하나 — POI 마커를 웹 3D로 옮기기
TINA 로고 토큰이 박힌 3D 위치 핀(POI) 모델을 웹 뷰어로 게시한 두 번째 기록. 이번 관문은 거대한 작업 씬에서 히어로 오브젝트만 추려내는 것, 그리고 glTF가 실어주지 않는 절차적 재질의 색을 살려내는 것이었다.
Blender 모델을 웹에서 돌려보기 — glTF, Draco, three.js
Blender로 만든 3D 모델을 이미지나 영상이 아니라 '진짜 3D'로 게시하고 싶었다. .blend를 애니메이션째 glTF로 내보내고, Draco로 12MB를 629KB까지 줄이고, three.js 뷰어로 이 블로그 안에서 직접 돌려보게 만든 기록.