728x90

리다이렉션(Redirection)명령어의 출력을 터미널이 아닌 다른 곳으로 보내는 기능이다. 일반적으로는 파일로의 출력이나, 파일로부터의 입력을 처리하는 데 사용된다.

 

사용의 예로, 소켓을 통해 수신된 데이터를 파일로 저장하거나, 파일의 데이터를 소켓을 통해 전송할 때 리다이렉션을 사용할 수 있다.

 

> : 명령어의 출력을 파일로 전송한다. 이미 존재하는 파일인 경우 내용을 덮어쓴다.

예: ls > filelist.txt는 현재 디렉토리의 파일 목록을 filelist.txt 파일에 저장한다.

 

>> : 명령어의 출력을 파일에 추가한다. 파일이 존재하지 않는 경우 새로 생성한다.

예: echo "새로운 내용" >> filelist.txt는 "새로운 내용"을 filelist.txt 파일의 끝에 추가한다.

 

< : 파일의 내용을 명령어의 입력으로 사용한다.

예: sort < unsorted.txt는 unsorted.txt 파일의 내용을 정렬하여 출력한다.

 

파이프(Pipe)는 한 명령어의 출력을 다른 명령어의 입력으로 직접 연결한다. 이를 통해 여러 명령어를 연결하여 복잡한 처리를 한 줄의 명령어로 수행할 수 있다.

 

네트워크를 통해 전송된 데이터를 파이프를 사용해 여러 단계의 처리 과정을 거친 후 최종적으로 원하는 결과를 얻을 수 있다. 예를 들어, 네트워크로부터 수신된 데이터를 파싱하고, 필터링하고, 변환하는 등의 작업을 파이프라인을 구성하여 처리할 수 있다.

 

| : 앞의 명령어 출력을 뒤의 명령어의 입력으로 전달한다.

예: ls | sort는 현재 디렉토리의 파일 목록을 정렬하여 출력한다.

+예: cat filelist.txt | grep "특정 문자열"은 filelist.txt 파일에서 "특정 문자열"을 포함하는 라인만을 검색하여 출력한다.

 

소켓(Socket)네트워크를 통한 데이터 송수신을 위한 인터페이스이다. 소켓을 사용하면, 프로그램은 네트워크 상의 다른 시스템과 데이터를 주고받을 수 있다. 리다이렉션과 파이프는 로컬 시스템 내에서 데이터의 흐름을 제어하는 데 사용되는 반면, 소켓은 네트워크를 통해 떨어진 위치에 있는 시스템 간의 데이터 흐름을 제어한다.

 

서버와 클라이언트 간의 소켓 통신은 네트워크 통신의 기본적인 모델 중 하나로, 데이터를 교환하기 위한 연결을 설정하고 유지하는 방식이다. 소켓은 네트워크 상에서 데이터를 송수신하기 위한 엔드포인트로, IP 주소와 포트 번호로 정의된다.

 

서버:

  1. 소켓 생성: 서버는 socket() 함수를 호출하여 소켓을 생성한다.
  2. 소켓 바인딩: 생성된 소켓에 IP 주소와 포트 번호를 할당하기 위해 bind() 함수를 사용한다. 이는 서버의 주소로 사용된다.
  3. 리스닝: listen() 함수를 호출하여 서버 소켓이 클라이언트의 연결 요청을 대기하도록 설정한다.
  4. 연결 수락: 클라이언트로부터의 연결 요청이 들어오면, accept() 함수를 호출하여 연결을 수락한다. 이 함수는 새로운 소켓을 반환하며, 이 소켓을 통해 클라이언트와 통신한다.

클라이언트:

  1. 소켓 생성: 클라이언트도 socket() 함수를 호출하여 소켓을 생성한다.
  2. 서버에 연결: connect() 함수를 사용하여 서버의 IP 주소와 포트 번호로 설정된 서버 소켓에 연결을 시도한다.

데이터 송수신:

  • 데이터 전송: 연결이 설정되면, 서버와 클라이언트는 send() 또는 recv() 함수(또는 write(), read() 함수)를 사용하여 데이터를 송수신한다.
  • 통신 종료: 데이터 송수신이 완료되면, close() 함수를 호출하여 소켓 연결을 종료한다.

 

728x90

'서버' 카테고리의 다른 글

Express.js Clean Architecture 구성하기  (0) 2024.04.12
Proxy 서버 구현  (1) 2024.03.24
echo server, tiny server 구현  (2) 2024.03.24
Parsing, Caching, Filtering, Load Balancing, MTU, NAT  (1) 2024.03.23

+ Recent posts