3D Touch: 개념, Force Touch 및 Haptic Touch 기술

저자: IT Sectr 게시일: 2026-02-28 읽는 시간: 10 분

3D Touch는 iPhone 디스플레이에 가해지는 누르는 힘을 인식하는 Apple의 하드웨어 기술이며, 그 소프트웨어 대체 기술이 Haptic Touch로, 터치 지속 시간을 통해 작동합니다. 3D Touch는 화면 매트릭스 아래에 설치된 보정된 압력 센서(Force Touch)를 사용하며, 가벼운 누름(peek)과 깊은 누름(pop)을 구분할 수 있습니다. iOS 13부터 Apple은 3D Touch를 Haptic Touch로 대체했습니다 — 촉각 피드백과 함께 길게 누르기를 통해 강제 누름을 시뮬레이션하는 기술입니다 UIContextMenuInteraction.

핵심 사항

  • 누르는 힘 — 3D Touch는 압력을 그램 단위로 측정; Haptic Touch는 유지 시간 사용
  • Peek and Pop — 원래의 3D Touch UX 패턴: 미리보기를 위한 가벼운 누름(peek), 열기를 위한 깊은 누름(pop)
  • UIContextMenuInteraction — Haptic Touch와 함께 작동하는 컨텍스트 메뉴용 최신 iOS API
  • Force Touch — 디스플레이의 정전식 센서를 통해 압력을 측정하는 Apple 기술
  • UIForceTouchCapability — 기기에서 3D Touch 사용 가능 여부를 확인하는 iOS 메서드

3D Touch와 Haptic Touch란?

3D Touch는 iPhone 6S(2015)에서 처음 선보인 하드웨어 입력 기술입니다. 디스플레이 표면 아래에서 정전식 센서가 유리와 백라이트 사이의 거리를 측정합니다. 손가락으로 누르면 유리가 미세하게 휘어지고, 센서가 변형량을 감지하여 힘 값(그램)으로 변환합니다. iOS는 세 가지 수준을 구분합니다: 가벼운 터치(touch), 중간 누름(peek, ~200g), 깊은 누름(pop, ~400g).

Haptic Touch는 iOS 13(2019)에 도입된 3D Touch의 소프트웨어 대체 기술입니다. 압력을 측정하는 대신 Haptic Touch는 길게 누르기(약 500ms 유지)를 사용하여 동일한 작업을 활성화합니다. 촉각 피드백은 "클릭" 느낌을 시뮬레이션하지만 물리적 누름은 발생하지 않습니다. Apple이 Haptic Touch로 전환한 이유는 3D Touch 디스플레이 제조의 복잡성과 높은 비용, 특히 Face ID가 있는 OLED 패널로의 전환 때문입니다.

역사적 배경: 3D Touch는 iPhone 6S에 등장하여 iPhone XS(2018)까지 유지되었습니다. iPhone XR(2018)은 3D Touch 대신 Haptic Touch를 탑재한 최초의 기기가 되었습니다. iPhone 11(2019) 및 iOS 13부터 모든 새로운 iPhone이 Haptic Touch를 사용합니다. iPad는 3D Touch를 받은 적이 없으며, iPadOS 13과 함께 Haptic Touch만 있습니다. Apple Watch는 디스플레이에 Force Touch 기술을 사용하며(iPhone 3D Touch와 다름), watchOS 7 및 Series 6부터 제거되었습니다.

Force Touch 기술: 압력 측정 방법

Force Touch는 Apple이 iPhone 6S–XS(3D Touch), MacBook 트랙패드(2015+) 및 Apple Watch(Series 1–5)에서 사용하는 힘 측정 기술입니다. 디스플레이 주변에 배치된 정전식 센서를 기반으로 합니다. 누르면 유리가 마이크론 단위로 변형되고, 센서가 거리 변화를 기록하고 보정 곡선을 사용하여 힘을 계산합니다. 시스템은 주변 온도(24시간마다 보정)와 손가락 위치(화면 중앙이 더 민감함)를 고려합니다.

