내가 공부하려고 만든 컴퓨터 기초 지식 관련 면접 질문 리스트이다.
1. 컴파일러와 인터프리터의 차이는 무엇인가요?
컴파일러
: 소스 코드 전체를 기계어로 변환한 후 실행, 빠른 실행 속도, 컴파일 시간이 필요인터프리터
: 소스 코드를 한 줄씩 읽어 실행, 실행 속도는 느릴 수 있으나 개발과 디버깅이 편리2. 프로세스와 스레드의 차이를 설명해보세요.
프로세스
: 실행 중인 프로그램 인스턴스, 독립적인 메모리 공간을 가짐스레드
: 프로세스 내에서 실행되는 실행 단위, 프로세스 내 메모리 공간을 공유3. 메모리 관리의 중요성을 설명해보세요.
1) 효율적인 메모리 관리는 성능 향상과 시스템 안정성을 보장
2) 메모리 누수와 같은 문제를 방지하며, 리소스를 최적으로 활용
4. 스택(Stack)과 힙(Heap)의 차이를 설명해보세요.
스택(Stack)
: 함수 호출과 지역 변수를 저장하는 공간, 후입선출(LIFO) 구조힙(Heap)
: 동적으로 할당되는 메모리 공간으로, 객체와 데이터 구조가 저장됨5. 캐시 메모리(Cache Memory)에 대해 설명해보세요.
1) CPU와 주 메모리 사이에 위치하여 빠른 데이터 액세스를 위해 사용
2) 레벨 1(L1) 캐시와 레벨 2(L2) 캐시 등 다양한 레벨의 캐시 존재
6. 가비지 컬렉션(Garbage Collection)이 무엇이며, 왜 필요한가요?
가비지 컬렉션(Garbage Collection)
: 더 이상 사용하지 않는 메모리를 해제하는 과정7. 동기(Synchronous)와 비동기(Asynchronous)의 차이를 설명해보세요.
동기(Synchronous)
: 작업이 순차적으로 실행되며, 하나의 작업이 끝나야 다음 작업 시작비동기(Asynchronous)
: 작업이 병렬적으로 실행되며, 작업 완료 여부를 기다리지 않고 다음 작업 진행8. 네트워크에서 IP 주소와 포트 번호가 무엇을 나타내는지 설명해보세요.
IP 주소
: 컴퓨터나 장치를 식별하기 위한 숫자 주소포트 번호
: 컴퓨터 내에서 실행 중인 프로세스나 서비스를 식별하는 번호9. HTTP와 HTTPS의 차이를 설명해보세요.
HTTP
: 하이퍼텍스트 전송 프로토콜, 데이터 암호화 없이 전송HTTPS
: 보안 소켓 계층으로 암호화된 HTTP 통신10. 소프트웨어 개발 생명주기(Software Development Life Cycle)에 대해 설명해보세요.
1) 요구 분석, 설계, 개발, 테스트, 배포, 유지보수 등 단계로 구성
2) 소프트웨어 개발과 관련된 프로세스를 체계적으로 관리하는 접근 방식