🌐 [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. 공개키 방식 접속
- 키 생성 (클라이언트에서)
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: 원격 컴퓨터와 보안 통신을 하기 위한 도구
아마 그래도 에러나거나 성공하지 못할 수 도있어요
그래도 개념을 잡고 다가 서면
설정이기 때문에 금방 성공하실 거에요
'서버 셋팅' 카테고리의 다른 글
| github 동기화하기 ssh키등록 (0) | 2026.02.16 |
|---|---|
| Docker란 무엇인가요? (1) | 2025.04.23 |
| Nginx vs Apache: 무엇을 선택해야 할까? (1) | 2025.04.23 |
| git commit 했는데 편집기가 열렸을 때 어떻하지? (0) | 2025.04.20 |
| Git Pull 안 될 때 강제로 해결하는 방법 (0) | 2025.04.20 |