개발일지 (10월 회고)

2022. 11. 6. 09:47Developer History

 

 

 

Overview

10월까지만 해도 반팔을 입을까 얇은 긴팔을 입을까 고민했었던 것 같은데 11월이 되면서 꽤 쌀쌀해진 날씨와 함께 드문드문 단풍이 보이는 것 같다. 어쩌면 정신없이 바닥만 쳐다보며 살다가 한숨 돌릴틈이 생긴 이제서야 한번 하늘을 올려다본 걸지도 모른다. 항상 다음 달은 이전달보다 바빠왔지만 10월은 올해 들어 유난히 체감상 더 바빴던 달이기도 하다.

Frontend

회사에서는 "내신기출 서비스" 출시를 앞두고 막판 스퍼트를 시작했다. 이런저런 프로모션 대응이나 서비스 제공을 위한 여러 웹뷰들, 그리고 이를 관리하고 문제 / 해설을 수급하는 어드민성 웹 페이지들을 만드는 작업들을 팀원들과 같이 진행하고 있는데, 그중에서 내가 비중있게 맡고 있는 작업은 Latex 수식의 형태로 들어있는 스트링을 적당한 사이즈로 렌더링해서 transparent PNG로 만들어주거나, 적절히 문제를 배치하고 워터마크를 추가해서 학교 시험지의 레이아웃의 형태로 PDF로 만들어주는 렌더러를 만드는 작업이었다.

 

 

기존에 수식을 한번 변환해서 HTML Tag & CSS를 적용하는 식으로 데이터를 적재하고 있었기 때문에 렌더할때도 이 방식을 사용해야 했고, 따라서 Headless Chrome을 사용해서 렌더하는 방식을 선택했다. 여기에 요청이 On-Demand가 아니라 적절한 시간 간격으로 batch를 돌려 들어오기 때문에 "항상 떠있어야 할 필요는 없지만, 한번 요청이 들어올 때 수천 ~ 수만건의 요청을 문제 없이 처리할 수 있어야 하는" 상황이 생겼고, 이를 위해 DevOps 팀원분들과 비용 관련된 부분들을 논의한 후에 적절한 Vertical / Horizontal Scaling 방식을 선택했다. 서비스를 만들고 운영 환경을 A-Z까지 구성하면서 학교 수업에서 배운 System Programming과 Database 관련된 내용들이 많은 도움이 되었던 것 같아서 이래저래 재밌게 개발했던 것 같다.

 

 

사내에서 진행하던 AIP 스터디가 일단 Phase1을 마무리했고, Nextjs 13 / React 18 스터디를 시작하기로 했다. 중간고사를 준비하느라 Next 13에 어떤 내용들이 추가되었는지도 모르고 있었는데, 마침 팀원들도 Nextjs13 / React 18에 대해서 조금 자세히 파보고 싶다는 의견들이 있어서 추진해보기로 했다. 단순히 어떤 기능들이 추가되었는지를 떠나서, 어떤 문제를 어떻게 구현해서 해결했는지에 초점을 맞춰서 스터디를 좀 깊고 길게 운영해보고 싶다는 생각이 들었다.

 

 

사내에서 진행하고 있는 System Monitoring Raid도 거의 마무리가 되어 간다. 콴다에서 운영하는 서비스는 검색 결과 페이지가 아니더라도(이건 주간 몇백만의 트래픽을 받고 저번주는 천만건 정도의 트래픽을 받았다.) 기본적으로 주간 몇만건 ~ 몇십만건의 트래픽을 받기 때문에 시스템을 안정적으로 운영하고, 버그나 에러 사항에 대해서 빠르게 원인을 파악하고 대응하는 것이 중요하다. 따라서 모든 팀원들이 이에 대해 능숙하게 숙지하고 대응하는 방법을 익히는 것이 중요하다고 생각했다. 

 

 

 

레이드를 진행하면서 DevOps Team Lead분과의 이야기를 통해 유저의 요청이 어떻게 파드 내의 애플리케이션 컨테이너까지 들어가고, 어떤 곳에서 어떤 헤더를 추가하고 / 수정하고, 어떤 로그가 어디에 남는지에 대해서 정리할 수 있었고, 이를 기반으로 프론트엔드 애플리케이션에 어떤 문제가 생겼을 때, 어떤 로그들을 보고 어떤 지표들을 확인해야 하는지를 잘 정리할 수 있었다. 학교에서 Flipped Learning이라는 개념을 처음 접하고 꽤나 효과적인 방법이라 생각해서 레이드도 Flipped Raid 방식을 도입해서 진행해 보았는데, 실제로 레이드 미팅 시간에는 만나서 상황을 가정하고 Discussion / Presentation 위주로 진행하고, 각자 개인적으로 시간을 내서 자료들을 조사하고 문서를 작성하다보니 효율뿐 아니라 개개인의 이해도도 높아지는 것 같아서 꽤 좋은 효과를 낸 것 같다고 느껴졌다.

 

 

레이드를 진행하면서도 유지보수하고 있는 서비스들에 Alert들이 올 때가 있었는데, 레이드때 나눈 이야기들을 바탕으로 Alert 메세지가 서비스의 어떤 부분에서 발생한 것인지를 확인하고 적절한 담당자들에게 충분한 정보와 함께 에러 상황을 전달할 수 있었던 것 같다.

 

