essay

RAG 어플리케이션을 만들어보면서 든 생각

2년간 사내 서비스를 운영하며 쌓은 데이터를 이용해 서비스 온콜 인턴을 만들었다. 이 인턴이 하는 일은 새로운 요청이 올라오면 그동안 쌓인 이슈들 중 가장 비슷한 이슈들을 찾아 요청에 답을 하고 관련 링크를 보여주는 것이다. 

이번에 직접 만들어보고, 비슷한 종류의 서비스를 경험해보며 이런 종류의 rag 어플리케이션이 상당히 대중화 될 것이라고 생각하는데 그 이유는 

  1. 서비스를 운영하다 보면 대부분의 온콜은 비슷한 것들이다.

  2. 온콜 업무엔 시간이 꽤나 많이 들어간다.

  3. 특히 서비스에 새로 참여하게 된 인력은 아무리 시니어라도 온콜 대응에 엄청 많은 시간을 쏟게 된다.


네이버엔 yobi라는 사내 공통 플랫폼 관련 질문하는 곳이 있다. 매일 많은 이슈가 생기는데 역시 반복적인 이슈가 많다. 답변하는 개발자 입장에선 매일 수많은 비슷한 이슈를 처리하느라 시간이 들고, 질문하는 입장에선 별거 아닌 질문인데 답변 받는데 오래걸려 업무 진행에 차질이 생긴다.


오픈소스를 개발하면서 비슷하게 느끼는 점은, 비슷한 이슈가 정말 많이 쏟아진다. 그런데 개발자는 5명이니 이슈를 몇개씩 처리해도 계속 쌓인다. 쿠버네티스 같은 오픈소스는 한 레포에 쌓여있는 이슈만 2천개 정도다.


RAG로 비슷한 서비스를 만드는 곳들을 보면, 2~3명의 서포트 엔지니어 혹은 인턴 수준의 도움을 받을 수 있다고 한다. 별거 아닌 것 처럼 보이지만, 팀 입장에선 24시간 내내 업무량 상관없이 막 굴릴 수 있는 2~3명의 인턴은 엄청난 도움이 된다.

그리고 더 좋은 점은 이 가상인턴은 신규입사자의 온보딩에 많은 도움이 된다. 어떤 문제에 대해 과거 비슷한 히스토리와 사내문서를 찾아주고, 대략 뭘 해야하는지 가이드를 줄 수 있다. (그리고 리더가 편해진다)

이것들 모두 기존 개발자의 업무 효율을 엄청나게 높여준다. 본질에 더 집중할 수 있고 그로인해 조직 전체의 효율도 올라간다. 잘만 만든다면, 좀 비싸도 충분히 구매하지 않을까.


개발자 뿐만이 아니다, RAG를 이용한 판례 검색 서비스를 운영하는 엘박스는 법조계에 큰 효율성을 제공하고 있다. 그리고 이 회사는 김앤장 출신 변호사가 세웠다.


리프킨의 노동의 종말에선 기술 진보의 영향으로 블루 칼라가 사라지게 될 것이라고 했다. 예전 지하철 승차표 판매원이 승차표 발매기로 일부 대체되고, 교통카드가 생기면서 아예 없어진 것처럼 말이다. 이번 RAG 어플리케이션을 보면서 기술의 진보가 이제는 지식 기반 노동자, 즉 화이트 칼라의 노동력을 대체하기 시작하는 첫 흐름을 보여주는 듯 하다.


그리고 또 하나 느낀 점은, RAG 등 LLM 기반 서비스의 특이점은 기존에 인간에 의해 만들어진 데이터가 많아야 한다는 것이다. 내가 만든 인턴 개발자가 잘 동작 하려면, 서비스가 운영되어 오면서 이슈가 만들어지고 해결된 기록이 많아야하며, 서비스에 대한 양질의 문서가 만들어져 있어야 한다. 네이버 같이 이미 오래전부터 사내에 온콜 시스템을 만들어 다량의 데이터를 갖고 있거나, 쿠버네티스와 같이 해결된 이슈만 4만개가 넘는 오픈소스라야 가상 인턴을 제대로 뽕 뽑을 수 있다. 소프트웨어 쪽이 아니더라도, 엘박스를 보면 이것 역시 기존에 인간이 생성한 수많은 데이터가 곧 이 기업의 가치다. 어느정도 궤도에 올라탄 서비스, 기업, 도메인이 큰 혜택을 보는 것이다.

2023 업스테이지에서의 3년차 회고

