필자는 항상 웹서버만 개발해오다가 이번에 게임서버를 만드는 프로젝트를 맡아서 개발중인데, Socket 에 대해 항상 어려운 부분이 많고 Netty가 이미 로우 레벨의 네트워크를 잘 구현해놓았기 때문에 로우 레벨에서 어떻게 작동하는지 알기 어려웠다. 그래서 이 글을 통해서 소켓에 대해 이해하기 어려운 부분을 간략하게 설명하고 이해해 볼려고 한다. 소켓 프로그래밍 네트워크 프로그래밍 에서 가장 많이 사용하는 것이 소켓 이다. 기본적으로 파일 핸들과 비슷하다. 우리는 디스크에 데이터를 기록하거나 책을 읽어 들일 때 파일 핸들을 사용한다. 이처럼 네트워크로 데이터를 전송하거나 받을 때 소켓 핸들을 사용한다. 소켓 핸들 방식 온라인 게임 프로그래밍에서 소켓은 파일 핸들 방식과 다르다. 게임 서버에서는 다루어야 하..
컴퓨터 네트워크 2.1.1 OSI 모델 계층 1 : 물리 계층 물리 계층에서는 하드웨어를 다룹니다. 예를 들어 보낼 데이터를 어떤 파형의 전류로 보낼지 등을 정의합니다. 계층 2 : 데이터 링크 계층 로컬 지역 네트워크(LAN)에서 통신을 가능하게 합니다. 계층 3 : 네트워크 계층 광역 통신망(WAN)에서 통신을 가능하게 합니다. 계층 4 : 전송 계층 이 계층에서는 상대방에게 데이터가 반드시 도착하게 된다. 계층 2에서는 상대방에게 데이터가 변조 없이 가게는 하지만, 반드시 가게 하는 것은 아니다. 계층 5 : 세션계층, 계층 6 : 표현 계층, 계층 7 : 응용 계층 응용 프로그램이나 운영체제 안 모듈이 다른 컴퓨터의 응용 프로그램이나 운영체제 모듈과 통신을 하는 동안 논리적 연결 단위나 기능들은 ..
멀티 쓰레딩 1.1 프로그램과 프로세스 프로그램 이란 컴퓨터에서 실행되는 명령어 모음이 들어 있는 데이터 덩어리 코드(code) 와 데이터(Data) 로 구성 프로그램을 실행하면 명령어가 한 줄 씩 실행되면서 활동하는 상태가 되고 이를 프로세스(Process) 라고 한다. 코드와 데이터는 이 프로세스 메모리로 불러들인다. 프로세스 메모리에는 프로그램 코드와 데이터는 물론 힙(heap)과 스택(stack)도 공존한다 스택(stack)에는 현재 실행중인 함수들의 호출 기록과 로컬 변수가 들어있다. 아래와 같이 프로세스가 여러 개 실행되고 있는 것을 멀티프로세싱 이라고 한다. 1.2 스레드 각 프로세스에는 독립된 메모리 공간이 있다. 기본적으로 서로 다른 프로세스는 상대방의 메모리 공간을 읽고 쓸 수 없다. ..
- Total
- Today
- Yesterday
- 비동기
- thread
- 쓰레드
- oauth2
- 영속성 컨텍스트
- lock
- database
- 논블로킹
- jpa
- github
- java
- 스프링
- jenkins
- 인덱스
- mysql
- 다운로드
- 네트워크
- Index
- R-Tree
- 데이터베이스
- db
- spring mvc
- 공간쿼리
- Excel
- GIS
- spring boot
- Spring Security
- DispatcherServlet
- TCP
- spring
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |