Node.js 백엔드 개발자 면접후기..... (조언부탁,,)
안녕하세요. 선배 개발자님들!!
맨날 여기서 선배님들에게 도움만 받는거 가타서
오늘은 저의 면접경험을 써서 누군가 도움이 됏으면 좋겟습니다.
오늘 면접을 처음 봤는데 결과적으로 결과는 안좋은거같지만... 몬가 붕뜬 마음이기도하고~~
시원섭섭하기도 해서..... 저의 면접경험, 후기를 적어보려고 해요..!!
면접보는 장소는 저의 집에서 1시간~2시간 떨어져 있었어요
그래서 자차타고 1시간 일찍 도착해서
인근 카페에서 면접상황에서 어떻게 나를 어필할까 고민하고 있었어요.
내가 열심히 일할 의지가 있고~, 이런게 강점이고~, 등등 ( 불행의 시작...ㄷㄷ )
면접이 시작되고 대표님과 아마 cto분???이 오셨더라구요.
대표님이 cto분에게 모 물어보라는식으로 눈치를 주는 느낌을 받았어요.
cto: 자 아시는거 편하게 말씀하시면 됩니다.....
포트폴리오에 레디스를 사용하셨는데 왜 사용하셨는지 ??
나: 네 !! 레디스는 세션저장, 채팅기능을 위해 채팅 데이터들을 저장하는 용도로 사용하였습니다. !!
cto: 저의 질문의도는 레디스 말구 여러 nosql이 많은데 왜 굳이 레디스를 사용하셨나?? 그런겁니다.
모 다른 nosql보다 이런점이 좋아서 선택했다든지....
나: 어....(당황..) 어떤 사람이 채팅기능 구현할때 레디스를 사용해서
저도 레디스를 사용해서 구현했습니다. (솔직...)
cto: (약간 심드렁...) 아 글쿤요.. 그러면 다음 질문입니다...
자바스크립트가 비동기적으로 작동하자나요?? 그러면 코드 작성할때 불편한점이 있었을텐데... 어떤
고민들이 있었고 어떻게 해결하셨나요??
나: (심하게 당황...) 저... 잘 모르겠습니다. 다른 사람이 하는걸 봤는데...ㅠ (죽어가는 목소리..)
저도 똑같이 따라서 작성하니까 잘되서 저도 따라서 했습니다..
(면접 끝나고 복기해보니 ... 동기적인 처리를 위해 async await를 사용하였다. 같은 답변이 생각났었지 만 당시에는 생각이 안났습니다... )
이때부터 제가 면접에 대해 안일하게 생각하고 있었다는것을 깨달았습니다... 자기를 어필하는거보다 질문들에 대한 개발자 다운 답변이 중요하다는것을요 ...ㅠ
(자바스크립트 비동기에 대해서 간단하게 친절하게 설명해주시는 cto님 ㅠ 그리고 이어지는 면접)
cto: 클로져?에대해서 설명해하실수 있을까요??
나: 아... 들어봤는데 정확히는 모르겠습니다. 그 약간... 스코프 관련됐던 개념같은데요..
기억이 나지 않습니다...
(클로저에 대해서도 간단하게 친절히 설명해주시는 cto님 그리고 이어지는 면접)
cto: 타입스크립트를 사용하셨는데... 타입스크립트 장점이 모라고 생각하시나요?? (이거 맞나??.. 헷갈)
나: (좀 자신감 있음.. !!) 타입스크립트는 런타임환경에서만 발견할수 있는 자바스크립트 에러를
컴파일 단계에서 잡을수 있어서 좋습니다 !!
그래서 저는 타입스크립트를 조아하고 계속 사용하고 있습니다...
cto: 네... (불만족 하다는듯이..) 타입스크립트가 oop가 가능하자나요?
oop의 캡슐화, 상속화, 추상화 등등 있는데 설명해주시겠어요??
나: 캡슐화는 객체의 변화를 막기위해 private 걸어놓고 게터와 세터를 사용하는것으로 알고있고
부모 객체의 변수나 메서드를 자식객체가 사용할 수 있도록 하는것입니다.
추상화는 정확히 모르겠습니다. 공부가 부족해서 모르겠습니다...ㅠ
cto: 으음... 상속화가 계속 진행된다면 깊게 상속화가 진행될 수도 있는데...
코드의 유지보수나 확정성 관점에서 어떻게 해결할 수 있는지 생각이 있으신가요??
나: (의기소침...ㅠ) 어... 제 경험상으론 상속화를 1단계?? 밖에 안해봐서 그런 고민이나
생각을 해본적이 없습니다..ㅠ
cto: 으음.. 한번 composition에대해서 알아보는게 좋을거 같아요 ~
리엑트 사용하시는데... useState가 무엇인지 설명하실수 있나요??
나: 컴포넌트내에서 상태를 관리할 수 있는 훅으로 이해하고 있습니다.
cto: (작심하신듯... )xxx씨가 참 많은것을 하셨어요.. aws나 깃헙액션이라든지.. 많은것을 하셨지만...
그런데 xxx씨도 알다시피 구글에 치면 다 나오자나요?? 이런건 누구나 할 수 있는거에요...
여기서 몬가... 머리를 망치로 한대 쎄게 맞은 느낌이었습니다... 제가 이런 기본적인 질문도 준비못한 잘못도 있지만.. 그 동안 내가 공부한다고 했던것은 공부가 아니었던건가... ㅠ 그렇다면 나는 몇개월동안 모한거지..ㅠㅠ 약간 그 상황에서는 그런 자기 연민이 들었습니다 ..ㅠ
(동정바라는거 아니에요 그냥 그랬다구요)
대표: xxx씨가 원하는 연봉이 xxxxx~xxxxx맞나요??
나: (의기소침 해짐...) 네... 그런데 면접보니까 제가 많이 부족하다고 느껴서.. 낮춰야 할거가타요..
대표: (어이없다는듯이..) 개발자로서 자기 몸값을 올려받아야하는분이신데...
또 그런 노력을 하셔야하는분이신데.. 그러시면 어떡해요...!! (약간 이런 늬앙스로)
나: (ㅠㅠ) 네에...ㅠ
대표: (cto에게) 하고싶은말 있으면 해줘~
cto: 혹시, 자료구조 공부해보셨나요??
나: 아니요. 그냥 백준문제 조금 풀어봤어요.
cto: 그러면, 프로그래머스라는곳에서 하루에 1문제라도 풀어보시면 도움되실거에요~
자바스크립트로 푸시면 좀 전문가 다운 답변을 하실 수 있을거에요..
나: (반포기상태..) 네 알겠습니다.. 감사합니다.. !!
이상... 개발에 관련한 내용만 복기해서 최대한 적어보았습니다. 짧게 제가 처음 면접을 보면서 느꼇던점 개선해야할 부분에 관해서 글을 써보면..
개발자로서 최소한의 답변도 못하는 제 모습을 보면서 너무 한심하다고 생각했습니다 ㅠ 대표님도 언급하셨듯이 저는 코딩몽키였다는것을 알았어요.. 그래도 나름 여러가지 실제로 구현해보면서 오 나 좀 잘하는데?? 이정도면 나도 어디가서 쓸만하지 않나?? 그런 생각을 스스로 하고 있었거든요...;;;
집에 가면서... 그냥 나는 노가다나 할 운명인가... 역시 안될안인가... 여러 부정적인 생각도 많이 들었지만.. 오늘 면접 경험을 바탕으로 Node.js 백엔드 개발자지망자로서 좀 더 전문적인 지식을 갖추어서 임해야겠다는 생각이 들었어요.. !! 사실 생각해보면 위에 질문들은 조금만 공부해보면 이해할 수 있는 지식들이자나요??
마지막으로, 선배님들의 여러 조언이나 꾸지람도 달게 받겠습니다.
다양한 의견 댓글에 남겨주시면 감사하겠습니다. 항상 감사합니다 !!