그냥 사는 이야기

2024년 회고록 : 나에게 개발자란?

TerianP 2024. 12. 31.
728x90

1.  회고를 시작하면서

년말이되어 이곳저곳에서 회고록이 올라오는걸 보고있노라면 그 사람들처럼 매년마다 지난 1년에 대한 이야기를 써내려가던 친구가 떠오른다. 한번은 "너는 회고록은 안 써?" 라고 묻는 친구에게 내가 회고록을 쓰는걸 싫어한다는 것과 싫어하는 이유를 설명했었다. 그러자 그 친구가 이야기했다. 

 

"나는 지난 시간동안 후회하는 것과 아쉬운게 많았다는 건 그만큼 열심히 살았다는 반증이라고 생각해. 그리고 그런 증거들은 네가 기록해야지만 모두가 알 수 있는거야. 아니면 아무도 몰라. 단순히 자랑하기 위해서가 아닌거야. 모두에게 너를 증명하기 위해 기록해야하는거야. 그리고 훗날 스스로에게 증명하기 위한 글인거야. 뭣보다 나는 1년에 마지막에 자신만의 이야기를 써내려갈 수 있다는건 굉장히 멋진 일이라고 생각해. 누구에게도 흔들리지 않고, 누구에 의해서가 아닌 오롯이 자신만의 이야기니까.
그런 의미에서 네가 그렇게 이야기하면서 회고록 쓰는걸 싫어한다고 이야기하는 건 사실은 아쉬운것도 없고, 사실은 후회하는 것도 없지만 나는 열심히 살았어라고 이야기하며 나름대로 1년을 마무리하기 위한 도피일 뿐이야. 1년의 마지막에는 좋았던 일도 슬펐던 일도 아쉬웠던 일도 후회하는 일도 모두 마주해야해. 그래야지만 그 사람의 이야기가 정당한 마무리를 갖는거야."

 

정말이지 똑똑한 친구였다. 단순히 살아가기 위한 삶을 사는게 아닌, 자신이 만드는 이야기속에서 자신을 위해 살아가는 멋진 친구였다. 물론 당시의 나는 저 이야기를 듣고 차마 반박하지는 못햇지만 속으로 '멋진척하는 헛소리' 라면서 넘겨버렸다. 왜냐하면 당시의 나는 그 아이가 한 이야기를 이해하지도 못 했고, 또 할 수 도 없었기 때문이다.

 

그리고 그렇게 10년이 넘는 시간이 지났고, 이전과 똑같은 말을 하면서 회고록 작성을 차일피일 미루는 나를 보면 새삼 나는 발전한게 없구나 라는 생각이 든다. 이번에도 마찬가지였다. '회고록을 써야지와 쓰기 싫어' 라는 생각이 교차할때마다 그때 친구와 나눴던 대화를 떠올렸다. 여전히 '멋진척하는 헛소리' 라는 생각에는 변함이 없었지만 그럼에도 한가지 바뀐것은 있었다. 어릴 적 대화가 아닌 나로 하여금 1년 동안의 이야기를, 그리고 모두에 대한 증명을, 스스로에 대한 증명을 강하게 주장해왔다는 점이었다.

 

 

지난 1년동안 너는 어떤 사람이었니? 너는 무엇을 하고, 무엇을 보고, 무엇을 꿈꾸고, 무엇을 이루었니?

 

참으로 똑똑하고 무서운 친구였다. 10년이 넘는 시간을 지난 지금까지도 나에게 되묻고, 나를 혼내고 있었다. 사실은 조금 무섭지만 그럼에도 나의 대답을, 증명을 써내려가려고 한다.

 

2. 그래서 올해 계획되었던 것들은?

올해의 계획(이었던 것)

 

원래 올해의 계획이었던 내용을 소개하겠다. 사실 올해는 작년보다는...많은 성과를 내지 못했다. 작년에는 그래도 목표완료에 4개정도는 들어가있었던 것 같은데 조금 부끄러운 마음이 크다.

 

1) 목표 완료

목표완료가 3개밖에 안되지만 사실 개별적으로는 큰 내용이라고 생각한다. 뭣보다 만족의 크기로 보았을 때는 작년만큼? 혹은 그 이상에 가깝다. 왜냐하면 올해에는 결국 내가 원하던 내 프로젝트에서의 캐치마인드 게임 - catchmind - 를 개발 해낼 수 있었기 때문이다. 정말정말 꼭 개발하고 싶었던 것이었는데 결국 내가 만들어냈고, 그걸로 친구들과 즐겁게 몇판정도라도 즐길 수 있었다는게 참으로 즐거웠다. 무엇보다 게임을 만들면서 친구들과 하면서 각종 QA 를 통해서 버그도 많이 수정했고, 피드백도 많이 받아서 최종적으로는 단순히 반복되는 게임 주제를 넘어 ChatGPT  API 까지 엮어서 개발해서 좀 더 다이나믹한 게임을 만들 수 있었다. 이따가 아래에서도 이야기하겠지만 개발까지 정말 우여곡절이 많았다ㅠㅠㅠ

 

