강의에 들어가기 앞서 개인 생각
Rookiss강의에서는 기초 과정을 설명하기에는
컴퓨터 학부에서 한 학기를 써야 할 정도로 양이 많다보니
소켓 프로그래밍을 하기에 앞서 마지막으로 하나만 더 예시를 들어서 개념 정리를 하고
프로그래밍 강의를 진행 한다고 한다
그래서 프로그래밍을 하면서 따로 네트워크 기초를 다루는 책이나 강의를 들으면서 공부를 해야겠다
스토리 주제 설명
고급식당 스토리
주제 : 손님이 식당에 입장하고 통신하는 과정
영업준비 (식당 관점)
손님이 입장하기 위해선 식당에 입구를 마련하고
문지기 한명을 고용을 해야한다
문지기를 고용하고 교육을 해줘야한다
식당에 대한 주소 및 연락처를 알아야지 응대가 가능하다
(XX중화요리 서초점)
그리고 입구가 뒷문 정문 이런 식으로 있을텐대
담당하는 입구가 정문이라는 것도 알려줬다
손님 접대를 하기 위해서는 손님한테서 문의연락이있을테니
핸드폰을 쥐어주고 대기 시킨다
준비가 얼추된것같으니 영업을 시작한다
영업 시작
(식당 관점)
손님이 문지기 한테 연락을해서 입장이 가능한지 물어봤다
문지기는 식당상황을 봐서 대기열이없는지 확인을하고 괜찮다 싶으면 입장을 시켜준다
일반적인 식당은 모든 일행들을 동시에 입장을 시켜주겠지만
손님에게 특별한 요구사항이 있어가지고 손님의 목적은
식당의 동태만 알고싶다고 요구한 것
그래서 한명만 대리인의 자격으로 테이블에 앉혀주고싶다고 가정해보자
일단 대리인을 앉혀준 상태로
대리인한테 핸드폰을 건네준다
식당에서 준비한 핸드폰으로 원래 처음에 문의를 줬던 손님이랑 연락을 할 수 있는
핸드폰이라 가정
대리인은 핸드폰으로 자기 일행이랑 통화를 할 수 있게되었다
문의했던 손님은 식당에서준 핸드폰을 통해서 대리인과 통화가 되게 된것이다
(손님 관점)
손님관점에서 멀리 영업하고있는 식당이 있다
손님입장에서 핸드폰으로 식당에 전화번호로 연락을 한다
입장이 가능한지 문의
문지기가 응답 → 가능하다
대리인 입장 (아까 식당에서 핸드폰을 줌)
그 핸드폰은 이미 손님의 번호를 알고있다 그래서
굳이 연락을 준 손님의 핸드폰 번호를 물어볼 필요가없다
왜냐? 이미 문의를 했을 때 손님의 핸드폰 번호가 찍혀있어서 그걸 통해서 연락을 하면 되기 떄문이다
문지기 역할은
입구 컷 역할
손님과 손님대리인이 통화가 가능하게 길을 만들어 준것
비교 요약
식당과 네트워크 비교
손님 (대리인X)
- 핸드폰 준비
- 식당 번호로 입장 문의
대리인을 통해 식당과 대화 가능
식당
- 문지기 고용
- 문지기 교육 (식당 번호 알려줌)
- 영업 시작
- 안내
손님 대리인을 통해 손님과 대화 가능
네트워크 예시
손님
- 소켓 준비
- 서버 주소로 Connect
Session소켓을 통해 Listener소켓과 패킷 송수신 가능
식당
- Listener 소켓 준비
- Bind (서버 주소/ Port를 소켓에 연동)
- Listen
- Accept
Session소켓을 통해 클라이언트와 패킷 송수신 가능
소켓이란 뭔대?
네트워크를 통신하기 위한 추상적인 장치라고 생각하면 된다 어디에다가 연락을 주고받기 위해서는 소켓을 통해서 하게 된다