UDP로 비슷한 chat program을 만드는 과제를 진행해보겠다. UDP는 이제 잘 쓰이지 않기 때문에 깊이 파고들지 않겠다. server.js const PORT = 3000 const HOST = '127.0.0.1' const dgram = require('dgram') const server = dgram.createSocket('udp4') server.on('listening', () => { const address = server.address() console.log('UDP Server listening on', address.address, address.port) }) server.on('message', (message) => { console.log('message: ', m..
저번 포스팅에 이어 Socket.io를 이용해 간단한 TCP chat program을 구현해보겠다. 우선 socket.io를 설치한다. npm i socket.io // 클라이언트용 npm i socket.io-client 나는 클라이언트쪽도 구현해야 하기 때문에 socket.io-client도 설치했다. 파일 구조는 저번 포스팅과 동일하다. server.js의 코드는 다음과 같다 : const server = require('http').createServer() const io = require('socket.io')(server) io.on('connection', client => { console.log('클라이언트와 연결되었습니다.') // 클라이언트로부터 데이터를 받았을 때 처리하는 부분 c..
요즘 진행하는 스터디에서 다음과 같은 과제가 생겼다. 아래 조건을 만족하는 간단한 chat program을 만들자. (필수) 1. TCP 서버와 클라이언트를 가장 자신이 있는 언어로 구현한다. 2. 콘솔 화면을 띄우면서 클라이언트 콘솔에서 메시지를 보내면 서버 콘솔에서 전달받은 메시지를 보여 준다. key word: socket programming. TCP 추가: wire shark를 설치해서 클라이언트와 서버 간에 주고받은 패킷을 확인하여 TCP 3-way handshake를 더 깊이 있게 이해하는 것이 주 목표. node.js + node.js에 내장된 net + 역시 내장된 readline을 사용하여 구현했다. 디렉토리 구조는 다음과 같다 : chat-program/ ├── server/ │ └─..
Chapter 9. 무선 랜 이해하기 목표 - 무선 랜의 연결 및 통신 구조를 이해한다. - 무선 액세스 포인트와 무선 클라이언트의 관계를 이해한다. - 무선 랜의 연결 형태를 이해한다. - 무선 랜의 규격을 이해한다. - 채널을 이해한다. 35. 무선 랜의 구조 1. 무선 랜 - 랜 케이블을 사용하지 않고 눈에 보이지 않는 전파를 이용하여 무선으로 컴퓨터를 서로 연결하는 것 장점 단점 케이블 정리가 필요 없음 유선보다 속도가 불안정하고 전파가 약하면 연결이 잘 안됨 유선 랜보다 공간의 제한이 덜함 유선 랜에 비해 통신 내용이 해킹될 위험이 높음 -> 암호화나 인증 설정 필요 2. 무선 액세스 포인트 Wireless Access Point = WAP - 무선 랜 칩chip 필요 - 최근 컴퓨터는 대부분 ..
현재 정말 잘 쓰고 있는 hELLO 스킨! 다 마음에 드는데 카테고리만 딱 펼치면 좋을텐데 하는 생각이 들어 찾아보았다. 내가 원하는 동작은 첫번째 카테고리들(대카테고리?)만 펼쳐서 보여주는 것이었다. 역시 선구자가 있었고, 내가 원하는 동작에 맞게 수정했다. 다음과 같은 코드를 html 스킨 편집 시 위에 넣어주었다. 결과 이렇게 하고 나니...카테고리를 좀더 세부적이고 직관적으로 나누는 게 접근성이 좋아보인다. 조금씩 수정해야겠다. 참고 https://energneer.tistory.com/entry/%ED%8B%B0%EC%8A%A4%ED%86%A0%EB%A6%AC-hELLO-%EC%8A%A4%ED%82%A8-%EC%B2%AB%EB%B2%88%EC%A7%B8-%EC%B9%B4%ED%85%8C%EA%B..
해당 문제는 vue-router 사용 시 발생했다. router 생성 시 mode를 history에서 hash로 수정하여 해결했다. const router = new VueRouter({ mode: 'hash', base: process.env.BASE_URL, routes }) 만약 electron으로 build 시에만 hash mode를 사용하고 싶다면 아래처럼 접근할 수 있을 것으로 보인다. If using Vue 2: export default new Router({ - mode: 'history', + mode: process.env.IS_ELECTRON ? 'hash' : 'history', }) If using Vue 3: const router = createRouter({ - histor..
Chapter 6. 전송 계층 : 신뢰할 수 있는 데이터 전송하기 목표 - 전송 계층의 역할을 이해한다. - 연결형 통신과 비연결형 통신을 이해한다. - TCP를 이해한다. - UDP를 이해한다. 23. 전송 계층의 역할 1. 전송 계층 - 목적지에 신뢰할 수 있는 데이터를 전송하기 위해 필요 - 오류 점검 기능 : 오류 발생 시 데이터 재전송 요청 - 전송된 데이터의 목적지가 어떤 애플리케이션인지 식별 2. 전송 계층의 특징 - 연결형 통신 = 신뢰성/정확성 : 데이터를 목적지에 문제없이 전달하는 것 -> TCP 프로토콜 사용 - 비연결형 통신 = 효율성 : 데이터를 빠르고 효율적으로 전달하는 것 -> UDP 프로토콜 사용 24. TCP의 구조 1. TCP - 연결형 통신 프로토콜 : 신뢰성/정확성 우..
이번 포스팅에서는 지난번에 이어 OSI 모델의 계층에 대해 알아보자. Chapter 3. 물리 계층 : 데이터를 전기 신호로 변환하기 목표 - 전기 신호를 이해한다. - 랜 케이블을 이해한다. - 리피터를 이해한다. - 허브를 이해한다. 09. 물리 계층의 역할과 랜 카드의 구조 1. 물리 계층의 역할 - 데이터(0과 1의 비트열)를 전기 신호로 변환 2. 전기 신호 - 아날로그 신호 : 물결 모양 ex. 전화 회선, 라디오 방송 등에서 사용 - 디지털 신호 : 막대 모양 3. 랜 카드 - 네트워크를 통해 데이터를 송수신 - 0과 1을 전기 신호로 변환하는 역할 10. 케이블의 종류와 구조 1. 전송 매체 - 데이터가 흐르는 물리적인 선로 - 유선 ex. 트위스트 페어 케이블, 광케이블 등 - 무선 ex..