여태까지 진행했던 프로젝트들을 정리한 페이지입니다. 개인 프로젝트부터 오픈소스 기여, 학교 과제까지 다 모아봤습니다(...) 생각보다 많네요.
오픈소스 기여
뭔가 오픈소스 기여로 큰 부귀영화를 누릴 생각은 없지만.. 오픈소스 이것저것 쓰다 보면 의외로 안 돌아가는 게 한번씩 있거든요? 누군가 고쳐주길 기다리는 것보단 내가 고치는 게 빠르니까, 그때그때 필요한 건 직접 고쳐서 PR을 넣고 있습니다.
2025
- rustfs/rustfs #1018 — Helm chart에서 storageSize를 data/log 별도 파라미터로 분리. 데이터 스토리지를 2TB로 설정하면 로그도 2TB가 되어서(...) 제발 쪼개주세요 했습니다.
- thuliteio/doks #1356 — Hugo 버전 올렸더니 되던 게 안 돌아가서.. 고쳤습니다.
- Jaydee94/kubeseal-webgui #278 — 잘 쓰고 있었는데 Secret 클립보드 복사가 안 돼서.. 고쳤습니다.
2024
- opensearch-project/helm-charts #618 — Helm에서 버전 올렸더니 배포가 안 돼서 봤더니 기본 opensearch.yml이 security plugin이랑 충돌하고 있었습니다.
2023
- minio/operator #1910 — existingSecret 적용이 안 돼서 봤더니 YAML 들여쓰기가 잘못되어 있었습니다.
- getsentry/sentry #60571 — 문서 읽고 있는데 오타가 보여서.. 여러분 오타 수정은 금방 PR 받아주거든요? 큰 오픈소스에 숟가락 얹기 최고의 방법입니다.
- stepci/stepci #66 — CLI 기본 명령어 출력 추가. 처음으로 오픈소스에 PR을 넣어봤습니다!
2026
lemon-design-system
AI 에이전트 친화적 개인 디자인 시스템
- 언어: CSS
- 상태: 완료
awesome-design-md 를 GeekNews에서 봤는데, 다른 웹사이트의 디자인을 뜯어서 프리셋으로 제공한다는 건 마음에 안 들지만.. AI가 일관적인 디자인 시스템을 가질 수 있다는 아이디어 자체는 좋다고 생각했습니다.
원래 프로젝트를 이것저것 많이 하다 보니 나만의 디자인 시스템으로, 딱 디자인만 봐도 아 LemonDouble 프로젝트구나! 하고 알 수 있었으면 좋겠다는 생각을 했습니다.
그래서 실제로 아는 디자이너분께 Figma로 외주도 줘 본 적이 있었는데.. 제가 어찌됐건 서버 개발자라서.. 구현하기 힘든 부분도 있고, 프로젝트마다 계속 컴포넌트가 필요한데 그 때마다 디자이너한테 외주를 줄 수도 없어서 적용은 못 하고 있었거든요.
그런데 이 방법론이라면 가능할지도 모르겠다는 생각이 들어서, 제 favicon의 로고를 시작으로 Primary / Secondary 컬러 뽑은 뒤, 각 색상별로 채도/명도 조절하며 시안 뽑고 눈으로 검수하면서 맘에 들 때까지 수정해서 만들어 봤습니다.
블로그부터 프론트 떠있는 모든 페이지에 적용했습니다.
잘 되더라구요.
hayakoe
ONNX 최적화 일본어 TTS 라이브러리
- 언어: Python
- 상태: 개발중
TTS 쪽에 Bert-VITS → Style-Bert-VITS2 라는 계보가 있습니다.
Bert-VITS는 Fish-Speech 팀의 예전 모델이고, 지금은 autoregression 방식의 Fish-Speech 레포로 업데이트가 넘어가면서 레포 업데이트가 멈췄거든요.
여기에서 style 관련 layer를 하나 얹고, 일본어 데이터를 더 많이 학습시켜 일본어 강화 Pretrained 모델을 제공하는게 Style-Bert-VITS2 레포지토리입니다.
추가로 이런저런 개선이 있었구요.
그런데 Style-Bert-VITS2 라이브러리 업데이트가 한 8개월 전에 멈춰서.. 어차피 업데이트 멈춘 김에, 코드정리 한번 해서 더 편하게 쓸 수 있게 만들고 싶어서 작업해보고 있습니다.
구현 완료 내용
- pyopenjtalk-prebuilt 라이브러리가 업데이트가 멈춰, Python 3.12 이상에서 사용할 수 없는 문제를, 해당 레포를 포크떠서 최신 버전도 빌드되게 수정한 lemon-pyopenjtalk-prebuilt 라이브러리로 변경
- TTS 텍스트 내부에 영어가 들어가면 묵음으로 처리되는 이슈를 수정. loanwords_gairaigo 데이터를 활용해서 약 22만개 영어->카타카나 매핑을 자동 지원하고, 커스텀 사전 등록 기능 단순화
- BERT weight를 다이나믹 양자화 해서 약 메모리 사용량 50% 절감
- Synthesizer를 ONNX로 최적화해 CPU에서 약 1.6x 속도 증가 달성
- BERT / Synthesizer 모델 로드를 분리하여 BERT는 공통으로 사용, 화자마다 달라지는 Synthesizer만 따로 로드하게 하여 화자 하나마다 200MB정도의 메모리만 사용하게 개선
- PyPI 패키지로 배포하여
pip install hayakoe후 3줄 코드로 바로 사용 가능하게 정리 - CPU 전용 환경에서는 PyTorch 설치 없이 ONNX Runtime만으로 추론 가능하도록 듀얼 백엔드 구조로 변경
- 문장 단위 스트리밍 TTS(
stream()) 지원. 긴 텍스트를 한꺼번에 처리하지 않고 문장별로 순차 생성하여 실시간 응답에 활용 가능 generate()에서 긴 텍스트를 자동으로 문장 단위 분할 처리하여 약 37배 속도 향상 (400자 기준 143초 → 3.8초)weight_norm→parametrizations.weight_norm마이그레이션으로 PyTorch 2.x+ 호환성 확보
구현중인 내용
- 데이터 추출을 하고 싶은 영상에서 학습 데이터를 자동으로 만들어주는 전처리 파이프라인 구현중. 영상 업로드 → 오디오 추출 → 배경음 분리 → Whisper 자막 생성 → 데이터셋 자동 구성까지 한 흐름으로 처리
- 데이터셋 전처리부터 모델 학습, 품질 리포트 생성까지 한 흐름으로 진행할 수 있는 인터랙티브 학습 CLI 구현중
super-arona 비공개
아로나와 대화하기 - LLM 기반 3D MMD 캐릭터 뷰어
- 언어: TypeScript
- 상태: 개발중
블루아카이브의 아로나와 대화할 수 있는 3D 캐릭터 뷰어입니다.
- Babylon.js + babylon-mmd로 PMX 모델 렌더링
- 표정 모프 타겟 16종, VMD 모션 14종 지원
- Bullet WASM으로 머리카락/옷감 물리 시뮬레이션
- LLM 기반 대화 기능 연동 예정
이전에 arona라는 프로젝트가 있었는데, 이건 쿼리 파라미터로 텍스트를 받아서 표시하는 단순한 채팅 인터페이스였습니다.
super-arona는 그 후속작으로, 이름 그대로 훨씬 야심찬 버전입니다.
shiroko 비공개
날씨를 알려줘요
- 언어: TypeScript
- 상태: 완료 (개인용)
HomeAssistant에서 ADB로 TV에 띄우기 위해 만든 날씨 앱입니다.
기상청 예보 강수 유형에 따라 비/눈 같은 날씨 애니메이션을 보여줍니다.
개인용이라 별거 없긴 한데, 매일 아침 날씨 브리핑하면 자전거 타고 출근할지 말지 정할 수 있어서 편합니다.
haruna 비공개
금요미식회 설문 툴
- 언어: TypeScript
- 상태: 완료
맛집 평가 시스템입니다.
금요일마다 친구들과 맛집탐방 가는데, 이왕 먹는 김에 별점도 매기면 좋겠다 싶어서.. 익명 투표 시스템으로 만들었습니다.
- 룰렛 뽑기
- 별점 평가
- Google Maps URL 자동 복사
- QR 코드 생성
claude-dashboard 비공개
내가 보려고 만든 Claude Code용 웹 대시보드
- 언어: TypeScript
- 상태: 완료
~/.claude/projects/의 JSONL 파일을 파싱해서 Claude Code 사용량(비용, 토큰, 세션, 패턴)을 시각화하는 웹 대시보드입니다.
Docker Compose로 띄우면 끝.
내가 얼마나 Claude를 혹사시키고 있는지 한눈에 볼 수 있습니다(…).
Style-Bert-VITS2 (Fork)
Style-Bert-VITS2 기반 일본어 TTS 라이브러리
- 언어: Python
- 상태: 개발중
- 원본: litagin02/Style-Bert-VITS2
원본 프로젝트를 pip install style-bert-vits2로 바로 설치할 수 있게 라이브러리로 리패키징하고 있습니다.
ONNX 런타임으로 CPU에서도 실시간 추론이 가능하고, 패키지 다운받고 3줄이면 추론 가능하게 만들 예정입니다.
kepco_powerplanner_ha_addon
한국전력공사 파워플래너 홈어시스턴트 애드온
- 언어: Python
- 상태: 완료
원본 애드온이 HA REST API로 센서를 생성하는 방식이라 Entity ID alias를 지정할 수가 없었습니다.
- MQTT Discovery 방식으로 전환해서
unique_id를 부여하고, HA UI에서 센서 이름도 바꾸고 관리할 수 있게 개선 - Supervisor API를 통한 MQTT 브로커 자동 감지 추가로 설정 간편화
claude-slack-bridge (Fork)
Claude Code ↔ Slack 양방향 브릿지 MCP 서버
- 언어: Python
- 상태: 완료
- 원본: tomeraitz/claude-slack-bridge
Claude Code한테 일 시켜놓고 자리 비울 때 쓰려고 만든 MCP 서버입니다.
원본에서 꽤 많이 확장했는데, 주요 기능은 이렇습니다:
- MCP 도구 4종:
ask_on_slack(질문 보내고 답변 대기),notify_on_slack(알림만 보내기),upload_to_slack(파일 업로드),download_slack_file(Slack 첨부파일 다운로드) - Slack → Claude: Slack에서 봇 멘션하면 프로젝트 목록이 뜨고, 선택하면 해당 프로젝트에서 Claude 세션이 시작됩니다. 새 프로젝트 생성도 Slack에서 바로 가능.
- 실시간 진행상황: Claude가 Read, Edit, Bash 같은 도구를 쓸 때마다 Slack 메시지가 실시간으로 업데이트됩니다.
- 메시지 큐잉: 클로드 작업중일 때 슬랙 쓰레드로 메시지 달아놓으면, 작업 끝나는 대로 나머지 이어서 처리합니다.
- 이모지 리액션으로 취소: ❌ 리액션 달면 작업이 중단됩니다.
- 모델/effort 설정: 스레드 내 명령어로 모델(sonnet/opus/haiku)과 effort 레벨을 변경할 수 있고, 글로벌 기본값도 저장 가능합니다.
- 토큰 사용량 표시: 응답 완료 시 모델명, 토큰 수, 캐시 히트율, 비용, 소요 시간을 자동으로 보여줍니다.
ble_controller
BLE GATT Write 기반 범용 Home Assistant 컨트롤러
- 언어: Python
- 상태: 완료
- 회고: /p/ble-controller/
알리에서 싸구려 TV 연동 백라이트를 샀는데, 앱 연동은 되는데 서드파티 연동이 따로 없어서.. 이 기회에 BLE HCI 덤프도 배워보자 싶어서 시작한 프로젝트입니다.
전용 HA 통합이 없는 BLE 기기를 UI에서 Service UUID/Characteristic UUID/hex 페이로드만 지정하면 제어할 수 있는 범용 컨트롤러입니다.
개발기 블로그 글 도 썼습니다.
extended_graph_agents
LangGraph 스타일 시각적 멀티에이전트 워크플로우 에디터
- 언어: TypeScript
- 상태: 개발중
LangGraph를 보고 영감을 받아 제작했습니다.
홈어시스턴트에서 Entity가 점점 늘어나니까 한 Agent가 전부 처리하기엔 너무 부담되는데, 적절한 subagent로 나눌 수 없을까? 해서 만들어본 프로젝트입니다.
지금만 해도 엔티티가 한 300개 되거든요.
처음에는 React Flow 캔버스로 노드를 드래그앤드롭해서 워크플로우를 직접 구성하는 방향이었는데, Claude Code를 열심히 쓰다 보니 깨달은 게 있습니다.
직접 그래프를 만들고 싶은 니즈가 사실 거의 없더라고요.
어떻게 구성해야할지도 사실 한 번 돌려봐야 감이 오는 것 같고..
그래서 v2부터는 Claude Code처럼 자연어로 워크플로우를 계속 업데이트하고, 정말 안 되는 부분만 마지막에 직접 다듬는 방향으로 선회했습니다.
자연어로 설명하면 AI가 LangGraph 스타일 워크플로우를 자동 생성/수정하고, 저장하면 HA Conversation Agent로 바로 등록됩니다.
lemon_tts
다국어 입력→일본어 TTS Home Assistant 통합
- 언어: Python
- 상태: 완료
BERT-VITS 서버 어차피 항상 돌려놓는 김에.. 아는 사람 같이 쓰자는 느낌으로 만든 HA 통합입니다.
- 한국어/영어 등을 입력하면 자동 번역 후 일본어 음성으로 출력
- API 서버에서 스피커 목록을 가져와서 스피커별 TTS 엔티티 자동 생성
kanban
옵시디언 칸반 플러그인
- 언어: TypeScript
- 상태: 개발중
개인 작업 관리할 때 칸반을 쓰는데.. Jira는 회사에서 쓰려면 돈 내야 되고, Notion은 느리고 기능이 불편하고, 나머지도 뭔가 하나씩 빠져있는 느낌이라 직접 만들었습니다.
- 카드가
.md파일이라 LLM으로 자동 처리 가능 - 아카이브 처리하면 개인 업무노트로 활용 가능
- 옵시디언 기반이라 데이터가 완전히 로컬
write-helper
LLM 기반 글쓰기 보조 옵시디언 플러그인
- 언어: TypeScript
- 상태: 개발중
노트 저장 시 LLM이 자동으로 태그를 추천하고, YAML 정의 폼 템플릿으로 필드별 LLM 프롬프트 설정이 가능한 플러그인입니다.
뭔가 글 쓰려고 만들었는데 바빠서 안 쓰게 되긴 하네요(…).
image-manager
옵시디언 이미지 자동 최적화 플러그인
- 언어: TypeScript
- 상태: 완료
Vault에서 제일 용량 큰 게 이미지라.. 클립보드 붙여넣기나 볼트 추가 시 JPG/PNG/HEIC→WebP/AVIF로 자동 변환해줍니다.
클립보드에서 붙여넣기하면 외부 링크로 이미지가 들어가서 나중에 깨지는 경우도 있는데, 그런 것도 방지해줍니다.
git-sync
옵시디언 Git 동기화 플러그인
- 언어: TypeScript
- 상태: 완료
기존에 git 플러그인이 있긴 한데.. 맨날 볼트 나가기 전에 동기화를 까먹어서 만들었습니다.
X 버튼 누르면 commit→push 자동으로 해주니까 까먹는 일이 훨씬 줄었습니다.
lemon-pyopenjtalk-prebuilt
pyopenjtalk 사전 빌드 wheel 패키지
- 언어: Python
- 상태: 완료
pyopenjtalk이 Python 3.10 이상을 지원 안 해서 직접 빌드해서 공개한 패키지입니다.
CMake/C++ 컴파일러 없이 pip install만으로 설치 가능합니다.
2025
skopeo-setup-action
GitHub Actions에서 skopeo 셋업
- 상태: 완료
GitHub Actions 러너에 Skopeo 를 설치하는 액션입니다.
셀프호스트 OCI 호환 레지스트리에 docker buildx만으로는 레이어 업데이트를 못 해서.. 필요한 액션인데 마땅한 게 없길래 직접 만들어 쓰기로 했습니다.
misskey (Fork)
셀프호스팅 마이크로블로깅 플랫폼
- 언어: TypeScript
- 상태: 운영중
- 원본: misskey-dev/misskey
sns.lemondouble.com 에서 약 1년째 운영중인 Misskey 인스턴스입니다.
lemon 브랜치에서 아이콘 변경 같은 커스터마이징을 하면서, 업스트림 릴리즈랑 꾸준히 싱크를 맞추고 있습니다.
2024
fastapi-tdd
FastAPI TDD 강의 실습
- 언어: Python
- 상태: 완료
HateGuard 비공개
브라우저 기반 혐오 발언 자동 필터링 시스템
- 언어: Python
- 상태: 완료
마치 애드블록처럼, 브라우저 DOM에서 혐오 발언을 ML로 자동으로 걸러내는 시스템을 상상했습니다.
PyTorch로 모델을 학습하고 ONNX로 변환해서 Transformers.js로 브라우저에서 추론하는 구조입니다.
데이터셋 공개 이슈도 있어서 비공개로 진행했고, DOM에서 혐오 발언을 감지하면 빨간 네모로 표시하는 것까진 성공했는데..
데이터셋 고도화가 어렵고, Transformers.js 지원이 미약하고, DOM에서 처리할 데이터가 너무 많아서 극한의 최적화가 필요하고, 한 사람이 모든 사이트를 커버하는 게 불가능해서 일단 드랍하기로 했습니다.
project-arona 비공개
온디바이스 ML 기반 커스텀 웨이크워드 + 아로나 스피커
- 언어: Python
- 상태: 드랍
OpenWakeWord로 커스텀 웨이크워드를 학습시켜서 “아로나"라고 부르면 반응하는 스피커를 만들려던 프로젝트입니다.
웨이크워드 학습까지는 했는데.. 펌웨어 짜기가 아찔하고, 내장 마이크 성능도 안 좋고, 이 방향이 맞나 잘 모르겠어서 드랍했습니다.
저는 움직이는 화면에서 아로나를 보고 싶었거든요.
2023
lemon-k8s-cluster 비공개
가정용 K3S 홈랩 클러스터
- 언어: YAML
- 상태: 운영중
가정용 K3S 클러스터의 GitOps Config 레포지토리입니다.
ArgoCD Apps-of-Apps 패턴으로 관리하고, 미니PC(Ryzen 3750H)와 GPU 워크스테이션(Ryzen 5600x/RTX 3090/64GB) 2노드로 운영중입니다.
이 클러스터 위에서 돌아가는 서비스들:
- auth-server: Go로 만든 SSO 서버 (Traefik ForwardAuth 연동)
- search-server: OpenSearch 기반 검색 API 서버
- ml-server: TTS / ML 관련 서버 (RTX 3090 사용)
- Immich: 셀프호스팅 사진/영상 백업
- LibreChat: 멀티 LLM 채팅 UI
- Ollama: 로컬 LLM 추론 서버 (KEDA HTTP 스케일링)
- OpenSearch: 검색/로그 DB + 대시보드
- RustFS: S3 호환 오브젝트 스토리지
- Zot: OCI 호환 컨테이너 이미지 레지스트리
- CloudNative PG: PostgreSQL 클러스터 (pgvector, S3 백업)
- Argo Workflows: 크론 워크플로우 (팔로워 체크, Misskey 캐시 정리 등)
- Longhorn: 분산 블록 스토리지 (SSD/NVMe/HDD 3계층)
- 그 외 Traefik, MetalLB, cert-manager, KEDA, Sealed Secrets, Beszel 등 인프라 스택
lemon-talkgpt 비공개
talking-head-anime-3 기반 버추얼 캐릭터 채팅
- 언어: TypeScript, Python
- 상태: archived
애니메이션 캐릭터 이미지 한 장만 있으면 브라우저에서 그 캐릭터와 대화할 수 있는 프로젝트입니다.
talking-head-anime-3-demo 를 ML 서버에 올려서 상반신 애니메이션을 생성하고, MediaPipe로 얼굴 랜드마크를 추출해서 캐릭터에 매핑했습니다.
파이프라인이 꽤 긴데: 음성 녹음→STT→ChatGPT 답변 생성→번역→TTS 음성 합성→talking-head-anime-3로 영상 생성까지 한 번에 돌아갑니다.
눈 깜빡임을 양쪽이 같도록 평균값으로 보정하고, 대화가 끝나면 입을 다물게 하고, 머리/몸 방향에 따라 캐릭터가 나를 바라보게 하는 등 디테일도 신경 썼습니다.
브라우저 호환을 위해 비디오 코덱도 VP9→H.264(PyAV)로 바꿔가면서 삽질을 좀 했고, 번역이랑 TTS 생성을 비동기로 동시에 돌려서 추론 시간도 줄였습니다.
나름 열심히 만들었는데, 지금은 사용하지 않아서 archived 상태입니다.
lemon-main-page
개인 자기소개 페이지
- 언어: TypeScript
- 상태: 운영중
blog
개인 블로그
- 언어: Hugo, CSS
- 상태: 운영중
Hugo + GitHub Pages 기반 개인 블로그.
지금 보고 있는 바로 이 블로그입니다!
chatgpt-serverless-discord-bot
ChatGPT API + Lambda Serverless Discord Bot 템플릿
- 언어: TypeScript
- 상태: archived
ChatGPT API와 AWS Lambda를 이용해서 Serverless Discord Bot을 만들 수 있는 템플릿입니다.
매번 봇 하나 돌리자고 서버 띄우면 비싸니까요~
chatgpt-serverless-slack-bot
ChatGPT API + Lambda Serverless Slack Bot 템플릿
- 언어: TypeScript
- 상태: archived
lemon-chatgpt-translator
ChatGPT 검색 시 프롬프트 자동 영어 번역
- 언어: TypeScript
- 상태: archived
ChatGPT 검색할 때 한국어 프롬프트를 자동으로 영어로 번역해주는 크롬 확장프로그램입니다.
당시에는 한글 성능이 영어보다 훨씬 부족해서, 영어로 질문하는 게 나름 팁이었거든요.
번역기로 돌린 영어가 좀 어눌해도, 한국어 답변보다 훨씬 나았던 시절이었습니다.
twitter-remove-doge
트위터 로고를 Larry로 되돌리는 크롬 확장
- 상태: archived
갑자기 트위터에 일론 머스크가 도지코인 로고를 띄워서(…) 이걸 날려버리고 싶은 마음에 처음으로 크롬 확장프로그램을 만들어봤습니다.
트위터 로고를 원래 주인인 Larry에게 돌려주는 확장입니다.
2022
Lemon Twitter Toolbox 비공개
트위터 기반 BERT 챗봇 서비스
- 언어: Java, TypeScript, Python
- 상태: archived
- 회고: /p/lemon-toolbox/
취업 포트폴리오를 만드는 김에, 재밌는 걸 만들어보자 + 트래픽을 많이 받을 만한 서비스를 만들어서 이력서에 AWS 청구서를 첨부하면 눈에 확 띄지 않을까? 하고 계획한 야심찬 프로젝트였습니다.
사용자의 트윗 멘션 쌍(질문/답변)을 BERT 임베딩으로 학습시켜서 개인화된 챗봇을 만드는 서비스입니다.
AWS Lambda + SQS 파이프라인으로 ML 처리를 병렬화하고, Spring 홈서버에서 인증/DB를 담당하는 하이브리드 구조로 만들었습니다.
런칭 당일에 Spring의 SQS 소비 병목이랑 Twitter API 레이트리밋이 동시에 터져서 꽤 고생했는데, 자세한 이야기는 회고 글에 적어뒀습니다.
LLM이 흔해진 지금은 BERT라고 하면 옛날 기술처럼 보이겠지만, 당시에는 학부생 기준으로 꽤나 신기한 최신 기술이었답니다.
RabbitProtocol 비공개
종합 파일 관리 프로그램
- 언어: JavaScript
- 상태: 드랍
2021
Beacon_based_Automatic_visitor_check_program (GBPL)
블루투스 비콘 기반 방문일지 자동화
- 언어: Java
- 상태: archived
코로나 때 모든 사람들이 출입할 때마다 일지를 쓰던 시절이 있었는데, BLE를 이용해서 그냥 슥 지나가면 알아서 써지게 하면 서로 좋지 않을까? 하고 만든 프로젝트입니다.
학교 글로벌 협력 프로그램(GBPL)으로 일본, 중국, 대만, 베트남 친구들이랑 같이 진행했는데, 다양한 나라 친구들이랑 협업해본 정말 신기한 경험이었습니다.
블루투스 비콘도 직접 만들어봤고, 안드로이드를 하나도 몰랐지만 어떻게든 동작하게 만들었습니다(…).
Audio_processing_practice
음성 처리 스크립트 모음
- 언어: Python
- 상태: archived
처음 인턴할 때 음악 처리 관련 스타트업에 들어갔는데, 공부하려고 만든 레포지토리입니다.
멜 스펙트로그램 같은 것들을 여기서 배웠는데, 지금 VITS 갖고 노는 데 잘 쓰고 있습니다.
결국 배워놓으면 다 쓸모가 있더라고요.
Socket_Order_Program
C++ 소켓/스레드 기반 음식 주문 서버/클라이언트
- 언어: C++
- 상태: archived
대학 네트워크 소켓 프로그래밍 수업 과제인데, 발표 하루 전에 밤새서 겨우겨우 만든 기억이 납니다(…).
C++로 로우레벨 소켓 통신을 처음 해보고, 패킷 크기도 직접 정해서 커스텀 통신을 해봤는데 나름 재밌었습니다.
C_minus_compiler
C minus 컴파일러 구현
- 언어: C++
- 상태: archived
대학 컴파일러 수업 과제입니다.
Scanner랑 Parser까지 구현했는데, 더 하고 싶었지만 학부 한 학기는 짧아서 여기까지만..
언젠가 기회가 된다면 한번 내 언어를 만들어보고 싶네요.
재밌었거든요.
Simple_IR
TF-IDF 기반 간단한 정보검색 엔진
- 언어: Python
- 상태: archived
대학 정보검색(검색엔진) 수업 과제입니다.
문서를 읽어서 TF-IDF weight dictionary로 만들고, 쿼리와의 유사도를 측정해서 상위 10개 결과를 출력합니다.
react-test-practice
리액트 테스트 라이브러리 연습
- 언어: JavaScript
- 상태: archived
리액트 테스팅을 처음 공부해봤습니다.
당시에 취업한다고 이것저것 참 많이도 공부했네요..
github-actions-practice
GitHub Actions 실습
- 상태: archived
Spring_sample_Simple_Forum
스터디용 게시판 만들기
- 언어: Java
- 상태: archived
Spring을 처음 써본 프로젝트입니다.
간단한 시스템부터 단계별로 요구사항을 추가하면서, 객체 지향 설계랑 테스트가 왜 필요한지 고민해봤습니다.
Skyos
C++로 나만의 OS 만들기
- 언어: C++
- 상태: 드랍
python_architecture (Fork)
Architecture Patterns with Python 책 실습
- 언어: Python
- 상태: archived
- 원본: cosmicpython/code
“Architecture Patterns with Python” (Cosmic Python) 책을 읽으면서 DDD, Repository 패턴, Unit of Work, CQRS, 이벤트 드리븐 아키텍처 같은 것들을 학습한 레포지토리입니다.
많은 걸 배웠지만, 실제로 적용하는 건 또 다른 이야기더라는 걸 일하면서 깨달았습니다.
2017
Omok / Snake_Game / Simple_SQL
대학 1학년 시절의 프로젝트들
- 언어: C++, C
- 상태: 완료
대학교 1학년 때 C/C++ 배우면서 만들어본 것들입니다.
- 오목 게임
- System Call 기반 스네이크 게임
- MySQL의 기본 기능을 흉내낸 간단한 SQL 구현
1학년 때 한 거니까 귀엽게 봐주세요(…). 당시엔 진짜 어려웠답니다..