보정은 3D Touch의 중요한 측면입니다. 각 iPhone은 공장에서 개별적으로 보정됩니다. iOS는 동적 보정도 수행합니다: 부팅 후 첫 번째 누름에서 시스템이 사용자의 최대 힘을 묻고 감도를 조정합니다. 센서의 정확도는 ±10그램, 범위는 0~500+그램입니다. 개발자는 UITouch.force(0.0에서 최대값으로 정규화) 또는 UITouch.maximumPossibleForce를 통해 힘 값을 얻을 수 있습니다.

swift
// 3D Touch 가용성 확인 및 누르는 힘 읽기
class ForceTouchViewController: UIViewController {

    override func touchesMoved(_ touches: Set<UITouch>,
                                with event: UIEvent?) {
        guard let touch = touches.first else { return }

        // 기기에서 Force Touch 지원 확인
        guard self.traitCollection.forceTouchCapability
                == UIForceTouchCapability.available else {
            // 기기가 3D Touch를 지원하지 않음
            return
        }

        // 누르는 힘 읽기(0.0 — 최대)
        let force = touch.force      // 0.0 ... maximumPossibleForce
        let maxForce = touch.maximumPossibleForce

        // 시각화를 위한 0.0–1.0 범위로 정규화
        let normalizedForce = force / maxForce

        // 누르는 힘에 대한 시각적 반응(요소 크기 조정)
        forceView.transform = CGAffineTransform(scaleX: 1.0 + normalizedForce * 0.3,
                                                y: 1.0 + normalizedForce * 0.3)
    }
}

제한 사항: 3D Touch는 활성 터치(UITouch.phase == .began 또는 .moved)에서만 작동합니다. 놓으면 힘 값이 0으로 재설정됩니다. 최대 힘 값은 기기마다 다릅니다: iPhone 6S — 6.6666, iPhone 7/X — 최대 20.0(보정 차이로 인해). 중요한 작업에 힘을 사용하지 마십시오 — 사용자가 얼마나 세게 눌러야 할지 모를 수 있습니다. 항상 Haptic Touch(길게 누르기)를 통한 대안을 제공하십시오.

Peek and Pop: 강제 누름의 UX 패턴

Peek and Pop은 iPhone 6S의 3D Touch와 함께 도입된 원래의 Apple UX 패턴입니다. Peek은 가벼운 누름(힘 ~0.5–1.0)으로, 미리보기 카드에 콘텐츠(이메일, 링크, 사진)의 미리보기를 표시합니다. Pop은 더 깊은 누름(힘 ~2.0+)으로, 콘텐츠를 전체 화면으로 엽니다. Peek은 아래쪽에 작업(공유, 복사, 답장)을 지원했으며, 미리보기 카드에서 위로 스와이프하여 액세스할 수 있었습니다.

UIKit의 Peek and Pop 구현에는 세 가지 구성 요소가 포함되었습니다: UIViewControllerPreviewingDelegate(메서드 previewingContext(_:viewControllerForLocation:) 및 previewingContext(_:commit:)가 있는 프로토콜), UIPreviewAction(아래쪽 작업) 및 registerForPreviewing(with:sourceView:)을 통한 등록. 개발자는 Peek에서 표시할 ViewController와 Pop에서 여는 방법을 지정했습니다. 시스템이 자동으로 시차 애니메이션과 배경 흐림 효과를 추가했습니다.

제스처힘(정규화)작업시각 효과
터치(Touch)0.0–0.3일반 상호작용요소 강조
가벼운 누름(Peek)0.5–1.0콘텐츠 미리보기배경 흐림 카드
깊은 누름(Pop)2.0+전체 화면 열기카드 확장 애니메이션
위로 스와이프작업(공유, 복사)UIPreviewAction 그룹

