-
728x90
오늘 첫 기술 면접을 봤다. 부트캠프 면접 외의 입사 면접은 처음이었다.
지금까지 계속 회피하고만 있던 면접을 이번에는 도망치지 않고 봤다. 사실 전화면접을 본 후 기술 면접을 본다고 했고, 나는 전화 면접을 개같이 망쳤기 때문에 기술 면접의 기회는 오지도 않을 것이라고 생각했다.
그런데....
??? 이것 뭐에요..?
그러나 내거 너무 늦게 확인해버렸다.. 메일은 일요일로 넘어가는 12 반쯤에 왔는데 나는 일요일에 일정이 있어 일찍 잠들었고, 일요일 하루 종일 밖에 있다 들어와 너무 피곤한 나머지 일찍 잠들어버렸다..
그래서 월요일 아침에 일어나서 해당 메일을 확인할 수 있었고 읽자마자 답변을 했다.
면접 준비를 하다보니 오후 늦게 면접 일정이 확정되었다. 면접은 화요일 오후 2시 20분.
요즘 운전연수를 받고 있어서 이미 예약해놓은 오전 수업을 듣고 집에와서 간단한 준비를 하고 면접을 보면 될 것 같았다.
결과는 개같이 멸망........................
이력서 기반 질문에는 그나마 괜찮게 답변한 것 같은데 기술 관련 질문에는 답변을 거의하지 못했다. 오히려 이력서보다 기술관련 질문을 더 많이 준비했는데... 그래서 더 아쉽고 속상한 마음이 남는다.
제대로 답하지 못한 질문
리액트 렌더링 과정
브라우저에서 웹 페이지 렌더링 과정과 리액트의 가상 돔으로 어쩍고 저쩌고.. 를 답해야하는 줄 알고 답했는데 면접관님이 원한 답변은 이게 아니었던 것 같다.
https://ko.react.dev/learn/render-and-commit
이걸 원하신 듯 싶다.
리액트의 렌더링 단계는 3단계로 나눠진다. 트리거, 렌더링, 커밋 단계이다. 리액트는 초기 렌더링될 떄와 상태가 업데이트될 때마다 렌더링에 트리거가 된다. 렌더링 과정에서는 컴포넌트를 호출한다. 초기 렌더링에는 루트 컴포넌트를 호출하고 이후에는 상태변화가 일어나 렌더링을 트리거한 컴포넌트를 호출해 변경된 속성을 계산한다. 그 후 커밋 단계에서 DOM을 수정한다. 초기 렌더링의 경우 DOM API 중 appendChild를 활용해 모든 노드를 그리고, 리렌더링의 경우 렌더링 과정에서 계산된 업데이트된 컴포넌트를 적용해 DOM을 업데이트한다.
useState, useEffect, 자식 컴포넌트가 있을 때 상태가 업데이트됐을 때 렌더링은 어떤 방식으로 일어나는지
이 질문은 위의 질문에 대답을 잘 하지 못해서 도움을 주신 것 같다.
상태가 업데이트됐기 때문에 트리가가 발동하고 리액트는 렌더링 단계를 거치며 우선적으로 상태가 업데이트되어 트리거한 컴포넌트를 호출한다. 그 후 재귀적으로 중첩해 호출한다. 그 후 마지막으로 커밋 단계를 거쳐 DOM을 수정한다.
컴포넌트 패턴
대표적인 컴포넌트 패턴으로는 함수형, Custom hook, Compound Component 패턴이 있습니다. 함수형은 가장 기본적인 형태로 리액트 훅을 사용해 상태와 생명주기를 관리합니다. 간단하고 직관적이지만 로직이 길어질 수록 복잡해진다는 단점이 있습니다. 커스텀 훅 컴포넌트는 공통된 로직을 추출해 훅으로 관리하여 상태와 로직을 캡슐화하고 재사용할 수 있습니다. 컴파운드 패턴은 하나의 상위 컴포넌트와 다수의 하위 컴포넌트를 정의해 내보낸다. props drilling을 방지할 수 있고, 컴포넌트를 자유롭게 조립할 수 있다는 장점이 있지만 자식이 많아질수록 파일의 크기가 커진다는 단점이 있다.
waterfall이란?
간단히 말해서 waterfall은 네트워크의 fetch가 물 흐르듯 상위 컴포넌트부터 하단 컴포넌트까지 순차적으로 진행되는 현상을 말한다.
javascript란?
자바스크립트는 싱글스레드이며 논 블러킹 언어이다. 싱글 스레드이기 때문에 한 번에 하나의 작업밖에 할 수 없지만 논 블로킹이기 때문에 작업이 끝날 때까지 기다리지 않고 다음 작업으로 넘어갈 수 있다. 싱글스레드인 이유는 멀티스레드는 동시성 문제를 해결하기 어렵기 때문이다. (동시에 같은 리소스에 접근하는 경우)
어쩜이렇게 준비한 곳에서는 안나오고 준비안한 곳에서만 나올 수 있는지..
멘탈이 나가서 거의 모든 질문에 대답을 제대로 못했다. 무슨 질문이 있었는지도 잘 기억나지 않는다...
인생...끊나고 멘탈 이슈로 강아지와 산책을 다녀왔다...
너무 부정적으로 생각하지 말고 더 해보자...아자아자..
긍
- 도망치지 않았다.
- 지금까지 늘 회피하고 싶어서 도망치지만 했는데 부족하더라도 맞닥드린 점은 칭찬할 만 하다.
- 일단 면접 준비가 조금은 됐다.
- 기술면접을 망치긴 했지만 그래도 준비가 안돼있던 과거보다는 성장했다....
부
- 대차게 망했다.
- 나는 바보다
- 리액트를 몇년을 했는데 아직도 대답하나 잘 못하냐
- 그리고 태도도 문제야!! 자신있게 말하고 허리 펴고 하란말이야
- 준비를 더 꼼꼼하게 하자..
- 리액트 문서 다시 완독하자.
728x90 - 도망치지 않았다.