Portfolio
움직이는 글자, 보는 법을 가르치는 앱, 안 보이는 색을 찾는 앱, 공지를 대신 읽는 봇.
Projects
Default 카메라 앞에 서면 글자가 비켜선다. 몸으로 미는 파티클 포스터.
- Year
- 2026
- Platform
- Web · MediaPipe
관람객이 곧 커서다. MediaPipe가 카메라 속 실루엣을 오려 내면, 글자에서 뽑은 파티클이 그 몸을 피해 흩어졌다가 다시 포스터로 모인다.
12초마다 폰트, 색, 간격을 새로 뽑는다. 랜덤이어도 팔레트는 WCAG 대비를 통과한 것만 쓴다. 배경은 카메라 영상을 한글로 다시 그린 모자이크다. 밝은 곳엔 ‘빛’, ‘별’, 가로 윤곽엔 ‘으’, 세로 윤곽엔 ‘이’.
모델과 WASM을 통째로 싣고 다녀 인터넷이 끊겨도 전시는 계속된다. Apple 실리콘이면 파티클을 더 촘촘히 뿌리고, 카메라에 새 프레임이 없을 땐 아무것도 계산하지 않는다.
Intent 좋은 카메라는 이미 주머니에 있다. 없는 건 의도뿐.
- Year
- 2026
- Platform
- iOS 18+ · SwiftUI
- Links
- GitHub ↗
Swift Student Challenge 출품작. 온보딩 첫 문장이 “You already have a great camera.”다. 부족한 건 장비가 아니라 의도라는 이야기.
Learn은 See First에서 Go Shoot까지 다섯 챕터. 기운 수평선을 손으로 바로 세우고, 피사체를 삼분할 교차점으로 끌어다 놓고, 초점 거리 슬라이더로 광각과 망원을 만져 본다. 마지막 미니 챌린지를 다 깨야 “Now go see.”가 열린다.
Try Out에서는 사진 한 장을 불러와 그 안에 숨은 여러 장의 사진을 잘라 낸다. 프레임마다 왜 골랐는지 회고를 남긴다. 외부 라이브러리 0개, 일러스트까지 SwiftUI Canvas로 그렸고, 사진은 기기 밖으로 나가지 않는다.
Unseen 내 눈엔 멀쩡한 색이 누군가에겐 사라진다. 그 순간을 카메라로 잡는다.
- Year
- 2026
- Platform
- iPadOS · Swift Playgrounds
- Links
- GitHub ↗
Swift Student Challenge 2026 출품작. 포스터, 교과서, 표지판에 카메라를 대면 색각 이상이 있는 사람의 눈으로 다시 보여 준다.
카메라 프레임마다 Brettel·Viénot·Mollon(1997) 색각 행렬을 CoreImage로 곱해 Deuteranopia, Protanopia, Tritanopia를 실시간으로 바꾼다. 10프레임마다 Vision OCR이 글자를 찾아 안쪽과 테두리 색으로 대비를 재고, 4.5:1에 못 미치면 FAIL을 붙인다. 측정은 시뮬레이션된 화면에서 한다. 그 눈에도 읽혀야 통과다.
의심 가는 곳을 탭하면 HEX/RGB 값과 대체 색을 제안하고, FAIL이면 햅틱으로 손끝이 먼저 안다. 카메라가 없으면 샘플 포스터로 돌고, VoiceOver와 Dynamic Type도 챙겼다. 접근성 앱이 접근성을 빼먹을 순 없으니까.
KU Notice Monitor 공지는 매일 쏟아지고 내 얘기는 한두 줄. 그것만 골라 텔레그램으로.
- Year
- 2026
- Platform
- Python · GitHub Actions · Telegram
- Links
- GitHub ↗
학사, 장학, 취창업 RSS를 긁어 와 본문까지 읽고, Gemini가 사용자 프로필을 보고 1~5점을 매긴다. Gemini가 쿼터에 걸리면 조용히 키워드 매칭으로 갈아탄다. 알림은 멈추지 않는다.
텔레그램 봇에 /profile로 학과, 학년, 캠퍼스를 알려 주고 /filter 상·중·하·없음으로 얼마나 깐깐하게 거를지 정한다. 새 사용자는 관리자가 /allow 해야 들어오고, /delete_me 한 번이면 흔적 없이 나간다.
서버는 없다. GitHub Actions가 15분마다 명령을 받고 매일 오전 10시에 공지를 돈다. 데이터베이스도 없다. 상태는 JSON 파일로 저장소에 커밋된다. 운영비 0원.
GitHub
최근 공개 저장소는 GitHub에서 볼 수 있습니다.