UIContextMenuInteraction으로 전환(iOS 13): Apple은 UIContextMenuInteraction을 통한 컨텍스트 메뉴로 Peek and Pop을 대체했습니다. 새 API는 더 간단합니다: UIViewControllerPreviewingDelegate가 필요 없고, 계층적 메뉴(하위 메뉴), SF Symbols 아이콘을 지원하며, 3D Touch와 Haptic Touch 모두에서 동일하게 작동합니다. 마이그레이션: registerForPreviewing은 iOS 13부터 사용 중단되었습니다. 기기 기능에 자동으로 적응하는 UIContextMenuConfiguration으로 교체하십시오.

컨텍스트 메뉴: UIContextMenuInteraction

UIContextMenuInteraction은 iOS 13부터 사용 가능한 컨텍스트 메뉴용 최신 iOS API입니다. addInteraction(_:)을 통해 모든 UIView에 추가됩니다. UIContextMenuInteractionDelegate가 메뉴 구성을 제공합니다: 식별자가 있는 UIContextMenuConfiguration, previewProvider(선택 사항, 미리보기용) 및 actionProvider(UIAction 또는 UIMenu 배열). 컨텍스트 메뉴는 3D Touch(사용 가능한 경우) 또는 Haptic Touch(다른 기기에서는 길게 누르기)에 의해 활성화됩니다.

swift
// 계층적 메뉴가 있는 UIContextMenuInteraction
class ContextMenuViewController: UIViewController,
                                   UIContextMenuInteractionDelegate {

    override func viewDidLoad() {
        super.viewDidLoad()
        let interaction = UIContextMenuInteraction(delegate: self)
        contextMenuView.addInteraction(interaction)
    }

    func contextMenuInteraction(_ interaction: UIContextMenuInteraction,
        configurationForMenuAtLocation location: CGPoint) -> UIContextMenuConfiguration? {

        return UIContextMenuConfiguration(identifier: nil,
            previewProvider: { PreviewViewController() }) { _ in

            let share = UIAction(title: "공유",
                              image: UIImage(systemName: "square.and.arrow.up"),
                              handler: { _ in self.shareContent() })

            let edit = UIAction(title: "편집",
                            image: UIImage(systemName: "pencil"),
                            handler: { _ in self.editContent() })

            let delete = UIAction(title: "삭제",
                            image: UIImage(systemName: "trash"),
                            attributes: .destructive,
                            handler: { _ in self.deleteContent() })

            return UIMenu(title: "작업", children: [share, edit, delete])
        }
    }
}

UIContextMenuConfiguration은 previewProvider를 지원합니다 — 미리보기로 표시되는 컨트롤러입니다. previewProvider가 nil이면 컨텍스트 메뉴가 미리보기 없이 표시됩니다. 미리보기의 크기와 모양을 사용자 지정하려면 UIContextMenuContentPreviewProvider를 사용합니다. 컨텍스트 메뉴는 자동으로 촉각 피드백(Haptic Touch Engine)과 나타남 애니메이션(확대 + 페이드)을 받습니다.

Haptic Touch vs 3D Touch: 비교

Haptic Touch와 3D Touch는 동일한 결과로 이어지는 다른 기술입니다. 3D Touch는 하드웨어(디스플레이의 압력 센서)이고, Haptic Touch는 소프트웨어(촉각 시뮬레이션을 위한 길게 누르기 + Taptic Engine)입니다. 3D Touch는 제조 비용(추가 센서 레이어)이 필요하고, 화면 두께와 수리 복잡성이 증가합니다. Haptic Touch는 더 저렴하고 제조가 간단하며 모든 최신 기기(iPhone SE 2020, iPhone 11–16, iPad, iPod touch)에서 사용 가능합니다.

