xistoh.log
[←] back to notes

// 2026-04-22 - 8 min read

[v: 66]

2026 Q1 회고 ☀️

#일상

어제 26년도 1분기 회고를 했다. 중간고사가 빨리 끝나서 시간이 남았기 때문이다.

회고를 왜 하냐 하면 그러게, 링크드인도 많이 보고, 다양한 분들을 보는데, 회고를 다들 열심히 하시는 것 같다. 회고가 좋은 습관인것 같기도 해서, 이번에 블로그를 개설하면서 열심히 써보려고 한다.

+ 할게 없어서 찜질방에서 쓰고 있다.

🧖
🧖 🥵

몰입캠프

1월 초에 제주도 갔다온 후로, 바로 몰입캠프가 시작되었다. 11월에 지원서를 넣을 때부터 주위 모두가 재미고, 해보라고 하는 캠프라서 기대를 많이 했었는데, 기대했던 것만큼 재미있었던 시간이었다.

1주차에는 Flutter로 안드로이드에서 작동하는 일기 앱을 만들었다
깃: MusicLog.
일기를 작성하면 LLM이 탑 100 차트로부터 적절한 노래를 추천해서 매칭해주는 앱이었다. Flutter는 Dart라는 언어를 사용하는데, 이 프레임워크가 크로스플랫폼을 쉽게 지원해준다는 점에서 내 산출물을 웹으로 포팅하거나 옮기는 작업이 편하다는 것을 늮ㄹ 수 있었다. 근데, 원래 프론트를 해본 경험이 없기도 하고, 모바일은 더더욱 해본 경험이 없어서 그런지, 이번에 모바일 UI/UX를 만든느데 애를 많이 먹었다. 가상 키보드 올라오면 레이아웃도 안보이거나, 터치 인터렉션을 고려하고, 더더욱, 모바일은 내 컴퓨터에서 테스트를 할 수 있지만, 가상 머신을 돌리고(매우 느리다), 그런 작업들도 복잡하게 느껴졌다. 웹에서 쓰는 프레임워크를 Flutter에서는 바로바로 가져오지 못한다는 문제도 있었다.

그리고, 1주차에(가 아니라 몰입캠프 전체에)내가 세운 목표가 있었으니, AI는 최대한 안 써보고 하자는 입장이었고, 쓰더라도 완전 자동화하는 에이전트를 돌리는 게 아닌, 디버깅을 하거나 물어보는 과정에서 구글 검색 엔진처럼 사용하고자 하는 원대한 목표를 세웠었다. 그래서 플러터 관련한 대부분의 자료를 다 구글 검색으로 찾았다. 하면서 무언가 중학교 2학년 때로 돌아가 파이썬으로 막 만들던 시기랑 비슷한 느낌을 받았다. 그때는 AI가 없어서 간단한 프로젝트도 밤새면서 만들었다. 그렇게 해서 구글과 "스택오버플로우 <- 이친구는 문제 상황은 아는데, 요즘 사용자들이 줄어들어서 그런지, 버전이 다 옛날 버전이거나 지금과는 맞지 않는 부분들이 있다", 티스토리 등을 뒤져가며 산출물을 완성했다. 산출물에 완전히 만족하지는 못했는데, AI 시대에서 나의 기준이 높아진 부분도 있을 것 같다. 그리고, 돌이켜보면 역할 분배를 제대로 못한 문제도 있는 것 같다. 확실히 웹이었다면 기능별로 프론트와 백을 나누기 편했을텐데, 둘 다 플러터를 처음 해봐서 어디서부터 해야할지도 모르기도 하고 그랬고, 애매하게 역할이 나뉘었다. 결국 코드 통합 시에 많은 부분의 코드를 다시 새로 짰다. 이런 거 할때는 지금 와서 드는 생각이지만 두시간에 한번이라도, 서로의 진행 상황을 끊임없이 트래킹해야할 것 같다.

1주차 산출물 MusicLog. 일기를 쓰면 AI가 top100의 음악 가사를 바탕으로 노래를 선정해 앨범 커버와 노래로 하루를 기록할 수 있다.
1주차 산출물 MusicLog. 일기를 쓰면 AI가 top100의 음악 가사를 바탕으로 노래를 선정해 앨범 커버와 노래로 하루를 기록할 수 있다.

2주차에는 Spring Boot로 백엔드를 담당했다(몰입캠프는 1주일마다 팀이 바뀐다). 작년에 SKYST 해커톤 나가서 봤던 건데, 해커톤 운영진들이 Git을 트래킹해서 해커톤 기간동안 커밋 많이 한 랭킹으로 특별상을 시상했다. 그걸 보고 좀 더 경쟁적으로 할 수 있지 않을까? 해서 시작된 프로젝트였다.

