컨텍스트란 ?

김세빈·2025년 5월 16일

CS

목록 보기
16/22

컨텍스트(Context)란 무엇인가? 쉽게 이해해보자

개발 공부를 하다 보면 자주 마주치는 단어 중 하나가 **"컨텍스트(context)"**입니다. 어렵게 느껴지지만, 우리 일상 속에서 이미 자주 경험하고 있는 개념입니다.

카페에서 커피 주문할 때의 컨텍스트

여러분이 카페에 들어가서 "아이스 아메리카노 하나 주세요"라고 말한다고 해보겠습니다. 이때 점원은 여러분의 상태나 주변 정보를 바탕으로 행동합니다. 예를 들어:

  • 나(고객)가 누구인지
  • 혼자인지 여럿인지
  • 머그잔인지 테이크아웃인지

이 모든 정보들이 대화의 컨텍스트입니다. 즉, 단순히 말로 표현하지 않았더라도 상황(context) 속에서 유추할 수 있는 정보들 입니다.

개발에서의 컨텍스트란?

소프트웨어에서의 컨텍스트도 이와 비슷합니다. 어떤 작업이나 상태를 처리하기 위해 필요한 최소한의 정보를 뜻합니다. 예를 들어:

  • 로그인한 사용자의 정보
  • 현재 선택된 언어
  • 테마(다크 모드인지 라이트 모드인지)
  • 현재 위치한 페이지나 경로

이런 정보들을 컨텍스트라고 부르고, 이 정보들을 기준으로 UI나 로직이 다르게 동작할 수 있습니다.

OS에서의 컨텍스트: 컨텍스트 스위칭

운영체제에서는 여러 프로세스가 CPU를 번갈아 사용할 수 있도록 하는데, 이때 각각의 작업 상태(레지스터, 메모리 위치 등)를 저장하고 불러오는 과정을 **컨텍스트 스위칭(context switching)**이라고 합니다.

HTTP에서도 컨텍스트?

HTTP 통신을 할 때도 컨텍스트가 존재합니다. 대표적인 예가 HTTP Header입니다. 예를 들어:

Authorization: Bearer eyJhbGciOi...
Accept-Language: ko-KR

이런 헤더는 요청을 보낼 때 클라이언트의 상태나 조건을 서버에 전달하는 컨텍스트 정보입니다.

React에서의 Context API

React에서는 Context API를 통해 컴포넌트 트리 전체에 데이터를 쉽게 전달할 수 있습니다. props drilling 없이도 여러 컴포넌트에서 공유해야 하는 전역적인 상태(예: 테마, 로그인 정보)를 관리할 수 있습니다.

const ThemeContext = createContext("light");

function App() {
  return (
    <ThemeContext.Provider value="dark">
      <Toolbar />
    </ThemeContext.Provider>
  );
}

여기서 ThemeContext는 현재 UI의 상태에 따라 다르게 렌더링되도록 돕는 컨텍스트 저장소 역할을 합니다.


마무리: 컨텍스트는 "상황 정보"다

정리하자면, 컨텍스트는 어떤 작업을 하기 위해 필요한 주변 정보입니다. 꼭 IT 용어가 아니라도, 우리는 일상에서 컨텍스트를 바탕으로 대화하고, 판단하고, 행동하고 있습니다.

0개의 댓글