Interview

[면접질문] 기술 면접 질문 모음 - 1

eunoia07 2022. 2. 4. 16:48

1. 캐시와 버퍼의 차이점


두 기술은 모두 속도에 차이가 있는 두 장치 사이에서 그 차이를 완화하기 위해 사용하는 기술입니다.

캐시는 처리속도를 최대한 올리기 위한 기술로 주로 빠른 속도의 장치를 보조합니다.

버퍼는 처리속도가 최대한 떨어지는 것을 방지하는 기술로 주로 느린 속도의 장치를 보호합니다.

캐시는 속도를 더 빠르게, 버퍼는 속도가 더 느려지지 않도록 보조하는 역할을 합니다.

 

2. 스택을 스레드마다 독립적으로 할당하는 이유


스택은 함수 호출 시 전달되는 인자, 복귀 주소값 및 함수 내 변수 등을 저장하기 위해 사용되는 메모리 공간입니다.

스택을 독립적으로 할당하는 이유는 독립적인 함수 호출이 가능케 하여 독립적인 실행 흐름을 위해서 입니다. 스레드의 정의에 따라서 독립적인 실행 흐름을 추가하기 위한 최소조건입니다.

 

3. 동기와 비동기의 차이


동기 방식은 요청을 보내고 실행이 끝나면 다음 동작을 처리하는 방식입니다. 순서에 맞추어 진행되기 때문에 제어하기 쉽지만 여러가지 요청을 동시에 처리할 수 없기에 효율이 떨어집니다.

비동기 방식은 요청을 보내고 해당 동작의 처리 여부와 상관없이 다음 요청이 동작하는 방식입니다. 작업이 완료되는 시간을 기다릴 필요가 없기에 자원을 효율적으로 사용 가능하지만 작업이 완료된 결과를 제어하기 어렵습니다.

 

4. 클래스, 객체, 인스턴스의 차이


클래스는 객체를 만들어내기 위한 설계도나 틀로 연관되어 있는 메소드나 변수의 집합입니다.

객체는 클래스의 인스턴스로 구현할 대상입니다.

인스턴스는 구현된 구체적인 실체로 메모리에 할당됩니다.

 

5. 컴파일러와 인터프리터


컴파일러는 전체 소스코드를 훑으며 명령어를 수집하고 재공성하며 소스코드를 기계어로 변경합니다. 실행시간은 빠르지만 OS와 빌드환경에 종속적입니다.

인터프리터는 소스코드를 한 줄씩 읽으며 기계어로 변경합니다. 번역시간이 빠르고 프로그램 수정이 간단하지만 실행시간은 컴파일러보다 느립니다.

 

6. 추상 클래스와 인터페이스


추상 클래스는 추상 메소드를 한 개 이상 포함한 클래스로 기능을 확장하는데 목적을 둡니다. 클래스로 사용 가능하고 다중 상속이 불가능합니다.

인터페이스는 추상메소드와 변수로만 이루어지고 계약을 성사시키는데 목적을 둡니다. 클래스로 사용이 불가능하고 다중 상속이 가능합니다.