1주차에는 AI를 챗봇 형태로만 사용하고, 코드는 내가 타이핑하거나 복사해서 넣는 식으로, 최대한 AI에게 주권을 뺏기지 않고 해보고자 했다. 그러나 2주차 팀원들과 프로젝트를 구상하고 설계하다 보니, 굉장히 비대해졌다. API만 아마 50개가 넘어가고, AI Wrapper 기능들도 존재해서 Queue와 Worker 설계(시간이 오래 걸리고 API 사용량을 컨트롤해야했다)등도 들어갔다. 백엔드는 Spring Boot를 사용했고, 시간 안에 다 만들수 없을 것 같아서, 요즘 유행하는 SDD 개발을 수행했다. DB와 API 관련 모든 것을 마크다운과 Mermaid를 활용해 문서화했고, 에이전트가 항상 참조할 수 있도록 만들었다. 또한, 에이전트가 아무 간섭도 안하고 모든 것을 만드는 것이 아닌, 철저히 승인 위주의 단계로 돌려놨다(그 전까지 내가 에이전트를 대할 때에는 Auto Editing 모드로 돌려왔었다). DB 스키마로 Repository 서비스 모듈을 만들고, 그 위에 기능 요구사항과 API 문서를 바탕으로 서비스 모듈을 만든 다음에, API까지 구현하는 그런 계층적으로 확장하도록 에이전트를 사용했고, 이틀 정도 빡세게 굴리다 보니까 백엔드는 완성되었다. 이거 하면서 느끼는 부분인데, 사실, 단순 CRUD랑 권한 다루는 작업, 서비스 만드는 이런 백엔드는 시간만 있다면 손으로 작성해서 금방(물론 에이전트보다는 느리겠지만) 만들겠다는 생각이 들었다. 다만, LLM 래퍼를 붙이는 순간, LLM 처리를 위한 다양한 부수적인 것들이 붙기 때문에 골치가 아파지는 것이다.
SDD 긱뉴스: SDD(Spec Driven Development) 개발

이렇게 해서 만들어진 산출물 Github Code Analyzer?를 만들었다.
처음 내가 생각한 것과는 많이 달라지긴 했다. 좀 경쟁적인 부분을 상상했었는데, 팀과 개발 방향을 맞추는 부분에서 경쟁적인 부분보다는 각 커밋을 분석해주는 도구로서 발전한 것 같다. 그리고 이번 플젝을 통해 더 역할에 관한 문제를 겪었다. 3명이었고, 짧은 단기간에 개발하는 상황에서 백을 기능상으로 나누기에는 서로 코드 스타일이나 백 설계 스타일이 달라서 백에서 충돌이 확실하게일어날 것처럼 보였다. 결국 3명 중 1명은 이번 플젝에서 거의 아무것도 못했다(공부하셨다).
깃 링크:

프론트

3주차에는 놀았다. 그게 정확한 요약이다. 쉬어가는 타이밍을 가지고 싶기도 했고, 아이디어도 떨어졌다. 공포게임을 만들기로 했는데, 크래프톤 빌딩에서 귀신 아니면 괴물이랑 술래잡기 하는 그런 무언가?(크래프톤 빌딩 기반 그래니)를 만들고자 하였다. 모두가 Unity를 쓰길래, 오기가 돌아서 UnrealEngine을 이용해 만들고자 했다. 아주 실수했다. 언리얼엔진은 진짜 무겁다. Unity도 무거운데, UnrealEngine을 돌리면 다른 앱을 다 종료시켜야한다. 배워보려고 유튜브 보면서 따라하는데, 코드도 아니고 GUI에 각 객체의 성분과 Flow를 연결시키는 블록코딩(레고 마인드스톰의 코딩 UI랑 비슷하다)이어서 AI에게 물어보지도, 시키지도 못하는 그런 상황이 발생했다;;

결국 유니티로 전환 선언, 하루 뒤에 포기. 최종적으로 React를 활용해 공포게임을 만들었다. 리엑트로도 충분한 분위기의 공포 게임을 만들 수 있다는 것을 알게 되었다. 남은 3일동안 사운드와 에셋, 점프스케어에 치중하다 보니, 긴장감을 어느 정도 올릴 수 있었다. 개발하는 동안 코드보다 무서운 소리 찾고 테스트하는 시간이 더 많았다. 프론트밖에 없고 공포 게임 말고 기능이 없기 때문에 유일하게 몰캠 중 아마 아직도 호스팅되고 있는 작품일것이다.
데모: 몰입캠프 3주차 공포게임

