2025. 3. 26. 23:31ㆍ나의 생각
퇴사 후 5개월 정도의 회고와 앞으로의 계획에 대해 포스팅하고자 한다.
회고
5개월 동안 조금 느슨해질 때도 있었지만(많았지만..),
내가 하고싶은 프로젝트도 하고, 부족한 부분들에 대해 공부하면서 나름 시간을 잘 보낸 것 같다.
먼저 2024년 11월부터 EffectSong 이라는 프로젝트를 진행하고있는데,
코드의 구조는 아쉽지만, 전반적으로 내가 초기에 상상했던 수준 정도는 달성한 것 같다.
(사용자의 입력에 맞는, 음악에 반응하는 쉐이더 효과를 만들어주고, 3D 모델과 자연스럽게 어우러지는 것.)
EffectSong
www.effectsong.com
해당 프로젝트는 앞으로 계속 진행할 예정이다.
또한, 위 프로젝트를 진행하면서 그동안 부족하다고 생각했던 것들에 대해 학습했다.
1. JS/React에 대해 좀 더 깊이 학습했다.
실무적으로 React와 JS를 써왔지만, 사실 어떻게 작동하는지, 모듈은 뭐고 JS에서의 클래스는 뭔지에 대해 무지했기 때문이다. 모던 리액트 Deep Dive와 You don't know JS Yet 책을 통해 보다 깊게 학습할 수 있었다.
앞으로 포스팅을 통해 정리하면서 더욱 깊이 이해하고 잘 사용하고 싶다.
2. TypeScript에 대해 학습했다.
요새는 npm 라이브러리들도 TypeScript를 대부분 차용하고 있고, 대다수의 회사들에서 사용하고 있었기 때문에 학습했다.
이전에 C++/C#/Java 등을 사용하며 객체지향 프로그래밍에 대해 알고 있었기 때문인지 받아들이는 것에 조금 수월했던 것 같다.
주로 인프런의 제로초 강의를 통해 학습한 후에, TypeScript를 EffectSong 프로젝트에 적용했다.
emscripten에서 typescript 정의를 내보내주는 기능을 지원해서, 확실히 이전보다 유지보수성이 높고 편리하게 웹어셈블리를 활용한 개발을 할 수 있다는 것이 체감됐다.
3. 디자인 패턴에 대해 학습했다.
이전부터 여러번 대충 본적은 많지만, 실무적으로나 개인 프로젝트를 할 때 솔직히 싱글톤같은 직관적이고 간단한 패턴말고 확장성있는 여러 패턴을 사용해본 적이 거의 없었다.
그래서 이번 기회에 인프런의 제로초 강의를 통해 열심히 학습했고, 이제 실무적으로 활용할 정도의 공부는 했다고 생각한다.
EffectSong 리팩토링 시 적극적으로 적용해볼 생각이다.
4. OpenGL 복습
EffectSong의 렌더러를 제작하기 전에, 유타대학교 온라인 강좌를 통해 OpenGL을 다시 학습했다.
여전히 한번 더 봐야할 것 같긴 하지만..
그래도 학습을 통해 어느정도 감을 잡고 EffectSong의 렌더러 제작을 할 수 있었다.
5. 약간의 백엔드 / 클로드 API 활용 능력
솔직히 이건 이해를 한 것보단.. 갖다 쓴 것에 가깝다. NodeJS/Express 서버를 간단하게 구현하고,
SSE(Server Sent Event)를 적용해서, AI의 코드를 스트리밍으로 클라이언트단에 전달하도록 구현했다.
아직 따로 AI 모델 학습을 시킨게 아니고 그저 클로드의 API를 갖다가 썼기 때문에,
프롬프트 노가다를 통해 에러도 나지않고 내가 전달하는 uniform의 정보, 어떻게 시각화해야하는지 등등을 잘 표현하도록 노력했고, 어느정도는 성공했다고 생각한다.
앞으로의 계획
EffectSong 프로젝트의 향후 계획은,
렌더러: PBR 완벽 구현, OpenGLES3 > WebGPU API로 변경
프론트엔드/백엔드: 커뮤니티 기능 추가 지원, 온디바이스 AI 추론 지원
AI: Claude API > 자체 AI 모델로 변경 및 WASM/WebGPU를 이용한 사용자 브라우저 단 추론 지원
....의 꽤나 도전적인 목표를 갖고 프로젝트를 진행하려고 한다.
이러한 도전적인 목표를 달성하기 위해서, 그리고 부족한 점을 채우기 위해서 이것저것 학습이 필요하다.
먼저, 4월 초까지 그래픽스 이론을 복습하고,
그 이후부터 Nvidia DLI 과정을 수강하며, AI에 대한 기초를 다지고자 한다.
4월에는 기초과정(C/C++/파이썬/임베디드)을 학습하므로, 크게 무리가 없을 것 같아서 WebGPU 학습과 병행하고자 한다.
이후 AI를 본격적으로 학습하며 WebGPU와 함께 AI를 통해 추론하는 방법에 대해서 학습하고 적용해보려고 한다.
그러면서, 중간중간 부족하다고 느껴왔던 것들에 대해서 추가적으로 학습 및 보충하고자 한다.
4월 전체 | WebGPU 본격 학습 + 렌더러 전환 | C++ 기반 WebGPU 구조 학습, EffectSong 렌더러 WebGPU화, emscripten 연동 |
5월 ~ 7월 | AI 핵심 개념 + 추론 이해 + 모델 경량화 | NVIDIA DLI 교육 기반 + WebGPU 기반 추론 연구 + 경량모델 전달 구조 설계 |
8월 ~ 10월 | EffectSong AI 기능 고도화 + 완성도 강화 | 사용자 단 온디바이스 추론/렌더링 통합, 인터랙션 설계 및 배포 최적화 |
WebGPU 학습 & 변환 (4월 초~ 5월 초)
Learn WebGPU 튜토리얼 | C++ 기반 WebGPU API 사용법 실습 | 정리 포스팅 |
emscripten 연동 실험 | WebGPU + C++ 코드 wasm 컴파일 → 브라우저에서 실행 | 최소 렌더링 샘플 |
EffectSong WebGPU 전환 | 기존 구조를 WebGPU 기반으로 변환, 추상화 설계 | 최소 데모 렌더링 |
JS ↔ WASM ↔ WebGPU 구조 정리 | 브라우저 상 렌더링 연산 흐름 구조 시각화 | 구조도/해설 포스팅 |
5~7월 AI 학습 (NVIDIA DLI 교육 병행, WebGPU와 연계)
AI 이론 정립 | 머신러닝/딥러닝 기초 + 텐서 연산 감각 정립 | 정리노트 + 개념 맵 |
경량모델 이해 | ONNX, quantization, pruning, distilled model | 변환 실험/보고서 |
WebGPU 추론 구조 실험 | onnxruntime-web or WebNN 기반 추론 → 렌더링 연동 | 텍스처 추론 예제 |
모델 캐싱 구조 설계 | 추론 모델의 브라우저 캐시/전달 구조 설계 | 구조도 + 정리 포스트 |
8~9월 AI 학습 및 EffectSong 고도화
Claude API 제거 → 로컬 추론 전환 | LLM 경량 모델 활용, 사용자 쿼리 파싱 처리 | 온디바이스 텍스트 → 이펙트 구조 완성 |
전체 구조 리팩토링 | 구조 통합, 설정 구조화, 저장/공유 기능 등 정리 | 깔끔한 코드베이스 |
포트폴리오화 | 기술 설명/시연/아키텍처 설계 문서화 | GitHub + 블로그 + 데모 영상 |
병행할 학습
JS/브라우저 내부 구조 | 3~4월 | 블로그 포스팅 (JS, React, 브라우저 구조 등..) 브라우저의 내부 동작(메모리/스레드)에 대한 이해 WASM과 JS가 어떻게 함께 작동하는지 이해. 웹 워커, PThread 옵션에 대해 학습 |
웹 네트워크 구조 | 4~6월 병행 | HTTP/SSL/CORS/REST 정리 |
시스템프로그래밍 | 여유 시간 | 스레드 구조 + WebAssembly에서의 적용 관점으로 복습 |
알고리즘 (코딩테스트) | 지속적 시간 투자 | 매주 2문제 이상 실전 감각 유지 |
급하게 당장의 취업을 준비하는 대신 이러한 길을 선택한 만큼, 보다 철저히 계획을 지킬 필요가 있다.
공부하고 싶은 것들을 공부하며,
AI 시대에 나 자신이 어떻게 기여하고 살아남을 수 있을지 묻고 답하는 시간이 될 수 있으면 좋겠다.
'나의 생각' 카테고리의 다른 글
디지털 게임의 문화적 접근 (교양 발표자료) (0) | 2022.12.16 |
---|---|
넥슨의 자서전 <플레이>를 읽고. 故김정주 창업자를 생각하며. (0) | 2022.06.28 |