면접을 볼 때, 차분히 내 생각을 정리한 후 논리적으로 말하는 것이 너무 힘들었다. 당연히 완벽하게 숙지가 되지 않아서 그렇다는 사실은 알고 있다. 그럼에도 모든 질문들에 답을 하려고 최선의 노력을 했었고 멘토님께서도 긴장하지 않도록 많이 배려를 해주셨던 것 같다. 프로젝트에 관련된 질문내용들을 가장 많이 해주셨지만 그래도 가장 기억에 남았던 질문은 협업에 관련된 질문내용이었다.
1. 팀플레이를 하시면서 이런 분과는 협업하기가 조금 까다롭다 하시는 분은 어떤 분이 있으실까요?
2. 면접자분께서 말씀하시는 소통이란 어떤 건지 여쭤봐도 될까요?
3. 그렇다면 면접자분과 가장 시너지가 났던 분은 어떤 분이신가요?
이 질문들은 멘토님께서 질문을 주셨던 것이지만 사실 내 자신이 스스로에게 주고 싶었던 질문이기도 하였거니와
혼자만의 시간을 가지면서 부끄러운 내 모습을 직면해보던 시간이 있었기때문에
이번 기회에 질문들을 받았을 때, 나는 어떤 협업하고 싶은 개발자가 되고 싶은 것일까?에 대해 한번 더 생각해보는 시간이 되었던 것 같다.
그 외에 질문들에는 물론 대답을 완벽하게 했던 것은 아니였던터라 답변에 관련하여 보충할 내용도 그리고 시간도 필요한 것 같다.
모의 면접 덕분에 면접에서 받을 예상 질문, 그리고 내가 생각하기에 부족했던 점들을 정리하게 되는 시간을 보낼 수 있어서 보람찬 하루였다.
궁금한 내용 / 부족한 내용
내가 면접을 본 시간은 총 30분정도 소요가 되었던 것 같다. 그 중에서 10분정도는 궁금했던 점들을 많이 물어보게 되었는데 감사하게도 멘토님께서는 괘념치말라하시며 잘받아주셔서 너무나도 감사했었다. 어떤 질문을 했는지 구체적으로 적기에는 창피한 부분들이 많아 직접적으로 쓰지는 못하겠지만, 대체적으로 신입 개발자들이 필요한 역량이나 실제 면접당시 어떤 사람을 필요로하는지, 그리고 생각을 정리해서 잘 말할 수 있는 연습방법이나 노하우에 대해서 여쭤보았던 것 같다.
느낀점
사실 처음부터 준비된 분도 계실 것이고 워낙 자기관리를 잘하신 분들도 많으셔서 나에게는 너무 부러운 능력이지만, 처음부터 생각해왔던 것처럼 그런 능력을 부러워하되 시기, 질투와 같이 다른 사람과 나를 비교하지 않을 것이라 생각하며 멘탈관리를 꾸준히 해왔었다.
늘 그래 왔듯이 내가 부족한 점을 인지하고 더 나아갈 방향만 바라 볼 것을 오늘도 다짐한다. 또한 긍정적인 마인드가 내 주변의 사람들에게는 좋은 영향력을 주길 바란다.
면접 질문 리스트 중 링크드리스트에 대한 질문과 평소 많이 들어보던 CORS에 대한 질문지를 보았을 때에는 미쳐 개념에 대해 생각해보지 않았던 문제여서 그런지 답을 어떻게 적어야할 지 정말 막막했던 것 같다. 하지만 조금이라도 개념에 대해 알고 있는 부분에 대해서는 스스로 아는 부분을 적은 후 질문에 대한 답을 구글링을 통해 정리를 하여 현재 내가 몰랐거나 부족했던 개념을 채웠었고, 또 다시 같은 질문에 다른 분은 어떤 방식으로 해답을 하셨는지 비교하면서 내가 보충해야 했던 개념들을 다시 정리하여 이해하는 방식으로 진행했다.
느낀점
오늘 오후 3시 면접에 관한 세션에서는 면접 뽀개기라는 타이틀에 맞게 신입 개발자들이 면접을 할때에 겪는 일들과 마인드의 자세에 대한 주제로 진행이 되었다. 진행자이신 이동현 팀장님께서는 모든 분들에게 자신은 어떠한 신입 개발자인지 먼저 생각해보라는 조언을 해주셨고 면접에 우선 많은 도전을 해보아야 한다라고 말씀하시며 실패라는 경험을 소중하게 어떻게 대해야하는 지, 개선해 나아가야할 방향은 어떻게 잡아야하는지에 대한 내용을 위주로 잘 설명해주셔서 많은 도움이 되었다.
실패에 대한 두려움을 우선 없애야 한다는 점. 그리고 절대적인 시도횟수가 가장 중요하지만, 현명하게 그리고 효율적으로 내가 이상황을 이용하는게 키포인트라는 생각을 해보게 되었다.
항해를 수료한 이후에도 시간을 효율적으로 사용해야 할 지 미리 계획을 세워보며 하루를 마무리 해본다.
멘토님께서 질문하신 내용은 리액트 쿼리와 리프레시 토큰에 관한 질문을 해주셨다. 리액트 쿼리 > 무한스크롤의 사용에 대한 질문은 설득을 잘 해서 넘어가나 싶었지만 리프레시 토큰에 대한 답변은 제대로 하지 못했다.
질문의 내용은 이렇다.
리프레시 토큰을 사용하셨던데, 리프레시 토큰을 어디에다가 저장하셨어요? / 쿠키에 저장한 이유는요? / 그렇다면 리프레시 토큰은 서버에도 저장이 되는 걸 아는데 굳이 프론트에서 저장하는 이유는 어떤 것인가요? / 쿠키에 저장 된 리프레시 토큰도 탈취될 수 있다는 이야기인데 그렇다면 탈취된 상황에서 똑같이 토큰을 재발급받아 버릴 수 있지 않나요? / 그렇다면 서버측에서 그 유저를 로그아웃시키는 것은 어떻게 하나요?
잘 대답을 해나가던 중 이 부분은 정말 생각도 못했던 방식이었다.왜 리프레시 토큰을 프론트에 저장을 할까?
원래 알던 단순한 내용으로는액세스토큰을 저장하고 있다가 만료가 되면 리프레시 토큰으로 재발급을 받기위해서 사용을 하는 것이고, 그것을 위해 쿠키에 넣은 것이였는데,왜 프론트에 저장을 한것인가에 대한 질문은 생각지 못했다.
아니 조금 더 말하자면 그렇게 단순한 질문 일 것 같지가 않아서 당황스러웠다. 당연히 만료된 토큰을 재발급 받기 위해서 리프레시 토큰을 저장했다는 원하시진 않으실 것 같아서 대답을 하지 못한 것.
우선은 리프레시 토큰을 서버가 아닌 프론트에 저장을 하는 이유는서버의 부하를 막기 위해서라고 하셨다.
접속한 유저들이 많으면 많아질수록 백엔드에 리프레시 토큰을 저장하는 방법은 서버측에 부담을 줄 수 있기 때문에 프론트에 저장을 하여 만료되었을 경우 만료된 토큰을 새로 발급받을 수 있게 한다는 것.
그리고 리프레시 토큰이 탈취되었을 경우 서버측에서 로그아웃을 시킬 수 있다는 내용을 조금 더 정확하게 알아 내셔서 면접관을 설득을 해주셔야 한다는 답변까지 받게 되었다.
정말정말 신기하게도 정확하게 잘 알지 못한 상태라는 것을 멘토님께서는 잘 알고 계셨고 그 부분을 건들여서 내가 무엇을 모르고 있는지, 놓치고 있는지, 어떤 것을 알아서 설득을 해야하는지에 대해 차분히 설명을 해주셔서 너무나도 나에게 도움이 되었던 시간이었다.
그리고 항상 왜? 라는 생각을 해보아야겠다 라는 생각도 해보게 되었다.
느낀점
음~ 개발자는 아무나 될 수 있는 게 아니구나하는 생각을 해본다. 개발자를 흉내내는 사람은 될 수 있어도 진짜 개발자가 되기 위해서는 많은 시간을 거쳐 생각을 하고 행동할 수 있어야 하는구나하며 생각해보게 되었다.
유튜브에 가끔씩 개발자가 생각해야 하는 것들 이라던가 어떤 것들을 생각하는 개발자가 되어야한다는 내용의 동영상들을 그냥 썸네일 이미지만 보고 지나쳤을 때가 있었다. 이제서야 그런 기본적인 마인드를 세팅하는 것이 중요한 것이구나라는 걸 이해하게 되는 날이였던 것 같다.
하지만 모달 팝업에 관련된 내용을 찾아보던 중 cssText을 권유하라는 글을 보고 수정을 하게 되었다. 그 포스트에 관련된 내용을 빌려 말하자면 cssText를쓰는이유는 style을여러번접근하면그횟수만큼 reflow가발생하게 된다. cssText를이용하면 1번만계산하기때문에이렇게 js로 css를건드릴경우퍼포먼스를위해필수로해주는 것이 좋다고 한다.
하지만 이유를 모르겠지만 한번씩 가끔 스크롤이 없어진 상태로 페이지가 렌더링 되는 상황이 발생하고 있다. 아마 이 'hidden' 속성때문이라고 파악하고 확인을 했다. 어떻게 렌더링을 하는 과정에서 모달을 열지도 않았는데 스크롤 hidden이 발생이 되는지 아직 감이 잡히지 않아 난감한 상황이다.
느낀점
프로젝트 발표에 관한 발제를 듣는 날이라서 그런지 뭔가 기분이 싱숭생숭하기도 하고 다시 조급해지는 날이였다. 끝이 코 앞으로 다가와 반가운 날이기는 하지만 그 반대로 새로운 환경으로 다시 적응해야 하는 의미이기도 하기에 호기심 반 두려움 반으로 생각이 드는 날었다.
불편사항 개선은 정말 해도해도 끝이 없다는 것을 느낀다.. 시간 상 불편사항이나 오류사항들 위주로 수정을 하고 추가적인 기능들을 그 이후로 미루게 되었다. 현재 sse관련 하여 백엔드에서 기능 구현에 문제를 겪고 있는 상황과 리프레쉬 토큰문제로 보이는 에러 사항을 수정하고 나면 숨이 트이지 않을까 생각 중이다. 유지보수 하는 기간도 역시 쉽지 않구나 생각이 든다.