업스테이지 3년차, 스타트업에서 배운 것.

- 풀고자 하는 문제가 명확해야 한다.

- 그래야 조직이 무얼 만들지, 어디에 집중할지 보인다.

- 풀고자 하는 문제가 명확하지 않으면, 리소스가 분산된다. 

- 그냥 각자 다른 생각을 하고 다른 일을 한다.

- 조직 현황에 대한 공유가 중요하다. 특히 작은 조직일수록.

- 조직원들은 조직의 상황에 대해 많이 궁금해하고 불안해한다.

- 개인은 리더와, 팀은 상위리더와 끈임없이 싱크를 맞추는 자리를 가져야한다. 그리고 그 위는 자주 회사의 상황에 대해 공유해야 한다.

- 리더십은 스타트업일수록 중요하다.

- 조직의 리소스 현황에 대해 전체적인 그림을 볼 수 있는 상위 리더가 끈임없이 리소스를 모니터링하고 여러 조직이 시너지를 낼 수 있도록 조절해야 한다.

- 큰 투자는 독이 될 수도 있다.

- 일단 인원을 많이 늘리면 뭘 하는 거 같지만, 양날의 검이 된다.

- 큰 투자로 압박을 느끼고 무리하게 되면 이게 스노우볼이 되어 문제가 엄청 커진다.

- 제품을 만들어야 할 땐, 제품에 집중해야 한다.

- 뱃사공이 많으면 제품이 산으로 간다.

- 제품에 집중할 수 있는 환경을 보장해야 한다.

- 기술에 집중된 제품일수록 기술부채에 대해 보수적이어야 한다.

- 적은 기술 부채를 유지하면 서비스도, 팀도 안정적이다.

- 기술 부채에 관대할수록 매 프로젝트가 새로워진다.

2022년 회고와 2023년 시작

2022 나의 삶에 대한 회고

회고의 목적은 2022년 내가 무얼 잘했고, 또 못했고. 2023년은 뭘 어떻게 해야하는지 정리하기 위해서이다.

2022년은 업스테이지를 열심히 다녔고, 결혼을 했고, 처음으로 부모님 집을 떠나 새 집에서 살게 되었고, 취미로 사진도 찍으며 현상, 스캔도 하고, 테니스도 시작한 해다. 

하나씩 어떻게 했고 어떻게 할건지 보자.

커리어

업스테이지는 앞선 글에도 적긴했지만 열심히 달리는 중이다. 이제 2년된 신생회사니 다들 열심히 시도하고 실패하고 다시하는 중. 나도 업스테이지에서 아주 만족도가 높다. 2022년은 사내 딥러닝 모델 학습 플랫폼을 만들고 고도화하고 1.0을 위해 열심히 개발했다. 이 과정에서 내가만든 플랫폼을 팔기도 했는데, MLops 플랫폼을 개발하고 팔아보는건 내가 업스테이지에 오기전부터 하고 싶었던 것. 하지만 애초에 사내 플랫폼으로만 생각하고 만들어서 그런지 팔아보는 과정은 생각보다 쉽지 않았고 내가 생각했던 형태도 아니었긴 하다. 솔루션 형태로 제공하게 되면서 부족한 기능을 업데이트 하기도 쉽지 않고 업체측에 설치, 운영 노하우를 전달하는 것도 쉽지 않았다. 지속적으로 하긴 어려운 느낌. 이런 형태로는 돈벌기가 쉽지 않다는 것을 깨달은 한 해였고, 다음에는 SaaS 형태도 경험해 볼 수 있으면 좋겠다는 생각. 이번에 예상치 못한 형태로 제품을 팔아보면서 일은 어떻게 될 지 모르니 애초에 여러 형태로 팔 수 있도록 설계해야한다는 생각도 든다.

내 커리어에는 많은 변화가 생겼다. 업스테이지에 오기전엔 소프트웨어 개발, 배포만 해왔고 여기서도 그것만 할거라고 생각했는데 큰 오산이었다. 실제로는 인프라의 많은 부분을 만지고 있다. 노드 세팅, 각종 드라이버, 환경 세팅, 디버깅 수준의 레벨과 간단한 수준의 aws 시스템 구성, 쿠버네티스 클러스터 구성, 운영같은 devops 에 더 가까운 업무를 많이 했다. 개인적으로는 리눅스도 많이 다루고 지식이 부족한 네트워킹 쪽을 좀 더 보고 공부하게 되면서 얻은 부분도 많다. 그리고 쿠버네티스 클러스터를 구성하고 운영하는게 얼마나 리소스가 들어가는지 까지. Devops 업무들이 앞으로도 나한테 많이 도움이 될 듯하고 플랫폼 엔지니어링에도 많이 필요한 부분이라 앞으로도 어느 정도는 쭉 가져가는게 좋다고 생각한다. 물론 인프라를 만지는 정도까지는 아니고 IaC를 하는 수준으로다.

