CS/SW 아키텍쳐

서버와 클라이언트

멍쟈뽀쨕 2024. 12. 16. 00:55

💡 이거 안 외우면 컴공아님 (나만)
서버: 서비스를 제공하는 프로그램
클라이언트: 서비스를 이용하는 프로그램
IP주소 : 멀리 떨어진 컴퓨터를 찾아가기 위한 주소
포트 번호 : 컴퓨터에서 실행중인 특정 프로그램을 찾아가는 번호

서버란?

서비스를 제공하는 프로그램

클라이언트란?

서비스를 이용하는 프로그램

서버의 종류와 예시

- 웹 서버: nginx, httpd(특정 회사에서 만든 프로그램)

- 게임 서버: agar.io

- 메세지 서버: kafka, rabbitmq, redis, mosquitto

- 파일 서버: 베리즈 웹 쉐어, 파일 질라

- 메일 서버: Postfix,Exim DNS 서버: bind

즉, 서버 프로그램이란 특정회사에서 만든 특정 프로그램

(클라우드: 남의 컴퓨터 서버 쓰는 것)

클라이언트의 종류와 예시

- 웹 클라이언트: 웹 브라우저

- 게임 클라이언트: 내가 다운 받아서 실행하는 게임 프로그램

- 메세지 클라이언트: 카톡

- 파일 클라이언트: 파일질라(파일 질라는 서버, 클라이언트 모두 가능이다 -더보기-)

더보기

어떤 기능으로 가능하다고 하는 거지?

- 파일 서버: 자신의 컴퓨터를 FTP 서버로 만들어 다른 클라이언트가 파일에 접근할 수 있도록 하는 프로그램

- 파일 클라이언트: 사용자가 파일을 업로드, 다운로드, 관리할 수 있는 FTP/SFTP 클라이언트 프로그램

메일 클라이언트: 블루 메일, 메일 버드 등

DNS 클라이언트: nslookup

참고)

파일탐색기(explorer.exe) 프로그램이 명령어를 실행해줌

파일도 프로그램이다!!

헷갈려서 gpt에 물어봤는데 엄밀히 말하면 아마도 실행파일이 프로그램이고 그 외에는 프로그램을 통해 실행되는 것 같다.(-궁금하면 더보기-)

더보기

📘 3가지 파일 실행 방식

  1. 프로그램 자체가 실행 파일인 경우 (EXE 파일)
    • 예: 카카오톡.exe, Chrome.exe, 게임 실행 파일 (배틀그라운드.exe)
    • 더블 클릭하면 바로 프로그램이 실행됩니다.
    • 이 경우, 파일 자체에 프로그램이 포함되어 있습니다.
  2. 프로그램을 통해 파일을 여는 경우 (파일 연결)
    • 예: .txt 파일(메모장으로 실행), .jpg 파일(사진 뷰어로 실행)
    • 이 경우, .txt나 .jpg 자체는 데이터 파일이지만,
      • 메모장.exe (텍스트 편집기)
      • 사진 뷰어.exe (사진 보기 앱)
      • MS Word.exe (문서 편집기)등 프로그램이 먼저 실행된 후 파일이 열립니다.결론: 파일을 열 때, 운영체제가 해당 확장자에 연결된 프로그램을 실행합니다.
  3. 스크립트 파일을 해석하는 프로그램이 실행되는 경우 (해석형 실행)
    • 예: .py 파일(Python 스크립트), .sh 파일(Linux 쉘 스크립트)
    • 이 경우, .py 파일은 실행할 수 없지만,
      • Python 프로그램(인터프리터: python.exe)을 통해 실행할 수 있습니다.
    • 마찬가지로 .sh 파일(Linux Shell Script)도 쉘 프로그램이 이 파일을 읽어 명령어를 해석합니다.

🔥 EXE 파일과 다른 파일의 차이

파일 유형설명실행 방법예시
.exe 프로그램 자체 더블 클릭으로 바로 실행 Chrome.exe, 카톡.exe
.txt 문서 파일 (데이터) 메모장.exe로 실행 hello.txt
.jpg 이미지 파일 (데이터) 사진 뷰어.exe로 실행 profile.jpg
.mp3 음악 파일 (데이터) 음악 플레이어.exe로 실행 song.mp3
.py Python 코드 파일 python.exe로 실행 script.py
.html 웹 페이지 파일 (데이터) 웹 브라우저.exe로 실행 index.html

📘 결론: 데이터 파일(.txt, .jpg, .mp3, .py, .html)은 해당 프로그램이 있어야 열 수 있음

  • 실행 파일(.exe, .app, .apk)* 파일 자체가 프로그램이기 때문에 더블 클릭하면 바로 실행