[취업] 2022 하반기 백엔드 취업회고 : 14번의 면접 그리고 취뽀 - 4 (기술면접)

su_y2on·2023년 2월 25일
278

취업

목록 보기
11/14

14번의 면접 그리고 취뽀 - 4 (기술면접)

🗣 면접

개발자는 기술과 인성면접을 주로 본다. 전자는 실력을 후자는 회사와의 핏을 확인한다. 구분을 해서 보기도 하지만 섞어서 보기도 한다. 기술면접은 도움이 되었던 공부방법과 자료들을 인성면접은 준비해두면 좋을 예상질문들을 적어보려고한다.




📝기술면접 준비하기

일단 나는 컴퓨터공학전공을 했기 때문에 아래 4대 CS과목들을 모두 학교수업으로 들었다. 학교수업때 열심히 공부를 해뒀지만 많이 까먹었기 때문에 시험기간때보다 더 열심히 다시 공부했다.

따라서 아래 공부방법은 한번 다 훑은 기준이다.


네트워크

네트워크는 유튜버 널널한 개발자님의 강의를 위주로 봤다. 이 강의는 뭔가 이론적으로만 딱딱하게 배웠던 네트워크 개념을 좀더 와닿게(?) 설명해주신다. 몇몇 강의들은 유료인데 비교적 대비기간이 짧아서 볼시간이 없어 무료강의 위주로 봤지만 시간이 좀 여유있다면 결제해서 볼만하다고 생각한다.

이론으로 배울 때는 여러 layer에 대해 공부하지만 사실 각 layer마다 양도 많고 중요한 것도 많아서 면접에서는 주로 응용계층에 대한 깊은 질문을 많이 받았고 전송계층에 대한 질문도 꽤 나왔다. 그리고 필수단골질문 검색창에 naver.com을 치면 어떤일이 일어나나요?는 네트워크에 대한 전반적인 이해를 물어보는 질문으로 해당 질문을 대비하며 전체적으로 흐름을 정리해보면 좋다.


데이터베이스

데이터베이스는 나의 최애 과목인데 SQL에 대해서는 코테에서 종종 보는 곳이 있으니 코테 준비를 하면서 같이 익히는게 좋다. JOIN, 트랜젝션, 인덱싱같은 개념들은 성능과 동시성문제와 관련이 깊기 때문에 자주물어보신다. 따라서 이부분은 필수고 가끔 어려운 면접에서는 분산, 병렬DB같은 내용들도 나오지만 어려운 부분이라 잘 나오지는 않았다. 기본적인 이론은 유튜버 정미나님의 영상에서 필요한 부분만 골라서 봤다.

나는 주로 MYSQL을 사용하는 프로젝트가 많아서 프로젝트 내용들을 토대로 면접준비를 하다보니 MYSQL에 대해 더 자세히 공부해야할 일들이 생겼다. DBMS마다 다양한 정책들을 가지고 있는데 이는 DB엔진에 따라서도 달라진다. 따라서 내가 프로젝트에 실제로 사용한 DBMS의 엔진을 확인하고 어떤 특성을 가지는지 파악할 필요가 있다. 이 부분은 여러 블로그자료들과 한빛미디어의 이것이 MYSQL이다에 있는 강의를 통해 공부했다.


운영체제

운영체제는 김덕수님의 강의를 전체적으로 다봤고 N회독을 했다. 운영체제가 처음에는 어려운데 여러번 보면 이해도 더 잘되고 새로운 배울점들이 계속생긴다.

프로세스와 스레드, 동기화, 데드락, CPU스케쥴링, 메모리관리 등 버릴 것 없이 대부분이 중요하다. 운영체제에 대해서 전체적인 흐름을 정리하고 싶다면 바탕화면에서 chrome바로가기를 눌렀을 때 컴퓨터에서 어떤과정으로 페이지가 열리는지정리해보면 좋다.


알고리즘

코테준비를 하면서 이론도 탄탄하게 익히는게 가장 좋은 방법인 것 같다.


Spring

면접때 Spring도 준비해야하는 분들을 위해서 공부팁을 조금 더 붙이자면 Spring의 동작원리(?)에 대해서 깊게 이해하는 것이 좋다. 나도 프로젝트를 두개정도 진행했지만 Spring Boot를 쓰다보면 알아서 해주는 것이 너무 많아서 공부를 제대로 많이는 못했는데 기술면접을 준비하면서 제대로 공부할 수 있는 시간을 가질 수 있어서 좋았다. 특히 나처럼 Spring 프로젝트 경험이 있고 그것을 서류에 썼다면 무조건 공부해야하며 다른 프레임워크를 썼던 분들은 당연히 해당 프레임워크에 대해 깊이 공부하고 가는 것이 좋다.