2023년에는 플랫폼을 MLops 플랫폼으로 업그레이드하는 업무와 devops 업무가 계속갈 듯 하다. 지금까지는 모델을 연구하고 학습하는 것이 플랫폼의 주요 기능이었다면 앞으로는 자동화, 서빙이 중요해질 듯 하고 이걸 공통 플랫폼으로 어떻게 만들지가 중요하다. 이 기능을 만들면서 모델러와 실제 파이프라인을 만들며 자동화 파이프라인을 만들어보고, 올해 안에 플랫폼 1.0이 나오지 않을까? 

1.0이 나오고 난 후에는 뭘 해야할까? 우리팀은 업스테이지가 현재 가장 집중하는 곳에 기능을 만들고 있다. 작년엔 기술력을 쌓기 위한 학습 플랫폼을 만들었고 올해는 제품을 만들기 위한 자동화 파이프라인, 서빙을 만들 것이다. 그 뒤는 업스테이지 ai 팩이 어떤 성과를 보여주느냐에 방향이 달려 있다.

그러면 올해 커리어 측면에서 나에게 중요한 것을 무엇일까? 내부 플랫폼을 탄탄히 설계, 구현하는 것은 당연하고 이제 프로덕션이 나오는 시기인 만큼 프로덕션 레벨의 클러스터 구성, 복잡하고 대용량 트래픽을 고려한 서비스 설계가 될 거 같다. 모니터링, 로깅 같은 부분도 현재는 간단하게만 되어있는데 이걸 프로덕션 수준으로 끌어올려야 한다. 한마디로 서비스의 모든 수준을 한단계 향상시키는 것. 내부에서만 쓰던 것에서 외부에서도 쓰는 것으로 향상이다.

소프트 스킬로 향상시키고 싶은 부분은 구조화되고 이해하기 쉬운 문서 작성, 그리고 발표 능력이다. 발표 능력이 그동안 많이 늘었긴한데 설득력, 정보 전달의 측면에서는 아직도 먼 듯하다. 뭔가에 쫓기듯이 하지 않고 여유롭게 말하고자 하는 바를 이해시키며 발표하는 능력을 길러보자.

책은 한달에 2권 정도 꾸준히 읽고 있는편이다. 하지만 올해 중반부터 책을 읽기만 하고 남아있는게 없다는 느낌을 받았다. 좀 어려운 책은 무슨 내용이 있었는지 기억도 안나는 것이 있다.

이 문제를 해결하고자 저번부터 책 내용을 정리하고 느낀점을 기록하려고 하고 있다. 그런 과정에서 책에서 어떤 내용이 와닿았는지 포스트잇으로 남기는 중. 이제 어떻게 기록을 남길지는 써보면서 해봐야겠다.

문제는 기록을 남기는 속도가 느리다는 것. 읽고나서 바로바로 기록을 남기면 좋겠지만 생각보다 그게 안된다. 괜찮게 읽은 책만 남기는게 좋을 듯 하다.

올해는 한달에 한 권만 기록을 글로 남기는 것이 목표

사진

사진 블로그도 만들면서 포트폴리오를 만들어보려는 중. 뭔가 사진 프로젝트를 하나 해보려고 마음만 먹는데 진행이 되질 않는다. 치열한 고민을 하고 생각해봐야하는데 그럴 시간이 나지도 않고 다른 것에 치여 우선순위가 밀리는 중이다.

사진 찍고 현상하고 좋은 사진을 남기고만 있다. 이런 방식으로는 사진 취미가 재미없어질것이고 실제로 사진 찍는 날들이 점점 더 줄고 있다. 사진을 좀 더 깊이, 재미있게 즐기기 위해서는 프로젝트를 하며 나의 작품들을 만들어야 한다.

올해는 딱 하나의 프로젝트만 만들어 보는 것이 목표. 생각도 많이해야겠지만, 일단 많이 찍어야한다.

내 인생에서 가장 좋은 일, 가장 안좋은 일이 모두 크게 있던 한 해다. 삶 자체에 대해 많은 생각을 하게 되었다. 삶이란 뭔지, 어떻게 살아야하는지, 무엇이 우선시 되어야 하는지가 올해를 기점으로 많이 바뀌었다.