dataChannel 을 이용한 파일 업/다운로드는 사실 캐치마인드 개발 중간에 dataChannel 사용 공부를 위해 만든 기능 중 하나였다. 사실 이때 DataChannel 공부를 많이했었고, 이때 공부를 많이했었기에 캐치마인드 개발에 정말 많은 도움이 되었다. 다만 파일 업로드 다운로드 부분은 개선될 여지가 많은데, 일단 채팅방이 삭제될 때 minIO 에 있는 파일도 함께 삭제되도록 만들었는데 간혹 채팅방이 삭제되어도 파일이 삭제되지 않는 경우가 있었다. 또 너무 무거운 파일은 업로드가 안되는 문제도 있었다.

그리고 이건 minIO 와 크게 관련이 없겠지만 채팅과 관련되는 부분인데 추후 개발목표로 잡고 있는 것 중 하나는 동영상 관련된 내용이다. 영상 링크를 올린다던가 영상 파일을 올리면 바로 웹에서 재생 될 수 있도록 하는 것이다. 혹은 녹화, 녹음 기능을 지원하여 이를 S3 에 저장하고 추후 메일등으로 받아볼 수 있도록하는 기능이 있으면 어떨까? 하는 생각을 하였다.

 

git auto push 는 생각보다 재미있게 즐겼던 프로젝트 중 하나였다. 기존에는 영어 뉴스 그대로 알림이 왔었는데 이걸 LLM 를 이용해서 번역한 후 slack 로 알림을 보내도록 만드는 것이다. 이때 LLM 은 ollama 를 이용하였다. 처음에는 ollama 에서 바로 다운받을 수 있는 모델들인 llama 나 mistral 등을 사용하였으나 최종적으로는 원활한 한글 번역을 위해 openHermes 라는 LLM 을 사용하였다. 지금은 어떤지 모르겠는데 당시에는 다른 LLM 모다 훨씬 좋은 번역성능을 보여줬었다. 처음에는 ollama 설치도 어렵고, LLM 적용도 어렵고 안쓰던 python 을 쓰려니 더 어려웠던 솔직히 그만둘까 생각했던 프로젝트 중 하나였는데 "나만의 ai 로 나만의 it 뉴스" 라는 욕심 때문에..ㅠㅠㅠ

물론 결과적으로는 너무 재미있었고 배운 것도 많았던 프로젝트였다. ollama 를 통해서 llm 도 돌려보았고, llm 이 뭔지 공부도 해보았고, 뉴스를 내가 원하는 포멧에 맞게 결과를 내기 위해 '어떻게 스크립트를 짜면 좋을까?' 에 대해 공부하는 좋은 계기가 되었다. 그리고 이때 고웁했던게 캐치마인드의 chatgpt api 를 사용하는데 많은 도움이 되었다.

 

마지막으로 모니터링 시스템의 경우 거의 년말 마지막에 완료한 프로젝트였다. 계기가 딱 이걸해야지 라기보다는 팀 프로젝트를 진행하면서 프론트엔드분은 프론트 배포를 나는 백엔드 배포를 맡게 되었다. 문제는 그렇게 나눠서 했을때 서로가 서로 배포 상황이나 환경을 알 수 없었기에 개발&배포 후 결과를 공유하는데 약간의 문제가 있었다. 이 문제를 어떻게 해결 할 수 있을까 논의하다가 그럼 배포 알림 하나 만들죠! 해서 탄생한 결과물이다. 최종적으로는 프론트 서버, 백엔드 서버, openvidu, redis 까지 총 4개의 서비스에 대해 배포 알림을 받을 수 있도록 했다. 또한 배포 상황(배포 전, 배포 중, 완료) 및 배포 결과(에러)와 배포 에러 발생 시 특정 시간이 지나면 비상 알림이 오도록 만들었다. 자바가 아닌 파이썬을 이용해서 만들었는데 워낙 대충대충 기능만 돌아가도록 만들었기에 따로 git 에 공유하거나 블로그에 공유하지는 않았다. 그래도 내년에는 꼭 개선해서 git 에 공유할 수 있도록 하고 싶다.

 

2) 실패한 목표

