All
-
2장 - 환경구성 ( Node.js 개발 Tool , 모듈 관리 Npm , Package.json )MeanStack (deprecated) 2016. 6. 6. 17:45
1. MeanStack 개발 Tool 저번에 이어서 마지막으로 개발에 필요한 Tool 을 정해본다.Javascript 를 개발할 때 쓸 수 있는 Tool 은 너무너무너무 많다. 왠만한 Tool 은 다 된다고 본다.기본적인 윈도우 메모장 , NotePad++ , Eclipse , Visual Studio , WebStrom , Atom , SublimeText 등 너무너무많다. 위 언급한 개발 Tool 중 탑은 당연히 Visual Studio 가 단연 최고의 기능을 가지고 있으며, Javascript 뿐만 아니라 c , c++ , c# , node.js , angular 등 수많은 언어를 지원하고 ,엄청난 디버깅 기능과 편리기능이 모두집약 되어있다. 거기다 이번에 Visual Studio 2015 Comm..
-
1장 - 환경구성 ( Node.js, MongoDB ) 설치MeanStack (deprecated) 2016. 6. 4. 00:19
1. Node.js 설치 최근 MeanStack에 관련된 책과 강의를 보며 구글링을 해보았지만 국내에서는 많은 자료를 찾기 힘들었다. 그래서 복습도 할 강의와 책을 통해 배웠던 내용을 조금 더 알기 쉽게 풀어서 내용을 적으려고 한다. 이번 MeanStack 의 최종점은 간단한 SNS Web applicaiton을 만드는 것 이 최종목표이고 , 추후 Angular.js 2 를 활용한 application 도 같이 만들 것 이다. MeanStack 을 처음 접하는 사람도 쉽게 따라 올 수 있고, 나중에 내가 봐도 '아' 하면 '어' 하고 나올 수 있도록 처음부터 끝까지 최대한 쉽게 풀어보려고 한다. (사실 본인도 초보라 설명을 디테일하게 하지 못 한다...) 먼저 작업환경 구성을 위해 Node.js 를 설치..
-
Node.js 구동방식 (3)Node.js 2016. 6. 1. 00:59
언제나 이론은 지겹지만 마지막으로 Node.js 에서 따르는 Common.JS 모듈을 알아본다. 간단하게 말해서 브라우저는 웹페이지에 스크립트를 올릴 때 얘네들을 다른 모든 스크립트와 공유하는 주소 공간으로 주입해 버린다. 이는 어떤 스크립트에 변수를 하나 대입하면 기존 스크립트에서 이미 정의한 또 다른 변수를 의도치 않게 덮어써버릴 수도 있다는 사실을 의미한다. Node.js 진영은 이 해결법을 Common.js 모듈 표준에서 해법을 찾는다. 다 집어치우고 코드를 보면 단번에 이해하기 쉬울 것 이다. 다음 OMG.js 파일과 StartApp.js 파일이 있다고 가정하자. OMG.js var msg = "OMG!!"; exports.saymsg = function() { console.log(msg); ..
-
CAP Theorem (CAP 이론)Database 2016. 5. 31. 00:45
간단하게 요약하면 CAP Theorem 즉 분산컴퓨터 시스템에서 보장해야 하는 3가지 특성 Consistency (일관성) , Availability (유효성) , Partition Tolerance (파티션 허용) 중 3가지를 동시에 만족시키기는 힘들고, 동시 2 개 까지 만족시킬 수 있다 라고 하는데 RDBMS 는 여기서 CA 특성에 집중하였다. 하지만 웹이 점점 계속적으로 커지면서 별의 별 요구사항이 생기며 빅데이터의 시대로 접어들다보니 Partition Tolerance , 간단하게 말해서 DB의 확장성에 눈을 돌리기 시작했다.(CA진영의 RDBMS 들은 확장이 굉장히 까다롭다.) 그래서 비관계형이며 스키마가 없고 P에 집중하는 문서기반 데이터베이스가 우수수 쏟아졌는데 위 표에 보이듯이 CP 또는..
-
클로저 (closure)Javascript 2016. 5. 30. 10:59
Prototype 와 함께 자바스크립트 특성에 가장 큰 축을 담당하는 클로저에 대하여 알아보자. 다음 예제를 보자. 위 예제에서 보면 A안의 B 라는 내부 함수가 A의 지역변수에 손쉽게 접근하는 것을 볼 수 있다. 그럼 또 하나의 예제를 더 보자. 이번에는 A함수가 B함수를 리턴하도록 변경하였고 B함수는 BFN = A() 즉 A함수를 수행한 뒤에 B() 함수가 실행된다. 분명 A() 함수는 종료 되었는데 아래 B() 함수에서 여전히 A()함수의 지역변수를 사용하고 있다. 이런 코드가 몇몇 개발자에게 직관적이지 않은 이유는 A() 함수의 지역변수는 A()가 종료된 시점에 사라져야 하지만 B()는 여전히 A()의 모든 것을 사용하고 있다. (히히 니 것도 내거 , 내 것도 내거) 결론적으로 클로저는 함수뿐만..
-
Node.js 구동방식 (2)Node.js 2016. 5. 30. 10:19
(1)에 이어서 바로 예제 시작 PHP 를 예로 보자 SELECT 문을 수행하기 위해 데이터베이스에 질의를 시도 하는데, SELECT * FROM TESTS 의 질의 결과가 나오기 전 까지 어떠한 연산도 차단하게 된다. 이는 결국 스레드가 다른 프로세스를 기다리며 농땡이 친다는 것을 의미한다. (일해라 핫산!) 이런 문제 해결을 위해 많은 웹 플랫폼이 일반적으로 연결 당 단일 스레드를 사용하는 Thread pool 시스템을 구현해왔다. (스레드 풀에서 스레드들이 대기를 하며 즐거워 하는 모습이다.(?)) 이런 멀티스레드 유형이 처음에는 직관적이지만 장점만 있을수는 없는 법, 당연히 단점이 존재한다. 스래드 관리가 복잡해 지고 위에서 언급한 것 처럼 놀고 있는 스레드가 시스템 자원을 낭비하고 확장이 쉽지가..
-
Node.js 구동방식 (1)Node.js 2016. 5. 29. 14:06
Node.js 에 관한 설명은 수도 없이 많으니 간단하게 구동 방식만 알아보도록 하자. 노드는 플랫폼에서 비차단 연산을 지원하기 위해 자바스크립트의 사건 구동 특질을 이용한다. 자바스크립트는 이벤트 구동 언어이며, 이는 특정 이벤트에 코드를 등록한 다음에 이벤트가 발생하면 해당 코드가 실행 될 것임을 의미한다. 이런 개념은 나머지 프로그램의 실행을 차단하지 않고 비동기식 코드를 자연스럽게 실행하게 만든다. 이를 이해하기 위해 예제를 보자. 다음 Java 코드를 보자. 위를 보면 1행과 2행을 실행한 후에 사용자가 입력하기 전까지는 3행을 실행하지 않는다. 이는 I/O 연산이 프로그램 나머지 동작을 차단하는 동기식 프로그래밍 기법이다. but 자바스크립트는 이렇게 동작하지 않는다. 다음 Html 을 보자...
-
Mean Stack ? (민스택)MeanStack (deprecated) 2016. 5. 29. 01:31
사이트 : http://mean.io Full Stack Javascript Framework 의 한 종류인 MeanStack 은 DB = MongoDBFramework = Express Front-end Framework = Angular.jsPlatform = Node.js 를 사용하고 앞글자를 따서 MeanStack 이라 부른다. 간단히 역사를 설명하자면 ------2008년 구글이 크롬브라우저와 V8 자바 스크립트 엔진을 출시하면서 jQuery 나 Prototype 같은 유틸리티 라이브러리로 대표되는 모던 웹 개발 방식이 탄력을 받기 시작한다. JIT 컴파일 기능을 탑재한 V8 엔진은 자바스크립트 성능을 엄청나게 개선했다. 2009년 Node.js 가 출시되며 자바스크립트를 서버에서 구동할 수 있..