백엔드 개발 관련 질문들은 기술적인 깊이보다는 논리적이고 납득 가능한 답변을 기대 했다. 자바 스프링만 깊게 안다고 하더라도, 깊이는 지원자간 편차가 크지 않을 것이다(정말 깊게 잘 아는 지원자는 네이버 카카오를....). 지원자가 문제 해결 과정 기술적인 배경 지식을 잘 설명할 수 있다면 좋았고, 구체적인 예시와 실제 경험을 바탕으로 한 설명을 기대 했다. 서버 간 통신 등 백엔드 전반에 대한 이해도가 중요한 평가 요소 였다.
백엔드 담당 또는 기여 내용 및 성과 ?
면접을 시작하기 좋은 질문 이었다. 지원자의 성과를 어필 할 수 있고, 기술적인 꼬리 질문을 하기 위한 질문이다. 답변에 백엔드 기술에 연관된 키워드는 대부분 설명 가능 함을 기대 했다.
✅ 질문 의도
- 지원자가 실제로 프로젝트에서 백엔드 개발에 기여한 내용을 듣고, 해당 경험이 실제로 얼마나 깊이 있는지, 그리고 서류 내용과의 일관성을 확인
- 답변에 따라 지원자의 기술 수준과 참여도 확인
💡 기대 하는 답변
- 구체적인 프로젝트 및 역할을 설명하며, 어떤 백엔드 기술을 사용했는지 명확하게 언급. 자신이 설명 가능한 기술 키워드를 포함 하여 답변
- 예시: "사용자의 요청을 처리하는 RESTful API를 개발하고, 데이터베이스의 성능 최적화를 담당했습니다. 연관 데이를 단건 조회에서 조인 조회를 했고, 이 과정에서 테이블의 인덱스를 적용 했습니다"
🚨 주의할 점
- 과장된 내용: 지원자가 작성한 서류와 실제 경험이 너무 다르면 의심 서류와 면접에 대한 진정성이 의심됨
백엔드 서비스 구조 아키텍처 설명
단순히 자바 스프링만 코딩한게 아닌, 백엔드 서비스의 구조를 이해하고, 관심을 가졌는지 확인 하기 위한 질문.
✅ 질문 의도
- 백엔드 서비스 구조에 대한 전반적인 이해도를 평가 함. 실제로 아키텍처 설계에 참여했는지, 백엔드 시스템 전반을 이해하고 있는지 확인하려는 질문
- 실제 설계 하지 않았더라고, 간단히라도 백엔드 서비스 구조를 설명할 수 있는게 좋았음
- 구체적인 설정법이나 운영 경험은 기대 하지 않고, 해당 서비스 컴포넌트가 어떤 용도로, 왜 쓰였는지 간략한 설명을 기대 했음
💡 기대 하는 답변
- 아키텍처 설명 시 서비스 컴포넌트(예: 웹 서버, DB 서버, 애플리케이션 서버 등) 간의 관계와 역할을 설명하는 것이 좋았음
- 예시: "클라이언트에서 오는 요청은 NGINX로 로드밸런싱되고, Spring Boot 앱에서 처리한 뒤 MySQL 데이터베이스와 연동됩니다."
🚨 주의할 점
- 자바만 개발 했다고 하면 백엔드 관심이 부족 해 보였음
RESTful API 설명
✅ 질문 의도
- 서버와 클라이언트 간의 데이터 요청 방식을 이해하는지 확인하고, RESTful API의 기초적인 개념을 알고 있는지 확인
💡 기대 하는 답변
- HTTP 메서드(GET, POST, PUT, DELETE)와 리소스 관점의 URL 개념 설명을 기대
- 예시: "사용자가 특정 상품 정보를 요청하면, 클라이언트는 GET /products/{id}를 호출하고, 서버는 해당 상품 정보를 반환합니다. 조회 생성 등 리소스의 행위는 메서드로 표현하고, 요청하는 리소스 관계를 주소로 표현 합니다"
🚨 주의할 점
- HTTP 메서드 사용 오류: 예를 들어, 데이터를 수정하는 작업을 GET으로 설명하거나, 리소스를 잘못 표현하는 것에 주의
스프링 빈 클래스와 자바 클래스 차이
자바 스프링 프레임워크의 기본적인 개념을 확인 하기 위한 질문임. 스프링 프렘워크의 역할을 의존성 관리 관점으로 간단한 설명을 기대 했음. 답변이 디테일하고 수월 하다면, 스프링에 대한 추가 질문을 이어 갈 수 있음.
✅ 질문 의도
- 스프링의 의존성 관리와 의존성 주입(DI)에 대한 기초적인 이해를 확인하고자 함
💡 기대 하는 답변
- 스프링 빈은 스프링 컨테이너가 관리하는 객체이며, 자바 클래스는 일반적인 자바 객체라는 점을 명확히 구분하여 설명합니다.
- 예시: "스프링 빈 클래스는 @Component 등의 애너테이션을 통해 스프링 컨테이너에서 관리되고, 의존성 주입을 통해 다른 객체와 연결됩니다."
🚨 주의할 점
- 빈과 클래스의 차이 불명확한 답변: 자바 클래스를 스프링 빈으로 사용한다고만 답하거나, 의존성 관리의 중요성을 제대로 설명하지 못하는 경우에는 이해도가 부족하다고 판단될 수 있음. 답변이 부정확 하더라도 감점 요소는 아니었음.
서로 다른 언어로 만들거나 서로 다른 서비스에서 데이터 교환 방법
지원자 프로젝트에서 자바 스프링 외 다른 언어로 만든 서버를 같이 사용한 경우에 질문 했음. 서로 다른 언어로 개발된 서버의 데이터 교환 방법을 모르면, 서비스 관심이 부족 했다고 생각 됨.
✅ 질문 의도
- 다른 서비스 또는 언어 간의 데이터 교환 방식과 서버 간 통신에 대한 경험을 확인
- 다양한 서버 간 HTTP 통신 및 데이터 포맷 표준화(JSON, XML 등)에 대한 이해도 확인
💡 기대 하는 답변
- HTTP 통신을 통한 데이터를 교환하거나, 특정 API를 통해 통합한 경험을 언급합니다.
- 예시: "Python으로 작성된 마이크로서비스에서 처리된 데이터를 REST API를 통해 JSON 형식으로 전달받아 Spring Boot에서 처리했습니다."
🚨 주의할 점
- 구체적인 데이터 포맷이나 통신 방법을 언급하지 않거나, 너무 추상적인 답변을 할 경우 답변의 진정성이 의심 됨
백엔드 서버에 로그인 인증은 어떤식으로 구현했는지?
백엔드 담당 역할에서 로그인, 회원가입, 인증을 담당한 지원자에게 질문 했음. 답변 수준에 따라 꼬리 질문을 이어 갈 수 있음.
✅ 질문 의도
- 백엔드에서 인증과 세션 관리 방법을 어떻게 구현했는지에 대한 경험 확인
- 세션 방식 인증과 API Key 차이와 사용 방법, 암호화 등의 기본적인 보안 개념 확인
💡 기대 하는 답변
- 세션 관리 방식이나 API Key 방식의 인증을 어떻게 구현했는지 구체적으로 설명합니다.
- 예시: "세션 인증 방식을 사용 했고, 서버 간의 세션 동기화는 세션 스토어 Redis를 통해 관리했습니다."
🚨 주의할 점
- 인증을 구현 했지만, 어떤 방식으로 구현 했고, 원리 설명을 못하면 진정성이 의심 됨
WAS(Spring Boot, Tomcat) 만 사용하지 않고, Web Server(NGINX) 추가한 이유?
대부분 백엔드 아키텍쳐 설명에서 웹서버(아파치, 엔진엑스)를 언급 했고, 해당 웹서버의 역할과 백엔드 서비스 이해도를 확인 하기 위한 질문.
✅ 질문 의도
- WAS와 Web Server의 역할과 차이를 이해하는지 확인
- NGINX와 같은 웹 서버가 리버스 프록시나 로드밸런싱, 정적 파일 서빙 등에 어떻게 사용되는지 확인
💡 기대 하는 답변
- NGINX와 같은 웹 서버가 정적 파일 서빙이나 리버스 프록시로 사용되며, 보안 또는 성능 측면에서 어떻게 장점을 제공하는지 설명
- 예시: "NGINX는 로드 밸런서 역할을 하여 여러 개의 Spring Boot 인스턴스 사이에 트래픽을 분산시키고, SSL 인증을 처리하기 위해 추가했습니다."
🚨 주의할 점
- 웹 서버와 WAS의 차이점을 잘못 설명하거나, NGINX가 단순히 정적 파일만 서빙하는 것으로 답할 경우 기술적인 깊이가 부족해 보일 수 있습니다.
외부 API 통합 하거나 외부 데이터를 자신의 서비스에 맞게 표준화 해본적 있는지?
프로젝트에서 외부 시스템을 통합한 경험이 있는 경우 질문 했음. 외부 데이터를 표준화 하고, 자신의 서비스 통합 과정 설명을 기대 함.
✅ 질문 의도
- 외부 API를 통합하거나 외부 데이터를 표준화하여 자신의 서비스에 맞게 사용한 과정 확인
💡 기대 하는 답변
- API 통합 과정과 표준화 작업을 어떻게 수행했는지 구체적으로 설명
- 예시: "외부 결제 API를 통합하여 데이터를 처리하는 과정에서, 응답 포맷을 JSON으로 변환하여 시스템에 맞게 표준화하여 처리했습니다."
- 예시: "외부 시스템의 상태 값을, 우리 시스템에 맞게 표준화 및 설계 후 구현 하였습니다.."
🚨 주의할 점
- 세부적인 구현 과정 없이, "외부 API를 사용했습니다" 정도로 끝나고 구체적인 방법을 설명 할 수 없다면 진정성의 의심 됨
데이터베이스 동시성 이슈를 해결 해본적 있는지?
동시성 이슈를 해결한 경험이 있는 지원자에게만 질문 함. 동시성 이슈 파악 부터 원인 규명 및 해결 과정 및 기술적 이해도를 알 수 있고, 답변 수준에 따라 데이터베이스 이해도를 유추 할 수 있음. 꼬리 질문에도 유용 했지만, 꼬리 질문 답변 불가시 감점 대상은 아님.
✅ 질문 의도
- 동시성 이슈 개념, 데이터베이스 락, 인덱스 등 데이터베이스 지식 확인
💡 기대 하는 답변
- 동시성 이슈 내용과 해결 방법을 정확히 설명
- 예시: "상품 재고를 차감 할 때, 실제 재고보다 많이 차감 되는 경우가 있었음. 주문 상품 조회시, 같은 상품 재고에 서로 다른 트랜잭션이 동시에 접근 할 수 없도록, 비관적 락을 사용 했고, 모든 상품이 락에 걸리는 것을 방지 하기 위해, 상품 재고 테이블에 적절한 필드에 인덱스를 적용 했고, 조회 쿼리에도 해당 컬럼을 조건으로 조회 하여, 재고 값을 동시에 사용 하는 것을 방지 함."
🚨 주의할 점
- 동시성 이슈를 해결한 내용이, 직접적인 원인이 아닐 경우 이해도가 깊지 않다고 생각 되었음.
기억에 남거나 강조하고 싶은 백엔드 이슈 해결 성공 또는 실패 경험이 있는지?
✅ 질문 의도
- 면접 질문 외, 백엔드 개발에 대한 성과 어필 하는 질문임
- 문제 해결 과정에서의 논리적 접근과 기술적 판단을 중점적으로 확인
💡 기대 하는 답변
- 이슈 해결 과정과 배운 점을 강조하여 문제를 어떻게 해결했는지, 실패한 경험도 어떻게 배워 나갔는지 설명
- 예시: "초기에 로그인 인증을 세션 기반으로 구현했는데, 서버가 여러 대로 확장되면서 세션 동기화 문제가 발생했습니다. 이를 해결하기 위해 Redis를 활용한 세션 스토어를 도입하여, 여러 애플리케이션 서버에서 세션데이터를 동기화 할 수 있었음"
🚨 주의할 점
- 실패 경험을 과도하게 부각시키거나 해결책이 논리적이지 않는다면 신뢰성이 떨어짐
끝.
면접 질문 - 개발 공통
신입 백엔드 개발자 면접, 이렇게 질문 했습니다 - 개발공통
이번에 면접을 진행 하면서, 개발공통 및 의사소통 관련 질문을 정리 했다. 지원자의 논리적인 사고, 원활한 의사소통, 협업 능력, 문제 해결 과정에 초점을 두고 질문을 준비 했다. 문제를 해결
gusrb.tistory.com
면접 질문 - 프론트엔드 개발
신입 백엔드 개발자 면접, 이렇게 질문 했습니다 - 프론트엔드
포트폴리오에 프론트엔드 기여 내용이 있을 때만 질문 했고, 프론트엔드 기여 내용을 어필 할 수 있는 기초적인 질문만 했다. 백엔드 담당자이니 깊은 내용은 질문 하지도 않았고, 나도 잘 모른
gusrb.tistory.com
'일 고민' 카테고리의 다른 글
내가 신입 때 본 면접 경험 - 절망편 (0) | 2025.02.17 |
---|---|
신입 백엔드 개발자 면접, 이렇게 질문 했습니다 - 프론트엔드 (0) | 2025.02.16 |
신입 백엔드 개발자 면접, 이렇게 질문 했습니다 - 개발공통 (1) | 2025.02.16 |
신입 백엔드 개발자 면접, 이렇게 질문 했습니다 (0) | 2025.02.16 |