NoSQL 쉬운 클라우드 개발지원툴
안녕하세요 엔돌슨 입니다. 이전 포스팅에서 IBM Cloudant 클라우드 서비스를 소개하여 드렸는데요. NoSQL으로 쉽게 데이터베이스를 작성하고 JSON의 문서를 관리하여 API로 제공하는 방법에 대해서 알아 보았습니다. 이번에는 조금 더 심화 과정으로 준비된 IBM 클라우드 개발에 대해서 알아 보려고 합니다.
저 또한 특별한 교육을 받은 것은 아니지만, 개발자다 보니 이와같은 클라우드 개발에 관심이 많아지게 되었습니다.
Learning Center for IBM Cloudant
https://www.youtube.com/playlist?list=PLJa_sXrJUZb-FlzLdZ6ngxODSLtxjVvfZ
위의 IBM Cloudant 유튜브를 보시면, 클라우드 개발을 쉽게 스타트업을 할 수 있는 영상이 있습니다. IBM Cloudant 를 이용하여 할 수 있는 심화개발과정이 체계적으로 잘 갖추어져 있더군요. 아직 한국어 자막이 따로 없지만, 유튜브 옵션에서 자동번역을 해두면 보는 데 문제는 없습니다.
IBM Cloudant 사이트입니다.
http://www-01.ibm.com/software/kr/data/cloudant/index.html
우선 IBM Cloudant 시작을 위해선 계정생성과 개발 준비를 해줍니다. 사실 계정만 생성되면 끝이죠.
요즘 추세에 맞게 DBaaS(NoSQL database-as-a-service)로 클라우드 개발환경을 구축할 수 있게 해주고 있으며, IBM클라우드는 50GB까지 무료로 제공됩니다. 용량도 충분하고 빠르게 프로젝트에 반영할 API 및 NoSQL 데이터베이스 생성이 편리하도록 되어있습니다.
IBM 클라우드 심화개발과정 따라해보기 NoSQL DB 사용기
제 IBM Cloudant 대시보드 페이지입니다. 한눈에 보시는 것처럼 데이타베이스 관리부터 계정관리, Replication으로 문서, 복사, 복제, 생성까지 할 수 있게 구성되어 있습니다.
가장 쉬운 데이터베이스 생성 부터 해보시겠습니다.
Tutorial: How to create a Database and Add Documents to Database
유튜브의 동영상에도 데이터베이스 생성과정을 쉽게 따라 할 수 있도록 잘 설명되어져 있습니다.
https://www.youtube.com/watch?v=zESROlotu-g&index=2&list=PLJa_sXrJUZb-FlzLdZ6ngxODSLtxjVvfZ
위 화면처럼 상단에 Add New Database 버튼을 눌러서 데이터베이스를 쉽게 생성할 수 있습니다.
저는 유튜브 동영상 교육과정과 동일하게 "employee_direct" 라고 데이터베이스를 생성하였습니다.
Cloudant 데이터베이스는 JSON포멧으로 생성됩니다. 요즘 트랜드에 맞게 NoSQL은 분산 데이터베이스입니다. 뛰어난 확장성과 가용성으로 각광받고 있죠. 실제 게임업체에서도 많이 사용하고 빅데이터와 실시간 웹 애플리케이션의 사업적인 용도로 가장 많이 사용하고 있습니다. 또 NoSQL 시스템은 SQL 계열 쿼리 언어를 사용할 수 있다는 사실을 강조하면서 "Not only SQL"이라고 불리기도 합니다.
아무튼 데이터베이스에 JSON포맷으로 된 문서의 컬렉션을 포함할 수 있어 편리한 수평적 확장성과 디테일한 통제가 가능합니다.
데이터베이스 생성 후, New Doc를 눌러서 문서를 생성해보죠. 문서는 당연히 앞서 이야기한 JSON 타입입니다.
웹 상에서 개발이 지원되며 JSON 편집기가 제공됩니다. 대쉬보드에서 그냥 개발 진행하시면 됩니다.
동영상에서 보여주는 JSON 키 값이 쌍의 집합이 포함되어 있다고 나와 있네요. 입력하기 귀찮으니 제가 아래에 비슷한 샘플을 보여 드리겠습니다
입력 샘플을 아래의 URL 에서 비슷한 JSON 샘플을 입력하시면 됩니다.
단, 주의 해야 할 점은 "_id" 부분이 데이터베이스를 구별할 수 있는 식별자 입니다. 식별자도 같이 넣어 주어야 하니 JSON 구조를 조금 바꾸어 줘야 합니다. 위 캡쳐처럼 식별자는 자신이 인지할 수 있게 변경하시고, "콤마(,)"를 입력해서 아래의 샘플를 이어 주시면 됩니다. 그리고 괄호를 삭제해서 하나의 JSON 샘플로 만들어 주세요.
만약 오류가 없으면 라인이 깔끔하게 나올 겁니다. 저장 후 대시보드로 이동해 주세요.
이렇게 추가된 문서는 자동으로 버전을 가지게 됩니다. _rev라고 된 것은 문서 수정시 마다 증가 되는 버전으로 자동 증가됩니다.
IBM 클라우스 교육영상을 참고해서 보니, 따라하기 쉽네요.
Learning Center for IBM Cloudant 에는 더 심화된 교육과정이 있습니다.
개념정리와 함께 HTTP API 의 특징에 대해서 알고 가면 좋을 것 같습니다.
Tutorial: How to review the HTTP API
https://www.youtube.com/watch?v=HtGlyrosN8M&index=6&list=PLJa_sXrJUZb-FlzLdZ6ngxODSLtxjVvfZ
이번 영상은 HTTP프로토컬을 활용한 API 에 대해서 설명을 해주고 있습니다.
IBM Cloudant 를 사용하면 쉽게 API 인터페이스를 제공할 수 있다고 이야기 드렸는데요. 웹 어플리케이션 뿐 아니라 다양한 영역에서 사용할 수 있습니다.
Coudant HTTP API는 데이터베이스 - 문서를 첨부하면 계정내에 있는 데이터베이스 및 문서를 엔드 포인트에 해당되는 영역을 표시해주게 됩니다.
Cloudant 는 NoSQL의 데이터베이스로 어떤 SQL도 존재하지 않는다고 합니다. 그래서 더 쉬운 걸지도 모르죠.Cloudant 는 NoSQL의 데이터베이스로 어떤 SQL도 존재하지 않는다고 합니다. 그래서 더 쉬운 걸지도 모르죠.
앞서 말씀드린 바와 같이NoSQL 시스템은 SQL 계열 쿼리 언어를 사용할 수 있다는 사실을 강조하면서 "Not only SQL"이라고 불립니다. SQL명령 프롬프트를 사용하여 접근도 가능하죠.
HTTP 브라우저에서 데이터 엑세스하는 GET, PUT, POST, DELETE, COPY 명령이 수행되면, API를 통해서 이를 수행하게 됩니다. Cloudant 는 순수 HTTP API를 사용하는 경우에 어떤 독점된 드라이브도 필요치 않다는 것입니다.
다른 데이터베이스와 자바는 JDBC 드라이브가 필요한데 반해 이런 제약이 없고 지금의 모든 언어들은 HTTP로 통신하기 때문에 표준에 적합하게 작성되어 사용될 수 있는 것이죠.
Tutorial: How to execute Common HTTP API Commands
URL : https://www.youtube.com/watch?v=47qQMaYJVUU&index=8&list=PLJa_sXrJUZb-FlzLdZ6ngxODSLtxjVvfZ
이번에는 위 영상을 참고하여 HTTP API 에 대해서 알아 보도록 하겠습니다.
앞서 해보신 것처럼 HTTP API로 제공되는 문서는 고유의 ID를 지정하여 만들 수 있습니다.
이렇게 고유의 문서ID를 생성하였다면 쉽게 호출이 가능한 구조라는 것입니다.
GET / <database> / <doc_id>
여기서 doc_id 문서의 고유키가 되겠죠?
이렇게 생성된 문서는 GET / PUT 명령을 통해서 문서를 가져오거나 쉽게 첨부할 수 있습니다.
설명처럼 바이너리 타입도 첨부가 가능하더군요. 이미지든, 문서든 쉽게 HTTP 웹 브라우저로 첨부가 가능합니다.
데이터베이스의 권한 설정 및 인덱스설정도 가능한데, 문서를 빠르게 확장하고 수정하기에는 NoSQL DB가 참 편리하다고 생각이 들었습니다. 더 상세한 개발과정을 공부하시고자 한다면 유튜브 동영상을 참고하시면 많은 도움이 될 것 것 같습니다.
▲ Learning Center for IBM Cloudant
https://www.youtube.com/playlist?list=PLJa_sXrJUZb-FlzLdZ6ngxODSLtxjVvfZ
API를 운영 및 구축을 해보니 편리하게 반영할 수 있는 IBM Cloudant 가 왜 편리한지 쉽게 알아 보셨을 겁니다.
절차상 불편한 부분이 없어지며, 빠르게 프로젝트에 반영할 API를 생성할 수 있다는 점에서 상당히 매력적이었습니다. 또한 관리 포인트 역시 적어진다는 점에서 운영에 상당한 이점이 되지 않을까 생각합니다.
50GB까지 무료로 제공되니 IBM Cloudant를 우선 체험해보길 권해드립니다.
IBM클라우드 (클릭)
이 포스팅은 한국 IBM의 의뢰로 원고료를 받아 주관적으로 작성되었습니다.