업무
7월 말 입사 후 생각보다 다양한 일들을 경험했다.
상배봇
- 내부 지식 저장소 Jira 임베딩 파이프라인 추가
- 상배봇이 답변할 때 참고하는 Vector 저장소에 Jira 티켓에 대한 정보를 저장하는 파이프라인을 추가했다.
- 첫 업무로 진행했던 작업인데, 제이크가 구축하신 컨플루언스 파이프라인을 이해하면서 엄청 신기했다. Vector Search도, RAG라는 개념도 모르는 상태에서 시작했지만 관련된 작업을 하면서 공부하는 과정이 재밌었다.
- 답변 고도화
- 상배봇 답변 품질을 높이고 담당자 등 필요한 정보를 더 잘 답변하도록 개선하기 위해, Vector Search 후 바로 답변하는 구조에서 더 많은 문서를 LLM 수준에서 요약하는 구조로 바꾸는 작업을 진행했다.
- 질문 요약, 문서 요약 등 과정을 거치기에 이전에 답변하지 못했던 몇 가지 케이스에 괜찮은 답변을 출력할 수 있게 됐지만 그만큼 답변에 걸리는 시간도 많이 늘어났다. 늘어난 응답 시간에 비해 체감되는 답변 정확도가 많이 높아지지 않은 것 같아서 아쉬운 마음이 더 크다.
- 얼마나 개선되었는지, 결과물의 품질이 괜찮은지를 측정하기가 어려운 분야라는 걸 느꼈다. 상배봇은 내부 용도로만 사용하는 거지만, 실제 품질이 중요한 자막이나 컨텐츠 번역, 더빙을 작업하시는 선비, 제이크는 얼마나 더 많은 고민을 하실까 싶었다. 임베딩이나 RAG 기술에 대해선 좀 더 공부해보고 싶다. 이번 작업에선 RAG 방법론을 아주 간소화한 방식으로 시도해봤지만 장기적으론 다른 고도화된 방법을 사용해보고 싶다.
모니터링
- Datadog Version 통합 태그 작업
- Datadog 메트릭에서 버전을 구분할 수 있도록 컨테이너 이미지 빌드시 Datadog Verson env를 추가하는 작업을 진행했다.
- Datadog Version 태그를 추가한 후, 각 배포를 명확히 구분하고 이해할 수 있는 버저닝 규칙을 적용하는 것까지가 지향점이어서 데브옵스 팀에서 버저닝 규칙에 대해 열심히 토의했던 것이 기억난다. (선비와 조슈아가 거의 대부분의 의견을 내셨지만..) 버저닝이 각 배포를 구분하는 것 외에 어떤 기능을 할 수 있는지 아직 크게 와닿지 않는 부분도 있는 것 같다.
- 각 프로젝트간의 의존이 복잡하지 않다면 버전은 전-후 구분이 유일한 용도이고 그 이상의 발전은 그보다 더 복잡한 (자주 일어나지 않을 수 있는) 상황을 대비하기 위한 것 같다는 느낌도 받았다. 커밋해시는 확실히 직관적이지 않고, 그걸 벗어난 이후론 취향차이일 수 있겠다- 같은 여러 생각이 들었다.
- Ci Visibility Jenkins, Github 연동
인프라
- Database Proxy PoC
- node postgres 라이브러리의 min pool 옵션 미지원으로 인해 간혹 발생하는 커넥션 생성 지연을 방지할 수 있는 database proxy에 대한 poc를 진행했다.
- Database 커넥션 풀과, 커넥션 풀 프록시에 대한 이해나 노하우가 거의 없는 상태에서 시작해서 생각보다 오랜 시간 헤맸다. 투자한 시간에 비해 의미있는 결론.. 을 도출하진 못했지만, 여러 도구를 비교하면서 성능 테스트도 여러 방법으로 시도해보았고, 선택이나 주장을 위해 어떤 요소들을 고려해야하는지에 대한 혼란을 많이 겪을 수 있었기에 적어도 나에겐 인상적인 시간이었다.
- Talescale VPN PoC
- Firezone VPN의 아쉬운 점을 해소할 수 있는 Talescale, Netbird 등의 VPN을 비교, 조사하고 구축하는 작업을 진행했다.
- 이전에 다른 팀원 분들이 조사해놓으셨던 게 많아서 실행만 한 것 같은 느낌이 있다. 그래도 VPN 작업을 하면서 방화벽, Security Group 현황을 많이 이해할 수 있어 좋았다. VPN 노드를 새로 만들면서 여러 리소스의 네트워크 보안 규칙이 어떻게 수정되어야 하는지를 하나하나 맞으면서 파악할 수 있었던 것 같다.
- 관련 부분을 먼저 이해하고 있었거나, 코드 등의 방법으로 명확히 정의되어 있었다면 그 자체가 복잡한 일은 아니었다. 전역에 적용되지만 파편화된 설정을 파악하느라 시간을 많이 사용했던 것 같아 아쉽다. 다른 작업을 하면서도 이 지점에 대한 아쉬움을 자주 느꼈는데 이게 내가 부족한 탓인지, 아니면 환경이 어쩔 수 없는건지, 어쩔 수 없는 게 아니라면 내 입장에서 뭘 할 수 있는지 잘 모르겠어서 다른 행동을 하진 못했다. 어떻게든 이 상태에 적응하는 방향으로 노력해서, 이제 어느정도는 이해했다고 느끼지만 어떤 것이 효율적인 방향인지 더 고민해봐야할 것 같다.
- ECS LaunchTemplate ami 변경 및 volume resource tag 추가
- 제이스의 도움으로 이전 버전의 LaunchTemplate을 사용하는 노드를 제거하고 새 노드로 바꾸는 작업을 진행하면서, 생각보다 시간이 엄청 오래 걸리는 작업이라는 걸 느꼈다. ECS 노드 프로비저닝 시간이 길기도 하고 혹시 모를 변수 때문에 장시간 신경써야만 했다. 지금은 제이스가 이런 작업을 많이 담당해주셔서 괜찮은 상태인 것 같은데 좀 더.. 효율적인 방법이 없을까 싶었다.
- 필요한 internal LB, 도메인 생성
파이프라인
- fontawesome 레지스트리 복제, Jenkins 백업, 특정 크기 EBS 조회 등 배치 파이프라인 작성
- Jenkins-library ci 브랜치 지정, 컨테이너 시작 로그 출력 등 기능 추가
고민
지난 5개월동안 천천히 생긴 고민이 하나 있다.
내가 입사 후 처음에 가장 중요하게 생각했던 건 다른 분들이 구성해놓으신 환경을 이해하고, 비슷하게 따라할 수 있을 정도로 적응하는 것이었다. 내가 모르는 것은 너무나도 많고, 다른 분들의 의견과 판단이 옳다는 것을 기본적으로 전제하고 환경에 스며들기 위한 방향으로 노력했다. (아직 부족한 점도 많지만, 적응하고 이해할 수 있게 된 영역이 나름 꽤 넓어졌다고 생각한다.)
하지만 지금의 시스템에 너무 적응만 하고 싶지는 않다는 생각도 한다. 괜히 반기를 들거나 반항하고 싶다는 뜻이 아니라, 빠르게 적응하기 위해서 완전히 이해하지 못한 것을 당연한 것으로 지나가지 않고 싶다. 또, 내가 이해한 지금의 상태가 최선이라고 생각하고 넘어가는 것을 경계하고 싶다. 다시 말하면 지금의 상태, 혹은 작업의 방향성에 대해서 좀 더 확신을 가지고 인지할 수 있으면 좋겠다.
그런데 내가 어느만큼 인지할 수 있는지도 잘 모르겠고, 어디까지를 적극적으로 받아들이고 어디부터 비판적으로 바라볼 수 있어야 하는지 잘 모르겠다. 올해에 ‘스스로 맞다고 판단했던 방향’이 다른 분에게 설득당해 바뀌는 경험을 많이 했는데, 그래서인지 나의 의견이 뭔지를 나조차 알 수 없는 기분을 느끼기도 했다.
내가 좀 더 많은 지식을 쌓았거나, 좀 더 행동하는 용기를 가졌다면 이런 고민을 덜 했을까? 아니면 좀 더 시간이 지나고 경험을 쌓아야 감을 잡을 수 있는 문제일까? 일단 혼란스러움을 느꼈다는 것은 사실이고 현재 진행형이다. 그리고 애초에 스스로의 역할에 대해서든 환경에 대해서든 개선할 수 있는게 무엇인지에 대한 고민에서 시작된 갈등이라, 조급하게 해결할 수 있는 문제도 아니고, 명확한 답을 얻을 수 있는 문제도 아니다.
따라서, 조금이라도 유의미한 방향으로 나아가다보면 좀 더 확신이 생기겠지- 라는 기대를 2025년의 나에게 해보고 싶다.
개인
균형
상반기에 학교에서 지내면서 혼자 해보고 싶었던 것들을 많이 즐겼다.
생산성에 대한 부담 없이 완전히 사심을 다해 공부했던 것 같다. 기술적 공부에 대한, 코딩에 대한 순수한 즐거움을 느낀 기간이었다. 하지만 외부의 피드백이나 압박이 적은 상태에서, 단순히 호기심을 따라 시간을 보내니 가끔 동력이 부족함을 느끼기도 했다.
입사한 후엔 이와 반대로 팀에 속하여 더 뚜렷한 목표가 있었고, 외부의 피드백과 내면의 압박이 더 많은 상황에 처하니 눈 앞에 있는 업무에 시간과 에너지를 엄청 집중하여 쏟게 되었다. 특히 위에도 적었던 것처럼 현재의 적응.. 을 위한 힘을 많이 써서 장기적인 목표나 새로운 것을 생각할 여유가 많이 없었던 것 같은데, 내년에는 너무 한 쪽에만 치중되지 않은 균형적인 생활을 할 수 있으면 좋겠다.
성격
이번 해 동안 내 성격에 대해 알게 된 점도 많다. 새로운 환경에서 새로운 상황들을 겪으면서, 내가 ‘이런 상황을 의외로 싫어하는구나, 이런 부분에서 의외로 약하구나’라는 자각을 많이 했다.
특히 확실하지 않은 상황에서 행동하고 실수하는 것이 두려워서, 말이나 질문, 행동을 하기 전에 생각을 과하게 많이 하는 성향이 있다. (고민한다고 해서 항상 좋은 결과가 있는 것이 아님에도..)
빠른 행동이 필요할 때 고민하느라 놓치는 것도, 질문을 잘 못하는 것도, 다른 분들과 있을 때 대화를 잘 잇거나 나서서 배려하지 못하는 것도 이런 부분이 원인인 것 같아서 앞으론 나의 두려움에서 기인한 성향을 극복할 수 있는 사람이 되고 싶다.
집
7월 말부터 고시원에 살다가, 크리스마스 다음날 (5일전) 야탑에 있는 원룸으로 이사하여 1인 가구가 되었다. 아직 미성년자라 실질적으로 혼자 할 수 있는 건 많이 없지만.. 나의 독립적인 거주처가 생겼다는 것이 의미있는 사실이다.
내 힘으로 통제가 가능하고, 혼자 온전히 집중할 수 있는 공간이 생겼다는 점이 행복하다. 새 집에서 새해를 맞는다는 것이 꽤 상징적인데, 내년에는 집에서도 자기개발을 위한 시간을 더 많이 투자해야겠다.
다짐
최근에 효율성이라는 책을 인상깊게 읽었다. 책 내용은 이렇다.
서양 사상에서는 목적하는 모델을 구체적으로 그리고, 그 모델에 효율적으로 다가가고 실현할 방법을 주로 고민한다. 계획대로 행동하는 것을 우선시하고, 계획과 다른 변수가 생기면 천재적인 순간 판단 능력으로 그것을 돌파하길 기대한다.
반면 중국의 사상, 전략에서는 상황을 먼저 세세히 파악하고, 그 속에서 유리한 요소를 활용할 방법을 먼저 고민한다. 손자병법에는 “승리한 군대는 전투를 하기 전에 이긴 군대”이고, “패배한 군대는 전투에서만 승리를 추구하는 군대”라는 구절이 있다고 한다. 상황을 점진적으로 유리하게 변화시키는 전략을 사용하여, 크게 드러나는 사건, 전투없이 쉽게 승리하는 것처럼 보인다.
과정에서의 변수는 어쩔 수 없이 생긴다. 그렇다면 그 과정을 어떻게 잘 할 수 있는지에 집중하는 것보다, 지금의 상태를 이해하고 활용하는 것에서 먼저 출발하는 게 더 효율적일 수 있다. 그리고 지금의 형세를 잘 파악하는 것이, ‘예상치 못한 상황에 유연하게 잘 대처하는 법’을 좀 더 구체적으로 설명할 수 있는 방법이라고도 생각한다.
어쩌면 당연하게도, 좋은 것 같다고 생각했던 방향으로 그냥 하는 것만으로 되는 것이 많이 없다는 걸 느낀 한 해였다. 당장 눈에 띄는 뭔가를 하진 않을 것 같고, 조금이라도 더 유리한 방향을 위한 조건을 만들 수 있는 사람이 되고 싶다는 다짐을 해본다.