• 헤더 표시하도록 글 수정하기
  1. 컴퓨터 시스템에서 CPU, RAM, 저장 장치의 역할과 이들이 어떻게 상호작용하는지 설명해주세요.

💡 힌트: 앱 실행 과정을 단계별로 생각해보세요.

  • 저장 장치에서 앱 바이너리 로드
  • RAM에 코드와 초기 데이터 적재
  • CPU가 명령어 실행
  • 필요시 추가 리소스 로드

답변:

CPU는 메모리에 저장된 명령어를 읽어 들이고, 해석하고, 실행하는 장치입니다. RAM에는 현재 실행되는 프로그램의 명령어와 데이터를 저장합니다. 전원을 끄면 저장된 내용이 사라자는 휘발성 저장 장치입니다. 보조 기억 장치에는 전원이 꺼져도 보관할 프로그램을 저장합니다. RAM보다 느리지만 많의 양의 데이터를 저장할 수 있습니다.

  • 앱을 실행할 때 이 구성 요소들이 어떤 순서로, 어떻게 상호작용하여 앱 화면을 보여주게 되나요?

답변:

사용자가 홈 화면에서 앱 아이콘을 누르면, 운영체제는 보조 기억 장치에 저장된 앱 바이너리(코드와 리소스)를 읽어 들여 RAM에 적재합니다. CPU는 RAM에 적재된 명령어 차례대로 읽어와 해석하고 실행합니다. 실행 과정에서 필요한 리소스 등이 추가로 보조 기억 장치나 네트워크에서 로드되어 RAM에 적재되고, CPU는 이를 다시 처리합니다. CPU는 이렇게 메모리에 준비된 코드와 데이터를 순차적으로 처리하며, 결과를 화면에 전달합니다.

  • RAM이 부족하면 iOS 시스템은 어떤 동작을 할까요? 이것이 앱 개발 시 왜 중요할까요?

답변:

iOS 시스템에서 사용 가능한 여유 메모리(free memory)의 용량이 부족해지만, 우선 백그라운드에서 대기 중인 앱을 종료하여 메모리 공간을 확보합니다. 그럼에도 충분한 메모리를 확보할 수 없다면, 실행 중인 앱에 메모리 공간이 부족하다는 경고를 보내고, 앱은 가능한 한 빨리 이미지, 미디어 파일 등 크기가 큰 리소스를 해제하는 방식으로 대응해야 합니다.

모바일 디바이스는 한정된 메모리 자원을 갖고 있으므로, 개발자는 앱이 자원을 효율적으로 사용하도록 설계해야 합니다. 적절한 메모리 관리 전략없이 앱이 필요 이상으로 많은 메모리 공간을 점유한다면 프리징이나 크래시와 같은 심각한 성능 문제가 일어날 수 있습니다.

  • CPU 속도, RAM 용량, 저장 장치 속도 중 어떤 것이 앱의 ‘체감 속도’에 가장 큰 영향을 미칠 수 있을까요? 이유와 함께 설명해주세요.

답변:

앱의 ‘체감 속도’에는 보조 기억 장치의 속도가 가장 큰 영향을 줍니다. 앱 실행 시 먼저 보조 기억 장치에 저장된 앱 바이너리를 읽어 들여 RAM에 적재해야 하는데, 이 과정이 느리면 CPU 속도가 아무리 빠르고, RAM 용량이 충분해도 실행까지 시간이 지연됩니다.

  • iOS의 A-시리즈 칩셋에서 CPU와 GPU가 메모리를 공유하는 Unified Memory Architecture가 앱 개발에 미치는 영향은 무엇인가요?

답변:

iOS의 A-시리즈 칩셋은 통합 메모리 구조를 사용하여 CPU와 GPU가 동일한 메모리 공간을 공유합니다. 따라서 개발자는 CPU에서 처리한 데이터를 GPU로 전달할 때 별도의 복사 비용을 고려할 필요가 없습니다. 이는 메모리 사용 효율을 높이고, 데이터 전송에 소요되는 시간과 자원을 절약하여 성능 최적화에 유리해집니다.


  1. CPU와 메모리 간의 데이터 교환은 어떻게 이루어지나요?

답변:

(내용)

(내용)

  • 데이터 교환 속도를 높이기 위해 컴퓨터 시스템에는 어떤 장치들이 사용되나요?

답변:

(내용)

(내용)

  • 버스(Bus)란 무엇이며, 어떤 종류가 있나요?
    • CPI와 RAM 이외 버스를 통해 연결되는 다른 장치들은 무엇이 있을까요?

답변:

(내용)

(내용)

  • 캐시 메모리의 개념과 역할에 대해 설명해주세요.
    • 캐시 히트(Cache Hit)와 캐시 미스(Cache Miss)는 무엇이며, 성능에 어떤 영향을 미치나요?

답변:

(내용)

(내용)


  1. 캐시의 지역성(Locality) 원리에 대해 설명해주세요.

답변:

(내용)

(내용)

  • 시간적 지역성과 공간적 지역성의 구체적인 예를 코드로 설명해주실 수 있나요? (예: 반복문, 배열 순회)

답변:

(내용)

(내용)

  • 지역성 원리를 잘 활용하지 못하게 작성된 코드는 어떤 성능 문제를 일으킬 수 있을까요?

답변:

(내용)

(내용)


  1. CPU 아키텍처의 종류(예: ARM, x86)의 각 특징에 대해 설명해주세요.

답변:

(내용)

(내용)

  • iOS 기기는 주로 어떤 아키텍처를 사용하며, 그 이유는 무엇일까요?

답변:

(내용)

(내용)

  • iOS 시뮬레이터는 보통 어떤 아키텍처에서 실행되며, 실제 기기와 어떤 차이가 있을까요? 이것이 개발에 어떤 영향을 미칠 수 있나요?

답변:

(내용)

(내용)

  • iOS 기기에서 사용되는 AP(Application Processor)의 특징과 역할에 대해 설명해주세요.
    • iOS AP에는 CPU 외에 어떤 중요한 구성 요소들이 포함되어 있으며, 이들이 앱 성능에 어떻게 기여하나요? (예: GPU, Neural Engine)

답변:

(내용)

(내용)

  • SoC(System on a Chip)의 개념은 무엇인가요?
    • SoC 설계가 모바일 기기에서 중요한 이유는 무엇일까요? (예: 전력 효율, 기기)

답변:

(내용)

(내용)


  1. iOS 앱이 백그라운드로 전환될 때 메모리 부족으로 종료되는 이유는 무엇인가요?