매개변수3D TouchHaptic Touch
원리압력 측정(그램)시간 측정(밀리초)
사용 가능성iPhone 6S–XS(제한적)iPhone XR+, iPad, iPod touch
속도즉시(약 100ms)지연 있음(약 500ms)
누름 수준2(peek + pop)1(컨텍스트 메뉴)
촉각 피드백Taptic Engine(클릭 시뮬레이션)Taptic Engine(클릭 시뮬레이션)
App Store아이콘의 빠른 작업아이콘의 빠른 작업
보정사용자 힘에 따른 자동 보정필요 없음
수리 가능성복잡함(디스플레이 내 센서)표준

UX에 미치는 영향: 3D Touch의 속도가 더 빠릅니다 — 사용자가 세게 누르면 즉시 컨텍스트 메뉴를 얻습니다. Haptic Touch는 500ms의 일시 중지가 필요하여 더 느리게 느껴집니다. 그러나 Apple은 촉각 피드백과 시각적 애니메이션으로 이를 보완합니다. 3D Touch에서 Haptic Touch로 전환한 사용자는 종종 속도 차이를 알아차립니다. 개발자의 경우 마이그레이션이 투명합니다: UIContextMenuInteraction은 두 기술에서 동일하게 작동합니다.

강제 누름이 사용되는 곳

빠른 작업(Quick Actions) — 홈 화면의 앱 아이콘에 있는 컨텍스트 메뉴입니다. 아이콘을 세게 누르거나(3D Touch) 길게 누르면(Haptic Touch) 최대 4개의 빠른 작업이 표시됩니다: "새 메시지"(Messages), "사진 찍기"(Camera), "검색"(Safari). Info.plist 키 UIApplicationShortcutItems 또는 UIApplicationShortcutItem 델리게이트를 통해 구현됩니다. 빠른 작업은 iOS 13+(Haptic Touch) 또는 3D Touch가 있는 모든 기기에서 사용 가능합니다.

키보드 트랙패드 — iOS 키보드를 세게 누르면 트랙패드 모드로 전환됩니다: 키가 비활성화되고 손가락 움직임이 커서를 이동합니다. 3D Touch는 키보드의 아무 곳이나 세게 눌러 트랙패드를 활성화했습니다. Haptic Touch는 스페이스바를 길게 눌러 트랙패드를 활성화합니다. 트랙패드 모드는 3D Touch의 가장 인기 있는 용도 중 하나가 되었습니다 — 사용자는 텍스트 편집 시 정확한 커서 위치 지정을 높이 평가합니다.

링크 및 사진 미리보기 — Safari에서 링크를 세게 누르면 이동하지 않고 페이지 미리보기(peek)가 표시됩니다. 유사하게: Messages에서 사진을 누르면 확대된 버전이 열립니다. Peek 모드에서 위로 스와이프하면 작업이 표시됩니다: "열기", "읽기 목록에 추가", "복사". 이러한 모든 시나리오는 최신 iOS 버전에서 UIContextMenuInteraction을 통해 작동합니다.

그리기 및 창의적 앱 — Procreate, Photoshop 및 기타 그리기 앱에서 3D Touch의 누르는 힘이 브러시 두께, 불투명도 또는 색상 채도를 제어합니다. 앱은 UITouch.force(0.0–1.0)를 읽고 도구 매개변수로 변환합니다. 그러나 그리기의 경우 iPad의 Apple Pencil이 더 정확한 압력 제어(기울기 및 방위각 지원 포함)를 제공하므로 iPhone의 창의적 앱에서 3D Touch의 수요가 적습니다.

자주 묻는 질문

3D Touch와 Haptic Touch의 차이점은 무엇인가요?

3D Touch는 디스플레이의 정전식 센서를 통해 누르는 힘을 측정하는 하드웨어 기술입니다(iPhone 6S–XS). Haptic Touch는 길게 누르기와 Taptic Engine의 촉각 피드백을 사용하는 소프트웨어 시뮬레이션입니다. 3D Touch가 더 빠르며(100ms 대 500ms), 두 가지 힘 수준(peek + pop)을 지원합니다. Haptic Touch는 iPhone XR, 모든 iPhone 11–16 모델, iPad 및 iPod touch를 포함한 iOS 13+ 기기에서 사용 가능합니다.