School

11월 1일 5시간에 걸친 시스템 프로그래밍 이론 / 실습 시험을 마지막으로 중간고사가 다 마무리되었다. 병행을 결정하면서 가장 우려하던 케이스인 (회사상황이 가장 바쁠때 + 과제를 약간 덜 한 상태 +  시험 공부를 해야 하는 상태 = 블랙 스완)가 발생하고야 말았고, 안티프래질을 그렇게 수차례나 읽었음에도 내 삶에서의 프래질을 탐지하지 못한? 가볍게 생각한? 죄로 블랙 스완을 맞닥뜨리고 나서 혹독한 벌을 받는 느낌이었다. 그래도 열심히 체력 훈련을 해둔 덕과 + 과제와 수업 진도를 따라갈 수 있도록 도와준 고마운 동료들(특히 성찬이, 호찬이)덕분에 위기를 모면할 수 있었고 어찌저찌 나쁘지 않게 중간고사를 마무리했다.

 

 

그와 별개로 학교수업과 회사생활을 병행하는 것은 굉장히 좋은 선택이었다는 느낌이 든다. 학교에서 배운 내용들을 회사에서 바로 적용할 수 있는 상황 자체가 여러번 있어서 밤 늦게까지 신나게 적용해볼 수도 있었던 것 같고, 이해가 되지 않는 내용들을 회사의 시니어 분께도 물어보고 교수님께도 물어보면서 여러 분야에서 폭넓은 학습을 할 수 있었던 것 같다. (원래 이렇게 질문을 많이 하는 학생이 아니었는데 궁금한걸 못참게 되어버린 모습이 조금 신기하기도 했다)

 

 

오랜만에 동기들과 수업을 들으면서 "아 여기 서울대였지"라는 생각을 다시금 했다. 어떤 개념을 "안다"라고 생각했을 때 내가 생각하는 앎의 정도와 동기들이 기대하는 앎의 정도가 상당한 간극이 있는 경우가 꽤 있었던 것 같아서 옆에서 열심히 배우면서 앎의 기준을 수정해 나갈 수 있었던 것 같다. 스스로 이런 기준까지 도달할 수 있을 만큼 조금 더 개인적인 기준을 높여보리라 생각했다.

 

Reading & Philosophy

회사와 학업을 병행하는데에 대한 프래질을 탐지하지 못한 대가를 혹독히 치루는 바람에 독서를 많이 하지는 못했지만, 그래도 틈틈히 몇 권의 책을 읽을 수 있었다. (처음부터 끝까지 다 읽은 것은 아니다). 그중 기억에 남는 3권의 책이 있는데, 쇼펜하우어의 "의지와 표상으로서의 세계", 노자의 "도덕경", 그리고 지금까지 읽은 책 중 내 인생에 가장 많은 영향을 미친 나심 니콜라스 탈레브의 "안티프래질"이다. 자세한 내용들을 여기서 다루기는 어렵지만, 각 책들의 저자가 변화하는 세계, 즉 불확실한 상황에 반응하고 대응하는 지점에 대해 비슷한 온도를 취하고 있다는 느낌을 받았어서 이 책 펴서 읽다가 저 책 펴서 읽다가를 여러번 반복했던 것 같다. (지금 이 글을 쓰는 순간에도 옆에 도덕경이 펼쳐져있다) 

 

Economics

10월달에는 에세이를 거의 쓰지 못했지만, 출퇴근길과 등하교길을 오가면서 FOMC 방송이나 증시방송들은 꼭꼭 챙겨봤던 것 같다. 일련의 방송들을 따라가면서 들었던 생각은 단순히 "상황이 조금 어렵다"라고 이야기하기에는 거시적인 흐름에서의 변화가 너무 크다는 것이다. 마치 주기적으로 오르락내리락 하는 상황에서 내리막길에 서있는 느낌이라기보다는 어떤 세대와 세대 사이의 거대한 변곡점에 서있는 느낌이 든다.

 

러 / 우 전쟁과 미 / 중 갈등, 대만과 이란, 인도의 여러 사건들이 보고되면서 자유무역의 시대는 점점 종말을 향해 달려가고 있는 것 같고, 미국의 금리 인상, 그리고 중국의 일대일로 사업의 실패 등으로 인해 피해를 보고 디폴트 선언을 하는 나라들이 점점 늘어나고 있다.

바이든 대통령 취임 때만 하더라도 "전세계의 경찰로서의 미국"의 역할에 대해 이야기하다가 상황이 어려워지니 "연준은 미국의 중앙은행"이라고 이야기하는 미국의 모습을 보면서 국제 정치는 정말 잔인하고 냉혹하다는 느낌도 받았다.

 

 

 

반응형

'Developer History' 카테고리의 다른 글

개발 일지 (1월 회고)  (2) 2023.01.29
개발일지 (11월 & 12월 회고)  (0) 2022.12.18
개발일지 (9월 회고)  (0) 2022.10.03
개발일지 (8월 회고)  (2) 2022.08.28
개발일지 (7월 회고)  (3) 2022.07.31