2026년 상반기 회고
힌트: 글 전체를 관통하는 주제가 하나 있는데요 마지막에 그 내용을 담았으니, 마지막 문단에 어떤 내용이 나올지 예상하면서 읽어보시죠
유난히 고되었던것 같다. 26년 상반기의 나 그리고 내게 있었던 빅 이벤트는... 크게 이정도일것 같다
상투적인 것은:
특별한 것은:
- (c) 새로운 인연을 만났다
- (d) 콘서타를 만났다
- (e) 데스크탑에서 리눅스를 사용한다
- (f) 코딩/터미널 에이전트 구독을 시작했다
- (g) 장발을 시도했었다
- (h) 내가 뭘 하고 싶은지 조금은 알것 같다
(a) 여전히 호랑에듀에 다니고
25년 9월부터 지금까지 재직중이다. 곧 10달이 된다. 소프트웨어 개발을 하고 있다. 학기중에는 주에 20시간을 근무했고, 종강 이후에는 40시간을 일하고 있다. 최근에는 코드베이스가 확장 가능해지도록 데이터 흐름을 리팩토링 하는 일을 하고 있다. 소프트웨어를 만들면서 자꾸 생각하게 되는 원칙이 있다.
특히 캡슐화를 정말 중요하게 여기고 있다. 캡슐화가 확장 가능한 소프트웨어의 핵심이라는걸 뼈저리게 깨닫고 있다. A 기능을 수정하려면 A 관련 코드만 수정할 수 있게, A에 A3라는 기능을 추가하려면 A3만 추가할 수 있게 하기 위한 코드를 짜려고 노력하고 있다.
여담 1: 왜 마크업과 API여야 할까?
JAM 스택에 대한 회의를 주장하고 싶다. 정말로 대부분의 앱에 JAM 스택이 필요한지 난 잘 모르겠다. 데이터를 저장하고 보여주는 앱에 리액트는 과하다는 생각을 항상 한다. JavaScript, API, Markup으로 구분해야 하는 필요가 정말로 있느냐는 주장을 제기한다. 일단 내가 지금까지 만들었던 앱들은 그렇게 복잡한 엔지니어링이 필요하지 않았던것 같다. 좋게 쳐줘봐야 Astro와 Drizzle ORM, SQLite로 처리가 가능하다고 생각한다. Hype에 취하지 말자.
여담 2: 왜 리액트를 쓰시나요?
사람들에게 자주 물어봤던 질문중 하나였다.
- 왜 리액트를 쓰는지?
- 리액트 말고 다른 대안을 탐색해본 적이 있는지?
스스로를 프론트엔드 엔지니어라고 부른다면 왜 리액트를 사용하는지, 리액트의 대안은 어떤 것이 있는지, 리액트의 접근 방법이 최선이라고 생각하는지 등에 관해서 생각을 해본 적이 있어야 한다고 생각한다. 그러나 내 의문에 제대로 대답을 해준 사람은 거의 없었다.
리액트 뿐만 아니라 FE 스타일링 라이브러리들에 대해서도 많이 질문하였다. 정말로 Tailwind가 최선이라고 생각하는지, 왜 CSS Modules를 쓰지 않는지 등의 질문이였다.
이런 생각이 자꾸 드는걸 보면 나는 틀림 없는 기술쟁이인가보다. 브랜더진에 입사 과정중에, '정한님은 기술보단 제품에 관심이 많은 것 같아요'라는 말을 들었던 기억이 난다. 요즘 생각해보면, 난 최근에는 기술에 훨씬 관심이 더 많아진것 같다. 만약에 내가 제품 중심의 엔지니어였다면, 개발자를 채용하기 좋고 더 빠르게 실험할 수 있는 스택을 항상 선택했을 것 같다. 그치만 지금 내게 프로젝트를 하나 스캐폴딩 하라고 하면, 위에 말했듯 Astro + Drizzle ORM과 추가로 Panda CSS를, 서버가 필요하다면 Go을 쓸것 같다. 영락없는 기술 이상주의자인가보다.
여담의 여담: Tailwind는 최악이다. 내가 왜 CSS가 아닌 별도의 언어를 배워야 하는지 모르겠다.
양자택일의 문제는 아닌것 같다. 내가 개발한 서비스가 시장에서 올바르게 동작하는지 숫자로 확인하는것은 도파민을 채워주고, 기술에 관한 고찰과 환경 만들기는 내가 조금 더 편하고 행복하게 개발할 수 있게 해준다.
(b) 대학교 3학기를 이수했으며
진짜.. 정말 고되었다고 생각한다. 죄송하지만 일학습 병행은 미친 짓입니다. 다시는 할 일이 없을 것같다. 내가 어찌 그런 결정을 했을까? 어쩌면 진짜 문제가 있던 것은 일학습 병행이 아니라 실험과목을 두개 들었던것 일 수도 있다. 이번 학기 이수 과목은 다음과 같다:
- 응용수학 1: 확률과 통계
- 자료구조: 아직도 뭐 하는 과목인지 모르겠음
- 컴퓨터시스템개론: 프로세서랑 메모리 배움
- 일반물리실험 1: 사회생활 배움
- 소프트웨어개발도구및환경실습: 얘도 뭐 했는지 모르겠음
사실 수업을 진짜 1분도 안들었다. 응수, 자구, 컴시개는.. 정말 죄송하지만 교수님 성함밖에 기억이 안난다. 상징적인 표현이 아니라, 정말로 말 그대로 1분도 안들었다. 학비를 바닥에 내다 버린 것이다. 그래서 시험 공부할 때 좀 고되었다. 이게 시험에 나올까~? 안나올까~? 그건 모른다(수업을 안들었기 때문). 그래서 사실 걱정이 조금 된다. 다음 학기에는 수업을 들을 수 있을까 <- 그건 제가 열심히 해야죠.
실험과목이 진짜 미쳤다. 서로 다른 유형의 스트레스를 내게 선사하였다.
일반물리실험
조별과제의 어려움을 깨달았다. 복합적인 어려움이였다. 더 길게 말하다가는 소논문이 나와버릴것 같아 이쯤에서 마무리하겠다.
소프트웨어개발도구및환경실습(컴실1)
자존감이 낮아지는 강의였다. 개인 실험과목인데, 일찍 끝내면 일찍 강의실을 떠날 수 있다. 반대로 말하면, 늦게 끝내면 강의실을 늦게 떠나게 된다. 이게 진짜 사람을 미치게 한다. 나는 열심히 코딩 하고 있는데, 이게 막 10분만에 끝내고 떠날만한 그런 과제가 아닌데, 다들 이미 짐 싸고 있음. 한시간쯤 지나면 조교님께 슬슬 눈치가 보인다. 마지막까지 남은 적이 한번 있었다. 자존감이 바닥에 닿는 기분이였다. 테트리스 하나 제대로 디버깅 못하는 개발자는.. 살아남을 수 있을까? 라는 생각이 들었다. 그러나 어림도 없기 기말고사 코테에서 만점 받고 다시 살아났다
다음 학기에 컴실 2를 들어야 한다 기대가 됨..
(c) 새로운 인연을 만났다
날 일으켜 세워주는 사람이다
(d) 콘서타를 만났다
벼락치기가 이렇게 즐겁다고? 사실 공부가 더 잘 되는진 모르겠다 근데 공부가 그렇게 괴롭지가 않다. 그리고 이제 일상이 피로하지 않다. 피로할 때 아무 곳에도 집중을 못하고 그저 붕 떠 있는 듯이 살았는데 그것은 인생이 아니였다. 그렇게 즐겁지 않은 일에도 집중을 하는게 가능하다는걸 이해했음. 보여줄게 완전히 달라진 나.
(e) 데스크탑에서 리눅스를 사용한다
이제 윈도우를 쓰지 않는다. 윈도우에서 개발을 하는건 끔찍했다. 불쾌한 정도를 넘어 끔찍했다. 대체 내가 왜 WSL에게 메모리를 할당하고 포트 충돌을 트러블슈팅하고 이 프로세스가 호스트에서 도는지 게스트에서 도는지 systemd가 되는지 docker가 되는지 uv가 되는지 pnpm은 되는지 파일은 어디에 저장되는지 등을 알아야 했는지 이해가 안됐다.
(여담: 왜 JS 진영에 나타난 Bun / Deno / TS같은 생태계 교란종이 왜 파이썬에는 없을까? 왜 ty와 ruff, uv가 전부인지? 왜 새로운 런타임과 강타입체커는 배척당하는지?)
그래서 시원하게 리눅스를 깔았다. 처음엔 우분투를 썼고, 그냥저냥 만족했다. 적당히 예뻤다. 커스터마이징에는 별로 관심이 없어서 순정 그대로 사용했고. 딱히 아쉬운건 없었다. 최근에는 OS를 초기화 하는 김에 새 배포판을 써보고 싶어서 Endeavours OS / Arch / KDE를 써보고 있다. 훌륭하다. 내가 생각했던 데스크탑 OS가 여기에 있다. 생각한 대로 동작한다. 딱히 고민할 거리가 없었다.
(여담2: 대체 Plasma Mobile은 왜 개발되고 있으며 왜 이렇게 완성도가 좋은 것인가? 노트북이 터치를 지원해서 한번 설치해서 사용해보았는데.. 생각보다 너무 휼륭해서 놀랐음. 왜 아무도 사용하는 사람이 없는데도 이렇게 지속해서 현대적으로 개발이 되고 있는걸까? 정말 대단하신 분들이라고 생각하였음.)
아 아치에 두가지 아쉬운게 있긴 하다. 첫 번째는 윈도우와의 듀얼부팅이 진짜.. 사람을 정말 화나게 한다. 혹시라도 이 분노를 함께 공유하고 싶은 사람이 있다면 btrfs로 아치를 먼저 설치한 뒤에 Grub에 윈도우를 등록하는 일을 꼭 해보길 바란다. 두 번째는 무선랜 드라이버이다. 미디어텍의 랜카드를 사용하는데, 호환이 잘 안되는지 공공 와이파이에서 종종 뱉어낸다.
둘 다 건조하게 적긴 했지만, 진심으로 분노를 일으키는 요소이다. 그래도 윈도우는 내게 항상 분노를 일으키고, 아치는 종종 분노를 일으키니까, 아치가 내겐 더 잘 맞았다.
여담: 예측 가능한 환경이 좋다.
갤럭시와 One UI가 싫다. 대체 뒤에서 뭘 하고 있는지 모르겠다. iOS도 그렇다. 도대체 내가 통제할 수가 없다. 윈도우도 그렇다. 윈도우는 대체 WSL에서 어떤 일이 일어나고 있는지 모르겠고, One UI는 왜 이렇게 무거운지 모르겠다. iOS는 그나마 나았는데, 내 영혼까지 일임해야만 편하게 쓸 수 있는게 싫었다. VSCode, Visual Studio, JetBrain도 그렇다.
반면 Zed, Firefox, Arch, NextDNS는 그렇지 않다. 투명하고, 내가 통제할 수 있다. 그래서 좀 이상하더라도 참고 쓰게 된다. 개인 에이전트의 시대에는 어떻게 작업을 투명화 하고 통제할 수 있을까?
(f) 코딩/터미널 에이전트 구독을 시작했다
전까지는 회사에서 주는 Cursor만 사용했었는데, IDE 밖에서도 에이전트를 쓰고 싶었다. 클로드와 챗지피티를 각각 구독해서 사용하고 있다. 어떻게 에이전트가 안전하게 일할 수 있는 업무 환경을 만들 수 있을지에 대해서도 관심이 많다. 업무의 맥락을 에이전트에게 주입하고, 관습에 맞는 결과물을 만들 수 있을지는 항상 내 고민중 하나이다.
여담: 사람이 에이전트 하네스 안에 들어가면 잘 일할 수 있을까?
에이전트는 하네스 안에서 일한다. 다소 의역해서 말하면, 인터랙티브 툴을 사용할 수 없는 bash 안에서 작업한다고 볼 수도 있다. 마치 iptime 공유기의 웹셸을 뚫었을 때 나오는 입력-출력 패널과 유사할 것같다. 어느 날 코딩에이전트가 너무 멍청하다고 느껴져서 한 생각이 들었는데, 사람을 에이전트 하네스 안에 넣으면 똑바로 일할 수 있을까? AI가 사람같이 답할 수 있는지를 판단하는걸 튜링테스트라고 한다면, 사람이 AI 환경 내에서 제대로 일할 수 있는지는.. 정한테스트라고 부르고 싶다. 정말로 일하기 좋은 하네스인지 볼 수 있을 것 같다.
그리고 왜 아직도 에이전트는 코드를 그저 텍스트로 봐야 하는지 모르겠다. 코드에는 맥락이 있는데, 텍스트로만 바라보면.. 그저 이름과 로직밖에 보이지 않는다. 정말로 코드가 에이전트가 일하기에 최적의 수단인진 모르겠다.
(g) 장발을 시도했었다
어렵더라고요. 짧머가 좋습니다.
(h) 내가 뭘 하고 싶은지 조금은 알것 같다
실패하기 어렵고, 설령 실패하더라도 괜찮은 환경을 만들고 싶다. 그게 지금은 내게 코딩 환경과 같은 형태로 보이지만, 엔지니어링 밖으로 나가더라도 난 이 일을 계속 할것 같다. 곧 회사를 그만 두고 후임자를 모시게 될텐데, 그분께는 실패하더라도 괜찮은 환경을 만들어두는 것이 내 마지막 배려일것 같다. 내가 느꼈던 압박감을 그분은 공유하지 않았으면 좋겠다. 실패해도 괜찮은 환경 만들기. 그게 내가 이 회사에서 마지막으로 하고 싶은 일이고, 다른 어떤 일을 하더라도 가장 최우선으로 삼고 싶은 가치이다.
투명한 시스템은 왜 실패했는지 알기 쉽고, 왜 실패했는지 안다면 실패해도 괜찮도록 안전망을 깔 수 있다. 내가 통제할 수 있으면 실패하기 어려운 환경도 만들어낼 수 있다. 그게 내가 하고 싶은 일인 것같다. 모두 하나의 주제로 관통된다. 모두가 사용할 수 없는 기술은 또 다른 차별이다라는 말을 항상 생각하고 살지만, 최근 들어서는 이 말의 의미를 조금 다르게 생각해보고 있다. 기술에 접근 가능 하다는 것을 넘어, 모든 사람이 기술을 활용해 자신의 환경을 바꿀 수 있도록 해보고 싶다. 그러기 위해서는 더 투명하고 자유롭고 통제 가능해야 한다. 내가 만들고 싶은 모습은 그런 모습인것 같다.
연결된 페이지 (Inlinks)
연결된 페이지가 없습니다.