현실과 타협하지 않았던 그 시간들이 내게 속삭이는 것

그 안에 들어있는 모든 의미들은

by 김두현

나의 방황은 방황이 아니였기도 했던거 같다.

연구를 시작하면서 내가 걸어가야하는 길에 그 방황들이 한 스푼씩 묻어있다.

밑거름이 될 줄 몰랐지만, 엄청난 밑거름이 되고 있다.


내가 방황이라고 말하는 행동들이 누군가에게는 공부고 학습이였을 수도 있다.

하지만 정해진 길을 벗어나서 내가 생각하는 것을 시도했다는 점에서

그리고 현실과 타협하지 않았다는 점에서 분명 나에게는 방황이였다.

누구의 가이드도 없었고, 나는 혼자였다.


1.

나의 방황은 사실 computer vision에 대해서 탐구하면서 시작되었다.

25년 상반기였는데, 취준을 안하기로 마음먹고 AI 쪽을

그 중에서도 내가 관심이 가는 image generation 쪽으로 가닥을 잡고 탐구하기 시작했다.

가지고 있는 resource는 적었지만, 맥북으로 가능은 했다.

밤새 학습을 돌려놓고 loss를 분석하고, training을 좀 더 Explainable 하게 하기 위해서 적용했던

다양한 방법들은 pytorch에 대한 이해를 올려주었다.

비록 리소스의 한계와 무한정 방황에 대한 두려움으로 멈춰섰지만,

대략 3개월 간의 진지한 탐구는 사실 완전 엉뚱한 시도는 아니였다.


24년 상반기 고급기계학습을 통해서 이미지 모델과 모델을 확률적으로 표현하는 법을

부딪히면서 공부했기에 다소 거부감 없이 접근할 수 있었던 것이다.

그 과정에서 아래와 같은 skill?을 얻은 것 같다.


1. 논문을 찾고 읽는 법

2. PyTorch를 high-level에서 활용해서 학습하는 법 (python class, method, 상속 등등)


사실 위 과정이 회로설계라는 분야와 직접적으로 관련은 없지만,

내가 관심이 있었기에, 그리고 알아서 나쁠건 없다는 생각이였기에 시도했었다.


2.

그리고 나는 내가 익혔던 것을 동아리에서 seminar로 진행하면서 마무리 지었다.

PyTorch를 활용하기 위한 방법들 그리고 진입장벽을 낮춰주기 위해서 기획했다.


시간을 내서 강의를 녹화하는 것이 쉽지는 않았지만,

강의자료를 만들면서 내가 가지고 있던 지식들을 다시 한번 연결할 수 있었다.


그리고 이를 넘어서 더 high-level로의 도전을 한다.

HCI라는 분야를 알게되고, 그 방향으로 대학원까지 생각하며 인턴을 찾았다.

KAIST에서 인턴을 하면서는 역시 혼자하는 것보다 깊이 탐구를 할 수 있었다.

사실 크게 연구실에서 요구하는 사항이 있지는 않았지만,

정해진 연구주제를 달성하기 위해서는 나 스스로 더 깊게 탐구할 수 밖에 없었다.


들려다 볼 생각도 안했던, library의 source code를 들여다보고,

(비유하자면 라디오를 분해해서 각 파트가 하는 역할을 탐구했다고 볼 수 있다.)

그 과정에서 OpenAI repo에 PR도 해보았다.

더불어 완전 high-level인 api와 langchain에 대해서도 접하면서 HCI 분야를 한 3% 정도 체감했다고 생각한다.


이 과정에서는


3. library의 source code를 계층적으로 분석하고 debugging하는 방법

4. github opensource 생태계의 기여 방식에 대한 이해

5. LLM API를 활용하고, 프로젝트 directory를 관리하는 convention에 대한 이해

6. python 인생 3회차 수준의 코드 이해 (async method, event loop, pub-sub 구조)


를 익힌 것 같다.


3.

그리고 대학원 입시를 했다.

많이 지쳤고, 결과 발표 이후에도 몇 주는 벙쪄있었다.


회복을 하면서 다시 진짜 개인적인 탐구를 시작한다.

Langchain을 좀 더 파보면서 단순히 api call만 했던 인턴기간에서 발전해서 Agent Framework를 탐구하기 시작한다.


인턴에서는 직접 python을 활용해서 다양한 method를 이어 붙였었는데,

Langchain는 이를 자동화해주니까 더 다양한 tool이나 agent structure에 집중할 수 있게 해준다.

HuggingFace에서 제공하는 Agent courcse를 마무리했고,

https://www.linkedin.com/posts/dudududukim_aiagents-huggingface-cogito-activity-7386672913896067072-FE02?utm_source=share&utm_medium=member_desktop&rcm=ACoAAEr5baoBwnyzQRLN-2xbgBSLqVXBm-f_i_Q


매일매일 쏟아져 나오는 langchain community의 github merge들을 더 잘 이해하기 위해서,

Langchain create_agent의 middleware(hook)에 대해서 분석해보기도 하였다.

https://www.linkedin.com/pulse/what-middleware-langchains-createagent-duhyeon-kim-8hgde

아주 high-level의 추상화 개념들과 framework들을 사용해보면서 SW분야에서 사용되는 단어들을 익혔다고도 볼 수 있을 것 같다.


이 과정에서는


7. 가장 핫한 Agent 분야에 대한 이해

8. Langchain에서 hook들을 관리하는 방법들




그리고 이제 하드웨어 연구자로써 연구를 시작한다.

표면적의 위의 과정들은 모두 전부 SW였다.


왜인지 모르겠지만, 나는 위의 과정들을 하면서 결국 언전게 해야되는 일이라고 생각했었다.

오히려 모르면 나에게 독이 될 것만 같았다.


그리고 오늘 ICLR 2026 논문의 코드를 분석하면서,

CVPR, ICML, ICLR 2025 논문들을 읽으면서,

헛되지 않았음을 인지하게 된다.

(위 논문들은 모두 AI관련 논문이지만, SW에서 시작하는 HW를 드디어 연구할 수 있게 되어서 행운이라고 생각한다.)


그 간의 인공지능에 대한 깊은 이해를 위한 노력,

github로 대표되는 opensource 생태계를 향한 나의 도전은

내가 현재 연구자로써 해야되는 일들에 가속을 붙여주고 있다.


(hook이라는 추상적 개념도 낯설지 않고, 연구자가 작성한 코드를 뜯어봐야되는 것에 대한 거부감도 없다, 하드웨어 관점에서 코드에 적용되는 다양한 메모리 최적화 전략들도 이해되고, 무엇보다도 계층적으로 작성된 프로젝트 코드에서 어떻게 code agent와 협업하여 빠르게 debugging을 하는지에 대해 체감한다.)


직접적인 연관이 없을지라도
과거의 시간들이 나에게 속삭임해주듯
현실에 도움을 주는 것을 체감하다보면
과거의 시간에서 느꼈던 외로움과 불안이
조금은 치유되는 느낌을 받는다.


그 감정을 기록하기 위해서 이 긴 글을 마무리하며, 다시 코드를 분석하러 가봅니다.


p.s. 동일 주제로 글을 몇개를 쓰는지 모르겠는데, 이제는 아마 해당 에피소드가 마무리되지 않을까 싶다.

작가의 이전글필연적 혼자의 시대(김수영)을 읽고