📚추천책

1. 면접을 위한 CS전공지식노트

CS면접준비를 위한 필수적인 지식을 정리해놓은 책으로 요약느낌이 강해서 이거 한권으로 끝내겠다는 절대안된다. CS면접에 대해 노베이스이신 분들이 처음에 한번 가볍게 정리하기에 좋다. 전공생에게는 추천하기 살짝 애매한 것 같다.


2. JAVA의 정석

이 책은 JAVA를 기술스택으로 쓰는 직무에 지원했고 JAVA에 대해 쓸줄은 아는데 깊이는 모른다면 추천한다. 나도 그냥 어느정도 이해하고 개발은 할줄 알았지만 JAVA에 대해 깊이 공부해본적은 없었다. 따라서 깊이를 채우고 싶어서 급하게 사서 필요한 부분만 본 책인데 취업이후에도 계속해서 참고하려고 두고있고 실제로 면접에서 JAVA에 대한 질문을 꽤 받았어서 추천한다.


3. 가상 면접 사례로 배우는 대규모 시스템 설계 기초

이책은 진짜 강추강추한다. 조금만 빨리 봤다면 하고 후회했던 책이다. 특히 대용량 트래픽처리와 관련이 깊은 부서에 지원한다면 또 시스템설계면접을 준비해야한다면 정말 추천한다. 여유가되면 다 읽어봐도되지만 그렇지 않다면 관련된 내용들만 목차에서 골라봐도 정말 도움이 되는 책이다. 어려워보이지만 배포까지 해본 프로젝트가 있다면 이해할만 한 수준으로 내용이 보기좋게 적혀있다.





💎기술면접을 보며 느낀점

면접의 방향을 내가 정하자

이건 좀 흔한 조언중에 하나인데.. 면접때 내가 유리한 쪽으로 계속해서 던지면서 그것을 물어보게 유도하는 것이다. 근데 이것은 사실 자신있는 것을 물어보게 유도하는 것보다 자신없는 것을 말하지 않는 것이 더 중요하다. 면접은 대화를 하며 이뤄지기 때문에 확실히 내가 어떤 대답을 하느냐에 따라 많이 달라지는 것 같다.

괜히 자신없는 부분에 대해서 어떻게라도 대답하기위해 넣어서 말하는 순간 지옥이 펼쳐질 수 있다.. 이때는 사실대로 잘 모른다고 말하거나 최대한 내가 더 잘 알고 깊이 공부했던 주제로 대화를 옮겨가려고 노력해야한다.


CS지식을 프로젝트와 연결해서 고민하자

CS는 일단 위에서 언급한 방법대로 각각의 이론을 익히는 시간이 필요하고 그 뒤에는 내 프로젝트에서 나올만한 CS지식을 연결해서 더 깊게 공부해야한다. 처음에 이론만 공부하다보면 약간은 지루하고 이해가 표면적으로만 되는 경우가 있는데 프로젝트에 이어 공부를하다보면 훨씬 깊고 구체적으로 공부할 수 있다. 그리고 면접에서도 단편적인 CS지식을 물어보기도 하지만 빅테크 기업들은 프로젝트와 연결해서 여러 질문들을 던진다. 그리고 거기서부터 CS지식을 잡아 구체적으로 파는 형태의 면접이 많았다.


면접전 스타일 파악하자

회사 면접후기를 많이 찾아보자. 그래서 면접 스타일에 대해 조금이라도 알고 들어가면 확실히 좀 덜 당황하게 된다. 블로그나 지인을 통해서 알아보는 것이 일반적이고 회사에서 주는 정보도 최대한 파야한다. JD도 다시 잘읽어보고 HR팀에서 만든 자료나 회사 유튜브, 테크블로그를 탈탈 털자.


갑자기 던저지는 기술 문제에 대한 자세

좀 높은 회사일 수록 문제해결형 질문들을 많이 던지는데 일단 이런 질문들은 난이도가 높은 편이고 답이 정해지지 않은 경우도 있다. 한마디로 어떻게 해결해나가는지 보려고 하는 것이 크다. 면접관들도 난이도가 높다는 것을 알고 있기 때문에 특히 신입에게는 정답을 기대하기보다는 과정을 보려는 경우가 많은 것 같다. 따라서 당황하더라도 최대한 침착하게 해결해나가는 것이 좋다.

일단 최대한 뭐라도 대답해보려고 노력하자. 머리가 하얘졌다면 잠시만 생각할 시간을 가져도 될까요 하고 잠시 생각해도 된다. 이때 최대한 진정하고 대답할 거리를 찾아야한다. 그리고 대답할때 확신이 없는 서비스 이름이나 용어를 가지고 설명하기보다 잘모르겠으면 어떤 식으로 해야할지 컨셉으로 구체적으로 말하자. 예를들어 내가 헬스체크라는 단어를 모르더라도 주기적으로 요청을 보내면서 확인하는 방식이라고 말할 수는 있다는 것이다.

