본문 바로가기

컴퓨터 지식/IT 기술면접 대비8

[IT 면접대비] 개발자 기술면접 대비 🖥️/ 5️⃣ - 프론트엔드 (1) 브라우저 렌더링 과정을 설명해주세요 브라우저에서 렌더링을 담당하는 렌더링 엔진이 돌아가면서, HTML 파서가 HTML을 파싱하고, DOM 트리를 만듭니다. 동시에 Style Sheets도 CSS 파서에 의해서 CSSOM 트리를 구성합니다. 그 구성된 트리들로 렌더 트리가 만들어지고, 이 트리를 배치하고, 그리게 됩니다. 자바스크립트는, HTML 파서에서 스크립트 태그를 만났을 때, 자바스크립트 런타임으로 제어 권한을 넘기면서 그 실행 결과값을 받게됩니다. * 렌더링 엔진은 대표적으로 웹킷 과 개코 가 있다. 읽어보면 좋은 글 : d2.naver.com/helloworld/59361 * 브라우저 구조 - 사용자 인터페이스 - 브라우저 엔진 - 렌더링 엔진 - JS 런타임 - 기타 (통신담당, 벡엔드, 저장.. 2021. 4. 22.
[IT 면접대비] 개발자 기술면접 대비 🖥️/ 3️⃣ - JavaScript (2) Scope 란 무엇인가요? 변수가 값을 참조할 때 접근할 범위 이고, 흔히 그 접근할 수 있는 범위를 찾는 규칙을 말합니다. 자바스크립트는 함수 코드 블록 내에서 선언된 변수는 함수 내부에서만 유효한 함수 레벨 스코프를 따릅니다. 동적 스코프 VS 렉시컬 스코프 동적 스코프 : 함수가 호출 되는 순간에 상위 스코프를 결정 렉시컬 스코프 : 함수가 선언 되는 순간에 사위 스코프를 결정 this 는 무엇을 의미할까요? 자바스크립트에서 실행하는 환경의 context를 의미하는 객체입니다. 상황에 따라 다르지만 간단하게 예시를 들어보자면 특정 객체 안에서의 this 는 해당 객체를 의미하고, 글로벌한 환경에서의 this는 window 객체를 의미합니다. 함수에서 쓰였을 때 : 함수를 실행시킨 곳의 객체 메소드에.. 2021. 3. 3.
[IT 면접대비] 개발자 기술면접 대비 🖥️/ 4️⃣ - 데이터베이스 (1) 왜 데이터베이스인가요? (데이터베이스 VS 파일 시스템) 우선 가장 큰 이유는 Data를 관리하는 게 매우매우 중요하기 때문에 데이터베이스라는 시스템을 통해 관리하는게 좋습니다. 자세히 설명드리자면, 데이터베이스를 이용하게 되면 파일 시스템과 달리 응용프로그램과의 dependancy가 줄어들고, 데이터 무결성 구현도 쉬워집니다. 그리고 데이터베이스 자체적으로 보안이라던가, 일관성, 중복 문제들을 관리할 수 있게 됩니다. 독립성 무결성 일관성 보안성 중복 최소화 인덱스란 무엇인가요? 데이터베이스에서 데이터를 읽을 때 빠르게 탐색할 수 있기 위해 설정해두는 색인같은 것 입니다. 비트리 인덱스나 해쉬 인덱스 알고리즘등이 주로 사용됩니다. 인덱스를 사용해야 하는 경우 데이터 양이 많고 검색이 변경보다 빈번한 경.. 2021. 3. 2.
[IT 면접대비] 개발자 기술면접 대비 🖥️/ 3️⃣ - JavaScript (1) 블로킹과 논블로킹 언어가 무엇인가요? 예를들어보자면 파이썬은 블로킹 언어고 자바스크립트는 논블로킹 언어입니다. 즉 자바스크립트는 다음 코드가 연산이 끝나는 것을 기다리지 않아도 된다는 것을 의미합니다. 그렇기 때문에 자바스크립트는 비동기적으로 작업이 가능하게 됩니다. 그래서 어떠한 작업이 끝나고 이루어져야 하는 작업들은 async/await 나 콜백 함수를 이용해서 이루어지게 됩니다. 자바스크립트의 이벤트 루프에 대해 설명해주세요. 우선 자바스크립트는 기본적으로 싱글 스레드 이벤트 루프 형태를 가지고 있습니다. 자바스크립트에는 Stack 이 있고 Queue가 있는데, setTimeout 과 같은 함수들은 메세지 큐, 즉 콜백 큐로 들어가게 되고, 그 메시지가 실행되야되는 상황에 만약 Stack 이 비었있.. 2021. 3. 2.
[IT 면접대비] 개발자 기술면접 대비 🖥️/ 2️⃣ - 운영체제 (2) 가상 메모리란 무엇인가요? 메모리는 한정적인데 프로세스 용량이라던가, 프로세스의 수가 늘어나면 다중 프로그래밍이 힘들어질 수 있습니다. 그럴 때를 대비해서, 프로세스의 데이터 전체가 메모리에 올라가지 않더라도, 가상의 주소공간을 이용해서 프로세스를 유지할 수 있게끔 해주는 것을 의미합니다. 가상메모리와 스왑(swap) 과는 다르다. 더 많은 프로세스를 동시에 실행이 가능해진다. 자동적으로 CPU 이용률 또한 높아진다. 페이징이란 무엇인가요? 프로그램은 실제 물리적 메모리를 직접적으로 이용하지 않습니다. 가상 메모리를 이용하게 되고, 그 가상메모리가 결국에는 물리적 메모리에 접근해서 메모리를 이용하게 되는데, 이 때 가상메모리를 일정한 크기의 블록으로 나누어 관리하는 것이 Paging , 물리적 메모리를 .. 2021. 3. 2.
[IT 면접대비] 개발자 기술면접 대비 🖥️/ - 2️⃣ 운영체제 (1) 프로세스와 쓰레드에 대해 설명해주세요. 프로세스는 프로그램이 실행되서 메모리에 적재되어있고, CPU 의 할당을 받을 수 있는 상태를 의미합니다. 운영체제로 부터 Code, Data, Stack, Heap 을 할당받은 상태입니다. 쓰레드는 이 프로세스의 실행 단위라고 할 수 있으며, 프로세스 내부 자원을 공유하면서, 하나의 프로세스를 좀 더 효율적이게 실행시키는 멀티쓰레딩이 가능하게 됩니다. 구체적으로 말씀드리자면, 각각의 쓰레드는 프로세스의 Code, Data, Heap 은 공유하지만 고유의 Thread ID, Stack, 레지스터, PC 를 가지게 되고 독립적인 작업을 수행하게 됩니다. - 당연히 잘 알고 있다고 생각했는데, 막상 면접에서 이 질문이 들어오니 체계적으로 설명을 못하더라구요... 방심했던.. 2021. 3. 1.