일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 | 31 |
- Linux
- cache
- mongodb
- r
- Static
- HTTP
- Lombok
- reactor
- Heap
- libuv
- redis
- spring
- NoSQL
- javascript
- 네트워크
- Elk
- reactive
- 데이터통신
- html
- git
- nodejs
- VCS
- AWS
- network
- socket
- ajax
- github
- effective
- Java
- mybatis
- Today
- Total
목록분류 전체보기 (187)
빨간색코딩
참조문서 : http://api.jquery.com/ 제이쿼리는 DOM을 조작하거나 Ajax 요청을 할 때 널리 쓰이는 라이브러리다. 제이쿼리로 할 수 있는 건 모두 DOM API로도 할 수 있다. 하지만 제이쿼리를 쓰면 다음과 같은 장점이 있다. 브라우저 호환성을 걱정안해도 된다. Ajax 관련 API가 무척 단순하다. 내장된 DOM API를 더 유용하고 단순하게 바꾼 메소드를 제공한다. 주로 달러기호($)로 표현하며, 제이쿼리를 불러올 때는 이런식으로 CDN을 이용하면 된다. 1. DOM 기다리기 제이쿼리에서는 브라우저가 페이지를 완전히 읽고 DOM을 구축한 다음에만 호출되는 콜백함수가 있다.$(document).ready(function () {} // 단축표기 $(function() {}); 2...
참조문서 : https://developer.mozilla.org/en-US/docs/web/api 1. 문서 객체 모델(Document Object Model) 문서객체모델(DOM)은 HTML문서의 구조를 나타내는 표기법이며 브라우저가 HTML문서를 조작하는 핵심이다. DOM은 트리 구조로 표현하며 노드로 구성된다. root 노드를 document라고 부른다. DOM 트리의 모든 노드는 Node 클래스의 인스턴스이다. Node 객체에는 트리구조를 나타내는 parentNode와 childNodes 속성, 자신에 대한 속성인 nodeName과 nodeType이 있다. 2. get 메소드 DOM에는 원하는 HTML 요소를 빨리 찾을 수 있는 메소드들이 있다. DOM 메소드들이 반환하는 컬렉션은 JS배열같은 ..
참조문서 : https://www.npmjs.com/package/request 내장 http모듈은 라인 수를 왕창 먹는다 http, https 분기처리 리다이렉트되서 상태코드 30x뜨는거 처리 로직 스트림으로 http소스 읽고 처리 로직 해결방안 : request 모듈 사용 http고 https고 request()면 다 한번에 읽는다 30x는 request() 요청 시, followRedirect와 maxRedirects 인자 설정으로 간단히 해결할 수 있다. http소스는 res.body에 이미 다 파싱되어있다. 1. 기본 사용 npm install request 로 설치한다.var request = require("request"); request("http://sjh836.tistory.com",..
참조문서 : http://restify.com/docs/home/Restify는 Express에서 파생된 nodejs REST 프레임워크이다. npm install restify 으로 설치한다.1. Express와 뭐가 다른가?물론 둘다 RESTful API 서버를 만들 수 있다. 차이점만 보자면, express는 웹 모듈로서 웹 애플리케이션을 위해 많은 기능(템플릿, 렌더링 등)을 제공한다.restify는 express에 비해 가볍고, express의 아키텍처를 그대로 가져오면서, REST API서버운영을 위한 특화된 기능들이 있다. 즉 RESTful API서비스만을 위한 경량 프레임워크이다.성능차이는 크게 없는 듯하다. 여러 포스팅에서 성능테스트한 글을 확인했지만 express와 restify는 비슷..
참조문서 : http://expressjs.com/en/4x/api.html express는 경량 HTTP 웹 프레임워크다. 요청과 응답, 미들웨어 사용, 템플릿 엔진을 제공한다. npm install express 로 설치한다. 1. 미들웨어 작은 단위 모듈로 요청과 응답을 처리하는 함수 형태 express는 여러 개의 미들웨어로 구성 미들웨어 사용 설정 : app.use([미들웨어]) 예제app.use(function (req, res) { res.send('hello Express!'); }); 1-1. 미들웨어 설정(mount) app.use([path,] function [,function]) path를 생략하면 루트(/)이다. function을 2개이상 둘 수도있다. 즉 같은 요청을 여러개의 ..
Representational State Transfer의 약자로, 로이 필딩(HTTP 프로토콜 주요 저자)이 제창했다. 1. REST 아키텍처의 조건 클라이언트/서버 : 클라이언트의 요청과 서버의 응답 기반 상태 없음 : 클라이언트의 상태(다른 URL에 있다던지)와 관계없이 요청으로만 응답 캐시 : 클라이언트는 서버의 응답을 캐시한다. 같은 요청마다 계속 다운로드받을 수는 없으므로.. 네트워크 비용 절감 계층화 시스템 : 서버는 다양한 형태의 중간 계층을 이용해서 확장할 수 있다. 클라이언트는 서버의 계층에 무관하게 통신할 수 있다. Code on Demand : 리소스를 다룰 수 있는 코드 전송(JS 등) 인터페이스 일관성 : 시스템 구조를 단순화시키고 작은 단위로 분리해서 독립적으로 개선하고 확장할..
앞에서 문제풀이에서 말했듯이, 직접 푼거기때문에 틀릴 수 도 있다. 댓글로 질문받습니다~~ 데이터통신, 이재광 편저, 맥그로힐에듀케이션코리아 문제 1. 셀 네트워크는 영구적인 가상 채널 라우팅 전략을 왜 사용하는가? 샐 네트워크는 개념적인 가상 회로(PVC) 라우팅을 이용한다. 가상 경로 식별자(VPI)는 셀이 이동하는 경로를 지정한다. 가상 채널 식별자(VCI)는 셀이 이동하는 채널을 지정한다. 문제 2. 데이터 단위의 크기가 모두 같을 경우에 다중화가 왜 더 효율적인가? ATM 데이터 패킷이 대표적이다. 이것을 셀이라 하는데 5바이트 헤더와 48바이트 페이로드에 의해 53바이트로 구성된다. 그렇기 때문에 각 셀은 비교적 작고 같은 크기이므로 다중화에서 서로 다른 크기로 인해 생기는 지연과 같은 문제들..
참조문서 : https://nodejs.org/dist/latest-v6.x/docs/api/http.html require('http'); 를 써야한다. nodejs는 자체적으로 http 서버를 갖고 있기 때문에, 아파치나 nginx 같은거 안써도 된다. 1. 개요 HTTP 서버 http.Server : HTTP 서버 http.IncomingMessage : HTTP 서버의 요청 메세지, Readable Stream 이다. http.ServerResponse : HTTP 서버의 응답 클래스 HTTP 클라이언트 http.Client : HTTP 클라이언트 http.ClientRequest : HTTP 클라이언트 요청 메세지 http.IncomingMessage : HTTP 서버의 응답 메세지, Reada..
1. 중첩 콜백 콜백지옥에 빠지기 쉬운 상황 task1 실행 이후에 task2,3,4 등이 순차적 실행 task1 실행 결과를 이용해 task2 가 실행 예제로 본다면 아래와 같은 상황이다.task1(a, b, function(err, result1) { task2(c, function(err, result2) { task3... task4... }); }); 2. Async 참조문서 : https://caolan.github.io/async/docs.html 외부모듈이기 때문에 npm install async로 설치한다. 행위 순서 제어 series(tasks[, callback]) : 각 태스크는 함수이고, 중간에 에러가 나면 다음태스크를 실행하지 않고, 완료 콜백으로 에러를 전달한다. results..
참조문서 : https://docs.npmjs.com/ NPM(Node Package Manager)은 패키지 매니저로 확장모듈 설치, 삭제, 검색, 정보, 패키지 정보 작성 등을 할 수 있다. 노드의 모듈시스템은 상호운용이 가능하도록 모듈을 생성하는 방법인 CommonJS 모듈 시스템을 본 따 만들었다. 1. 주요 옵션 npm init : 패키지 준비, package.json 생성 npm install : 패키지 정보에 있는 모듈 설치 npm install [Module] : 개별 패키지 설치 npm list : 설치된 모듈 목록 보기 npm info : 모듈 정보 npm search : 모듈 검색 npm update : 모듈 업데이트 npm uninstall : 모듈 삭제 2. 모듈 설치 의존성있으면..
1. 특징 인터넷상에서 데이터를 주고 받기 위한 서버/클라이언트 모델을 따르는 전송 프로토콜 애플리케이션 레벨의 프로토콜로 TCP/IP위에서 작동 클라이언트에서 요청(request)를 보내면 서버는 요청을 처리해서 응답(response) 80번 port 이용 비상태연결(Stateless, Connectless) 서버에 연결하고 요청해서 응답을 받으면 연결을 끊어버린다. 장점: 접속유지 최소화, 불특정 다수를 대상으로 하는 서비스에 유리 단점: 연결을 끊어버리기 때문에, 클라이언트의 이전 상태를 알 수 없음, 따라서 로그인을 해도 정보유지 불가, 이를 해결하기 위해 쿠키 등등을 이용 Keep Alive HTTP 1.1 부터는 keep-alive 기능을 지원 HTTP는 하나의 연결에 하나의 요청을 하는 것을..
참조문서 : https://nodejs.org/dist/latest-v6.x/docs/api/ node에서 모듈은 다른 언어의 라이브러리에 해당한다. 이 포스팅 당시 버전은 v6.11.0 이다. API 문서가 잘되어 있다~ API의 안정도(stability) 0 : deprecated 1 : Experimental 2 : Stable 3 : Locked , 더이상 변경없음 1. node의 모듈 1-1. 모듈의 로딩 절대경로 혹은 상대경로 이용 require(모듈명); 1-2. 모듈의 종류 기본 모듈 : 미리 컴파일된 상태로 제공되는 라이브러리 디렉터리 확장모듈 : npm으로 별도설치, node_modules 1-3. 모듈 함수 객체 생성없이 모듈에 직접 사용하는 함수다. 1-4. 주요 기본 모듈 1-4-..
1. Nodejs 란? 2009년에 Ryan Dahl이 발표했다. 노드는 구글의 V8 JavaScript 엔진에 기반한다. 싱글스레드 기반 비동기 이벤트 위주 IO를 사용하는 고도의 확장성을 가진 시스템이다. 간단한 작업을 수행하지만 빈도가 높은 웹 어플리케이션에 이상적이다. 특징 싱글 쓰레드 : 문맥교환으로 인한 오버헤드X 비동기 IO : CPU time loss를 피함, io요청이 있으면 워커한테 던져놓고 쓰레드는 다른일을 계속 받는다. 이벤트 기반 : epool 또는 kqueue를 사용 경량 프레임워크 풍부한 라이브러리 : 각종 모듈 서버와 클라이언트에서 사용하는 언어(JS)가 같음 2. Nodejs 아키텍처 구글 이미지 검색에서 나오는 노드아키텍처들 중에 libev가 있는 건 옛날 사진이다. 노드..
함수는 1급 객체(대입, 파라미터, 반환, 연산 등 제약 없음)이고 람다 언어(익명 함수나 클로저 등을 정의하기 위한 표현식)이다. 모듈화의 근간이다. 함수 객체는 Function.prototype에 연결되고, Function은 Object.prototype에 연결된다. 1. 함수 생성 함수는 함수 리터럴로 생성할 수 있다. 함수리터럴은 function 이라는 필수 예약어, 선택사항인 함수명, 매개변수의 집합(일반 변수는 undefined으로 초기화하지만, 매개변수는 넘겨진 인수로 초기화된다), 코드집합으로 구성된다. 함수문장 VS 함수 표현식 함수문장은 hoisting의 대상이 된다. 함수가 위치한 곳에 관계없이 유효범위의 가장 상위로 이동된다. 그렇기때문에 함수 호출이 함수를 정의하는 문장보다 앞에 ..
참조문서 : https://developer.mozilla.org/ko/docs/A_re-introduction_to_JavaScript 참고서적 : 자바스크립트 핵심가이드(더글라스 크락포드) JS는 매우 경량화되어있고 표현적이다. 함수형 프로그래밍도 가능하다. 장점 : 함수, 느슨한 타입체크, 동적 객체, 강력한 객체 리터럴 표기법 단점 : 프로그래밍 모델이 전역변수에 근간(최상위 레벨의 변수들은 모두 전역객체라 불리는 namespace에 위치함) 자바스크립트는 문장 끝에 세미콜론이 없어도 행을 바꾸면 실행에 지장이 없다. 그러나 관례상 세미콜론을 붙인다. 1. 식별자 키워드를 사용하면 안된다 특수문자는 _ , $ 만 가능 숫자로 시작하면 안됨 공백안됨 2. 명명관례 낙타표기법 사용, 생성자 함수의 이..