예상과 다르게 면접관 두분께서 먼저 자기소개를 하셨다.
내차례가 되어서 준비해온 자기소개 말씀드리면 될까요 여쭤봤는데 시간없으니 자기소개는 짧게하라고 하셔서
'안녕하세요 코드스테이츠 33기를 수료한 류준열입니다.' 만 했다.
프로젝트에 대해 내가 했던 고민들, 소통, 평소에 어떻게 공부하는지? 등을 물어보셨다.
내가 뭘 알고있는지보다는
내가 어떤사람인지? 어떻게 공부하는지? 근성이있는지? 고민을 심각하게 해봤는지? 등을 파악하려고 하신것같다.
개념을 묻는 질문은 "이거 설명해보세요" 가 아니라, 예시를 만들고 그 상황에서 어떻게 풀어나갈건지 물어보는 식으로
내가 진짜 알고있는지 파악하셨다.
나의 대답은 아무말대잔치였다.
질문
- 왜 개발자가 되고싶은지 ? :
자소서에서 언급했던 로봇대회를 우연히 참가하게 되었고 코딩에 관심이 생겨서 이것저것 해보던중 생활코딩 알게되었음. 혼자서 허접한 웹하나 만들어보고 희열느꼈다. 로봇과는 다르지만 웹개발에 관심을 갖게되어 코드스테이츠를 통해 공부를 하고 프론트엔드 엔지니어를 꿈꾸게 되었다고 했음
위의 이야기를 아주 횡설수설하며 말했음
근데 사실은 작년 5월에 기계 때려치고 개발자 공부하기로 결정할땐 뭔가 나름의 이유(근사한 합리화, 착각, 정당화) 등이 있었는데 면접관분들이 느끼시기엔 뭔가 허세로 들려서 역효과날까봐 그냥 즉석에서 횡설수설하였다..
- 프로젝트에서 가장 중요하게 생각하는 서비스, 그 이유 :
위치기반, 우리서비스의 핵심기능의 사용자 위치 근처의 관광지를 소개해주는것이기 때문
- 위치기반에서 위치가 다르게 잡히는거? :
전혀 생각해보지 못한 질문이라고 이야기했음. 사실 질문자체를 이해를 못했음
- 앞으로 어떤식으로 공부할껀지 :
리팩토링 이후 타입스크립트 공부할건데 그 이유는 우선 대외적으로 많이쓰이는 기술을 빨리 익히는게 중요할것 같아서
- 새로운기술을 어떻게 익힐거임? :
먼저 그 기술의 컨셉을 이해하고 todolist나 간단한 날씨앱같은거 만들어보면서 익숙해질거임
여기서 젤 중요한건 기술의 컨셉을 이해하는거라고 생각함
- 왜 기술의 컨셉을 이해하는게 중요함? 리코일의 컨셉은뭐고 뭐가 어려웠음 ? :
첨에는 리코일을 전역변수에만 초점을 맞추고 사용하다가 나중에 리코일의 컨셉을 알게되고 리코일을 이상하게 쓰고 있었다 라는 사실을 알게 되었음. 그래서 기술의 컨셉을 먼저 이해하는게 중요하다는 교훈을 얻게 되었고 리코일 컨셉은 리코일 의존성flow 잘 설계해서 컴포넌트까지 state를 잘 전달하는 것인데 그게 기능이 복잡해지면서 어렵다, 또 flow를 역순환시켜서 무한루프 겪었었다고 했는데 무한루프 문제는 무한루프 방지하는 라이브러리가 있을것이라고 말씀해주심
의존성flow에서 무한루프 문제는 흔한문제라고도 이야기해주심
- 리코일과 리덕스 둘다 사용했는데 공통점과 차이가 뭐임 :
리덕스 작동원리 말하고 리코일 작동원리 말하고 리덕스는 외부 store에서 상태를 가져오지만 리코일은 atom하나하나를 직접 리액트 내부에서 다룬다. 라고 이야기함
공통점은 전역상태를 다루는 기능
- 앞으로는 리코일을 쓸거임? 리덕스를 쓸거임? 아니면 다른 새로운 기술을 공부해볼거임? :
리덕스 쓸거라고 함 왜냐하면 리코일은 레퍼런스가 많이 없어서 힘들다고 이야기했음 -> 잘못이야기한듯.. '하지만 어떤 문제를 해결할 수 있는 새로운 기술을 알게되면 그 기술에 도전할것'이란말도 덧붙힐껄..
- 지도 클릭하면 하얀화면 뜨는거 어떻게 해결하고 있냐?? :
예외인 경우 찾아서 그부분 로딩인디케이터로 처리하거나 검색결과 없음 보여주도록 하고있다 했는데, useRef로 지도 다시 안그려지게 설정하면 된다고 알려주심, 근본적해결책은 지도 다시 안그리는 것
- 사전질문에 대한 구체적인 질문 : 내 경험담이라 있는 그대로 다 설명해드림.
- http https차이 물어보심 :
그냥 대답
- http https차이에 바로 이어서 나온 질문, 그러면 로그인시 암호를 콘솔 네트워크창에서 평문으로 확인할수 있는데 노출되어도 상관없을까:
전혀 생각해보지 않은 문제라고 먼저 얘기하고 그래도 비번은 노출안시키는게 맞는것 같다고 대답했는데 https통신이라면 443포트로 전달되기때문에 괜찮다고 하셨다. 이유를 공부해야할듯 -> 위 질문에 대해 공부한 후 작성한 글
- 로그인했을때 토큰이 위변조 되었거나 인증이 안되어있으면 해결방법이 있는가? :
인증이 필요한 기능의 서버 컨트롤러에 토큰검사하는 tokenFunction 이 가장 먼저 실행됨. 그래서 가장 먼저 토큰을 검사하는데 토큰의 정보가 DB에 없으면 401번 응답함.
클라이언트에서는 401번 응답했을때 예외처리를 설정한다. 라고 함
- 질문을 계속하다보면 상급자의 업무를 방해할수도 있는데? :
모아서 질문할거라고 함, 평소에도 상대방한테 피해갈까 안갈까 고민하는 스타일이라고 말함
- 꼼꼼한가 안꼼꼼한가? :
평소엔 덤벙거리는면이 있지만 일할때는 꼼꼼하다고 함, 알바할때 지적받은거 적어놓고 계속 혼잣말하면서 외우고 고쳤던거 이야기함
- 코드스테이츠 교육방식 어땠는지? :
나한테 최적이었다고 말함. 근데 지금 생각해보니 자기주도적인지 아닌지 판별하는 질문이었던것 같다.
- 좋은소통의 기준이 뭘까요? :
최우선으로 기분나쁘게 말 안하는거, 그다음 사소한거라도 이야기하기, 잘 듣는거
더 있었던것 같은데 기억이 안난다.
나보고 질문할거 있으면 물어보라고 하심
면접관이 팀장님과 팀원분 두분이셨다. 팀장님께 제가 혹시라도 합격한다면 무슨일을 하게 될까요?? 라는 질문과, 팀원분께 신입시절을 물어보느 질문 1개 했는데 꼬리질문생겨서 총 4개 하게됨.
팀장님께 질문
- 주니어개발자가 일을하다가 막히면 하루종일 고민하는게 맞는지, 좀 보다가 여쭤보는게 맞는지??
: 빨리빨리 물어봐라. 대신에 성장가능성이 있는 질문이어야 대답해주는 사람도 신난다. 질문퀄리티에서 성장하고 있다는 것이 보이기때문에 . 그러니 빨리빨리 물어보라는것의 전제는 성장가능성이 있는 질문이어야함. 그냥 아무거나 물어보면 당연히 별로임
- 어떤일을 하는지?? : 두분이 잘 대답해주심
- 혹시라도 들어가게되면 어떤 절차가 있을지? :
먼저 1~2주 정도 gitPR규칙등 협업에 대한 필수적인것들을 익히고 일감을 던져줄것임
팀장님 옆에 계신분께 질문
- 처음에 입사하셨을때 힘들었던것들 , 어떻게 해결했는지 : 열심히하는것밖에 없었다.
- 일감을 받았는데 공부를 해야 일을 처리할수 있는 상황이면 시간분배같은거 어떻게 하셨는지? : 그냥 절대적인 시간 투입.
첨언으로 팀장님이 이런 상황은 시니어에 따라 다르다고 했는데 좋은 시니어는 주니어가 헤매는 시간을 최대한 줄여주고 안좋은 시니어는 그냥 방치한다고 하심. 혹시 들어오게 되면 방치하는 일은 없을것이라고 말씀해주심
후회되는거:
- 고칠거 있으면 피드백 달라고 할려고 생각하고 들어갔는데 깜빡함,
- 말을 너무 두서없이 한 것 같다.
느낀점
프로젝트 관련질문은 팀장님이 물어보시고 소통, 생활에 대한 질문은 팀원분이 많이 물어보셨다.
팀장님과 이야기한 프로젝트 관련 질문들은 거의 멘토링수준이었다.
면접과 별개로 '지도 반복해서 안그리는법', '무한루프해결하기위해 라이브러리 사용해봐라' 등등 나에게 필요한 말들을 해주심 -> 실제로 리팩토링때 써먹었다. 지도본판은 유지시키고 마커들만 리렌더링 시키도록 수정함. 굿
프로젝트에 대한 고민을 더 많이 해야함을 느꼈음.
내가 생각지도 못한 것들을 많이 물어보심
내가 쓴 기술은 아무리 사소한거라도 왜썼는지, 그 기술의 컨셉같은거 다 외웠는데 잘한것같다.
생각하고 말하는게 아니라 입이 저절로 움직일정도로 연습했기에 아무말대잔치 와중에 리덕스, 리코일 설명은 더듬더듬 거리면서도 헛소린 안한듯 하다. 다행
감사합니다