IT 기술 용어

프로세스, 쓰레드, 쓰레드풀, 캐시 Process Thread Thread Pool Cache

Pro.Dev 2020. 9. 24. 10:59
반응형

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. 따라서, 쓰레드와 쓰레드풀, 캐시 등을 개발자가 전부 만들어야 하므로, 잘 만들어진 라이브러리를 사용하여 개발 시간을 단축한다.

 

 

 

반응형