목록분류 전체보기 (279)
ecsimsw
Tcp/ip - tcp/ip는 전 세계적으로 통용된 통신 프로토콜이다. 아래는 OSI 7 layer와 TCP/ip 5 layer 으로, OSI는 IOS에서 컴퓨터 네트워크 프로토콜을 7 계층으로 나누어 모델화 한 것이다. Tcp/Ip 는 5단계로 나누어 모델링 했는데 트랜스 포트 층에 Tcp 프로토콜이 존재하고 네트워크 층의 프로토콜로 존재하기 때문에 이와 구별하여 위 5단계를 갖는 전체 계층을 tcp/ip protocol family라고도 한다. - 각 계층은 다음의 역할을 한다. Application - 사용자에게 가장 가까운 층으로 애플리케이션에 맞춰 통신을 수행할 수 있도록 한다. (ex, HTTP SMTP POP3 FTP TELNET NNTP RCP) Transport - 송신되는 데이터를 수신..
Network / Protocol Network - 네트워크란 자원을 서로 주고 받을 수 있는 상태를 의미하며, 컴퓨터끼리 케이블이나 적외선, 전파 등을 이용해서 다양한 데이터를 주고 받을 수 있음을 말한다. - 네트워크의 규모에 따라 비교적 좁은 공간의 기기끼리 연결한 네트워크는 Local Area Network를 줄여 LAN이라고 하고, 지리적으로 먼 기기끼리 연결한 대규모의 네트워크는 Wide Area Network를 줄여 WAN이라고 한다. 이런 LAN,WAN 들을 연결한 전 세계 규모의 네트워크가 인터넷인 것이다. Protocol - 네트워크 안에서 서로 다른 기기가 데이터를 주고 받으려면 미리 정해진 약속을 따라야 한다. 이러한 규정, 약속을 protocol 이라고 하고 특별히 통신을 위한 약..
Socket - Tcp 포로토콜 기반의 소켓 프로그래밍을 지원하는 Net 모듈에 대해서 공부하고 스트림을 통해 c# 응용프로그램과 통신할 것이다. net / socket - net 모듈은 소켓 객체를 이용하여 서버와 클라이언트의 소켓 객체를 생성 가능하다. net.connect()와 net.createConnection() 호출을 통해 클라이언트를 서버에 연결을 할 수 있고, 이렇게 클라이언트와 서버가 연결되는 시점에 서버에 socket 객체가 생성된다. 만들어진 소켓은 stream 이면서 동시에 event emitter 인데, 이는 데이터를 스트림을 통해 데이터를 읽고 쓰기가 가능하며 이벤트 핸들러를 사용하여 데이터를 처리할 수도 있다. - net 모듈은 설치가 필요없이 위처럼 바로 require하여 ..
Socket - node.js에서 socket을 이용하여 통신하는 방법을 공부하고, 학습 예제로 웹 채팅 서버/어플리케이션을 제작하고, 나아가 이 서버로 c#/ android 클라이언트가 통신하는 방법을 공부할 생각이다. socket.io - node.js에선 socket.io 모듈을 통해 소켓 통신을 할 수 있다. npm install socket.io --save server에서 Express를 사용하여 Http 서버를 생성하고 생성된 Http 서버를 socket.io server에 연결한다. var app = require('express')(); var server = require('http').createServer(app); var io = require('socket.io')(server)..
Get / Post - 지난 포스팅에 node.js에서 filestream을 사용하는 방법을 공부하였고 예제로 파일 목록을 확인하고 내용을 읽는 게시판을 만들어보았다. 지난 포스팅에 이어 파일 생성을 구현하기에 앞서 HTTP 프로토콜에서 서버에 요청을 위한 두 방식을 비교하고 공부한다. Get 방식과 Post 방식 - 소포의 의미를 갖는 패킷을 따서 네트워크 상의 데이터를 패킷, HTTP 프로토콜에서의 패킷을 HTTP 패킷이라고 한다. HTTP 패킷은 크게 header와 body로 구성되어 있다. header는 요청 방식, 클라이언트 정보, 브라우저 정보, 접속할 url 등의 설정 정보를 담고, body에는 서버에 실제 데이터를 담는다. Get - 지금까지 우리가 써왔던 요청 방식이 바로 get 방식이다..
FileStream / Board filestream - node.js에서 filestream을 사용하는 방법을 공부하였다. 예제로 pug 템플릿을 이용하여 파일을 생성하고 읽는 게시판을 만들어보려고 한다. - filestream을 이용하기 위해 다음처럼 fs 모듈을 require하였다. var fs= require('fs'); read directory - files라는 폴더 안에 들어있는 데이터 목록을 가져오기 위해 readdir 메소드를 이용했고, 콘솔로 출력하므로써 파일 목록을 배열로 가져온다는 것을 확인하였다. "board.js" app.get('/board',function(req,res){ fs.readdir('./files',function(err, FileList){ console.log..
is / as is - is 는 캐스팅이 가능한지를 확인하는 키워드이다. 캐스팅이 가능하면 true, 불가능하면 false를 리턴하는 것으로 객체와 참조 변수의 관계만을 확인 시켜준다. class Program { static void Main(string[] args) { Car myCar = new benz(); if(myCar is benz) { Console.WriteLine("casting"); } } } class Car{} class benz : Car{} as - as 는 캐스팅이 가능하다면 바로 캐스팅을 시켜주고 아니라면 null을 리턴한다. (Car_benz as Benz).print()와 같이 캐스팅 후 다른 참조 변수 대입없이 바로 메소드 호출이 가능하다. class Program ..
Casting Introduction - Dev korea에 c# 상속/ casting에 대한 질문을 보게 되었고, 사용법 자체를 중요시 했던 처음 c# 공부와 다르게 이번에는 그게 객체지향 측면에서 왜 중요한지, 실제 어떤 개념을 구현할 때 필요할 지를 고민하면서 Casting과 상속에 대해서 공부하였다. - 이번 캐스팅 관련 공부 목표는 다음 두가지이다. 1. 'Up casting / Down casting' 을 왜 사용하는가 2. 'Parent objectName = new Child()' 가 의미하는 바가 정확히 무엇인가. Up casting / Down casting Example _ up casting - 다음의 예시를 생각해보자. 3가지 경주용 자동차가 있고, 자동차의 시동을 거는 방법은 차..