오늘 면접 중 아시웠던 점
오늘 면접을 보고 왔습니다.
개인적으로 아쉬웠던 점이 있었네요. 느낌상 면접에서 탈락한 것 같지만, 각설하고 기록을 남겨봅니다.
문: “해당 아키텍처 구조상, 제가 느끼기에는 이런저런 문제가 있을 것 같습니다. 당시 해당 문제에 대해 이슈가 없었나요?”
답: “해당 문제는 초반에 인지하고 있었습니다. 내부적으로도 해당 문제에 대해 언급은 있었지만, 프로젝트의 1차 목표가 기존 시범 사업의 확대 구축이었기 때문에 기존 아키텍처를 최대한 답습하는 방향으로 진행되었습니다. 또한 여러 컨소시엄 업체가 함께 참여한 프로젝트였기에, 서로 간의 이해 충돌이 있었고 결국 해당 문제는 해결하지 못했습니다.”
문: “그렇다면 아까 초반에 말씀해주신 성능 개선 부분은 어떤 방식으로 진행하셨나요?”
답: “1분 동안 약 300~400개의 데이터가 쌓이는 원천 테이블이 있었고, 이 데이터는 6개월간 유지되어야 했습니다. 프로젝트 초반에는 데이터가 많지 않아 큰 문제가 없었지만, 시간이 지나며 데이터가 기하급수적으로 쌓이면서 웹 응답 속도가 느려지기 시작했습니다. 로그를 통해 여러 경로로 추적한 결과, 쿼리 성능에 문제가 있음을 확인했고, 인덱싱 등 다양한 방법을 시도해보았지만 큰 개선이 없었습니다. 그래서 결국 1일 단위의 파티셔닝을 적용해 성능을 개선했습니다.”
문: “제가 보기엔 파티셔닝은 성능 개선의 ‘최후의 보루’라고 생각합니다. DB 캐싱이나 다른 방법들도 있었을 텐데, 굳이 파티셔닝을 선택한 이유가 있을까요?”
답: “당시에는 제가 혼자 백엔드를 맡고 있었습니다. 변명일 수도 있겠지만, 제게 주어진 업무가 매우 많았고, 주어진 기간 내에 문제를 해결하기 위해 가장 빠르고 확실한 방법을 선택해야 했습니다. 파티셔닝은 저에게 익숙했고, 비교적 안정적으로 적용할 수 있는 방법이었기에 선택하게 되었습니다. 말씀해주신 기술들(DB 캐시 등)에 대해서는 제가 실무에서 직접 적용해본 경험이 부족했기 때문에, 도입에 심리적인 부담감도 있었습니다.”
면접이 끝나고 돌아보니, 특히 마지막 답변이 아쉬웠습니다.
물론 제가 더 뛰어난 실력을 갖췄다면, 혼자서도 더 나은 방향으로 프로젝트를 끌어갈 수 있었겠지만… 당시 제 상황에선 그게 최선이었다고 생각합니다.
하지만 면접을 끝내고 나니,
“그때 그 문제를 더 적극적으로 어필하고 해결하려 했어야 하지 않았을까?”
하는 생각이 자꾸 듭니다.
비록 이번엔 떨어졌겠지만, 다음 면접을 위한 소중한 경험치였다고 생각합니다.