본문 바로가기

arc3

[CS/Basic] 예시 코드와 함께 살펴보는 ARC 메모리 관리 과정 지난 포스팅에 이어.. 편리하고 유용한 메모리 관리 모델인 ARC(Automatic Reference Counting)의 작동 과정을 예시코드와 함께 알아보도록 하겠습니다. ARC의 이해를 위한 예시 코드 ARC는 Reference Count의 증가와 감소를 통해 메모리를 관리, 해제하는 모델 ARC의 작동 과정을 살펴보기 위해, 아래와 같은 예시 코드를 활용하도록 하겠습니다. Animals란 클래스가 있습니다. 이름(name) 프로퍼티를 담고 있습니다. 또한, RC의 증가와 감소, 해제를 확인하기 위해 init 및 deinit 메서드를 포함합니다. class Animals { var name: String init(name: String) { self.name = name print("\(name)이 .. 2023. 3. 17.
[CS/Basic] 메모리 관리의 시작, ARC(Automatic Reference Counting) Heap과 Stack에 대해 어느정도 이해가 되셨다고 하신다면.. 이번 포스팅에서는 Swift에서 어떻게 메모리를 관리를 하는지 살펴보고자 합니다. 면접 단골 질문 중 하나인, ARC(Automatic Reference Counting)에 대해 알아보기에 앞서 RC란 무엇이고, (ARC의 구체적인 메모리 관리 과정은 다음 포스팅에서 이어집니다) Heap과 RC(Reference Counting)의 관계 RC란, Heap 영역에 저장되는 데이터의 효율적인 관리를 위한 일종의 '참조 카운팅' 시스템 앞선 포스팅에서 살펴본 Heap에 대해 간단하게 정리하고 넘어가자면.. 개발자, 사용자에 의해 할당하며, 해제되는 관리 가능한 영역 클래스 인스턴스(Class Instance)나 클로저와 같은 '참조타입' 값이.. 2023. 3. 16.
[CS/Basic] 메모리 구조는 어떻게 구성되어있을까? CS나 Swift 문법 관련된 포스팅을 하면서, '객체는 클래스란 틀을 바탕으로 메모리 상에 할당되는 결과물(Object)' 'Swift의 상수와 변수, 그리고 저장 프로퍼티는 메모리 상에 저장' 위와 같이 [메모리]라는 단어를 자주 사용해 왔습니다. 그런데, 실제로 메모리는 단일한 구조가 아닌 4가지의 공간, 구조로 구성되어 있다고 하는데 말입니다.. 이번 포스팅에서는 해당 구조에 대해 살펴보는 시간을 가져볼까 합니다. (ARC와 같은 면접 단골문제와도 연관되어 있으니, 반드시 짚고 넘어가야겠지요?) 메모리란 무엇인가요? 주 기억장치인 하드웨어 RAM을 의미하며, 프로그램을 실행하기 위한 정보를 저장 컴퓨터에서 동작하는 모든 프로그램은 RAM이란 기억장치 내 고유한 영역을 할당받습니다. 즉, RAM =.. 2023. 2. 12.