클라우드 컴퓨팅 & NoSQL 384

임시 파일 작업 공간 (Working storage)에 대한 노트

임시 파일 작업 공간 비동기 처리나 분산환경에서 추가적으로 필요한 컴포넌트 중의 하나는 임시 파일 작업 공간을 들 수 있다. 임시 파일 작업 공간은 직접 애플리케이션 서버에 네트워크 파일 시스템 (NFS)등으로 마운트 될 수 있는 파일 시스템인데, 작업을 위해서 임시적으로 파일을 저장하는 공간이다. 아래 그림을 보자, 아래 그림은 업로드된 동영상에서 썸네일을 추출하고 변환을 통해서 아카이빙 스토리지에 저장하는 구조인데, 앞단의 업로드 서버에서 파일이 업로드 되면, 파일은 임시 파일 작업 공간에 저장되었다가, 파일 업로드가 완료되면 메시지 큐에 변환 요청이 들어가게 되고, 뒷단의 변환(Transform)서버에서는 순차적으로 메시지를 받아서, 변환에 필요한 업로드된 파일을 읽어다가 변환한 후 아카이빙 스토리..

REST API의 이해와 설계-#3 API 보안

REST API의 이해와 설계 #3 API 보안 REST API 보안 API 보안에 대해서는 백번,천번을 강조해도 과함이 없다. 근래에 대부분의 서비스 시스템들은 API를 기반으로 통신을 한다.앱과 서버간의 통신 또는 자바스크립트 웹 클라이언트 와 서버간의 통신등 대부분의 통신이 이 API들을 이용해서 이루어지기 때문에, 한번 보안이 뚫려 버리면 개인 정보가 탈취되는 것 뿐만 아니라 많은 큰 문제를 야기할 수 있다. REST API 보안 관점API는 보안 포인트에 따라서 여러가지 보안 관점이 존재하는데, 크게 아래와 같이 5가지 정도로 볼 수 있다. 인증 (Authentication)인증은 누가 서비스를 사용하는지를 확인하는 절차이다.쉽게 생각하면 웹 사이트에 사용자 아이디와 비밀 번호를 넣어서, 사용자..

REST API 이해와 설계 - #2 API 설계 가이드

REST API 이해와 설계 #2 API 설계 가이드 REST API 디자인 가이드그러면 REST의 특성을 이해하고 나쁜 안티패턴을 회피해서 REST API 디자인은 어떻게 해야 할까? 짧지만 여기에 몇가지 디자인 방식에 대해서 소개 한다. REST URI는 심플하고 직관적으로 만들자REST API를 URI만 보고도, 직관적으로 이해할 수 있어야 한다 URL을 길게 만드는것 보다, 최대 2 depth 정도로 간단하게 만드는 것이 이해하기 편하다./dogs/dogs/1234URI에 리소스명은 동사보다는 명사를 사용한다.REST API는 리소스에 대해서 행동을 정의하는 형태를 사용한다. 예를 들어서POST /dogs는 /dogs라는 리소스를 생성하라는 의미로, URL은 HTTP Method에 의해 CRUD ..

REST API의 이해와 설계-#1 개념 소개

REST API의 이해와 설계#1-개념 소개 REST는 웹의 창시자(HTTP) 중의 한 사람인 Roy Fielding의 2000년 논문에 의해서 소개되었다. 현재의 아키텍쳐가 웹의 본래 설계의 우수성을 많이 사용하지 못하고 있다고 판단했기 때문에, 웹의 장점을 최대한 활용할 수 있는 네트워크 기반의 아키텍쳐를 소개했는데 그것이 바로 Representational safe transfer (REST)이다. REST의 기본REST는 요소로는 크게 리소스,메서드,메세지 3가지 요소로 구성된다.예를 들어서 “이름이 Terry인 사용자를 생성한다” 라는 호출이 있을 때“사용자”는 생성되는 리소스 , “생성한다” 라는 행위는 메서드 그리고 ‘이름이 Terry인 사용자’는 메시지가 된다이를 REST 형태로 표현해보면..

IBM Bluemix #1 - 첫번째 node.js 애플리케이션