재택 N년차 개발자의 생산성을 위한 셋업

코로나가 터진  2019년 2월부터 재택근무를 해왔다. 보통 재택근무한다고 하면 집에서 일이 잘되냐고 물어보는데, 집에서 일하면 보통 늘어지기 때문에 최대한 사무실과 비슷한 환경을 만드는게 중요하다. 집에서 최대한 생산성이 좋은 환경을 만드려고 이런저런 시행착오를 겪어왔는데, 지금까지 사용하고 있는 높은 생산성을 위한 물건들과 소프트웨어를 보자.

하드웨어

루나랩 전동 스탠딩 데스크: 서서 일할 수 있도록 스탠딩 데스크를 구매했고 오피스 방을 만들거기 떄문에 최대한 큰 사이즈로 구매했다. 선정리도 깔끔하게 되고 책상이 큰 탓에 모니터 두대를 놓아도 공간이 여유롭다.

LG 32인치 4K 모니터: 원래는 애플 공홈에서 파는 27인치 5k 모니터를 사고 싶었는데 품절되어서 대체품으로 샀다. 현재는 매우 만족하는 중. C 타입으로 충전도 가능하고 모니터암이 기본으로 달려있어 공간효율성도 매우 좋다. 32인치가 약간 크긴하지만 아이맥과 함께 서브 모니터로도 좋다.

문랜더 키보드: 그동안 키보드는 해피해킹, 매직 키보드를 주로 써오다가 지금은 문랜더로 정착했다. 문랜더는 적응하는데 꽤 오랜시간이 걸리고 최적의 키 세팅을 찾는데도 오래걸리는데 한번 적응되고 나면 정말 좋다. 손목에도 좋은듯. 하지만 기본으로 나오는 키캡들은 영 별로였다. 타이핑시에 철컹하는 쇠소리가 너무 거슬려서 Gazzew boba tocky로 변경했다. 키캡이 정말 맘에 든다.

허먼 밀러 에어론: 회사에서 특판 나올떄 산 허먼밀러. 최고의 의자다. 특판 또 하면 자식을 위해 살 계획이다.

벤큐 스크린 바: 모니터에 설치하는 조명인데 만족도가 높은 제품이다. 굳이 전등을 안켜도 밝은 책상을 만들어준다.

소프트웨어

Warp: 21세기를 위한 터미널. 편한 기능들이 많다. 얼마전 베타를 끝내고 오픈했는데 아직 초기단계인 만큼 보완할 점들이 좀 있다. 그래도 현재는 기존에 쓰던 iterm2을 거의 안쓰고 이거만 쓰는중

iterm2: warp와 함께 가끔 쓰는 터미널. oh-my-zsh와 함께 쓰면 좋다. warp의 등장으로 삭제될 위기

Dracula pro: 드라큘라 다크 테마. 모든 ide에 적용해서 쓰고 있는데 최고의 테마라고 생각된다. 편하고 가독성 좋고 이쁘다.

dash: api 문서 검색기. 크롬에서 굳이 깃헙이나 공식 홈페이지를 안들어가도 검색할 수 있다. 추가로 있는 스니펫 기능도 좋은데 굳이 다른 코드 스니펫 툴을 돈주고 구매하지 않아도 된다.

jetbrain: 한번 쓰면 나오기 힘든 ide 툴. 파이썬, 고, db, ts를 쓸때 사용한다.

1password8: 최고의 비밀번호 관리 툴. cli도 있고, alfred와 연동하면 엄청 편한다.

alfred5: 단축키, 검색, 워크플로 등 맥 킬러 앱

k9s, lens: 쿠버네티스 IDE, k9s가 터미널에서 다 할 수 있기 때문에 특별한 상황이 아니면 k9s를 쓰는듯 하다. k9s에서 안되는 기능이 lens에선 되고 그런것들이 좀 있는데 lens도 갈수록 발전하고 있어서 기대중.

fork: git 툴. git desktop, gitkraken을 써봤는데 이게 제일 편하고 무료다.

screens 4: 나는 주로 집에 있는 아이맥에서 작업을 하는 편인데 가끔 맥북을 들고 나갈때 screens 4로 리모트로 접속해 일한다. 해상도가 서로 안맞아 연결시 재설정하지만 가장 반응속도가 좋고 밖에서도 아이맥을 그대로 쓰듯이 일할 수 있다. 하지만 한영이 안바뀌는건 좀 불편하다.