[iOS] 메모리 구조이번 글에서는 개발자가 작성하는 코드가 메모리에서 어떤 부분에 저장되는지 알아보려고 한다. 메모리 구조프로그램이 실행되면 운영체제(OS)는 메모리(RAM)에 프로그램을 위한 공간을 할당해d0ngurrrrrrr.tistory.com 앞서 메모리 구조(코드, 데이터, 힙, 스택)에 대해서 공부를 하였는데, 이 중 힙, 스택의 장/단점을 보면서 이 둘에 대해 더 알아보겠다고 했는데, 이번 글에서는 힙, 스택과 더불어 struct, class까지 자세하게 알아보자. 힙, 스택 언제 쓰면 될까? 앞선 글에서 스택은 메모리가 한정되어 있기에너무 큰 메모리는 할당할 수 없다고 하였다. 따라서 테이터의 크기를 모르거나, 스택에 저장하기엔 큰 데이터는 힙에 할당하고 그 외엔 스택에 할당하면 된다..
· 성취/개선/학습한 내용 🏆SwiftUIScrollViewScrollTargetBehavior ProtocolscrollTargetBehavior(. viewAligned)scrollTargetLayout()NavigationView vs NaivgationStackNavigationLink(value:)navigationDestinationModifieronApper / onDisappearrefreshableoffsetoverlayclipShapeopacity, rotationEffect알고리즘백트래킹· 어려웠던 내용 😵😵💫백트래킹에 대해서는 이전에도 공부한 적이 있다. 그러나 시스템 스택도 생각을 해야 하고, 다시 어떤 ..
· 성취/개선/학습한 내용 🏆 오늘은 SwiftUI에서 Wrapper라 불리는 방법으로 ViewModifier를 활용해 각종 뷰 객체를 만드는 방법을 학습했다. 이 방법을 사용하면 코드가 더 깔끔해지고 미리 정의해 둔 스타일을 적용하는 것이라 더 빠르게 뷰를 구현할 수 있었다. (지금까지 내가 해온 건 SwiftUI가 아니라고 느껴질 정도였다...) 또 새로운 프로젝트를 진행하면서 Map을 사용해야 하는 일이 있는데, 내가 원하는 기능이 있어서 Naver Map을 사용하게 되었다. 그러나 Naver Map은 Cocoa Pod으로만 설치가 가능하다. 처음 설치를 하는 과정에서 시간을 좀 많이 소비했고, 자세하게 나와있지 않은 도큐먼트 때문에 이것저것 시도를 해보느라 좀 시간을 많이 사용했다. 여기서 내가 ..
· 아이디어💡 우선 BFS를 활용하여 문제를 풀 예정이다. 배열을 사용하고, 델타 탐색을 이용해서 행렬의 각 요소들을 탐색할 예정이고, 값이 1인 시작점으로부터 계속 +1을 해서 배열의 최댓값에서 -1을 하여 print 할 것이다. · 코드 😵😵💫 풀이 1. (시간초과) func boj7576() { // 배열 크기 입력 let size = readLine()!.split(separator: " ").map { Int($0)! } let col = size[0] let row = size[1] // 배열 세팅 var arr: [[Int]] = [] var queue: [(Int, Int)] = [] for _ in 0..
이번 글에서는 개발자가 작성하는 코드가 메모리에서 어떤 부분에 저장되는지 알아보려고 한다. 메모리 구조프로그램이 실행되면 운영체제(OS)는 메모리(RAM)에 프로그램을 위한 공간을 할당해 준다.공간은 총 4가지(코드, 데이터, 힙, 스택)의 공간으로 나눠져 있다. 빌드를 통해 실행파일로 만들면, OS는 정보를 파악하여 메모리 공간에 할당하고그 이후, OS는 코드를 읽고 쓰며 동작을 시작하게 된다. 그럼 하나하나 짚고 넘어가 보자! 코드(Code) 영역 우리가 작성한 소스 코드는 기계어 형태로 저장이 된다.컴파일 타임에 결정되며, 중간에 코드가 변경되지 않도록 Read-Only 형태로 저장된다. 데이터(Data) 영역 전역변수, static 변수, 상수, 타입 메타데이터 등이 저장되는 곳이다.프로그..
모든 iOS 앱은 URLSession을 사용하고 있다고 해도 과언이 아니다. 이번 글에서는 거의 모든 앱에서 사용하는 URLSession에 대해서 알아보자. URLSession?? iOS 앱에서 서버와 통신하기 위해 애플에서 제공하는 API이다. URLSession을 활용하면 iOS 앱이 실행 중이지 않을 때도 백그라운드에서 다운로드가 가능하다. 그리고 URLSession을 프로젝트에서 사용할 수 있겠지만 이를 추상화한 Alamofire나 Moya를 보통 많이 사용한다. 즉, Alamofire나 Moya 역시 URLSession을 기반으로 동작을 하는 것이기 때문에, URLSession에 대해 알아둘 필요가 있다. URLSessionConfiguration URLSessionConfigurati..
내 블로그 - 관리자 홈 전환 |
Q
Q
|
---|---|
새 글 쓰기 |
W
W
|
글 수정 (권한 있는 경우) |
E
E
|
---|---|
댓글 영역으로 이동 |
C
C
|
이 페이지의 URL 복사 |
S
S
|
---|---|
맨 위로 이동 |
T
T
|
티스토리 홈 이동 |
H
H
|
단축키 안내 |
Shift + /
⇧ + /
|
* 단축키는 한글/영문 대소문자로 이용 가능하며, 티스토리 기본 도메인에서만 동작합니다.