4주차는 Vision Pro를 이용해 가상환경에서 게임?을 만들었다. iPhone의 IMU 센서 데이터를 UDP로 Vision Pro에 보내서, 손에 든 폰을 광선검처럼 사용자 시야에 렌더링하는(그리고 실제 3D 오브젝트도 썰 수 있는) 프로젝트를 시도했다.

삽질이 가득했다. 일단, iPhone이랑 Vision Pro 둘 다 Xcode위에서 빌드해야한다. 굉장히 비효율적이다 Apple은 순정 IMU 대신 카메라 센서와 IMU를 조합한 ARKit이라는 훌륭한 API를 제공하는데, 이걸 쓰면 복잡한 변환이나 계산, 4원수 같은 이산한 것들의 작업 없이 위치 데이터를 얻을 수 있다. 이걸 사용해, iPhone의 Vision Pro 좌표계의 상대 Offset을 초기에 계산하면, 정확한 위치, 각도 등을 알 수 있다.

IMG_8671
Vision Pro의 ARKit로 손 위치와 머리의 방향 벡터를 가져올 수 있다. 여기에 Backbone까지 복원하고 싶었는데, 모델의 한계와 데이터의 부족으로 되지는 않았다.

그렇게 해서, 두 기기를 연결하고 내 맥으로 또 연결된 데이터를 싸주는 등의 작업(컴퓨터에서 3D로 렌더링하는 편한 디버깅을 위해)을 한 후, 광선검을 Vision Pro 내에서 렌더링 하는 순간, ARKit과 나의 데이터 프로세싱, Delay 등의 한계로 수많은 Offset이 발생했다. 오류가 가면 갈수록 축적되고, 후에 가서는 광선검을 이제 막 손으로 날릴 수도 잇게 되었다??(어찌 보면 포스를 쓸 수 있는 것일지도) 보완할 점이 산더미지만 시도는 좋았다고 생각한다.

IMG_8672
휴대폰의 위치를 손바닥에 초기 고정되어있다 가정하고 서로의 상대 좌표를 계산했다. 물론 Offset이 많아 오류가 갈수록 누적되었다.
IMG_8673
최종 데모. 광선검이 나오기는 한다.

몰캠하면서 한달 동안 같은 분반끼리 많이 친해졌다. 이렇게 하루종일 팀메이트랑 붙어있으면서 교실같은 배치에 앉아있다 보니까, 고등학교 간 기분이었다. 다들 좋은 인연 이어나갈 수 있으면 좋겠다.

🧑‍💻
🧑‍💻 밤샘날. 과거에는 많이 밤샜다는데, 요즘은 개발 효율이 좋아서 밤샌 날은 손에 꼽았다.

AI

몰캠 4주를 돌아보면, 나의 AI 활용 태도가 변했다.
1주차에는 최대한 AI 없이 해보겠다고 선언했다. 2주차에는 설계는 내가, 구현은 AI에게 맡기되 내 눈으로 검증하는 방식을 취했다. 3주차에는 자유롭게 썼다.
의도한 변화는 아니었고 자연스럽게 흘러간 건데, 돌이켜보니 나만의 기준이 하나 잡힌 것 같다 — 내가 설계를 이해하고 검증할 수 있는 범위 안에서 쓰는 건 괜찮다. 이 블로그 사이트를 Codex 친구한테 맡겼을 때도 그랬다. API 문서를 하나도 정의하지 않고 요구사항만 잘 정리해서 제공했는데, 걔가 알아서 문서 만들어서 해주더라(디자인 가이드는 문서화와 코드화해서 제공해주었다). 아까 말한 SDD가 AI에게 최적화된 개발 스타일인 것 같다.
근데 그 코드를 보지 않고 재현하라? 솔직히 못 한다. 이건 문제다. 그건 내 실력이 아니라 AI의 실력이다.

GDGoC

GDGoC KAIST 커뮤니티 리드를 작년 가을에 이에서 계속 맡으면서 이번 학기에는 방향을 좀 틀엇다. 전에는 좀 커뮤니티에서 무언가를 공유하기보다는 활동 위주와, 개별 활동을 관라하는 부분의 위주로 진행을 했었는데, 그러니까 정모 시간에 하는 것이 많이 없어 보여서, 이번에는 무언가를 공유 한다에 초점을 주었다.

내 nvim이랑 맥 셋업(수많은 어플과 단축키 조합 등)도 언젠가 공유해볼만하지 않을까?라는 아이디어에서 시작되었다. 근데 무작정 공유하기에는 아무도 안 할 것 같아서, "기술 세션"이라는 포맷을 만들었다. 그래도 명색이 개발자 커뮤니티인데, AI 논문 스터디도 중요하고 바이브 코딩이 아무리 대세더라도, KAIST에서는 웹 개발 안알려주니까, 러프한 지식이나 view는 잡아가면 좋지 않을까?라는 생각이었다. 여기에 더해, 좀 더 바이브 코딩에 관련한 지식과 트렌드를 기술 세션에서 준비자들이 생각하면서, 자신이 고민하는 부분이나 그런 것들을 공유할 수 있게 했다.

