컴퓨터 프로그래밍 공부/네트워크 서버 13

네트워크 미시적으로 살펴보기

이번에 학습한 개념은 크게 세 가지 이다. 통신 과정에서 정보를 올바르게 주고받기 위해 합의된 규칙이나 방법을 의미하는 프로토콜통신이 일어나는 구조를 계층화한 네트워크 참조 모델통신 과정에서 이루어지는 캡슐화(역캡슐화)이다. 프로토콜네트워크에도 언어와 유사한 개념이 바로 프로토콜이다. 언어가 정보를 주고받기 위해 사회적으로 합의돈 의사소통 방식이라면,프로토콜은 노드 간에 정보를 올바르게 주고받기 위해 합의된 규칙이나 방법을 의미한다. 현대 인터넷은 호스트 간 패킷을 교환하는 방식으로 대부분 패킷 교환 방식을 사용한다.패킷은 택배와 유사한 개념으로,  1. 우선 페이로드를 담고2. 도착지 정보인 헤더를 작성하고 첨부3. 네트워크 장비를 통해 발송 과정을 거친다. 즉, 서로 다른 통신 장치들이 정보를 주고받..

네트워크 거시적으로 살펴보기

개발자와 네트워크에 대한 이야기를 조금 해보겠다.개발자가 네트워크를 이해하면 구체적으로 어떤 점에서 유리할까? 개발자의 업무는 크게 두 종류로 나뉜다.하나는 프로그램을 만드는 업무, 다른 하나는 만들어진 프로그램을 유지 보수하는 업무이다.네트워크 지식은 두 가지 업무에 모두 도움을 줄 수 있다. 따라서 채용 시 네트워크에 대한 지식을 강조하거나검증하는 기업이 존재한다. 프로그램을 만드는 업무에서 네트워크 지식을 활용하는 경우 먼저 프로그램을 만드는 업무에서 어떤 경우에 네트워크 지식이 활용될까?프로그래밍 언어나 웹 프레임워크 혹은 라이브러리를 사용할 때 네트워크에 대한배경지식이 있어야만 활용할 수 있는 기능들이 있다. 예를 들어 TCP/UDP와 같은 네트워크에 대한 지식이 없다면스프링 프레임워크의 기능을..

게임 서버 프로그래밍 입문 - (1)

게임 서버의 정의 우선 목적을 명확이 해야지 서버책 한 권이라도 잘 이겨나갈 수 있을 것이다.서버가 어떤 프로그램인지 먼저 생각해보자. 온라인 게임이라 하면, 다수와 접속해서 즐기는 MMORPG 온라인 게임도 있을 것이고,디아블로3 처럼 특정 몇 명만 같이 즐기는 게임도 있다. 이런 프로그램들을 만들고 관리하는 서버 프로그래머들은 어떤 일을 할까? 신규 게임이라면 당연히 게임 서버를 만들지 않을까? 기획자들이 이것저것 새로운 게임에 대한 콘텐츠 기획을 제안할 것이고그것에 맞게 프로그램 구조를 고려해 서버 프로그램을 작성할 것이다. 물론 신생회사가 아니거나, 기존 코드가 엉망인 아닌 이상 기존에 안전성을 검증받은코드를 계승해서 제작하게 될 것이다. 요약하면, 이미 돌아올 수 없는 강(가정을 고려한 코딩)을..