기기가 3D Touch를 지원하는지 확인하는 방법은?

코드에서 traitCollection.forceTouchCapability를 사용하세요. .available 값은 3D Touch가 지원됨, .unavailable은 지원되지 않음, .unknown은 아직 결정되지 않음(traitCollectionDidChange 대기)을 의미합니다. Haptic Touch가 있는 기기에서 forceTouchCapability는 .unavailable을 반환합니다. Haptic Touch는 하드웨어 힘 센서를 사용하지 않기 때문입니다. 사용자의 경우: 설정 → 손쉬운 사용 → 터치 → 3D Touch에서 확인하세요(구형 iPhone만 해당).

Apple이 3D Touch를 포기한 이유는?

Apple이 3D Touch를 Haptic Touch로 대체한 이유는 여러 가지입니다: 압력 센서가 있는 화면의 높은 제조 비용, 수리 복잡성(디스플레이에 통합된 센서), 제한된 사용자 인식(많은 사람들이 기능을 몰랐음), 그리고 3D Touch 보정이 어려운 Face ID가 있는 OLED 화면으로의 전환. Haptic Touch는 더 저렴하고 간단하며 더 많은 기기에서 사용 가능합니다.

어떤 iPhone이 3D Touch를 지원하나요?

3D Touch는 다음에서 지원됩니다: iPhone 6S, 6S Plus, 7, 7 Plus, 8, 8 Plus, X, XS, XS Max. iPhone XR에는 3D Touch가 없습니다(첫 Haptic Touch 장치). 모든 iPhone 11, 12, 13, 14, 15, 16 및 SE(2세대 및 3세대) 모델은 Haptic Touch를 사용합니다. iPad에는 3D Touch가 없었습니다. 3D Touch가 있는 기기에서는 감도 설정도 사용할 수 있습니다(설정 → 손쉬운 사용 → 터치 → 3D Touch).

3D Touch가 없는 기기에서 에뮬레이션할 수 있나요?

예, iOS가 자동으로 3D Touch를 에뮬레이션합니다 Haptic Touch를 통해 하드웨어 지원이 없는 기기에서. UIContextMenuInteraction API는 모든 기기에서 동일하게 작동합니다 — 시스템이 직접 트리거(3D Touch 또는 길게 누르기)를 선택합니다. 이는 코드에 투명합니다: 컨텍스트 메뉴는 iOS 13+가 있는 모든 기기에 표시됩니다. 3D Touch와 Haptic Touch에 대해 별도의 로직을 작성할 필요가 없습니다 — UIContextMenuConfiguration을 사용하세요.

요약

  • 3D Touch — 디스플레이의 센서를 통해 누르는 힘을 측정하는 하드웨어 기술(iPhone 6S–XS)
  • Haptic Touch — 촉각 피드백과 함께 길게 누르기를 사용하는 소프트웨어 대체(iOS 13+)
  • Force Touch — 약 10g 정확도로 압력을 측정하는 정전식 센서 기술
  • Peek and Pop — 두 가지 누름 수준(미리보기 및 열기)이 있는 원래 UX 패턴
  • UIContextMenuInteraction — 두 기술 모두에 통합된 컨텍스트 메뉴용 최신 iOS API
  • Quick Actions — 빠른 작업을 위한 앱 아이콘의 컨텍스트 메뉴
  • UIForceTouchCapability — traitCollection을 통한 3D Touch 가용성 확인

턴키 방식의 모바일 애플리케이션을 개발해 드립니다

IT Sectr는 2017년부터 스타트업과 기업을 위한 iOS 및 Android 애플리케이션을 만듭니다. 저희가 상담해 드리고 최적의 솔루션을 제안하겠습니다.

프로젝트 논의

더 읽어보기