본문 바로가기

뇌세포덩어리""/리쿠르트

파이썬 백엔드 면접 질문들

점수 주기도 아까운 실력이다

 

이번 면접은 코딩을 하면서 계속해서 문제점을 개선해 나가는 형식이었다.

이런 면접의 경험은 처음이여서 엄청 도움이 되었으며, 신선하고, 재미있었다.

비록 탈락 했지만, 해당 회사의 서비스도, 면접관들도 너무 좋았다.

다음에 기회가 된다면 정말 다시 넣어볼 생각이다.

쨋든 크게 두가지로 진행되었으며, 알고리즘과 실제 서비스 구현 문제였다.

 

1. 알고리즘 문제

- n개의 방(room)이 있다

- 각 방은 키가 있어야만 들어갈 수 있다

- 해당 키는 랜덤하게 어떠한 방에 들어가 있다

- 어떤 방은 키가 있을 수도 없을 수도, 두 개 이상일 수도 있다

- 0번 방부터 시작한다.

- 모든 방을 방문 했는지 여부를 true, false 리턴하라

 

* 입력의 형태는 어떻게 하고 싶어?

* 어떤 식으로 풀어갈꺼야?

* 해당 알고리즘을 무엇이라 하는가?

* 시간 복잡도는?

* 공간 복잡도는?

* 다른 데이터 타입을 쓴다면 공간 복잡도와 시간 복잡도는 어떻게 될 거 같아?

* 빼먹은 것은 없어? <- 이 부분을 계속해서 체크해 주셨다.

 

 

 

2. 기술 문제

- short url 사이트를 만들어보자

- api설계

- 디비 설계

 

* 5자리로 할 때 최대 몇 개를 만들 수 있을까?

* 5자리는 어떻게 만들 거야?

* 만일 프리미엄 사용자가 원하는 url을 선택할 수 있다면 api와 비즈니스는 어떻게 수정해야 될까?

* 만일 url을 만들 때 충돌에 대한 예외처리는 어떻게 할 거야?

* 기존 차례대로 url을 만들어주는 api에서는 충돌 시 어떤 status code를 뱉어야 돼?

* 디비 인덱스를 어떻게 걸어야 할까?

* 엄청나게 많은 건수를 만든다면 어떻게 될까? 어떻게 해야 될까?

* nosql / DBMS의 차이는?

* 샤딩/레플리카/파티셔닝은?

* 복합 인덱스는?

* 복합 인덱스를 a/b, b/a로 걸 때 어떻게 차이가 나?

* 만일 사용자의 접속한 url의 평균을 보고 싶다면 어떻게 해야 할까?(시간별/5분당)

* 공간 복잡도

* 시간 복잡도

 

 

내가 면접관으로 들어간다면 정말 이렇게 문제를 내겠다고 다짐한 좋은 경험이었다.

문제는 탈락해서 문제겠지? ㅋㅋㅋ

주어진 일만 하지 말고, 더욱더 기본기와 생각하면서 코딩을 해야겠다.