조대협 308

빠르게 훝어 보는 node.js - mongoose ODM 을 이용한 MongoDB 연동

빠르게 훝어 보는 node.js - mongoose ODM 을 이용한 MongoDB 연동 조대협 (http://bcho.tistory.com) Mongoose는 mongodb 기반의 node.js용 ODM (Object Data Mapping) 프레임웍이다. 이미 앞에서 monk를 이용한 mongodb 연결 방식에 대해서 알아보았는데, mongoose는 무엇인가? 쉽게 생각하면 monk를 자바에서 JDBC 드라이버로 직접 데이타 베이스에 연결하여 SQL을 실행한 거라면, monggose는 Hibernate/Mybatis와 같이 OR Mapper의 개념이다. 직접 SQL을 실행하는 것이 아니라 node.js의 자바스크립트 객체를 mongodb의 도큐먼트와 맵핑 시켜 주는 개념이다.이런ODM의 개념은 웹 프..

Heroku에서 newrelic을 이용한 node.js 애플리케이션 모니터링 (APM)

Heroku에서 newrelic을 이용한 node.js 애플리케이션 모니터링 (APM) 조대협 (http://bcho.tistory.com) Heroku에서 node.js 애플리케이션에 대한 모니터링을 살펴보자. 애플리케이션의 모니터링은 모니터링 분야에서 APM (Application Performance Monitoring)이라는 분야로, 애플리케이션에서 어떤 API 들이 호출이 되었는지, 각 로직별 응답 시간등을 추적할 수 있다. 한국에서 유명한 APM으로는 제니퍼가 있다.Heroku에서 사용할 수 있는 APM은 여러가지가 있지만 여기서는 newrelic이라는 제품을 소개한다. Newrelic은 heroku 뿐 아니라, 모니터링 시장에서 매우 유명한 제품으로 APM 기능뿐만 아니라, 서버 인프라에 대..

Heroku에서 logentries를 이용하여 node.js 로그 모니터링 하기

Heroku에서 logentries를 이용하여 node.js 로그 모니터링 하기 조대협 (http://bcho.tistory.com) Heroku에서 제공하는 로깅은 heroku logs –tail 명령을 이용해서 모니터링 할 수 있는데, 이 로그의 경우 최대 1500줄만 저장을 지원한다. 실제 운영 환경에서 1500줄의 로그란 부족해도 많이 부족한 양이다. 그래서 추가적인 서비스를 이용하는 것이 좋은데, 많은 로깅 서비스가 있지만, 간단하게 사용할 수 있는 로깅 서비스로 logentries 라는 서비스가 있다. Figure 1 http://www.logentries.com 무료로 사용이 가능하고, 무료 사용시 최대 7일간의 로그를 저장해주고, 일 최대 33M 까지 로그를 저장할 수 있다.가장 저렴한 E..

Heroku에서 스케일링 하기

Heroku 스케일링 (scaling)에 대해서 조대협 (http://bcho.tistory.com) 스케일링이란, 더 큰 다이노(더 많은 CPU와 메모리)를 사용함으로써 각 다이노의 성능을 올리거나, 더 많은 다이노를 추가함으로써 여러 다이노로 부하를 분산해서 전체 성능을 올리는 방법을 이야기 한다. 더 큰 다이노를 사용하는 것을 수직 스케일링 (vertical scaling), 더 많은 다이노를 사용하는 것을 수평 스케일링 (horizontal scaling)이라고 한다. 그러면 Heroku에서 스케일링을 어떻게 하는지 알아보자스케일링은 다음과 같이 heroku ps:scale 다이노타입=다이노개수:다이노크기 로 지정하면 된다. 이 스케일링은 무료 티어에서는 사용이 불가능 하기 때문에, 과금을 위한 ..

Heroku 클라우드에 node.js 애플리이션을 배포하기

Heroku 클라우드에 node.js 애플리이션을 배포하기 조대협 (http://bcho.tistory.com) 가장 빠르게 이해하는 방법은 직접 해보는 것이다. Heorku 클라우드에 대한 이해를 위해서 express를 이용해 구현된 node.js 애플리케이션을 직접 배포해서 실행해보자이 예제는 node.js 4.3.1 버전과 express 4.13.4 버전을 기준으로 작성되었다. Heroku 가입Heroku사용을 위해서 Heroku계정을 만들자. http://www.heroku.com 에 접속해서 Sign up 메뉴로 들어가면, 간단하게 이름과 이메일 정도의 정보만 넣으면 간단하게 계정을 만들 수 있다. Figure 1 Heroku 가입 화면 다른 클라우드의 경우 향후 유료 사용을 위해서 회원 가입시..

대용량 시스템 아키텍쳐 설계에 대한 강의를 진행합니다.

대용량 시스템 아키텍쳐 설계에 대한 강의를 진행합니다. 조대협입니다.잠깐의 휴식 시간에 짬을 내서, 패스트 캠퍼스에서 대용량 시스템 아키텍쳐 설계에 대한 강의를 합니다.4/9~4/10일 양일간입니다. 패스트 캠퍼스를 통해서 아키텍쳐 설계 강의를 하게되었습니다 이번에는 실습을 통해 저와 같이 설계를 하는 과정도 같이 들어갑니다.강의를 개설하게 된 이유는 종종 아키텍쳐에 대한 컨설팅이나 도움을 요청하시는 분들이 있어서 시스템들을 살펴보면, 기술적인 부분에 체계가 안잡혀 있는 것도 문제지만 아키텍쳐를 정의하고 설계하는 흐름에 대해서 이해가 부족한 경우를 많이 봐왔습니다. 짧은 시간이지만 많은 도움이 되려고 합니다. 홍보 때문에 인터뷰도 했어요. http://www.fastcampus.co.kr/dev_work..

IT 이야기 2016.03.21

빠르게 훝어 보는 node.js - promise를 이용한 node.js에서 콜백헬의 처리

Promise를 이용한 node.js에서 콜백헬의 처리 조대협 (http://bcho.tistory.com) 앞의 글(http://bcho.tistory.com/1083) 에서 async 프레임웍을 이용한 콜백헬을 처리 하는 방법에 대해서 알아보았다.async 프레임웍 이외에, 콜백헬을 해결할 수 있는 프레임웍으로 promise가 있다.Promise는 원래 콜백헬을 해결하기 위한 프레임웍이 아니라, 프로그래밍 패턴중의 하나로 지연 응답을 통해서 동시성을 제어 하기 위한 목적으로 만들어졌다. 자바스크립트에서는 Jquery의 Deferred나, CommonJS에 구현되어 있고, ECMAScript5 표준에 포함되서 크롬,파이어폭스,인터넷익스플로러 9 버전등에 포함되어 있다.구현체가 많아서 설치해야 한다. n..

IBM Bluemix 클라우드의 Openwhisk 소개

IBM 블루믹스의 openwhisk 에 대한 소개 조대협 (http://bcho.tistory.com) 오늘 IBM의 블루믹스 세미나에 다녀왔습니다.세미나 내용중에서 흥미로운 기술들이 있어서 간단하게 소개합니다.IBM 블루믹스 클라우드의 새로운 기능으로 Openwhisk 라는 서비스입니다. http://www.ibm.com/cloud-computing/bluemix/openwhisk/https://developer.ibm.com/openwhisk/ 아마존의 람다 기능과 유사한 기능인데 개념을 보면 다음과 같다. 이벤트가 발생하면, 이벤트 내용을 받아서 비지니스 로직이 들어 있는 액션을 수행한다.아래 그림을 보면 REST API로 호출하거나 또는 데이타 베이스에 어떤 내용이 변경이 되거나 또는 Kafka와..

다르게 생각해볼만한 클라우드 컴퓨팅 활용 전략

다르게 생각해볼만한 클라우드 컴퓨팅 활용 전략 조대협 (http://bcho.tistory.com) 근래에 스타트업 기반의 빠른 속도의 개발을 경험하고, 클라우드 컴퓨팅 도입 전략에 대해서 고민할 기회가 생겨서 여러 자료를 검토하던중에 퍼블릭 클라우드 도입 전략에 대해서 기존과 다른 접근 방식이 필요하다고 생각되어 그 내용을 정리합니다. 특정 벤더의 의존성 배제 퍼블릭 클라우드 하면 거의 공식 처럼 AWS 클라우드가 소위 말해서 갑이었으나, 근래에 들어서 구글이나 마이크로소프트가 큰 딜을 잡아나가면서 약간씩 구도가 바뀌고 있는 형상이다. 특히 구글의 Spotify와, Quizlet의 사례를 보면 구글 사용사례이기 때문에 구글이 좋다는 이야기지만, 내용을 디테일하게 살펴보면 꽤나 재미 있는 인사이트를 얻을..

MAC에서 HTTP 패킷 모니터링 하기

MAC에서 HTTP 패킷 모니터링 하기 조대협 (http://bcho.tistory.com) 윈도우즈의 경우 fiddler (http://www.telerik.com/fiddler ) 라는 무료 도구가 있고, Mac의 경우에는 HTTPScoope (https://www.tuffcode.com/) 을 추천한다. HTTPScoope의 경우 14일 무료이고, 유료 버전은 15$ (약 16000원정도)이다. 아래는 로컬에서 3000번 포트로 띄운 웹서버의 패킷을 모니터링 하는 방법이다. Scoop을 사용하는 방법을 보면, Scoop을 설치한 후에, “Preference” 메뉴에서 아래 그림과 같이 Restrict to port 메뉴를 선택해서, 3000 번 포트를 추가한다. (예제가 3000번 포트를 통해서 L..

성능과 튜닝 2016.03.11