다시 시작 Restart

SSAFY 수료생 대상으로 백엔드 개발자 채용 면접하다

Tap to restart 2024. 10. 18. 21:00

최근에 SSAFY 수료생을 대상으로 사내 백엔드 개발자 채용을 위해 면접관 중 한명으로 면접에 참여했다.

 

SSAFY란

SSAFY는 Samsung Software Academy For Youth의 약자로 삼성에서 운영하는 청년 SW 아카데미다.

아래 13기 공고처럼 1년 동안 소프트웨어 개발을 공부한다.

 

13기 커리큘럼은 아래와 같다.

SSAFY_13th_leaflet.pdf
1.68MB

 

면접 전 서류 심사

우선 서류를 훑어보았다. 업무 중에 지원서와 포트폴리오를 보다보니 기술스택이 맞는지, 지원 분야에 맞게 포트폴리오를 구성했는지 훑어보고 1차로 추렸다. 백엔드 분야를 모집했는데 포트폴리오 내용에 프론트엔드가 많다면 약간 의구심이 들었다. 백엔드에 관심이 없는데 지원한 것은 아닐까. 팀 내에서 함께 의견을 취합해서 5명을 추렸다.

 

면접

1명 당 50분씩 진행했다. 미리 팀 내에서 정리한 기본적 질문들과 백엔드 기술 관련 경험에 대한 질문, 면접자가 면접관인 우리한테 회사에 대해서 백엔드 개발 관련 조언이나 질문을 할 수 있는 시간을 가졌다.

 

엄청 특별한 질문을 하지는 않았다.

- 협업 시 갈등이 벌어졌을 때 어떻게 해결하는가

- 최근에 어떤 기술을 학습했고 왜 했는가

- 최근 겪은 장애나 어려움 중 기억에 남는 것과 어떻게 해결했는가

- 포트폴리오를 봤을 때 어떤 기술을 사용했는데 왜 사용했는가

 

백엔드 관련 질문도 특별하지는 않았다. 주로 경험에 대해서 물었다.

- 디버깅은 어떻게 하는가

- 테스트 코드는 작성해본 적 있는가 있다면 어떻게 작성했는가

- 비동기 구현 경험이 있는가

- 메세지큐 사용 경험이 있는가

- 로깅 경험이 있는가

- 성능 이슈 찾은 경험이 있는가

- 부하 테스트 경험이 있는가

- 인프라 구성 경험이 있는가 왜 그렇게 구성했는가

 

장고 경험이 있는 경우, 장고 단골 질문을 했다.

- 왜 장고를 선택했는가

- n+1 이슈에 대해서 설명할 수 있는가

- n+1 이슈 해결방법인 select_related와 prefetch_related 차이는

 

결과

총 5명을 면접했다. 5명 중 1명은 포트폴리오에 프런트 개발 내용이 많았는데 역시나 만나보니 프런트에 훨씬 관심이 많았다. 3명은 경험 수준이 엇비슷했다. SSAFY에서 1년간 공부했지만 여러 주제를 훑는 식으로 공부하다보니 백엔드에 대해서는 깊이 있는 경험이 부족했다. 디버깅도 print문으로 한다고 한 경우가 있었고 테스트 코드도 대부분 작성 경험이 없었다. 성능 이슈를 경험하고 해결한 경우도 거의 없었다. 어찌보면 당연하다고 볼 수 있다. 프로젝트 때 짧은 기간 동안 만들어서 시연하는 수준이니 성능 이슈가 발생할 가능성이 없으니까.

 

딱 1명 대부분 만족스러운 답변을 한 친구가 있었다. 컴퓨터과학 전공자였으며, SSAFY 프로젝트와 별개로 혼자서 서비스를 만들어 운영하면서 이것저것 실험을 한 친구였다. 그래서 비동기 경험도 메세지큐 사용 경험도, 부하 테스트 경험도, 테스트 코드 작성 경험도 있었다. 스스로 찾아서 다양한 경험을 했기에 설명도 잘 했다. 백엔드 개발자가 갖춰야 할 경험을 대부분 갖추고 있었다. 아마도 다른 곳 면접을 봐도 합격하지 않을까란 생각이 들 정도였다.

 

기억에 남는 점

ChatGPT

참고 문헌으로 ChatGPT를 말하는 경우가 꽤 있었다. 왜 장고Django와 함께 PostgreSQL을 사용했는가 물었더니, ChatGPT에게 물었더니 장고와 PostgreSQL이 궁합이 잘 맞다고 들었다고 하는 식이었다. 왜 그럼 궁합이 잘 맞는가에 대해서 물어보니 정확히 답변하지 못했다. 장고 공식 문서를 보거나 좀 더 찾아보면 어땠을까란 아쉬움이 들었다. ChatGPT 답변에서 멈추지 않고, 왜 궁합이 잘 맞다고 하는 거지? 라고 한 단계만 더 들어가서 찾아보고 공식문서까지 살펴봤다면, 면접관의 기억에 남는 지원자가 되지 않았을까.

 

프런트 개발도 하나요?

백엔드 개발자를 뽑는다고 했음에도 프런트 개발도 하는지 물었다. 작은 스타트업이면 프런트 개발도 하고, 백엔드 개발도 할 것이라고 생각한 거 같다. 조금만 큰 스타트업이라도 생산성을 위해서 프런트 개발자는 프런트만, 백엔드 개발자면 백엔드만 나눠서 분업하는데 몰랐던 거 같다.