사실 실패한 목표들은 작년과 동일하다. 분명 작년 회고록에서 내년에는 자격증 준비도하고 열심히 살아야겠다ㅎㅎ 했었는데 결국 자격증은 커녕 책도 한번 펼쳐보지 못하고 실패한 목표위에 올라가게 되었다. 실패한 목표중에서도 특히 아쉬운 건 '기타 배우기' 목표였는데 이거는 내년에는 정말정말 꼭 해보고 싶다. 뭔가 기타랑 잘맞을 것 같은 느낌....?ㅋㅋㅋㅋ 무엇보다 한개쯤은 연주할 수 있는 악기가 있으면 여러모로 좋으니까!! 꼭 노력해보자

 

3. 하고싶은 것과 해야하는 것: 나에게 개발자란?

이번 1년은 그 어떤 해보다 나에게 많은 의미를 갖는 1년 이었다. 단순히 이것을 배우고 저것을 배웠다를 떠나서 "나에게 개발자란 무엇일까? 개발이란 어떤 의미일까?" 를 생각하게 한 1년이기 때문이다.

 

사회복지사가 되는 길을 그만두고, 보안전문가가 되는 길을 선택했을때 나에게는 후회밖에 없었다. 사실 '보안전문가'라는 것도 임시방편으로 사회복지사가 아닌 다른 걸 선택하기 위해서 도망치듯이 선택한 길 중에 하나였기 때문이다. 그저 그냥 흘러가는대로 선택했고 그렇게 선택했기에 나에게 이 직업이 어떤 의미일까를 고민해본 적도 또 고민해보려고 한 적도 없었다. 그런 생각을 하는게 사치였고, 오히려 생각에 꼬리를 물고 결국 후회만이 가득했기 때문이다. 그럴때마다 서버도 만지고, 블로그에 글도 쓰고, 자격증 때문에 공부도 하는 척하면서 "후회하지만 열심히 하는 나"라는 타이틀로 모든 걸 메우려고 했었다. 열심히하는 척이라도하면서 스스로를 속이고 있을때면 잠시마나 아쉬움과 후회를 잊을 수 있었기 때문이다. 당연하게도 이런 것들은 오래가지 못했다. 이제와서 고백하자면 중간중간 '개발자'를 하고 싶다는 생각도 했었다. 그리고 그때마다 망설이기를 반복했다. 좋은 대학교의 '컴퓨터 공학과'를 나온 친구들도 힘들어하는게 개발자인데 이제와서 내가 할 수 있을까? 란 생각도 들었고 더욱이 내가 '잘' 할 수 있을까? 라는 생각도 들었다. 무엇보다 이번에도 실패하고 후회하기에는 정말이지...너무나도 두려웠다.

 

그렇게 1년이 지났을 무렵 나는 나에게 있어서 재미있는 것을 선택하기로 결정했다. 특별한 계기가 있었던 것은 아니다. 그저 더 늦기전에라도 오롯이 내가 선택하고 그 결과를 마주해보고 싶다라는 생각을 했기 때문이다. 퇴사 결심을 하고 당시 수석님께 퇴사 이야기를 하면서 많은 고민을 했다. "이게 맞을까? 이게 과연 맞는 길일까? 내가 굳이 고생길을 걸으려고하는 건 아닐까?" 하고 말이다. 그럼에도 퇴사를 감행했고, 개발자를 선택했다.

 

처음엔 나에게 있어 '개발' 이란 정말이지 '재미'의 영역이었다. 내가 만들어낸 무엇인가가 이곳에 있고, 그걸로 다른 사람들과 경험을 공유하고 이야기한다는 것은 정말이지 신기하고 즐거운 일이었다. 때문에 내가 만든 것들은 다 그런 류의 것들이었다. 자바로 맨 처음 만들었던 음악게임이 그런 이유에서 만들어졌고, 워드 클라우드도 친구의 의뢰로 '재미있어' 보이기 때문에 만들었고, OCR 프로젝트 역시 신기해보여서 만들었기 때문이다. 그 이후에 만들어진 화상채팅은 더더욱 말할 필요조차 없었다. 정말이지 오롯이 나를 위해서 만든 것들이니까 말이다. 내가 즐겁기 위해서 혹은 내가 만든것을 친구들에게 자랑하고 싶어서, 무엇보다 재미있고 신기한 기술들을 넣어보고 싶어서의 결정판이 화상채팅 프로젝트였다.

 

