개발자가 되기 위해 또는 새로운 회사로 이직하기 위해 기술 면접 준비는 필수입니다. 많은 분들이 기술 면접을 준비하는 과정에서 조금이나마 도움이 되었으면 하는 마음으로 기술 문제 질문을 메일로 발송해주는 서비스를 구성해보았습니다.
위 서비스는 기술 면접 카테고리를 다음과 같이 분류하였습니다.
- JAVA
- Java 언어에 대한 질문
- ex) 가비지 컬렉터에 대해 설명하고, 가비지 컬렉션 과정에 대해 설명해주세요
- SPRING
- Spring 프레임워크에 대한 질문
- ex) Spring 프레임워크는 트랜잭션을 어떻게 구현하였는지 설명해주세요
- SERVER
- 서버 사이드 프로그래밍에 대한 질문
- ex) 세션이 무엇인지 설명하고, 서버가 여러 대일 때 세션을 어떻게 처리하는지 설명해주세요
- NETWORK
- 네트워크에 대한 질문
- ex) 3-Way Handshake에 대해 설명해주세요
- OPERATING_SYSTEM
- 운영체제에 대한 질문
- ex) 세마포어(Semaphore)와 뮤텍스(Mutex)의 차이에 대해 설명해주세요
- DATABASE
- 데이터베이스에 대한 질문
- ex) 데이터베이스 정규화에 대해 설명해주세요
- PROGRAMMING
- 프로그래밍 전반에 대한 질문
- ex) 메모리 구조에 대해 설명해주세요
- DATA_STRUCTURE
- 자료구조에 대한 질문
- ex) 해시 테이블(Hash Table)과 시간 복잡도에 대해 설명해주세요
- ALGORITHM
- 알고리즘에 대한 질문
- ex) 버블소트, 힙소트, 머지소트, 퀵소트, 삽입소트와 각각의 시간 복잡도에 대해 설명해주세요
- PROBLEM_SOLVING
- 문제 해결 능력과 관련된 질문
- ex) 사용자 등록/조회/수정/삭제에 대한 Rest API를 설계해보세요
- CULTURE
- 문화 적합성과 관련된 질문
- ex) 만약에 일을 하게 됐을 때 그 팀이 코드 리뷰에 대해 보수적이고 페어를 완강하게 거부하는 곳이라면 어떻게 대처할 것인가요?
- EXPERIENCE
- 프로젝트 경험과 관련된 질문
- ex) 인상깊었던 트러블 슈팅 과정이 있으면 얘기해주세요
- PERSONALITY
- 면접자 개인에 관련된 질문
- ex) 최근에 읽은 기술 관련 책 이름이 무엇이고 인상깊었던 부분을 얘기해주세요
위 서비스는 등급을 다음과 같이 분류하였습니다. 사용자는 등급에 맞는 문제를 받게 됩니다. 신입과 주니어는 기술적인 내용들이 많이 포함되지만, 시니어는 프로젝트 경험과 주어진 문제 해결 능력이 주를 이룹니다.
- NEW: 첫 직장을 준비하는 신입 개발자
- JUNIOR: 이직을 준비하는 주니어 개발자
- SENIOR: 이직을 준비하는 시니어 개발자
- 모든 면접 질문은 기출 문제들 중에서 수집하였습니다.
- 빈출 문제들 위주로 엄선하여 수집하였고, 직접 등급을 나누었습니다.
- 제가 Spring, 백엔드 개발자인지라 다른 영역(안드로이드, 프론트엔드, 인공지능 등)에 대한 문제는 수집하지 못했습니다.
- 본인의 이메일 및 등급, 원하는 문제의 양, 원하는 요일을 블로그 댓글로 알려주면 사용자 등록을 해줍니다.
- 원하는 요일의 새벽 1시에 원하는 양의 문제가 랜덤으로 발송됩니다.(최소 1, 최대 5, 기본 3문제)
- 원하는 특정 카테고리가 있을 경우 지정하실 수 있습니다.
- 주어진 문제를 해결해나가면 됩니다.
- SpringBoot
- JPA
- Gradle
- ETC ...
이 서비스는 아직 매우 초기의 서비스이고, 나아갈 방향이 많이 있는 것 같습니다. 많은 분들께서 찾고 이용해 주시면 다음과 같은 기능들을 계속해서 추가해 나가도록 하겠습니다.
- 즉시 새로운 문제 전송 기능
- 문제에 대한 예시 정답 제공
- 기타 등등