🌐 [1] 네트워크 프로그래밍이란?

**네트워크 프로그래밍(Network Programming)**은
서로 다른 컴퓨터(또는 장치) 간에 데이터를 주고받기 위한 프로그램을 작성하는 것을 말합니다.

💡 핵심 개념

  • 클라이언트(Client): 요청을 보내는 측 (예: 웹브라우저)
  • 서버(Server): 요청을 처리하고 응답하는 측 (예: 웹서버)
  • 프로토콜(Protocol): 통신 규약 (대표적으로 TCP/IP, HTTP, FTP 등)
  • 소켓(Socket): 통신의 기본 단위! 클라이언트와 서버가 데이터를 주고받는 연결 통로

예시: 채팅 앱, 웹 서버, 파일 전송 프로그램 등은 모두 네트워크 프로그래밍으로 구현됩니다.

 

🔐 [2] SSH란?

**SSH (Secure Shell)**는
네트워크 상의 다른 컴퓨터에 안전하게 접속하기 위한 프로토콜이에요.

🚪 뭘 할 수 있나?

  • 원격 서버 로그인 (리눅스 서버 접속 등)
  • 명령어 실행
  • 파일 전송 (SCP, SFTP)
  • 터널링 (보안 포트 포워딩 등)

🧠 SSH의 핵심 개념

용어설명
포트 22 SSH 기본 포트
암호화 통신 내용이 모두 암호화됨
공개키/개인키 비밀번호 없이 인증하는 방식
SSH 클라이언트 접속하는 쪽 (ex: 터미널, PuTTY)
SSH 서버 접속을 받는 쪽 (ex: Ubuntu 서버)

🛠️ SSH 사용 방법 (기본)

🔑 1. 비밀번호 방식 접속

ssh username@hostname

예: ssh ubuntu@192.168.1.100


🗝️ 2. 공개키 방식 접속

  1. 키 생성 (클라이언트에서)
ssh-keygen
 
    2. 공개키를 서버에 등록
 
ssh-copy-id username@hostname
 
github 에서는 공개키를 복사해서 붙여넣는 설정이 있답니다
 
 
   3. 접속
 
ssh username@hostname
 
그러면 터미널에서 바로 git 명령이 가능해져요 

🧳 추가: 파일 전송 예시

# 서버에 파일 업로드
 
scp localfile.txt username@hostname:/home/username/
 
# 서버에서 파일 다운로드
 
scp username@hostname:/home/username/file.txt .

🧠 정리 한 줄 요약

  • 네트워크 프로그래밍: 프로그램끼리 인터넷으로 대화하게 만드는 기술
  • SSH: 원격 컴퓨터와 보안 통신을 하기 위한 도구

아마 그래도 에러나거나 성공하지 못할 수 도있어요 

그래도 개념을 잡고 다가 서면 

설정이기 때문에 금방 성공하실 거에요 

+ Recent posts