TIL-220218

POINT·2022년 2월 18일
0

오늘은 python 알고리즘 문제 풀이를 위한 문법 정리가 아닌 면접 이야기

오늘 내가 가고 싶었던 회사의 면접을 봤다.
감사하게도 이번주 수요일에 메일로 면접제안을 해주셔서 해당 회사에 대한 면접 준비를 했다.

컬쳐핏 인성질문
항해 실전프로젝트관련 질문
javascript, node.js 관련 질문
을 예상하고 그에 대한 답변 준비를 했는데 한발 더 앞서나간 질문들을 해주셨다.

특히, 무중단 배포관련 이야기를 했었는데
난 아직 한참부족하구나를 느꼈다.

내가 이해한 것은
aws ec2 서버에서 pm2로 무중단으로 돌리고
github main branch에 push했을 때 webhook trigger가 발생하고,
그 때, jenkins에서 쉘스크립트(pm2 restart app.js)를 실행하여 무중단 배포를 한다고 과정을 이해했었는데

무중단 배포 시 restart 할 때 pm2의 역할을 물어보셨다. (참고)
내가 답변을 못해서 상황을 예시로 들어주셨는데

서버에 요청이 들어옴(1) ---> 처리(2) ---> 클라이언트에 응답(3)
이렇게 3단계에서 요청에 대한 처리(2)단계에 write가 2개가 있는데, 1개만 write처리한 후 restart가 되면 어떻게 될까? (데이터의 정확성이 보장되려면 2개다 처리가 되어야 한다.)

  • restart하기 전 알려준다.
  • 일단 write 처리가 되면 돌이킬 수 없다. (처음부터 처리가 되면 안된다.)
  • 상태저장은 할 수 없다. (pm2가 우리의 코드를 이해하는 것이 아니다.)

너무나 감사하게도 내가 답변을 할 때마다 면접관님이 계속 위의 힌트(또는 제약사항)와 상황을 가정한 질문을 하나씩 던져주시면서
내가 자연스럽게 깨달을 수 있게 도와주셨다. (물론 결국 맞추지 못해 답을 알려주셨다..)

그냥 써져있는 어떠한 지식을 읽는게 아니라
생각을 통해 유추해나가는 이 과정이 새로웠고 즐거웠다.

면접 결과를 다 떠나서 진짜 유익했다. 과외받은 느낌.. 감사합니다..

profile
기록은 기억을 지배한다.

0개의 댓글