[KAKAO.GG] 기술 스터디 2022년 11월 21일

cptkuk91·2022년 12월 17일
1

Tech Interview

목록 보기
2/7
post-thumbnail

이벤트 루프에 대해서 설명해주세요.

한 마디로 요약하면 Javascript의 동시성을 지원하는 것이 이벤트 루프입니다.
Javascript는 싱글 스레드 기반 언어이기 때문에, 하나씩 작업을 진행합니다.
이벤트 루프 발생 시 호출되는 콜백 함수들을 Task Queue에 전달하고, Task Queue에 담겨 있는 콜백 함수들을 Call stack에 넘겨줍니다.
Task Queue는 하나로 이뤄지고 FIFO 방식을 따르고, 이벤트 루프가 정해준 순서대로 줄 서 작업 순서를 기다립니다. 작업이 완료 된 후 결과물을 반환하고, 큐에서 삭제됩니다.

Script 태그를 Body 가장 하단에 위치시키는 이유에 대해서 설명해주세요.

script 태그는 어디에 놓더라도 작동합니다. 하지만 무거운 script 태그가 포함 된 경우 script를 우선적으로 불러오느라 브라우저 렌더링에 방해가 됩니다. 그 결과 html code가 로딩되지 못하게 될 것이고 사용자는 미완성된 화면을 계속 쳐다봐야합니다. 따라서 html, css를 동작 시켜 화면을 먼저 구성하고, script 태그를 하단에 위치시킵니다.

TCP와 UDP의 차이, 특징에 대해서 설명해주세요.

TCP란?
데이터 전송을 지원하는 연결 지향형 프로토콜입니다. TCP는 IP와 함께 사용됩니다. IP가 데이터 전송을 처리하면, TCP는 패킷 추적 및 관리를 합니다. 3way handshaking 과정을 통해 연결 후 통신을 시작합니다. 흐름 제어와 혼잡 제어를 지원해 데이터 순서를 보장합니다.
UDP보다 전송 속도가 느리지만 데이터 전송 순서를 보장하고 신뢰성 있는 데이터 전송이 가능합니다.

흐름 제어란? : 보내는 측과 받는 측의 데이터 처리 속도 차이를 조절해준다.

혼잡 제어란? : 네트워크 내 패킷 수가 넘치게 증가하지 않도록 방지하는 것

UDP란?
인터넷에서 정보를 주고 받을 때 정보를 보내고 받는 신호 절차를 거치지 않고 일방적으로 데이터를 전달하는 통신 방식입니다.
TCP와 다르게 연결 설정이 없고, 혼잡 제어를 하지 않아 전송 속도가 빠릅니다.
데이터 전송에 대한 보장을 하지 않기 때문에 패킷 손실이 발생할 수 있고 비신뢰성, 네트워크 부하 가능성이 있습니다.

추후에는 UDP로 진행 될 것이다. 비신뢰성, 네트워크 부하 가능성이 UDP 특징에 있지만 기술 발전에 따라 신뢰성도 보장 된다. 신뢰성이 떨어질 뿐, 신뢰가 없다는 뜻이 아니다. 따라서 검증 코드를 추가해 신뢰성을 높이고 네트워크 부하 가능성 또한 방지할 수 있다.

profile
메일은 매일 확인하고 있습니다. 궁금하신 부분이나 틀린 부분에 대한 지적사항이 있으시다면 언제든 편하게 연락 부탁드려요 :)

0개의 댓글