반응형
1. 프로그램(Program)이 실행되는 과정
- 프로그램은 하드디시크(PC) 또는 플래시메모리(폰)에 저장되어 있다.
- PC의 경우 더블클릭, 폰의 경우는 탭 하면
- 저장되어있는 프로그램이 메모리로 올라온다(로딩된다) => 프로세스(Process)라고 한다.
- CPU가 메모리에 올라온 프로세스를 실행시킨다.
(그림은 recipes-4dev.tistory.com 에서 참조)
2. 쓰레드 ( Thread ) 에 대해서 설명하세요.
- 하나의 프로세스는 기본적으로 한개의 쓰레드를 가집니다.
- 쓰레드는 동시에 작업할 수 있는 일이 단위입니다.
- 예를들면, 웹브라우저 에지 프로그램을 실행시키면 1개의 쓰레드가 생성되고,
- 이미지를 가져오는 작업, 유투브 음악을 듣는 작업 등의 여러 작업은
- 해당되는 쓰레드가 여러개 생성되어 실행됩니다.
3. 쓰레드 풀 ( Thread Pool ) 은 무엇입니까?
- 네트워크로 이미지를 가져온다고 합시다.
- 이미지를 가져올때 1개의 이미지를 1개의 쓰레드가 담당하여 가져오면,
- 여러개의 이미지는 여러개의 쓰레드가 필요합니다.
- 이때, 쓰레드 여러개를 처음에 한번 만들어 놓고, 이 여러 쓰레드를 재사용합니다.
- 이렇게 재사용 할 수 있는 쓰레드 여러개를 미리 만들어 놓고 사용하는 것을 쓰레드 풀(Thread Pool)이라고 합니다.
4. 발리(Android Volley)에서 쓰레드풀을 사용하는 그림 - 점선 부분
5. 캐시 ( Cache ) 란 무엇입니까?
- 앞에서, 네트워크로 무조건 계속 요청하는 것은 자원 낭비다.
- 따라서 이미 요청했던 데이터는, 메모리나 디스크에 저장을 해 놓는다.
- 그래서 같은 데이터를 요청할때는, 네트워크를 가지 않고
- 먼저 메모리나 디스크에 저장되어 있는지 확인하여서,
- 저장되어 있으면 그 데이터를 사용하고
- 그렇지 않으면 네트워크로 데이터를 요청해서 사용한다.
안드로이드 글라이드 (Glide) 라이브러리에서 캐시를 사용하는 경우
6. 따라서, 쓰레드와 쓰레드풀, 캐시 등을 개발자가 전부 만들어야 하므로, 잘 만들어진 라이브러리를 사용하여 개발 시간을 단축한다.
- IT 취업 / 이직 기술 면접 질문 대비
반응형