타임아웃 (컴퓨팅)
"오늘의AI위키"의 AI를 통해 더욱 풍부하고 폭넓은 지식 경험을 누리세요.
1. 개요
타임아웃은 컴퓨터 시스템에서 특정 작업이나 프로세스가 지정된 시간 내에 완료되지 않을 경우, 해당 작업을 중단시키는 기술이다. 짧은 타임아웃은 정상적인 요청을 조기에 실패시킬 수 있고, 긴 타임아웃은 느린 오류 응답을 초래할 수 있어 적절한 값 설정이 중요하다. 타임아웃은 마이크로소프트 윈도우의 `timeout` 명령어, POP 연결, HTTP 지속적 연결, 조명 스위치, 스마트폰 등 다양한 하드웨어 및 소프트웨어에서 사용되며, 네트워크 통신 API에서 접속 처리 및 데이터 송수신 시 설정 가능하다. 또한, 세션 타임아웃은 통신 시스템에서 사용자의 비정상적인 종료로 인해 세션이 무한정 유지되는 것을 막기 위해 일정 시간 응답이 없으면 세션을 자동으로 닫는 기능이다.
더 읽어볼만한 페이지
- 컴퓨터 네트워킹 - 유니캐스트
유니캐스트는 데이터를 단일 목적지로 전송하는 방식으로, 브로드캐스트 및 멀티캐스트와 대비되며, 개인적 또는 고유한 리소스가 필요한 네트워크 프로세스에 사용되지만, 대량 데이터 전송 시 비용이 증가하는 단점이 있다. - 컴퓨터 네트워킹 - 노드 (네트워크)
노드(네트워크)는 데이터 통신에서 데이터를 주고받는 장치를 의미하며, 물리적 네트워크 노드, 인터넷 노드, 통신 네트워크 노드, 분산 시스템 노드, 네트워크 가상화 노드 등으로 분류된다. - 컴퓨터 프로그래밍 - 순서도
순서도는 컴퓨터 알고리즘이나 프로세스를 시각적으로 표현하는 도구로, 흐름 공정 차트에서 기원하여 컴퓨터 프로그래밍 분야에서 알고리즘을 설명하는 데 사용되며, 다양한 종류와 소프트웨어 도구가 존재한다. - 컴퓨터 프로그래밍 - 의사코드
의사코드는 컴퓨터 과학 및 수치 계산 분야에서 알고리즘을 설명하기 위해 사용되는 비표준적인 언어로, 자연어와 프로그래밍 언어의 요소를 혼합하여 알고리즘의 논리적 흐름을 이해하기 쉽게 하고 프로그래머가 실제 코드로 구현하기 전에 알고리즘을 설계하고 검토하는 데 유용하다. - 통신공학 - 무선 통신
무선 통신은 전선 없이 전자기파 등을 이용하여 정보를 전달하는 방식으로, 마르코니의 무선 전신 실험 성공 이후 다양한 형태로 발전해왔으며, 현대 사회에서 필수적인 기술로 자리 잡았다. - 통신공학 - FM 방송
FM 방송은 주파수 변조 방식을 사용하여 음질이 좋고 잡음에 강하며 스테레오 방송과 부가 서비스를 제공하는 라디오 방송 기술이다.
타임아웃 (컴퓨팅) | |
---|---|
컴퓨터 과학에서의 타임아웃 | |
정의 | 컴퓨터 과학에서 타임아웃은 특정 작업이 완료되기를 기다리는 최대 시간을 의미함. |
목적 | 작업이 무한정 지연되는 것을 방지하고, 시스템의 응답성을 유지하는 데 목적이 있음. |
타임아웃 유형 | |
하드 타임아웃 | 시스템에 심각한 오류가 발생했을 때 발생하는 타임아웃. |
소프트 타임아웃 | 시스템에 오류가 발생했으나 심각하지 않을 때 발생하는 타임아웃. |
타임아웃 발생 시 조치 | |
일반적인 조치 | 작업 중단, 오류 메시지 표시, 재시도 등의 조치를 취할 수 있음. |
프로그래밍에서의 타임아웃 | |
설정 방법 | 프로그래밍 언어 및 라이브러리에서 제공하는 타임아웃 설정 기능을 사용하여 구현할 수 있음. |
사용 예시 | 네트워크 연결, 데이터베이스 쿼리, 외부 API 호출 등 시간이 오래 걸릴 수 있는 작업에 적용됨. |
기타 고려 사항 | |
타임아웃 값 설정 | 작업의 예상 완료 시간과 시스템 환경을 고려하여 적절한 타임아웃 값을 설정해야 함. |
예외 처리 | 타임아웃 발생 시 예외 처리를 통해 시스템의 안정성을 확보해야 함. |
2. 타임아웃의 개념 및 중요성
타임아웃은 정상 응답 가능 여부가 불분명한 하드웨어 제어나 서버와의 연결, 상호 배제된 공유 자원에 대한 접근, 특정 종류의 브라우저 크래셔 회피 등에 사용된다.
네트워크 통신용 API에서는 접속이나 데이터 송수신 시 타임아웃 시간을 응용 소프트웨어에서 설정할 수 있다.[8][9] 명시적으로 설정하지 않으면 라이브러리나 시스템의 기본값이 사용된다. 타임아웃 발생 시에는 에러 코드[10][11]나 예외 발생[12]으로 통지된다.
2. 1. 타임아웃 설정의 어려움
분산 시스템과 마이크로서비스에서 타임아웃 값을 조정하는 것은 까다로울 수 있다. 짧은 타임아웃 값은 정상적인 요청을 조기에 실패시켜 복잡한 해결책을 필요로 할 수 있으며, 긴 타임아웃 값은 느린 오류 응답과 좋지 않은 사용자 경험을 초래할 수 있다. 회로 차단기 설계 패턴은 서비스 상태를 모니터링하고, 장애를 동적으로 더 빠르게 감지하며, 사용자 경험을 개선할 수 있으므로 더 나은 대안이 될 수 있다.[1]2. 2. 회로 차단기 패턴
분산 시스템과 마이크로서비스에서 타임아웃 값을 조정하는 것은 까다로울 수 있다. 짧은 타임아웃 값은 정상적인 요청을 조기에 실패시켜 복잡한 해결책을 필요로 할 수 있으며, 긴 타임아웃 값은 느린 오류 응답과 좋지 않은 사용자 경험을 초래할 수 있다. 회로 차단기 설계 패턴은 서비스 상태를 모니터링하고, 장애를 동적으로 더 빠르게 감지하며, 사용자 경험을 개선할 수 있으므로 더 나은 대안이 될 수 있다.[1]3. 타임아웃의 예시
타임아웃은 다양한 컴퓨팅 환경에서 사용되는 일반적인 개념이다. 다음은 그 예시이다.
- 마이크로소프트 윈도우 및 ReactOS 명령 줄 인터페이스에서 `timeout` 명령어는 지정된 초 동안 명령 프로세서를 일시 중지한다.[3][4]
- POP 연결에서 서버는 일정 시간 동안 활동이 없으면 클라이언트 연결을 닫아 연결이 영구적으로 유지되지 않도록 한다. 이는 클라이언트 충돌이나 네트워크 중단 시 발생할 수 있는 문제이다.
- HTTP 지속적 연결에서 웹 서버는 열린 연결을 저장하며, 5분 동안 활동이 없으면 연결을 닫는다. 이는 서버의 자원 낭비를 막기 위한 조치이다.
- 시간 조절식 조명 스위치는 에너지와 램프 수명을 절약한다. 사용자가 수동으로 끄지 않아도 자동으로 꺼진다.
- 태블릿 컴퓨터와 스마트폰은 일정 시간이 지나면 백라이트를 꺼서 배터리 소모를 줄인다.
- 정상 응답 여부가 불분명한 하드웨어 제어 및 서버와의 연결·통신에 타임아웃이 사용된다. 이는 시스템의 무한 대기 상태를 방지한다.
- 상호 배제된 공유 자원 접근과 특정 종류의 브라우저 크래셔 회피에도 타임아웃이 사용된다.
- 네트워크 통신용 API에서는 접속 처리나 데이터 송수신 처리에 대해 타임아웃 시간을 설정할 수 있다.[8][9] 이는 네트워크 지연 등으로 인한 응답 없음 문제를 해결하는 데 사용된다.
3. 1. 하드웨어 및 소프트웨어
- Microsoft Windows 및 ReactOS[2] 명령 줄 인터페이스에서 `timeout` 명령어는 지정된 초 동안 명령 프로세서를 일시 중지한다.[3][4]
- POP 연결에서 서버는 일반적으로 일정 기간(타임아웃 기간) 동안 활동이 없으면 클라이언트 연결을 닫는다. 이렇게 하면 클라이언트가 충돌하거나 네트워크가 중단될 경우 연결이 영구적으로 유지되지 않도록 보장한다. 열린 연결은 리소스를 소비하며 다른 클라이언트가 동일한 사서함에 액세스하지 못하게 할 수 있다.
- HTTP 지속적 연결에서 웹 서버는 열린 연결을 저장하는데, 이는 CPU 사용 시간과 메모리를 소비한다. 웹 클라이언트는 "요청 종료" 신호를 보낼 필요가 없다. 연결은 5분 동안 활동이 없으면 닫힌다(시간 초과). 이렇게 하면 연결이 무기한으로 지속되지 않도록 보장한다.
- 시간 조절식 조명 스위치에서는 에너지와 램프의 수명을 절약할 수 있다. 사용자는 수동으로 끄지 않아도 된다.
- 태블릿 컴퓨터와 스마트폰은 일반적으로 사용자 입력 없이 일정 시간이 지나면 백라이트를 끈다.
- 정상 응답 가능 여부가 불분명한 하드웨어 제어
- 정상 응답 가능 여부가 불분명한 서버와의 연결·통신
- 상호 배제된 공유 자원에 대한 접근
- 특정 종류의 브라우저 크래셔 회피
특히 네트워크 통신용 API에는, 접속 처리나 데이터 송수신 처리에 대해, 타임아웃 시간을 응용 소프트웨어 측에서 설정할 수 있도록 되어 있는 것이 일반적이다.[8][9] 또한, 애플리케이션에서 명시적으로 설정하지 않은 경우, 라이브러리나 시스템에 의해 정해진 기본 타임아웃 시간이 사용된다. 타임아웃이 발생한 경우에는, 통상 에러 코드[10][11]나 예외 발생[12]에 의해 통지된다.
3. 2. 네트워크 통신
- POP 연결에서 서버는 일반적으로 일정 기간(타임아웃 기간) 동안 활동이 없으면 클라이언트 연결을 닫는다. 이렇게 하면 클라이언트가 충돌하거나 네트워크가 중단될 경우 연결이 영구적으로 유지되지 않도록 보장한다. 열린 연결은 리소스를 소비하며 다른 클라이언트가 동일한 사서함에 액세스하지 못하게 할 수 있다.[2]
- HTTP 지속적 연결에서 웹 서버는 열린 연결을 저장한다(이는 CPU 사용 시간과 메모리를 소비한다). 웹 클라이언트는 "요청 종료" 신호를 보낼 필요가 없다. 연결은 5분 동안 활동이 없으면 닫힌다(시간 초과). 이렇게 하면 연결이 무기한으로 지속되지 않도록 보장한다.[3]
- 특히 네트워크 통신용 응용 프로그래밍 인터페이스에는, 접속 처리나 데이터 송수신 처리에 대해, 타임아웃 시간을 응용 소프트웨어 측에서 설정할 수 있도록 되어 있는 것이 일반적이다.[8][9] 애플리케이션에서 명시적으로 설정하지 않은 경우, 라이브러리나 시스템에 의해 정해진 기본 타임아웃 시간이 사용된다. 타임아웃이 발생한 경우에는, 통상 에러 코드[10][11]나 예외 발생[12]에 의해 통지된다.
3. 3. 일상 생활
- POP 연결에서 서버는 일반적으로 일정 기간(타임아웃 기간) 동안 활동이 없으면 클라이언트 연결을 닫는다. 이렇게 하면 클라이언트가 충돌하거나 네트워크가 중단될 경우 연결이 영구적으로 유지되지 않도록 보장한다. 열린 연결은 리소스를 소비하며 다른 클라이언트가 동일한 사서함에 액세스하지 못하게 할 수 있다.[2]
- HTTP 지속적 연결에서 웹 서버는 열린 연결을 저장한다(이는 CPU 사용 시간과 메모리를 소비한다). 웹 클라이언트는 "요청 종료" 신호를 보낼 필요가 없다. 연결은 5분 동안 활동이 없으면 닫힌다(시간 초과). 이렇게 하면 연결이 무기한으로 지속되지 않도록 보장한다.
- 시간 조절식 조명 스위치에서는 에너지와 램프의 수명을 절약할 수 있다. 사용자는 수동으로 끄지 않아도 된다.
- 태블릿 컴퓨터와 스마트폰은 일반적으로 사용자 입력 없이 일정 시간이 지나면 백라이트를 끈다.
4. 세션 타임아웃
통신 시스템 등에서 접속이나 이용 시작 절차(로그인 등) 후 이루어지는 일련의 통신이나 조작을 "세션"(session)이라고 한다. 세션은 사용자가 종료 절차(로그아웃 등)를 통해 명시적으로 종료할 수 있지만, 사용자가 종료 절차 없이 단말에서 떨어지거나 통신이 끊어지는 경우도 있다.
세션 타임아웃까지의 시간은 시스템 종류나 설정에 따라 다르지만, 전자 상거래 사이트 등 웹 서비스의 경우에는 몇 분에서 30분 정도로 하는 경우가 많다. 자동 발권기나 업무용 복사기 등에도 세션 타임아웃이 설정되어 있다.
좌석 예약 시스템 등에서는 화면을 왕복하는 등 통신이 계속되더라도, 가예약 중에는 다른 사용자가 예약할 수 없게 되므로, 일정 시간 내에 구매 절차가 완료되지 않으면 타임아웃(취소)되도록 되어 있다.[1]
4. 1. 세션 타임아웃의 필요성
통신 시스템 등에서, 접속이나 이용의 시작 절차(로그인 등)를 한 후 이루어지는 일련의 통신이나 조작을 "세션"(session)이라고 한다. 세션은 사용자가 소정의 종료 절차(로그아웃 등)를 함으로써 명시적으로 종료·절단할 수 있지만, 이용 종료 절차 없이 사용자가 단말에서 떨어지거나, 어떤 문제가 일어나 통신이 끊어지는 경우도 있다. 이때, 세션을 언제까지나 열어둔 채로 두면, 다른 사용자가 이용할 수 없게 되거나, 보안 문제로 발전하거나, 서버 측의 리소스가 고갈되어 새로운 세션을 시작할 수 없게 된다. 따라서, 통신 상대방으로부터 소정의 시간 이상 아무런 응답이 없으면, 세션은 자동적으로 닫히도록 되어 있다. 이것을 세션 타임아웃이라고 한다.세션 타임아웃까지의 시간은 시스템의 종류나 설정에 따라 다르지만, 전자 상거래 사이트 등 웹 서비스의 경우에는 몇 분에서 30분 정도로 하는 경우가 많다. 자동 발권기나 업무용 복사기 등에도 세션 타임아웃이 설정되어 있다.
좌석 예약 시스템 등에서는, 설령 화면을 왕복하는 등 통신이 계속 발생하더라도, 가예약 중에는 취소될 때까지 다른 사용자가 예약할 수 없게 되는 등의 이유로, 일정 시간 내에 구매 절차가 마지막까지 완료되지 않으면 타임아웃(취소)되도록 되어 있다.
4. 2. 세션 타임아웃의 적용
통신 시스템 등에서, 접속이나 이용을 시작하는 절차(로그인 등)를 거친 후 이루어지는 일련의 통신이나 조작을 "세션"(session)이라고 한다. 세션은 사용자가 종료 절차(로그아웃 등)를 통해 명시적으로 종료하거나 끊을 수 있지만, 사용자가 이용 종료 절차 없이 단말에서 떨어지거나, 어떤 문제로 통신이 끊어지는 경우도 있다. 이때 세션을 계속 열어두면 다른 사용자가 이용할 수 없게 되거나, 보안 문제로 이어지거나, 서버 측 자원이 고갈되어 새로운 세션을 시작할 수 없게 된다. 따라서 통신 상대방으로부터 일정 시간 이상 응답이 없으면 세션은 자동적으로 닫히도록 되어 있으며, 이를 세션 타임아웃이라고 한다.세션 타임아웃까지 걸리는 시간은 시스템의 종류나 설정에 따라 다르지만, 전자 상거래 사이트 등 웹 서비스의 경우에는 몇 분에서 30분 정도로 설정하는 경우가 많다. 자동 발권기나 업무용 복사기 등에도 세션 타임아웃이 설정되어 있다.
좌석 예약 시스템 등에서는, 화면을 오가는 등의 통신이 계속 발생하더라도, 가예약 중에는 취소될 때까지 다른 사용자가 예약할 수 없게 된다. 따라서 일정 시간 안에 구매 절차가 완료되지 않으면 타임아웃(취소)되도록 되어 있다.
참조
[1]
서적
Microservices AntiPatterns and Pitfalls
O'Reilly
[2]
웹사이트
timeout.c
https://github.com/r[...]
2019-07-13
[3]
웹사이트
timeout
https://docs.microso[...]
[4]
웹사이트
TIMEOUT.exe (Windows 7/2008 or later)
https://ss64.com/nt/[...]
[5]
웹사이트
Timeout detection and recovery (TDR) - Windows drivers | Microsoft Learn
https://learn.micros[...]
[6]
웹사이트
タイムアウトとは - 意味をわかりやすく - IT用語辞典 e-Words
https://e-words.jp/w[...]
[7]
웹사이트
セッションタイムアウトとは - 意味をわかりやすく - IT用語辞典 e-Words
https://e-words.jp/w[...]
[8]
웹사이트
Option Flags (Wininet.h) - Win32 apps | Microsoft Learn
https://learn.micros[...]
[9]
웹사이트
SOL_SOCKET Socket Options (Winsock2.h) - Win32 apps | Microsoft Learn
https://learn.micros[...]
[10]
웹사이트
Error Messages (Wininet.h) - Win32 apps | Microsoft Learn
https://learn.micros[...]
[11]
웹사이트
Windows Sockets Error Codes (Winsock2.h) - Win32 apps | Microsoft Learn
https://learn.micros[...]
[12]
웹사이트
Socket (Java Platform SE 8 )
https://docs.oracle.[...]
[13]
웹사이트
인터넷티켓판매vit에서 티켓을 구입하고 있었더니 타임 아웃되었습니다. 자리는 잡혀 있습니까? | TOHO 시네마즈 자주 묻는 질문
https://help.tohothe[...]
본 사이트는 AI가 위키백과와 뉴스 기사,정부 간행물,학술 논문등을 바탕으로 정보를 가공하여 제공하는 백과사전형 서비스입니다.
모든 문서는 AI에 의해 자동 생성되며, CC BY-SA 4.0 라이선스에 따라 이용할 수 있습니다.
하지만, 위키백과나 뉴스 기사 자체에 오류, 부정확한 정보, 또는 가짜 뉴스가 포함될 수 있으며, AI는 이러한 내용을 완벽하게 걸러내지 못할 수 있습니다.
따라서 제공되는 정보에 일부 오류나 편향이 있을 수 있으므로, 중요한 정보는 반드시 다른 출처를 통해 교차 검증하시기 바랍니다.
문의하기 : help@durumis.com