1. 주소창에 URL을 입력했을 때, 어떤 과정으로 웹사이트가 보여지는지? 브라우저는 입력된 URL을 해석하여 해당하는 웹사이트의 도메인명을 파악합니다. 도메인명을 IP 주소로 변환하기 위해 DNS에 요청을 보냅니다. 브라우저는 DNS에서 받은 IP 주소로 해당 서버에 TCP/IP 연결을 시도합니다. 연결이 설정되면, 브라우저는 HTTP 요청 메시지를 서버에게 보냅니다. 서버는 브라우저로부터의 요청을 받아들이고, 해당하는 리소스를 찾아서 브라우저에게 응답으로 보냅니다. 브라우저는 서버로부터 받은 응답을 해석하여 사용자에게 보여줄 웹 페이지를 렌더링합니다. 2. 브라우저 렌더링 과정? 브라우저는 서버로부터 받은 HTML 문서를 파싱하여 DOM 트리를 생성합니다. HTML 문서 안에 포함된 CSS 스타일 시..
1. 클로저란? 내부 함수가 외부 함수의 context에 접근할 수 있는 것을 말합니다. 불필요한 전역 변수를 줄여 실수를 방지하고, 코드 재사용성을 높이기 위해 사용합니다. 2. var, let, const의 차이? var, let, const 모두 변수를 선언하는 방식입니다. var는함수 스코프를 따르며, 변수가 선언되기 전에 사용되더라도 오류가 발생하지 않고 undefined로 처리됩니다. 또한 변수의 값이 중복 선언 되더라도 오류가 발생하지 않습니다. let은 블록 스코프를 따르며, TDZ(Temporal Dead Zone) 가 존재하여 변수가 선언되기 전에 접근하면 ReferenceError가 발생합니다. 또한 변수의 값이 중복 선언되면 SyntaxError가 발생합니다. const 는 let과..
1. Javascript에서 Gargabe Collection이 필요한 이유를 설명해주세요. JavaScript는 동적으로 메모리를 할당하여 객체를 생성하고 사용합니다. 사용자가 직접 메모리를 할당하고 해제하는 작업을 수행할 수 없습니다. 가비지 컬렉션은 더 이상 필요하지 않은 객체를 감지하고 자동으로 메모리를 해제하여 메모리 누수를 방지합니다. 2. Javascript에서 Gargabe Collection이 동작하는 과정에 대해 설명해주세요. 가비지 콜렉터는 roots로부터 roots가 참조하고 있는 오브젝트들, 그리고 해당 오브젝트들이 하위로 참조하고 있는 오브젝트들을 계속해서 돌면서 접근이 가능한 오브젝트들인지를 확인합니다. 이러한 Mark-and-sweep 알고리즘을 통해 가비지 콜렉터는 더 이상..
1. TCP 와 UCP의 차이점과 장단점에 대해서 설명해주세요. TCP는 통신 시작 전에 연결을 설정하고, 통신이 종료될 때 연결을 해제합니다. 데이터 전송 시 순서를 보장하고, 재전송과 에러 체크 등의 메커니즘을 통해 데이터의 손실이나 손상을 최소화합니다. 데이터의 흐름을 조절하여 네트워크 혼잡을 방지하고, 수신 측이 수용 가능한 속도로 데이터를 처리할 수 있도록 합니다. 대부분의 웹 브라우징, 이메일, 파일 전송 등 신뢰성이 중요한 애플리케이션에서 사용됩니다. UDP는 데이터 전송에 있어서 연결 설정이나 연결 해제 과정이 없습니다. 데이터 전송의 순서를 보장하지 않고, 에러 복구나 재전송을 하지 않습니다. TCP보다 간단하고 속도가 빠릅니다. 대부분의 스트리밍 미디어, 온라인 게임, DNS 등에 사용..
11. 시스템 콜에 대해서 설명해주세요. 시스템 콜은 운영 체제의 핵심적인 부분 중 하나로, 응용 프로그램이 운영 체제의 서비스를 요청할 수 있는 인터페이스입니다. 시스템 콜은 사용자 공간(User Space)과 커널 공간(Kernel Space) 사이의 인터페이스 역할을 하며, 사용자 공간에서 실행되는 프로그램이 운영 체제의 기능을 활용할 수 있도록 합니다. 일반적으로 응용 프로그램이 운영 체제의 서비스를 필요로 할 때 시스템 콜을 호출합니다. 예를 들어, 파일을 열거나 닫는 것, 네트워크 통신을 수행하는 것, 메모리를 할당하거나 해제하는 것 등은 모두 시스템 콜을 통해 이루어집니다. 12. 인터럽트에 대해 설명해주세요. 인터럽트는 프로세서가 현재 실행 중인 작업을 일시적으로 중단하고 특정한 처리를 수..
1. 프로세스 구조에 대해 설명해주세요. 프로세스는 일반적으로 코드, 데이터, 힙, 스택 영역으로 이루어져 있습니다. 코드 영역은 프로그램 코드가 저장 되고, 데이터 영역은 전역 변수 등이 저장 되며, 힙 영역은 동적으로 할당된 메모리를 위한 공간이고, 스택 영역은 함수 실행을 위한, 지역 변수 등이 저장됩니다. 2. 컨텍스트 스위칭에 대해 설명해주세요. 컨텍스트 스위칭이란 멀티 태스킹 등 프로세스 스위칭이 필요할 때, 실행할 프로세스를 CPU에 교체해주는 기술입니다. 구체적으로는 현재 실행 중인 프로세스의 프로세스 ID, 레지스터값 등 주요 프로세스 상태 정보를 해당 프로세스의 PCB에 저장하고, 다음에 실행할 프로세스의 PCB 정보에서 주요 프로세스 상태 정보를 CPU에 업데이트한 후, 해당 프로세스..