열렬히.뛰기

코드분석 (1) : 기본

Projects > 코드분석 (1) : 기본

전체 파일 구조

디렉토리와 파일 외의 궁금했던 아이콘에 대한 정리.

  1. 파란색 앱 아이콘 (Where42):

Xcode에서 앱의 전체 프로젝트를 나타냄.

  1. 파란색 손 아이콘 (PrivacyInfo):

파일 참조를 의미하며, 외부에서 참조되는 파일. 프로젝트 내부에 물리적으로 존재하지 않고 다른 위치에 있는 파일을 참조할 때 사용. 여기서는 PrivacyInfo라는 외부 파일을 참조함.

  1. 기어 아이콘 (XCConfig):

빌드 설정 파일(XCConfig)을 의미. 프로젝트 빌드와 관련된 설정을 관리하는 데 사용되며, 여기서는 Shared, Debug, Release로 나뉘어 각각 다른 빌드 구성을 관리하고 있음.

  1. 노란색 아이콘 (where42) :

실제로 빌드된 앱을 의미.

  1. 표 아이콘 (GoogleService-Info, Info):

이 아이콘은 프로퍼티 리스트 파일(.plist)을 나타냄.

  1. 파란색 파일 아이콘 (Assets):

앱에서 사용하는 이미지, 색상, 아이콘 등을 관리하는 리소스 파일.

용어 정리

  • 프로퍼티 리스트 파일(.plist)란? 데이터의 구조화된 표현을 저장하는 파일 형식. 주로 설정이나 구성 데이터를 저장하는 데 사용되며, XML 또는 바이너리 형식으로 데이터를 저장.
  • 프로퍼티 리스트 사용 예:
    • 사용자 설정 저장
    • 앱 초기 구성 데이터 저장
    • 간단한 데이터베이스 대용

기본 분석

설정 파일들 외의 코드를 알아보자.

  • main()에 해당하는 Where42App.swift
  • View : 실제 유저 눈에 보이는 부분
  • ViewModel : View와 Model 사이에서 중간자 역할을 하며, 비즈니스 로직을 처리하고 View가 표시할 데이터를 제공
  • Model : 앱의 핵심 데이터를 정의하고, 데이터베이스나 API와 같은 외부 데이터 소스와의 상호작용을 담당
  • API : 백엔드 서버와 연결하는 부분

Where42App.swift

swift
@main
struct Where42App: App {
    @UIApplicationDelegateAdaptor var delegate: WhereAppDelegate

    var body: some Scene {
        WindowGroup {
            Where42()
        }
    }
}
  • @main : 앱의 시작점임을 명시
  • @UIApplicationDelegateAdaptor : AppDelegate를 SwiftUI 앱 내에서 사용할 수 있도록 연결함.
  • View의 Where42로 연결됨.

Info.plist 분석

•	ITSAppUsesNonExemptEncryption: 이 값은 false로 설정되어 있어, 이 앱이 암호화를 사용하지 않거나, 암호화가 규제되지 않는다는 의미.

•	BaseURL: 이 값은 환경 변수 $(BASE_URL)로 정의되어 있어, 이 앱이 API 호출 시 사용하는 기본 URL이 설정 파일에서 동적으로 결정된다는 것을 나타냄. 이 값은 API 통신이 이루어질 때 중요한 역할을 합니다.

•	NSAppTransportSecurity: NSAllowsArbitraryLoads 값이 true로 설정되어 있어, 앱이 모든 도메인에 대해 네트워크 요청을 할 수 있도록 허용하고 있음. 즉, 보안 전송이 아닌 HTTP 요청도 허용된다는 뜻.

•	UIAppFonts: GmarketSansTTFMedium.ttf, GmarketSansTTFBold.ttf, GmarketSansTTFLight.ttf 세 가지 폰트를 사용하고 있음. 앱의 UI에서 폰트가 어떻게 설정되는지 확인할 수 있는 부분.

•	UIBackgroundModes: fetch 값이 설정되어 있어, 이 앱이 백그라운드에서 데이터를 가져오는 기능을 지원. 이를 통해 앱이 백그라운드에서도 데이터를 갱신할 수 있음을 알 수 있음.