사실 이렇게만 보면 천성이 개발자네! 라고 이야기할지 몰라도 적어도 내가 생각하기에 나는 '개발자'에 대해 아무것도 몰랐다고 생각한다. 개발을 좋아하기도 하고, 개발을 할 때면 즐겁지만 그것을 일로 할때 필요함 '책임감'에 대해서는 무지했기 때문이다. 실제로 일을 하면서야 나는 '개발에 대한 책임감'에 대해서 '개발에 대한 스트레스'와 함께 이해할 수 있었다. 내가 개발한 것들에서 버그가 나오면 그게 정말 신경쓰이고 힘들어져갔다. 물론 버그 없이 개발하는 것은 너무나도 어렵고 또 사실, 불가능에 가깝다는 것은 알고 있다. 그렇게 알고 있고, 생각하고 있음에도 버그가 나올때면 '나는 정말 못하는구나' 또 '개발자는 나랑 안 맞네'라는 생각을 하면서 버그를 수정해나갔다. 정말 부끄러운 이야기지만 나의 버그를 볼 때마다 도망가고 싶을 정도였다.

 

'책임감의 무지'은 결국 이런 부분이었다. 나에게 개발은 어디까지나 재미있고, 즐거운 것이었는데 '일'이 되면서 어느 순간부터는 재미있고 즐거운 것이 아닌 어렵고 무서운 것이 되어있었다.

개발일을 처음할때만해도 '나는 성공한 덕후 그 자체야'하면서 좋아했었는데, 언제까지나 즐겁고 좋아하는 일이 될 줄 알았는데 결국 취미가 아닌 일이 되면서 함께 따라오는 책임감에 대해서 나는 알지 못했고, 또 알려고도 하지 않았기 때문이다. 이번 1년은 정말 이런 생각만을 하면서 보냈던 1년이었다. '개발하는거 재미있어!' 와 '당장 개발자 때려치고 다른거 하고싶어!' 와 그 사이에서 고민을 하는 내가 있었다.

 

스트레스만 있었떤 것은 물론 아니다. 즐거운 것도 있었다. 내가 만든게 잘 될때면 너무나 좋았다. 도저히 될 것 같지 않은 것들이 하나하나 풀리면서 내가 원하던 결과를 보여줄 때면 새벽의 피곤함을 잊고 행복함부터 느꼈다. 개발 때문에 새벽까지하는 것도, 밤을 새는 것도, 주말에 출근하는 것도 모두 올해 처음했지만 그 후에 결과물을 볼 때면 사실 피곤함과 함께 즐거움과 '해냈다' 라는 고양감이 나를 가득 채웠다. 집에서 홀로 만드는 프로젝트도 마찬가지였다. 내 프로젝트가 사실 많은 사람들에게 보여질 것이라고는 생각하지 않았다. 단순히 내 친구들과 공유하는 것만으로도 좋았다. 처음 화상채팅을 만들어서 친구와 함께 이야기하던 순간, 그리고 kurento 를 붙여서 4명이서 대화하던 순간들의 행복이란 정말 말로 표현할 수 없을 정도로 좋았다.

 

이렇게 왔다갔다하는 내 마음하나 정리하지 못했기에 결국 올해 나는 답을 내지 못했다. 사실은 지금 이 순간에도 당장이라도 때려치고 도망치고 싶은 나와 더 많은 것을 해보고 싶은 내가 공존하고 있다. 나에게 개발자는 하고싶은 것을 할 수 있도록 만드는 도구를 더욱 잘 갖고 놀 수 있도록 돕는 직업에 불과했다. 그러나 당연하게도 '개발자'는 내가 해야하는 일을 정하고 그것을 해야만하는 직업이라는 것을 이제는 안다. 참 어려운 직업이다.

 

4. 내년에 나에게

내년의 목표!

나에게 개발이란 어떤 의미인가에 대해서 곱씹어 보아야한다.
단순히 흥미와 재미의 취미인지 아니면 나를 먹여살릴 '직업 기술'인지 슬프지만 명확히 해야할 시간이 왔기 때문이다.

 

내년에 설정해둔 목표와 함께 내년의 나에게 올해의 내가 던지는 질문이다. 만약 내년에 답을 찾지 못하더라도, 혹은 나름의 답을 내놓더라도 그후에도 계속계속 봐야하는 질문이라고 생각한다. 사실 어떤 답을 내놓을지 예상은 간다. 분명 내가 늘 그렇듯 이러지도 못하고 저러지도 못하는 어정쩡한 답변을 내놓을 것이라고 생각한다. 그럼에도 고민하고 또 고민해서 언젠가의 내가 납득할만한 답을 내놓을 수 있었으면 좋겠다. 후회하는 것보다 또 도망치는 것보다 그게 훨씬 더 가치있는 일이라고 생각하기 때문에.

 

내년에도 화이팅!

 

댓글