iOS

작성일 2026.07.03 수정일 2026.07.03 조회 55

기본 정보

  • 명칭: iOS
  • 개발사: Apple
  • 분류: 모바일 운영체제
  • 주요 사용 기기: iPhone
  • 주요 개발 언어: Swift, Objective-C
  • 주요 개발 도구: Xcode
  • 앱 배포 방식: App Store
  • 관련 기술: Swift, Xcode, UIKit, SwiftUI, PWA

개요

iOS는 Apple이 개발한 모바일 운영체제이다.

주로 iPhone에서 사용되며, 보안성, 최적화, 앱 생태계, 사용자 경험이 강점이다.

iOS 앱은 일반적으로 Xcode를 사용해 개발하며, Swift 또는 Objective-C 언어를 사용한다.

웹 개발 관점에서는 iOS Safari, PWA, 모바일 반응형, 터치 이벤트, 홈 화면 추가 기능과도 관련이 깊다.


iOS 구조

사용자

↓

iPhone

↓

iOS

↓

앱

↓

하드웨어

앱 실행 구조

사용자 터치

↓

iOS 이벤트 처리

↓

앱 실행

↓

UI 렌더링

↓

화면 표시

주요 특징

  • Apple 기기 전용 운영체제
  • 높은 보안성
  • 안정적인 앱 생태계
  • App Store 기반 배포
  • 하드웨어와 소프트웨어 최적화
  • 터치 중심 UI
  • Face ID, Touch ID 지원
  • 푸시 알림 지원
  • 위치, 카메라, 마이크 등 권한 관리

iOS 앱 개발 방식

iOS 앱 개발은 크게 두 가지 방식으로 나눌 수 있다.

방식설명
Native AppSwift, SwiftUI, UIKit으로 직접 개발
Web App / PWAHTML, CSS, JavaScript 기반으로 개발

Native App

Native App은 iOS 환경에 맞춰 직접 개발하는 앱이다.

주요 기술은 다음과 같다.


Swift 예제

import SwiftUI

struct ContentView: View {
    var body: some View {
        Text("Hello iOS")
            .font(.title)
            .padding()
    }
}

SwiftUI

SwiftUI는 Apple의 선언형 UI 프레임워크이다.

데이터

↓

View

↓

상태 변경

↓

UI 자동 갱신

예시:

import SwiftUI

struct CounterView: View {
    @State private var count = 0

    var body: some View {
        VStack {
            Text("Count: \(count)")
            Button("증가") {
                count += 1
            }
        }
    }
}

UIKit

UIKit은 오래전부터 사용된 iOS UI 프레임워크이다.

SwiftUI보다 코드가 길지만, 세밀한 제어가 가능하다.

import UIKit

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

        let label = UILabel()
        label.text = "Hello iOS"
        label.textAlignment = .center
        view.addSubview(label)
    }
}

Xcode

Xcode는 Apple 공식 개발 도구이다.

주요 기능:

  • iOS 앱 개발
  • Swift 코드 작성
  • 시뮬레이터 실행
  • 디버깅
  • 앱 서명
  • App Store 배포
  • Interface Builder 지원

iOS 앱 프로젝트 구조

MyApp/

├── MyAppApp.swift

├── ContentView.swift

├── Assets.xcassets

├── Info.plist

└── Preview Content/

Info.plist

Info.plist는 iOS 앱의 설정 파일이다.

예를 들어 카메라, 위치, 마이크 권한 설명 문구를 작성한다.

<key>NSCameraUsageDescription</key>
<string>프로필 사진 촬영을 위해 카메라 접근이 필요합니다.</string>

App Store 배포 과정

앱 개발

↓

테스트

↓

서명 설정

↓

Archive

↓

App Store Connect 업로드

↓

심사

↓

출시

iOS 권한 관리

iOS는 개인정보 보호를 중요하게 다룬다.

대표 권한:

권한설명
Camera카메라 접근
Microphone마이크 접근
Location위치 정보
Photo Library사진 접근
Contacts연락처 접근
Push Notification푸시 알림

iOS와 Android 비교

iOSAndroid
Apple 기기 중심다양한 제조사
폐쇄적인 생태계비교적 개방적
App Store 중심Google Play 중심
최적화 우수기기 다양성 높음
Swift 사용Kotlin, Java 사용
심사 기준 엄격배포 유연성 높음

iOS와 PWA

iOS에서도 PWA를 사용할 수 있다.

PWA는 앱스토어를 거치지 않고 웹사이트를 홈 화면에 추가해서 앱처럼 사용하는 방식이다.

웹사이트

↓

Safari

↓

홈 화면에 추가

↓

앱처럼 실행

iOS PWA 기본 구성

PWA를 만들려면 보통 다음 파일이 필요하다.

프로젝트/

├── index.html

├── manifest.json

├── service-worker.js

└── icons/

iOS 홈 화면 아이콘

iOS에서는 다음 태그를 자주 사용한다.

