iOS 개발자를 희망하는 내가 서버를 구현을 도전하게 된 이유 토이 프로젝트를 진행하면서 DB와 서버를 사용해야 했다. 저번에 BabySitter 앱을 구현할 때는 FireBase로 DB와 서버를 모두 사용했는데, 이번 프로젝트에서는 서버 사이드 개발을 경험해보고 싶어서 서버 개발을 도전하게 되었다. 왜 Vapor? 예전에 웹 공부를 할 때 Node.js를 이용하여 서버를 구현한 경험이 있다. 기억이 잘 나지 않기도 하고 iOS 개발자를 꿈꾸는 나에겐 JavaScript는 더이상 필요 없다. 굳이 사용하지 않는 JavaScript를 처음부터 공부해야한다는 것이 쉽지 않았다. 조금 찾아보니까 Swift로 서버를 개발할 수 있는 방법이 있다는 것을 알게 되었고, Swift 언어로 서버를 개발할 수 있다는 점..
저번 글에서는 ViewController LifeCycle에 대해서 간단히 알아봤다. 이번 글에서는 간단한 예제를 통해 ViewController LifeCycle를 단계별로 나누어서 알아보겠다. ✅ 본 글에서는 브레이킹 포인트를 간단하게 BP로 표기함. 분기별 상태 생명 주기의 단계 진입 전에 BP를 걸고 진행하겠다. 첫번째 분기(34번)이다. View가 아직 메모리에 Load 되지 않았기 때문에 화면은 공백을 출력한다. 두번째 분기(41번)이다. View가 메모리에 올라간 상태이긴 하지만 아직 화면에 올라오지 않았기 때문에 화면은 공백을 출력한다. 세번째 분기(46번)이다. View가 메모리에 올라가고 화면에 올라왔기 때문에 화면은 정상적으로 출력 된다. 세번째 분기(46번)을 거쳐 ViewDidAp..
이번 글에서는 iOS App의 생명주기에 이어서 앱의 구성요소 중에서 가장 핵심인 ViewController의 LifeCycle을 알아보겠다. ViewController ➡️ UIKit 앱의 인터페이스를 관리하는 앱의 기초가 되는 내부 구조 ViewController LifeCycle ViewController의 생명 주기 흐름도이다. 0️⃣ init storyboard나 code로 ViewController를 생성하는 과정 생명 주기로의 진입 단계이다. 1️⃣ loadView - view를 생성하고 Heap 메모리에 Load하는 단계이다. UIViewController의 View가 생성되는 단계이다. ❗️공식문서에 따르면 loadView() 메소드를 직접 호출하면 안 된다. 2️⃣ viewDidLoad..
xCode에서 프로젝트 생성 시 자동으로 AppDelegate.swfit와 SceneDelegate.swift 파일을 생성한다. iOS 13 이후에 앱의 생명 주기 관리는 SceneDelegate.swift에서 관리한다. 이번 글에서는 SceneDelegate.swift 파일을 가지고 UISceneDelegate 메소드들을 간단히 다뤄보면서 Scene이 어떻게 동작하는지 직접 확인해보겠다. class SceneDelegate: UIResponder, UIWindowSceneDelegate { var window: UIWindow? func scene(_ scene: UIScene, willConnectTo session: UISceneSession, options connectionOptions: UIS..