5) Iterator
: 컨테이너에 저장되어 있는 모든 원소들을 전체적으로 훑어나갈 때 사용하는, 일종의 포인터와 비슷한 도구
6) 컴파일러 VS 인터프리터
➀ 컴파일러
- PL를 Runtime 이전에 기계어로 해석하는 작업 방식. 런타임 이전에 Assembly 언어로 변환하기에 구동 시간이 오래 걸리지만, 구동 후에는 매우 빠르게 작동. ( C, C++)
- OS 및 빌드 환경에 종속적임.
- 구동 시 코드와 함께 시스템으로부터 메모리를 할당받으며 할당받은 메모리를 사용.
➁ 인터프리터
- 런타임 이후에 Row 단위로 해석하며 프로그램을 구동시킴.
- PL을 기계어로 바꾸지 않고 중간 단계를 거친 뒤, 런타임에서 즉시 해석하기 때문에
실제 실행시간은 느림.
- 단 런타임에 실시간 디버깅 및 코드 수정이 가능.
- 메모리는 필요할 때 할당하여 사용.
7) 프로세스, 스레드
➀ 프로세스: 운영체제로부터 자원을 할당받는 작업의 단위, 실행중인 프로그램.
➁ 스레드: 프로세스가 할당받은 자원을 이용하는 실행의 단위
➂ 멀티스레드
- 하나의 프로세스에서 다수의 실행 단위로 구분하여 자원의 생성과 관리의
중복성을 최소화하여 효율을 높임.
➃ 멀티스레드 vs 멀티 프로세스
- 멀티스레드는 자원을 덜 소모하는 대신 하나의 스레드가 비정상적인 오류를 일으키면
다른 스레드도 종료될 수 있다는 점과 동기화 문제가 있음.
- 멀티 프로세스는 자원을 공유하지 않기에 서로간 통신이 멀티 스레드보다 불편,
CPU 자원을 더 많이 소모함.
8) 가비지 컬렉터(GC) 동작원리
- 가비지: 정리되지 않은 메모리, 유효하지 않은 메모리 주소
∎ GC 과정: Mark and Sweep
➀ GC가 스택의 모든 변수 또는 Reachable 객체를 스캔하면서 각각 어떤 객체를 참조하고 있는지 찾는 과정 (Mark)
=> 이 과정에서 Stop the world 발생 (GC 실행을 위해 JVM이 애플리케이션 실행을 멈춤)
➁ 이후 Mark 되어있지 않은 객체들을 힙에서 제거하는 과정 (Sweep)
'IT > CS' 카테고리의 다른 글
웹 프로그래머 단골 질문, 기술 면접 모음 (1) - java, oop, Overloading vs Overriding, 프레임 워크 등 (0) | 2022.05.25 |
---|---|
IT개발/ 서버 직무 기술면접 질문 정리 - rest api, was, JSP, Servlet, MVC패턴, get/post 방식 등 (0) | 2022.05.24 |
개발 CS 지식 기술면접 질문 정리 (1) - 해시 테이블, 정렬 알고리즘, 자료구조, 프로그래밍 방법론 (0) | 2022.05.22 |
트래픽 공격의 유형 - TCP, UDP, ICMP, Smurf 플러딩 공격 (0) | 2022.05.20 |
프로세스, PID, UAC, Integrity Level 용어 조사 (0) | 2022.05.19 |