그리고 아마 중간중간 힌트를 주실텐데 그것을 잘 받아서 끝까지 대답할 수 있도록 노력하자. 그런데 내가 진짜 공부안한부분이고 자신이 없다면 이 시간을 너무 끌 필요는 없다. 적당히 대답하다가 잘 모르겠다 더 공부해보겠다는 식으로 끊고 다른 자신있는 것으로 어필할 시간을 버는게 낫다. 잘 모르는 것으로 괜히 시간을 끌다가 분위기가 말릴 수 있기 때문이다. 대신 질문을 하자마자 잘 모르겠다고 칼대답을 하거나 이유없이 모르겠다고 하기보다는 거기까지는 고민할 기회를 갖지 못한 합리적인 이유를 붙여주는게 좋다.


예상질문 작성하며 살을 붙이자

면접의 가장 좋은 대비책은 면접이지만 모두 그렇게 준비하기는 어렵기때문에 일단 서류때 적었던 모든 프로젝트와 활동을 적고 거기서 나올 수 있는 모든 CS질문을 리스트업하고 예상질문을 출제해보자. 그리고 하나씩 대답을 준비하면서 부족한 부분들을 찾아나가면서 공부하자.


대표프로젝트 숙지하자

서류에 적어서 낸 프로젝트들 중 비중을 크게 쓴 프로젝트는 ERD부터 기본적인 구조나 정보에 대해 숙지하고 가자. 나는 면접때 프로젝트에서 데이터베이스를 개선해내는 질문을 받게 되었는데 데이터베이스 관계가 꽤 복잡한 프로젝트여서 잘 숙지하고 가지 않았다면 내 프로젝트 하나 제대로 알지도 못하고 있는 인상을 줬을 것 같다고 생각했다.

그리고 프로젝트마다 주요 고민점들과 해결책들을 정리해서 바로바로 쭈욱 설명할 수 있게 준비해가자. 프로젝트를 진행할 때 좀 중요한 트러블슈팅은 그때그때 블로그에 기록을 해놨었는데 내가 어떤 과정으로 해결해나갔는지 후에 다시 볼 수 있어서 좋았다. 따라서 기록은 그때그때 해주는 것을 추천한다 그리고 결론만 기록하지말고 에러를 찾아낸 과정 그리고 해결책을 찾아나가는 과정을 세세하게 기록해두자. 그냥 구글링해서 찾았어요 보다는 구체적으로 추론 과정을 설명할 수록 좋은 인상을 줄 수 있다.


면접기회를 자주 만들자

이건 너무 당연하고도 중요한 이야기다. 될 수 있으면 면접기회를 자주 만들자. 면접기회가 생겼는데 되도 별로 가기 싫은데 가야하나요? 같은 질문을 가끔 취업커뮤니티에서 보는데 나는 무조건 가면 좋다고 생각한다. 다른 분야는 모르지만 개발자는 아무튼 서류에 적은 내용은 비슷할 것이고 내 서류를 기반으로 나름 생각해서 여러 질문들을 해주실 것이기때문에 아주 좋은 연습의 기회라고 생각한다.

시간이 너무 뺏기는 것이 아니라면 가서 나쁠 것 없고 입사여부는 다 붙고 결정해도 되니까 너무 부담갖지 않아도 된다.





12개의 댓글

comment-user-thumbnail
2023년 3월 2일

This article is really amazing. Thanks for the sharing.

답글 달기
comment-user-thumbnail
2023년 3월 5일

수연님 취뽀 축하드려요!!🎉🎉

1개의 답글
comment-user-thumbnail
2023년 3월 6일

I profoundly like your dedicated abilities as the post you distributed has some incredible data which is very valuable for me. SkyWard Alpine

답글 달기
comment-user-thumbnail
2023년 3월 6일

수연님 취뽀 축하해요!!! 너무 좋은 글이에요 많이 배워갑니다...

1개의 답글
comment-user-thumbnail
2023년 3월 11일

취업 축하드립니다..!
혹시 자바 스프링 학습 기간은 어느정도 되셨고 어느정도 시간을 투자하셨는지 알 수 있을까요?

1개의 답글
comment-user-thumbnail
2023년 3월 24일

벨로그 처음 댓글 달아보네요.. 도움이 정말 많이 됩니다

1개의 답글
comment-user-thumbnail
2023년 3월 31일

와우 정성글 ㄷㄷ 취뽀 축하드립니다!!

1개의 답글