잡동사니/GPT가 알려주는
[GPT가 알려주는] 리다이렉션
heylo
2025. 4. 8. 18:07
리다이렉션(Redirection)**이라는 용어는 컴퓨터 과학/프로그래밍에서 대부분 "입출력" 관련 개념으로 사용돼.
하지만 👉 “넓은 의미”로는 흐름을 바꾸는 행위 전반을 의미할 수도 있어!
✅ 1. 좁은 의미 (컴퓨터/프로그래밍에서 일반적으로)
리다이렉션 = 입출력(I/O)의 흐름을 다른 쪽으로 바꾸는 것
구분 | 예시 | 설명 |
입력 리다이렉션 | < input.txt | 파일로부터 입력 받기 |
출력 리다이렉션 | > output.txt | 화면 대신 파일로 출력 |
에러 리다이렉션 | 2> err.txt | stderr만 파일로 저장 |
리눅스 함수 예 | dup2(oldfd, newfd) | 파일 디스크립터 교체 |
✅ 2. 넓은 의미로 쓰일 때도 있음
리다이렉션은 본래 redirect → 방향을 바꾸다는 뜻이니까
흐름 변경이라는 개념으로 네트워크, 웹, 시스템 등에서도 쓰여:
🌐 웹에서의 리다이렉션
- 예: 301 Moved Permanently, 302 Found
- 사용자가 A 페이지 접속했는데 B로 자동 이동함
HTTP/1.1 301 Moved Permanently
Location: https://newsite.com/
📶 네트워크에서의 리다이렉션
- 라우터가 패킷을 다른 경로로 보내는 것
- ICMP Redirect 메시지 등
✅ 그래서 정리하면?
문맥 | 리다이렉션 의미 |
리눅스 쉘/프로그래밍 | 입출력 방향 변경 (입/출력/에러) |
웹 | 요청 URL 방향 변경 |
네트워크 | 패킷 경로 변경 |
일반 용어 | 흐름/방향을 바꿈 |
💬 결론
📌 "리다이렉션"은 기본적으로 I/O 개념에서 출발하지만,
본래 뜻은 "흐름을 돌린다"는 의미라 여러 분야에서 넓게 쓰일 수 있음!
✅ 입출력에서의 리다이렉션(Redirection)이란?
입출력의 흐름을 다른 곳으로 "방향 전환"하는 것
보통은 터미널(화면)이나 키보드가 입출력의 기본 대상이지만,
이걸 파일이나 다른 장치로 바꾸는 것이 바로 리다이렉션이야.
📥 표준 입력(Standard Input) 리다이렉션
기본: 키보드로부터 입력 받음
리다이렉션: 파일로부터 입력 받게 만듦
./my_program < input.txt
📌 input.txt의 내용을 프로그램에 입력처럼 제공
📤 표준 출력(Standard Output) 리다이렉션
기본: 화면(터미널) 에 출력
리다이렉션: 파일로 출력 내용 변경
./my_program > output.txt
📌 화면에 출력될 내용을 output.txt에 저장함
⚠️ 표준 에러(Standard Error) 리다이렉션
기본: 오류 메시지도 터미널로 감
리다이렉션: 오류만 따로 파일로 저장
./my_program 2> error.txt
📌 오류 메시지만 error.txt에 저장
🧠 번호 정리 (파일 디스크립터)
디스크립터 번호 | 의미 |
0 | 표준 입력 (stdin) |
1 | 표준 출력 (stdout) |
2 | 표준 에러 (stderr) |
🎯 복합 예시
./my_program < in.txt > out.txt 2> err.txt
- in.txt에서 입력받고
- 출력은 out.txt에,
- 에러는 err.txt에 따로 저장
💡 일상 비유
리다이렉션은 마치…
📞 “전화를 집으로 안 받고, 회사 번호로 돌려놓는 것!”
(입출력 경로를 바꾸는 거야)
✅ 요약
구분 | 대상 | 리다이렉션 후 |
입력 | 키보드 | 파일 등 |
출력 | 화면 | 파일 등 |
에러 | 화면 | 파일 등 |
👉 리다이렉션 = 입출력 방향 바꾸기