<link rel="apple-touch-icon" href="/icons/apple-touch-icon.png">

iOS 전체 화면 웹앱 설정

<meta name="apple-mobile-web-app-capable" content="yes">
<meta name="apple-mobile-web-app-title" content="My App">
<meta name="apple-mobile-web-app-status-bar-style" content="black-translucent">

모바일 반응형 설정

iOS Safari에서 모바일 화면을 제대로 맞추려면 viewport 설정이 중요하다.

<meta name="viewport" content="width=device-width, initial-scale=1.0">

게임처럼 확대/축소를 막고 싶을 때는 다음처럼 사용하기도 한다.

<meta name="viewport" content="width=device-width, initial-scale=1.0, user-scalable=no">

단, 접근성 측면에서는 확대 제한을 신중하게 사용해야 한다.


iOS Safari 주의사항

웹 개발 시 iOS Safari는 다음 부분을 주의해야 한다.

  • 주소창 높이에 따라 화면 크기 변화
  • 100vh 처리 이슈
  • 터치 이벤트 차이
  • 자동 재생 제한
  • 파일 업로드 제약
  • PWA 캐시 정책 확인 필요
  • 홈 화면 앱과 Safari 실행 환경 차이
  • 일부 Web API 지원 차이

iOS에서 100vh 문제

모바일 Safari에서는 주소창 때문에 100vh가 예상과 다르게 보일 수 있다.

.app {
  min-height: 100dvh;
}

dvh는 동적 viewport 높이를 기준으로 계산한다.


터치 이벤트

iOS 웹 게임에서는 마우스 이벤트보다 터치 이벤트 처리가 중요하다.

canvas.addEventListener("touchstart", function (event) {
  event.preventDefault();

  const touch = event.touches[0];
  console.log(touch.clientX, touch.clientY);
}, { passive: false });

iOS에서 Canvas 사용

Canvas 게임을 iOS에서 실행할 때는 다음을 고려해야 한다.

  • 화면 비율
  • 터치 입력
  • devicePixelRatio
  • 스크롤 방지
  • 주소창 높이
  • 성능 최적화
  • 이미지 리소스 크기
const dpr = Math.min(window.devicePixelRatio || 1, 2);

canvas.width = 420 * dpr;
canvas.height = 640 * dpr;

ctx.setTransform(dpr, 0, 0, dpr, 0, 0);

iOS 앱 개발 흐름

아이디어

↓

화면 설계

↓

Xcode 프로젝트 생성

↓

Swift / SwiftUI 개발

↓

시뮬레이터 테스트

↓

실기기 테스트

↓

App Store 배포

iOS 웹앱 개발 흐름

HTML

↓

CSS 반응형

↓

JavaScript 기능 구현

↓

PWA 설정

↓

iOS Safari 테스트

↓

홈 화면 추가 테스트

장점

  • 기기 최적화가 뛰어남
  • 보안성이 높음
  • 사용자 경험이 일관적
  • App Store 생태계가 안정적
  • 고성능 앱 개발 가능
  • SwiftUI로 빠른 UI 개발 가능

단점

  • Apple 기기 필요
  • App Store 심사 필요
  • 개발 환경이 macOS 중심
  • 배포 과정이 Android보다 까다로움
  • 일부 웹 기능 지원이 제한적일 수 있음

대표 활용 분야

  • 모바일 앱
  • 게임 앱
  • 쇼핑 앱
  • 금융 앱
  • 헬스케어 앱
  • 교육 앱
  • PWA
  • 모바일 웹 서비스
  • 카메라 기반 앱
  • 위치 기반 앱

실무 메모

  • iOS 앱 개발은 Xcode와 Swift 학습이 기본이다.
  • 웹앱은 iOS Safari에서 반드시 직접 테스트해야 한다.
  • 모바일 게임은 터치 이벤트와 화면 비율을 우선 확인한다.
  • Canvas 사용 시 devicePixelRatio 처리를 고려한다.
  • PWA는 iOS에서 Android와 동작 방식이 다를 수 있다.
  • 홈 화면 아이콘은 apple-touch-icon을 따로 설정하는 것이 좋다.
  • 주소창 때문에 100vh 대신 100dvh를 검토한다.
  • 권한 요청 문구는 사용자에게 명확하게 작성해야 한다.
  • App Store 배포 전 실기기 테스트가 중요하다.
  • 이미지, 사운드, 영상 리소스는 모바일 성능을 고려해 최적화한다.

iOS와 함께 사용하는 기술


대표 활용 사례

  • iPhone 앱 개발
  • 모바일 게임 출시
  • PWA 홈 화면 앱
  • 쇼핑몰 모바일 최적화
  • Canvas 기반 웹 게임
  • 카메라 앱
  • 위치 기반 서비스
  • 푸시 알림 앱
  • 음악 플레이어 앱
  • 헬스케어 앱

관련 문서


출처

  • Apple Developer
  • Apple Developer Documentation
  • Xcode Documentation