IBM Blumix #1-첫번째 node.js 애플리케이션 개발bcho.tistory.com조대협 지난번에 bluemix에 대한 간략한 소개를 (http://bcho.tistory.com/940) 하였다. 오늘은 첫번째 node.js 애플리케이션을 만들어보도록 하자먼저 bluemix에 가입을 한후에, 대쉬보드에 들어가서 "Create App" 을 선택한후에, "SDK for Node.js"를 선택한다. 여기에, 애플레케이션 이름을 넣는다. 애플리케이션 이름을 넣으면, node.js 애플케이션의 디폴트 웹 URL명도 똑 같이 애플리케이션명.mybluemix.net으로 지정된다. 위의 그림과 같이 node.js 애플리케이션이 생성된 것을 볼 수 있다. 소스코드를 수정하기 위해서, 코드를 git reposit..

IBM 클라우드 bluemix(블루믹스) 소개

IBM 블루믹스 소개 PaaSIBM 블루믹스는 IBM에서 제공하는 PaaS(Platform As A Service) 클라우드 서비스이다. 아마존과 같은 서비스가 VM을 제공하는 IaaS(Infra as a service)라면, 블루믹스는 node.js, Java와 같은 런타임을 미리 깔아놓고, 거기에 소스코드를 넣어서 돌리는 구조이다. IaaS의 경우 Linux나 Windows Server와 같은 OS를 VM 기반으로 제공하기 때문에 직접 미들웨어를 설치해서 사용해야 하지만, PaaS의 경우 이미 설치된 미들웨어 위에 코드만 돌리면되기 때문에, 아무래도 관리가 편리하다. 그러면 왜 PaaS인가?얼마전까지만 해도, 개발 트렌드의 중심은 기업체에서 개발하는 B2C서비스였다. 페이스북이나 네이버와 같은 서비스..

빠르게 훝어 보는 node.js - #16 - Passport를 이용한 OAuth 2.0 API 인증 (Facebook 2/2)

빠르게 훝어보는 node.js#16 - Passport를 이용한 OAuth 2.0 API 인증 (Facebook 2/2)조대협 (http://bcho.tistory.com) node.js에서 페이스북 로그인하기앞에서(http://bcho.tistory.com/913) 설명한 Facebook 로그인 시나리오를 기반으로 하여 node.js와 passport-facebook 모듈을 이용해서, 간단한 로그인 서비스를 만들어보자.시나리오만들고자 하는 시나리오는 다음과 같다. /login 페이지에서 페이스북 로그인 버튼이 출력된다. 페이스북 로그인 버튼을 누르면 /auth/facebook 페이지로 이동한다./auth/facebook 페이지에서는 페이스북에 로그인을 하기 위한 OAuth 요청을 passport-fac..

카우치베이스(Couchbase) 서버-#6 아키텍쳐 구조 살펴보기

Couchbase Server#6. Couchbase server 구조 조대협 http://bcho.tistory.com 이번에는 마지막으로 카우치베이스의 아키텍쳐에 대해서 알아보도록 하자노드와 클러스터 (Node & Cluster)노드는 물리적인 서버에서 기동하는 하나의 카우치베이스 인스턴스로, 카우치 베이스는 여러 개의 노드로 이루어진 클러스터로 구성된다 클라이언트 SDK (Client SDK)프로그래밍 언어별로 카우치베이스에 접근하기 위한 API(SDK)를 제공한다. vBucket 개념카우치베이스는 실제데이타와 물리서버간의 맵핑을 vBucket이라는 것을 이용해서 관리한다. 카우치베이스는 키-밸류 스토어이다. 그래서, 각 키가 어디에 저장되어 있는지를 vBucket이라는 단위로 관리 하는데. 키에 ..

카우치베이스(Couchbase) 서버-#5 node.js를 이용하여 뷰를 호출하기

Couchbase Server#5. node.js를 이용하여 뷰를 호출하기 조대협 http://bcho.tistory.com 앞서 설명한 뷰를 node.js 카우치베이스 SDK를 이용해서 호출해보자, 카우치베이스는 node.js와 몽고DB만큼이나 궁합이 잘 맞는 것 같다. 매우쉽게 뷰를 호출할 수 있다. 뷰 호출 메서드는var viewQuery = bucket.view(“디자인도규먼트 이름”,”뷰 이름”,{옵션1:값,옵션2:값,…})로 뷰쿼리를 생성한 후에, viewQuery.query(function(err,results){…} );로 호출하면, 호출 성공시, 결과가 result 변수로 리턴된다.그러면 간단한 예제를 보자. “mybucket”이라는 버킷이 있고, 안에 다음과 같은 데이타가 있다.[ { ..