오늘의 학습
코드 작성에 그렇게 큰 자신감은 없어 참여한 후발대,
오늘 클래스와 구조체를 CS 관점에서 접근했다.
그동안 클래스와 구조체는 참조, 값 타입이기에 값을 다르게 담고 있는다는 점은 이해하고 있었다.
하지만, 중요한 점은 코드, 데이터, 힙, 스택 관련해서는 이해도가 많이 낮았는데, 오늘 특강에서 잠깐이나마 다뤘다.
여기서 내가 배우게 된건,
Code 영역은 소스코드를 저장하는 영역으로
실행 파일을 구성하는 명령어들이 저장되는 공간인 점이라고 한다.
Data 영역은 전역 변수와 static 변수가 할당되는 영역으로 별도로 클래스 또는 구조체 안에 담기지 않았거나 타입 프로퍼티들이 올라가닌 영역으로 이해가 된다.
해당 영역에서는 프로그램 시작과 동시에 할당이 되며 프로그램이 종료될 때 메모리에서 없어진다는 점이다.
Heap영역과 Stack이 가장 복잡했는데, Heap은 동적 으로 할당되든 변수가 삭제되면 메모리는 Heap으로 다시 반환, 재할당이 가능하다는 특징이 있었다. 주소의 메모리를 가지고 있기에 값을 삭제하는 과정보다 메모리 주소를 반납할 수 있는 영역으로 이해를 했다.
또 다른 특징은 Heap에 할당된 메모리는 런타임 즉, 실제 어플을 구동할 때 메모리 용량이 정해지는 것으로 이해를 했다.
반면, Stack 영역은 함수 매개변수, 지역 변수들을 저장하는 영역으로, 호출이 완료가 되면 해당 값들의 담고 있는 메모리도 해제가 된다고 한다!!
여전히 이해가 안되는 부분들이 많다.
하지만 천천히 이해해보도록 하자!
이번 Todo 어플을 구현해보면서 여전히 모르는 메서드나 함수가 많다는 점을 깨달았다. 무엇보다 ViewController, UITableView 등 각 UIComponent 및 UIComponent의 부모 클래스 역할을 하는 UIView 등에 대한 지식이 현저히 부족하다는 점을 깨닿게 되는 하루였다.
관련해서는 주말동안 공부를 하고 따로 정리를 해보자!!