본캠프 4주차 화요일 TIL

호씨·2024년 11월 12일
1

1. Xcode Build

컴파일(Compile)
컴파일이란 어떤 언어의 코드 전체를 다른 언어로 바꿔주는 과정이다.
즉, Swift에서 컴파일이란,
사람이 이해하기 쉬운 High Level 언어인 Swift로 작성한 코드를
컴퓨터가 이해하기 쉬운 바이너리 파일로 변환하는 과정.

빌드 (Build)
소스 코드 파일을 실행 가능한 소프트웨어 산출물로 변환하는 과정이다.
컴파일만 해서는 실행 가능한 결과가 나오지 않는다.
프로젝트에 포함한 리소스(이미지, 컬러 등 Swift 코드가 아닌 것들)까지 모두 말아서
실행 가능한 결과를 만든다.

앱 생명주기 (App Lifecycle)

▪️ Unattached (= Not Running)
앱을 실행 중이지 않은 상태.

▪️ Foreground Inactive
앱을 실행했지만 사용자로부터 이벤트를 받을 수 없는 상태.
앱을 완전히 활성화하기 이전 단계.

▪️ Foregound Active
앱을 실행했고 사용자로부터 이벤트를 받을 수 있는 상태.
가장 일반적인 앱을 사용하고 있는 상태.

▪️ Background
앱을 실행한 뒤 백그라운드로 넘어간 상태.
홈버튼을 눌러 밖으로 나갔을 때의 상태.
그래도 메모리에 올라가있는 상태이다.
ex) 멜론 앱이 홈 화면에서도 음악을 계속 재생하는 상태.

▪️ Suspend
백그라운드 상태에서 앱이 특별한 작업을 필요로 하지 않을 경우 접어드는 상태
OS 가 판단하여 Background → Suspend 상태로 변환시킨다.
ex) 게임 앱을 동시에 30개 켜면 (기기 메모리에 부담스러운 상황을 연출하면), 비교적 초반에 실행한 앱들은 백그라운드에서 Suspend 상태로 넘어가, 돌아갔을 때 앱이 재실행되는 경우가 있다.

OSLog 로그찍기

import UIKit
import OSLog

class ViewController: UIViewController {
    
    override func viewDidLoad() {
        super.viewDidLoad()

        os_log(.default, "(default) randomNumber = \(self.getRandomNumber())")
        os_log(.debug, "(debug) randomNumber = \(self.getRandomNumber())")
        os_log(.info, "(info) randomNumber = \(self.getRandomNumber())")
        os_log(.error, "(error) randomNumber = \(self.getRandomNumber())")
        os_log(.fault, "(fault) randomNumber = \(self.getRandomNumber())")
    }
    
    // 0 부터 100 중 랜덤한 수를 리턴하는 함수
    func getRandomNumber() -> Int {
        return Int.random(in: 0...100)
    }
}

위에서 아래로 갈수록 심도깊은? 영역

profile
이것저것 많이 해보고싶은 사람

0개의 댓글