---
# System prepended metadata

title: ARC란 무엇인가?
tags: [면접스터디]

---

# 면접스터디
### ARC란 무엇인가?
- 메모리 관리 시스템입니다. 이전에는 참조하는 객체를 직접 메모리 카운트를 관리하여 메모리 누수를 방지하였어야하는데, 이를 자동으로 관리해주어 보다 편리하게 코딩을 할 수 있게 되었습니다.

### ARC의 단점?
- 메모리 참조 시 강한 참조를 기본으로 하는데, 만약 객체가 서로 참조하는 순환 참조가 일어나는 경우 객체를 사용하지 않을 때도 서로 참조하고 있는 상황이 생길 수 있습니다. 이렇게 되면 메모리 해제가 이뤄지지 않기 때문에 메모리 누수가 생길 수 있습니다.

### 강한 순환 참조가 일어나는 예시?
- @escaping 함수의 경우가 강한 순환 참조가 일어나기 쉬운 예시라 생각합니다. 만약 escaping함수 안에서 self로 참조하는 객체가 있는 경우, 객체는 escaping 함수를 참고하고, escaping 클로저는 내부의 객체 서로 바라보게 되는 상황이 일어나게됩니다. 이를 순환 참조라 하는데 이렇게 escaping클로저 강한 순환 참조가 일어나면 참조 카운트가 떨어지지 않게 됩니다.

### String은 subscript로 접근이 불가능한 이유?
- 

### String의 character에 접근하는 방법은 없나?
- 

### 구조체란?
- 값타입의 객체입니다. 
- swift환경 안에서 크게 값타입과 참조타입이 존재합니다. swift 공식문서를 참고하면 값타입인 struct를 우선 시 사용하는 것을 권장하고 있습니다. 이는 값타입과 참조타입의 차이에서 오는 것이라 생각합니다. 값타입은 객체의 값을 그대로 복사하여 사용하기 때문에 보다 효율적으로 사용이 가능합니다. 참조타입의 경우 class가

### 구조체로 무언가를 만들고 싶을 때, 흐름을 설명해 주세요
- 

### Struct가 무엇이고 역할이 무엇인가요?
- 

### 추상화란 무엇인가요?
- 

### 캡슐화의 목적과 특징?
- 중요한 정보를 숨기기 위해 사용한다 생각합니다.
- 오오,, 코비 답변 정리해야징 데이터의 무결성점,,