Git, 웹, DevOps 같은 기초 지식부터 바이브 코딩, RAG 시스템, Agentic Workflow, MLOps까지. 조를 짜서 각 주제를 한 세션식 진행하는 방식이다. 여기에 구성원들의 인사이트나 경험을 나눌 수 있는 자유 세션도 추가했다. 창업 경험을 나누거나, Claude Code 유출 코드 분석을 하거나, 물리학과신데 랩에서 툴 만들어서 사용하거나 해본 프로젝트를 공유하시는 분들 등 다양한 주제가 오가고 있다.

결과적으로 꽤 좋은 반응을 얻고 있다. 새로 들어오신 분들도 다양한 경험을 가지고 계시고, 뒤로 갈수록 세션의 퀄리티가 점점 증가하고 있다. 나도 배울게 많다. 여름 학기에도 온라인으로라도 플젝이나 이런 세션을 진행할 수 있지 않을까 한다.

그 외

NYU.

붙을 생각 안 하고 있었는데, 붙어버렸다. 작년 12월에 넣었고, 토익 성적으로 설마 될까 하는 맘에 넣었다. 근데 서류가 붙어서 몰캠 첫주차에 면접을 부랴부랴 보고 가게 되었다. 올해 내 하반기는 뉴욕에서 보내게 생겼다. CyberSecurity 트랙이고, 그래서 되도않는(전에는 생각도 안하던) 정보보안에 관심을 가지게 되었다;; 허겁지겁 네트워크랑 정보보호개론 수업도 듣고 있다. 같이 가는 유일한 남자학생도 만나서 룸메이트 하자고도 하고, 정보 공유도 하고 잇다. 근데, 저기 수강신청도 문제가 많아 보인다. 자꾸 과목 들을 수 없다고 한다.

회사.

스타트업에서 3월부터 AI 챗봇을 만들고 있다. 이벤트 추천 기능에서 시작해서, 좀 더 플랫폼과 결합된 Agentic한 플로우를 수행하는 것을 목표로 하고 있다. 에이전트와 함께 개발하니까 아직까지는 할만하다.

nvim 입문.

몰캠하면서 Cursor, VSCode, IntelliJ 등등 오만가지 IDE를 써봤는데, 다 쓰면서 느낀 것중 하나는 "굉장히 무겁다"엿다. 내 컴퓨터 램의 절반인 16GB를 브라우저랑 IDE가 잡아먹는다. 더 나은 IDE가 없을까 해서 조사를 시작했고, nvim을 세팅하기 시작했다. LazyVim 기반으로 Obsidian 연동, RemoteSSH, LSP, Wakatime까지 지금 돌아가는 플러그인만 100 ~ 200개 될 것 같다. LazyVim 기반이라서, 다들 한번에 올라오는 것이 아닌, 필요할 때, 사용할 때만 해당 플러그인이 올라와 가볍다.

nvim intro
커스텀한 nvim 화면

카페 투어.

개강 이후, 수업이 오전에 몰려 있어서 오후에 시간이 빌 때면 학교를 탈출해 대전 곳곳의 카페를 돌아다녔다. 둔산동 프랭크커핀바, 월평동 카페, 충대 앞, 봉명동 등... 주로 과제를 하러 갔는데, 대전 카페 돌아다니면서 네이버 지도에 지도 저장하는 것 - 이런 여유가 좋았다. 5월에도 많이 가려고 한다.

학교앞 잠봉뵈르집인데 좀 친다
학교앞 잠봉뵈르집인데 좀 친다

블로그 & 프로필 사이트.

그리고 이 사이트를 만들었다! 프로젝트 탭에 있는 포스트에 자세히?는 모르겠지만 제작 수기를 적어두었다.

랩인턴

작년 가을부터 관심있던 한준 교수님 랩에 5월부터 인턴으로 들어가게 되었다. 대학원생 분들이 나에게 열심히 해야한다고 하셨는데, 풀타임 연구를 원하는 만큼, 좀 열심히 해보고 싶다.

Q1에 한게 없을 줄 알았는데 적다 보니 정신없이 살아온 것 같다. Q2도 열심히 살아야겟다.

끝!

// end of note

[< prev][next >]
[likes: 0]

// comments

// use the same 4-digit PIN to delete your own comment

// no comments yet