Foreground와 Background

2025. 5. 28. 21:56·개발 | 프로젝트

앱을 개발하다 보면 "포그라운드", "백그라운드"라는 말을 자주 듣게 됩니다. 기능을 구현할 때 이 둘의 차이를 명확히 이해하는 것이 중요합니다.

 

산책 기록 앱을 개발하는 중에 사용자가 앱을 꺼도 산책 기록이 중단되지 않고 이어져야 하므로 포그라운드 서비스를 사용하게 되어서 개념을 정리하고자 합니다.

 

포그라운드란?

"포그라운드(Foreground)"는 사용자가 앱을 현재 실행하고 있는 상태를 말합니다. 예를 들어 스마트폰에서 유튜브 앱을 켜고 영상을 보는 중이라면, 유튜브는 포그라운드 상태입니다.

  • 화면에 앱이 표시되고,
  • 사용자가 앱과 상호작용하고 있을 때
  • 앱의 Activity가 활성 상태(onResume) 일 때
  • 시스템 자원을 우선적으로 사용함

 이 상태에서는 모든 기능(GPS, 네트워크, UI 등)을 자유롭게 실행할 수 있습니다.


백그라운드란?

"백그라운드(Background)"는 앱은 실행 중이지만, 화면에는 보이지 않는 상태입니다. 예를 들어 인스타그램을 보다가 홈 버튼을 눌러 나가면, 앱은 꺼진 게 아니라 뒤에서 대기 중인 상태입니다.

 

  • 화면에는 보이지 않음
  • 알림, 음악 재생, 위치 추적 등 일부 작업 가능
  • 배터리 절약 및 리소스 제한 대상

이때 앱의 Activity는 중지되고, Service만 살아 있거나,  앱 프로세스도 OS에 의해 종료될 수 있습니다.

 

백그라운드에서의  서비스 실행 제한

Android 8.0 (API 26) 이상부터는 백그라운드에서의 일반 서비스 실행이 제한됩니다.

사용자가 앱을 보지 않고 있는 상태에서 몰래 위치를 추적하거나, 오래 동작하는 작업을 하면 안 된다는 정책 때문입니다.

 

 

따라서, 필요한 것이 포그라운드 서비스입니다.

Foreground Service 

Foreground Service는 알림(Notification)을 띄운 채 실행되는 서비스입니다.
시스템은 이 서비스를 "사용자가 인지하고 있는 중요 작업"으로 간주하고, 백그라운드에서도 종료시키지 않습니다.

간단히 말해, 앱이 백그라운드에서도 계속 작업을 수행하도록 도와주는 기능입니다.

 

사용자가 앱과 직접 상호작용하지 않을 때에도 작업이 수행 중임을 사용자가 알 수 있어야 하는 경우에만 포그라운드 서비스를 사용합니다. (이때 필수적으로 사용자에게 알림을 표시해야 합니다)

 

대표 예시

  • 네이버 지도: "위치 공유 중"
  • 음악 앱: "재생 중 알림"

 

'개발 | 프로젝트' 카테고리의 다른 글

[Blender] 주요 모드 / 사용법 및 단축키  (0) 2025.07.01
코루틴(coroutine)이란?  (0) 2025.06.01
쿠키 vs 세션 vs 토큰 (JWT)  (0) 2025.05.02
[React Native] 빌드 속도 향상 (캐시화)  (0) 2025.04.29
[React Native] 모든 캐시 삭제 / 의존성 재설치  (0) 2025.04.15
'개발 | 프로젝트' 카테고리의 다른 글
  • [Blender] 주요 모드 / 사용법 및 단축키
  • 코루틴(coroutine)이란?
  • 쿠키 vs 세션 vs 토큰 (JWT)
  • [React Native] 빌드 속도 향상 (캐시화)
seulll
seulll
개인 공부 블로그입니다.
  • seulll
    seulll
    seulll
  • 전체
    오늘
    어제
    • 분류 전체보기 (359) N
      • 코딩테스트 (244) N
        • programmers (python) (161)
        • 백준 (python) (81) N
      • 자료구조 | 알고리즘 (14)
      • 개발 | 프로젝트 (47)
        • Python (4)
        • Java | Spring (8)
        • Android (5)
        • AI (5)
        • Unity (3)
        • API (4)
      • CS (18)
        • Network (6)
        • DB (3)
        • OS (4)
      • 데이터 분석 (14)
      • 기타 (13)
  • 블로그 메뉴

    • 홈
    • 태그
    • 글쓰기
    • 설정
  • 링크

    • GitHub
  • 인기 글

  • 태그

    confusion matrix
    solving environment
    티스토리챌린지
    오차행렬
    웹크롤링
    asterisk
    kakao map api
    백엔드 개발자 역량
    프렌즈4블록
    Greedy
    대입 표현식
    Boxplot
    바다코끼리
    2 x n 타일링
    카카오맵
    백엔드 개발자
    train_test_split
    백엔드
    야근 지수
    코딩테스트
    Python
    프로그래머스
    박스플롯
    그리디 알고리즘
    데이터분석
    카카오맵 api
    오블완
    API
    파이썬
    모델 성능 평가
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.0
seulll
Foreground와 Background
상단으로

티스토리툴바