상식닷컴
로그인
가입하기
2026년 상식닷컴 선정 식당 & 카페 리스트
2025년 2026년 신상 호텔 리스트
최근에 오픈한 호텔을 찾는다면 살펴보세요
일주일 식단표 어플
자동 일주일 식단표 어플
안드로이드
아이폰
주식 & 코인 차트의 신
1000만원으로 2000만원 만들기 프로젝트
궁금한 상식 보기
자동차의 배터리 점검 주기는 어떻게 되나요?
SAP의 비즈니스 프로세스 모델링(BPMN)란 무엇인가요?
디자인 패턴을 적용한 후 코드의 배포 전략은 어떻게 변화하나요?
레오폴드 2세는 언제 태어났고 언제 사망했나요?
레오폴드 2세의 통치 아래에서 콩고의 노동 조건은 어땠나요?
고무나무는 어떤 종류가 있나요?
고무나무의 줄기를 잘라서 새로운 식물로 키우는 팁은 무엇인가요?
여행지에서 음식을 추천받을 때 사용하는 영어 표현은 무엇인가요?
홍콩에서 부동산을 임대할 때의 평균 보증금은 얼마인가요?
침대에서의 수면이 불면증에 미치는 영향은 무엇인가요?
침대에서의 수면이 가족 관계에 미치는 영향은 무엇인가요?
대학수학능력시험의 영어 듣기 평가에서 자주 나오는 유형은 무엇인가요?
Previous
Next
수정하기 - Go 언어의 `context.Background`와 `context.TODO`의 차이점은 무엇인가요?
닉네임
비밀번호
제목
내용
[이미지 업로드는 권한이 있는 사람만 가능. 하단 카톡으로 연락]
Go 언어에서 `context` 패키지는 <a href='https://sangseek.com/sangseeks/고루틴/ko'>고루틴</a> 간의 작업 취소, 데드라인 설정, 값 전달 등을 관리하는 데 사용됩니다. 이 패키지에서 제공하는 두 가지 주요 함수인 `<a href='https://sangseek.com/sangseeks/context.Background()/ko'>context.Background()</a>()`와 `<a href='https://sangseek.com/sangseeks/context.TODO()/ko'>context.TODO()</a>()`는 각각 특정한 용도로 사용됩니다. 이 두 함수의 차이점과 사용 사례에 대해 자세히 설명하겠습니다. 1. `context.Background()` `context.Background()`는 최상위 컨텍스트를 생성하는 함수입니다. 이 컨텍스트는 일반적으로 애플리케이션의 시작점에서 사용되며, 다른 컨텍스트의 부모로 사용될 수 있습니다. `context.Background()`는 다음과 같은 특징을 가지고 있습니다: - 루트 컨텍스트 : `context.Background()`는 어떤 작업도 취소할 수 없고, 데드라인도 설정할 수 없는 루트 컨텍스트입니다. 따라서 이 컨텍스트는 일반적으로 프로그램의 시작점에서 사용되며, 다른 컨텍스트를 생성할 때 부모로 사용됩니다. - 값 전달 불가 : 이 컨텍스트는 값을 저장할 수 없으며, 단순히 다른 컨텍스트를 생성하는 데 사용됩니다. - 사용 예 : 서버의 메인 루틴, 초기화 코드, 테스트 코드 등에서 사용됩니다. ```go ctx := context.Background() // ctx를 사용하여 다른 컨텍스트를 생성하거나 작업을 수행 ``` 2. `context.TODO()` `context.TODO()`는 사용자가 아직 어떤 컨텍스트를 사용할지 결정하지 못했을 때 사용되는 컨텍스트입니다. 이 컨텍스트는 다음과 같은 특징을 가지고 있습니다: - <a href='https://sangseek.com/sangseeks/미정/ko'>미정</a>의 컨텍스트 : `context.TODO()`는 사용자가 어떤 컨텍스트를 사용할지 확실하지 않을 때 사용됩니다. 예를 들어, 특정 기능을 구현하는 중에 어떤 컨텍스트가 적합할지 결정하지 못했을 때 이 함수를 사용할 수 있습니다. - 값 전달 가능 : `context.TODO()`는 값을 저장할 수 있으며, 다른 컨텍스트와 마찬가지로 취소 및 데드라인 기능을 사용할 수 있습니다. - 사용 예 : 코드 작성 중에 컨텍스트를 결정하지 못했거나, 나중에 변경할 가능성이 있는 경우에 사용됩니다. 이는 코드 리뷰나 유지보수 시에 "이곳에 적절한 컨텍스트를 넣어야 한다"는 신호로 작용할 수 있습니다. ```go ctx := context.TODO() // 나중에 적절한 컨텍스트로 교체할 수 있음 ``` 요약 - `context.Background()` : 애플리케이션의 시작점에서 사용되는 루트 컨텍스트로, 취소 및 데드라인 기능이 없고, 값 전달이 불가능합니다. - `context.TODO()` : 사용자가 어떤 컨텍스트를 사용할지 결정하지 못했을 때 사용되는 컨텍스트로, 취소 및 데드라인 기능이 있으며, 값 전달이 가능합니다. 이 두 컨텍스트는 Go 애플리케이션에서 작업을 관리하는 데 중요한 역할을 하며, 적절한 상황에서 올바른 컨텍스트를 선택하는 것이 중요합니다. `context.Background()`는 명확한 시작점을 제공하고, `context.TODO()`는 유연성을 제공하여 개발자가 나중에 적절한 컨텍스트로 교체할 수 있도록 합니다.
이용안내
커뮤니티 이용안내
×
- 게시한 게시글로 발생하는 문제는 게시자에게 책임이 있습니다.
- 게시글이 타인/타업체의 저작권을 침해할 경우 모든 책임은 게시자에게 있습니다. 게시자가 모든 손해를 부담해야 합니다.
- 상식닷컴 운영자는 게시자와 상의하지 않고 게시글을 수정 또는 삭제할 수 있습니다.
- 상식닷컴 운영자는 깨끗한 커뮤니티 공간을 만드는 것이 1순위입니다.
수정하기
취소하기