2026. 05. 28. 09:47
백엔드 기술면접에서 Redis, Kafka, JPA 같은 키워드는 자주 나옵니다. 그래서 프로젝트에 이런 기술을 넣어두면 면접에서 유리할 것처럼 느껴집니다. 하지만 기술을 써봤다는 사실만으로는 충분하지 않습니다.
면접관이 궁금한 것은 “그 기술 이름을 알고 있는가”가 아닙니다. 어떤 문제 때문에 그 기술을 선택했는지, 다른 대안은 왜 선택하지 않았는지, 어떻게 구현했는지, 결과가 실제로 좋아졌는지, 문제가 생기면 어떻게 대응할 수 있는지를 봅니다. 기술 경험은 있는데 답변이 약한 이유는 대부분 경험과 설명 사이에 있습니다.
프로젝트에서는 기능이 돌아가면 넘어갈 수 있습니다. Redis를 붙였고, Kafka를 붙였고, JPA로 저장했습니다. 화면상으로는 충분해 보일 수 있습니다. 하지만 면접에서는 바로 다음 질문이 나옵니다.
왜 Redis를 선택했나요?
DB 캐시와 어떤 차이를 기대했나요?
Kafka가 꼭 필요했나요?
장애가 나면 메시지는 어떻게 처리되나요?
성능은 얼마나 좋아졌고 어떻게 측정했나요?
그 경험에서 배운 것은 무엇인가요?
이 질문에 답하려면 “써봤다”가 아니라 “왜 썼고, 어떻게 확인했는지”가 있어야 합니다.
백엔드 면접 답변은 프로젝트 소개가 아니라 의사결정 설명에 가깝습니다. 따라서 경험을 하나의 이야기로 정리해야 합니다. 첫째, 어떤 문제가 있었는지 말해야 합니다. 응답 시간이 길었는지, DB 부하가 높았는지, 주문 이벤트 처리 순서가 중요했는지, 중복 처리가 문제였는지부터 분명해야 합니다.
둘째, 왜 그 기술을 선택했는지 말해야 합니다. Redis를 썼다면 빠른 조회, TTL, 캐싱 전략, 세션 저장 같은 선택 근거가 있어야 합니다. Kafka를 썼다면 비동기 처리, 이벤트 스트림, 처리량, 장애 격리 같은 이유가 있어야 합니다.
셋째, 어떻게 구현했는지 말해야 합니다. 단순히 붙였다는 말보다 키 설계, 만료 정책, 재시도, 예외 처리, 트랜잭션 경계, 모니터링 지점을 말할 수 있어야 합니다.
넷째, 결과가 어떻게 나타났는지 말해야 합니다. 응답 시간이 얼마나 줄었는지, 쿼리 수가 얼마나 줄었는지, 에러율이 어떻게 변했는지, 부하 테스트에서 어떤 차이가 있었는지까지 이어져야 합니다. 이 흐름이 있어야 기술 경험이 면접 답변으로 바뀝니다.
면접장에서 질문을 받으면 긴장해서 설명이 길어지기 쉽습니다. 이때는 답변 구조를 단순하게 잡는 편이 좋습니다. 먼저 실제 문제 상황을 말합니다. “상품 목록 조회에서 동일한 쿼리가 반복되어 응답 시간이 길었습니다”처럼 출발점을 짧게 잡습니다.
그다음 해결 방법을 말합니다. “자주 조회되는 데이터를 Redis에 캐싱하고, TTL과 무효화 기준을 나눴습니다”처럼 내가 한 선택과 구현을 설명합니다. 마지막으로 결과를 말합니다. “평균 응답 시간이 줄었고, DB 조회 횟수가 감소했습니다”처럼 변화가 있어야 합니다. 가능하면 숫자로 말하는 편이 좋습니다. 상황, 해결, 결과 흐름이 있으면 답변이 덜 흔들립니다. 면접관도 지원자의 의사결정을 따라가기 쉬워집니다.
꼬리질문은 지원자를 괴롭히기 위한 질문이 아닙니다. 진짜 경험인지, 선택 기준이 있었는지, 문제를 끝까지 봤는지 확인하는 과정입니다. “왜 그 기술을 선택했나요?”는 대안을 비교했는지 묻는 질문입니다. “트레이드오프는 없었나요?”는 장점만 보고 넣은 것이 아닌지 확인하는 질문입니다. “성능은 어떻게 측정했나요?”는 체감이 아니라 근거가 있는지 묻는 질문입니다.
“문제가 생기면 어떻게 대응하나요?”는 운영 관점이 있는지 확인하는 질문입니다. 그래서 기술면접 준비는 예상 질문을 외우는 것에서 끝나면 안 됩니다. 내가 한 선택마다 선택 이유, 버린 대안, 부작용, 측정 방식, 배운 점을 붙여봐야 합니다.
면접장에서 모르는 질문이 나올 수 있습니다. 이때 아무 말도 못 하거나, 아는 척하며 틀린 답을 밀어붙이면 위험합니다. 더 나은 방식은 사고 과정을 보여주는 것입니다.
먼저 모르는 부분을 솔직히 인정합니다. 그다음 내가 알고 있는 범위를 말합니다. 이어서 어떤 가정으로 접근할지 설명하고, 질문의 범위를 좁힙니다. 예를 들어 “Kafka의 내부 구현까지는 정확히 설명드리기 어렵지만, 제가 사용한 범위에서는 메시지 중복 처리와 재시도 정책을 이렇게 다뤘습니다”처럼 답변할 수 있습니다. 모든 질문에 완벽히 답하는 사람은 드뭅니다. 중요한 것은 모를 때도 문제를 구조화해서 접근할 수 있는지입니다.
회사마다 기술면접에서 보는 포인트가 다릅니다. 대형 트래픽을 다루는 회사는 성능, 장애 대응, 확장성 질문이 더 강할 수 있습니다. 결제나 주문 같은 도메인을 다루는 회사는 정합성, 트랜잭션, 예외 처리 질문이 중요할 수 있습니다. 따라서 회사별 채용 분위기와 서비스 특성을 보고 역질문도 준비해야 합니다.
“이 팀에서는 장애 대응 경험을 어떤 방식으로 공유하나요?”처럼 내가 관심 있는 기술 역량과 회사의 실제 일하는 방식을 연결하는 질문이 좋습니다. 면접 준비는 답변만 준비하는 일이 아닙니다. 내가 어떤 팀에서 어떤 문제를 풀게 될지 확인하는 과정이기도 합니다.
백엔드 기술면접에서 강한 답변은 기술 이름을 많이 나열하는 데서 나오지 않습니다. “Redis 써봤습니다”보다 강한 답변은 “반복 조회 때문에 응답 시간이 길어졌고, Redis 캐싱을 적용했으며, TTL과 무효화 기준을 나눴고, 측정 결과 응답 시간이 줄었습니다”입니다.
“Kafka 써봤습니다”보다 강한 답변은 “동기 처리로 병목이 생겼고, 이벤트 기반으로 분리했으며, 중복 처리와 재시도 정책을 이렇게 잡았습니다”입니다. 기술 경험은 문제, 선택 기준, 구현, 결과, 배운 점까지 이어질 때 면접 답변이 됩니다. 면접은 운만으로 결정되지 않습니다. 준비한 사람이 자신의 경험을 더 선명하게 설명합니다.