SlideShare a Scribd company logo
Couchbase를 사용한
응용프로그램 개발 방법 개요
목표

Client SDK
기본 조작 method

그 외 method
질의 응답
Couchbase를 DB로 사용하여
클라이언트 응용프로그램을
개발하기 위한 환경에 대한 이해

기본적인 조작방법 숙지
카우치베이스 사이트
http://www.couchbase.com/communities/all-

client-libraries
http://www.couchbase.com/documentation
http://www.couchbase.com/presentations
Client SDK의 종류와 특징, 설치 및 사용방법
 아래 URL에서 개발하고자 하는 언어의 SDK를 다운로드
 http://www.couchbase.com/communities/all-client-libraries
Couchbase .net client 개발
 .NET 3.5와 4.0용 어셈블리 제공

의존하는 어셈블리에 의해 Client Profile은 비권장 됨

 Visual Studio의 Nuget 플러그인 사용시
아래 명령으로 설치 가능
 Install-Package CouchbaseNetClient

 Github에서 소스코드 다운로드 가능
 git clone https://github.com/couchbase/couchbase-

net-client.git

 출처 : http://docs.couchbase.com/couchbase-sdknet-1.3/
어셈블리 파일 내용
카우치베이스 라이브러리 본체
Couchbase.dll
Memcached 라이브러리
Enyim.Caching.dll
로그 어댑터
 Enyim.Caching.Log4NetAdapter.dll
 Enyim.Caching.NLogAdapter.dll

기타 utility 라이브러리
Newtonsoft.Json.dll : JSON문자열 파싱/생성
NLog.dll, log4net.dll : 로그 생성 및 기록
DB연결

조회/조작(CRUD)

카운터
app|web.config를 사용한 DB연결 설정
<?xml version="1.0"?>
<configuration>
<configSections>
<section name="couchbase"
type="Couchbase.Configuration.CouchbaseClientSection, Couch
base"/>
</configSections>
<couchbase>
<servers bucket="default" bucketPassword="">
<add uri="http://192.168.0.2:8091/pools"/>
<add uri="http://192.168.0.3:8091/pools"/>
</servers>
</couchbase>
</configuration>
싱글톤 패턴으로 Client객체 생성
public static class CouchbaseManager
{
private readonly static CouchbaseClient _instance;
static CouchbaseManager()
{
_instance = new CouchbaseClient();
}
public static CouchbaseClient Instance {
get { return _instance; }
}

}
DB연결 코드 작성 예 1 : Bucket목록 조회
//app.config의 url을 추출
var ClusterNodeList = (
(CouchbaseClientSection)System.Configuration.ConfigurationManag
er.GetSection("couchbase")
).Servers.Urls.ToUriCollection();
//관리자 계정으로 bucket목록 조회
var config = new CouchbaseClientConfiguration()
{
Username = Username,
Password = Password
};
foreach (var uri in ClusterNodeList)
config.Urls.Add(uri);
var buckets = new CouchbaseCluster(config).ListBuckets();
DB연결 코드 작성 예 2 : 코드로 연결
config = new CouchbaseClientConfiguration()
{
Bucket = BucketName,
BucketPassword = BucketPassword
};
foreach (var uri in ClusterNodeList)
config.Urls.Add(uri);
ClientInstance = new CouchbaseClient(config);
Store Methods
bool ClientInstance.Store(StoreMode, key,

value)
public enum StoreMode {
Add = 1,
Replace = 2,
}

Set = 3,

반환값 : 성공시 true

bool Remove(string key)
ExecuteStore Methods
IStoreOperationResult ClientInstance.

ExecuteStore(StoreMode, key, value)
var result = client.ExecuteStore(StoreMode.Add, "beer", new Beer());
if (!result.Success)
{
Console.WriteLine("Store failed with message {0}
and status code {1}",

result.Message, result.StatusCode);
if (result.Exception != null)
throw result.Exception;
}
Get Methods
object ClientInstance.Get(key)
T ClientInstance.Get<T>(key)
IDictionary<string, object>

Get(IEnumerable<string> keys)
var dict = client.Get(new string[] { "brewery", "beer" });
Console.WriteLine(dict["brewery"]);
Console.WriteLine(dict["beer"]);
Get Methods
CasResult<object> GetWithCas(string key)
public struct CasResult<T>

{

public ulong Cas { get; set; }

public T Result { get; set; }
public int StatusCode { get; set; }
}

bool KeyExists(string key)
Counter
ulong Increment(string key, ulong

defaultValue, ulong delta)
ulong Decrement(string key, ulong

defaultValue, ulong delta)
client.Remove("inventory"); //reset the counter

client.Increment("inventory", 100, 1); //counter will be 100
client.Increment("inventory", 100, 1); //counter will be 101
비JSON 문자열 조작
Append/Prepend 메소드

CAS를 이용한 조작
Cas 메소드
ICasOperationResult

Lock을 이용한 조작
GetWithLock/Unlock 메소드
View 사용
GetView 메소드

Expiration
Touch 메소드
TimeSpan validFor(초단위)/DateTime expiresAt

Durability
enum PersistTo
enum ReplicateTo
• sejini17@n2m.co.kr
Couchbase .net client 개발

More Related Content

What's hot (20)

PDF
자바 웹 개발 시작하기 (2주차 : 인터넷과 웹 어플리케이션의 이해)
DK Lee
 
PDF
Laravel 로 배우는 서버사이드 #3
성일 한
 
PDF
Db프로그래밍 환경 설정(131062 장택순)
TaekSoon Jang
 
PPTX
Servlet&jsp 1장
JeongBong Kim
 
PPTX
.Net conf 2019 Korea_ ASP.NET Core를 통한 HealthCheck 서비스 구현
Hong Min Kim
 
PPTX
Java naming strategy (자바 명명 전략)
Sunghyouk Bae
 
PDF
한국청소년정보과학회 1회 세미나 - RestFul API Basic
한국청소년정보과학회
 
PDF
[NEXT] Flask 로 Restful API 서버 만들기
YoungSu Son
 
PPTX
Node.js
ymtech
 
PDF
.NET에서 비동기 프로그래밍 배우기
Seong Won Mun
 
PDF
04.[참고]개발환경 실습교재
Hankyo
 
PPTX
Rb vs wp 로드타임 성능비교
Gitaek kwon
 
PDF
자바 서블릿과 세션 (Java Servlet, Session)
Yu Yongwoo
 
PDF
Fiddler: 웹 디버깅 프록시
Taegon Kim
 
PDF
막하는 스터디 첫 번째 만남 Node.js
연웅 조
 
PPTX
Startup JavaScript 9 - Socket.IO 실시간 통신
Circulus
 
PPTX
Node.js를 사용한 Big Data 사례연구
ByungJoon Lee
 
PDF
파이썬 웹 프로그래밍 2탄
SeongHyun Ahn
 
PDF
Android Google Cloud Message 설정
정호 이
 
PDF
Laravel 로 배우는 서버사이드 #1
성일 한
 
자바 웹 개발 시작하기 (2주차 : 인터넷과 웹 어플리케이션의 이해)
DK Lee
 
Laravel 로 배우는 서버사이드 #3
성일 한
 
Db프로그래밍 환경 설정(131062 장택순)
TaekSoon Jang
 
Servlet&jsp 1장
JeongBong Kim
 
.Net conf 2019 Korea_ ASP.NET Core를 통한 HealthCheck 서비스 구현
Hong Min Kim
 
Java naming strategy (자바 명명 전략)
Sunghyouk Bae
 
한국청소년정보과학회 1회 세미나 - RestFul API Basic
한국청소년정보과학회
 
[NEXT] Flask 로 Restful API 서버 만들기
YoungSu Son
 
Node.js
ymtech
 
.NET에서 비동기 프로그래밍 배우기
Seong Won Mun
 
04.[참고]개발환경 실습교재
Hankyo
 
Rb vs wp 로드타임 성능비교
Gitaek kwon
 
자바 서블릿과 세션 (Java Servlet, Session)
Yu Yongwoo
 
Fiddler: 웹 디버깅 프록시
Taegon Kim
 
막하는 스터디 첫 번째 만남 Node.js
연웅 조
 
Startup JavaScript 9 - Socket.IO 실시간 통신
Circulus
 
Node.js를 사용한 Big Data 사례연구
ByungJoon Lee
 
파이썬 웹 프로그래밍 2탄
SeongHyun Ahn
 
Android Google Cloud Message 설정
정호 이
 
Laravel 로 배우는 서버사이드 #1
성일 한
 

Viewers also liked (17)

PPTX
Extra episode 2: Hector Goes Shopping
Axel3400
 
PDF
Certificate TechnoYoga 1
Art Mobil
 
PPTX
Film opening title sequence presentation
Lauren Allard
 
PDF
Encuesta de evaluación de la capacitación
soymarianah
 
DOCX
Informatica 802 word
jasme segura
 
PDF
Plan unidad1
siguasparia
 
PDF
ICRTMD 2015 - A Request for Active Participation
Amity University
 
PDF
Tx Newsletter 29th May
BIS HCM
 
PPT
«Цена государства»: лекция Дмитрия Боярчука
Slava Dvornikov
 
PPTX
Presenter techniques ricky
Ricky Smith
 
DOC
ASHISH AGARWAL
Ashish Agarwal
 
PDF
Strategia wrocław w perspektywie 2020 plus
Wroclawska_Rewitalizacja
 
PPTX
Teorias motivacionales ii
Shanty Churos
 
PPTX
Herramientas para oficina sin papeles
Vicente Herrera García
 
PDF
Vers une mobilité sobre en c02 une opportunité pour mieux vivre ?
Ghislain Delabie
 
PDF
Extra English - Work book 1
Thiều Nem
 
PPTX
Tripas de un ordenador
mariacamila04
 
Extra episode 2: Hector Goes Shopping
Axel3400
 
Certificate TechnoYoga 1
Art Mobil
 
Film opening title sequence presentation
Lauren Allard
 
Encuesta de evaluación de la capacitación
soymarianah
 
Informatica 802 word
jasme segura
 
Plan unidad1
siguasparia
 
ICRTMD 2015 - A Request for Active Participation
Amity University
 
Tx Newsletter 29th May
BIS HCM
 
«Цена государства»: лекция Дмитрия Боярчука
Slava Dvornikov
 
Presenter techniques ricky
Ricky Smith
 
ASHISH AGARWAL
Ashish Agarwal
 
Strategia wrocław w perspektywie 2020 plus
Wroclawska_Rewitalizacja
 
Teorias motivacionales ii
Shanty Churos
 
Herramientas para oficina sin papeles
Vicente Herrera García
 
Vers une mobilité sobre en c02 une opportunité pour mieux vivre ?
Ghislain Delabie
 
Extra English - Work book 1
Thiều Nem
 
Tripas de un ordenador
mariacamila04
 
Ad

Similar to Couchbase .net client 개발 (20)

PPTX
모바일 게임과 앱을 위한 오픈소스 게임서버 엔진 프로젝트 CloudBread 프로젝트
Dae Kim
 
PPTX
CouchDB - Introduction - Korean
정명훈 Jerry Jeong
 
PDF
Internship backend
Yein Sim
 
PDF
MEAN Stack 기반 모바일 서비스 개발 overview
민태 김
 
PDF
파이어베이스 스터디
성일 한
 
PDF
NoSQL 위에서 MMORPG 개발하기
Hoyoung Choi
 
PPTX
kt-cloud
Kenu, GwangNam Heo
 
PDF
Firebase for Web (웹개발을 위한 파이어베이스) 1 Hosting
승빈이네 공작소
 
PPT
Rhea_MMO_SNG_Convergence_Server_Architecture
Rhea Strike
 
PDF
Tdc2013 선배들에게 배우는 server scalability
흥배 최
 
PDF
[D2 CAMPUS] tech meet up(Back-end) - 교내 웹서비스 개발 일지 (박은찬님)
NAVER D2
 
PDF
삶이편해지는_백엔드_개발자_지식.pdf
Seung kyoo Park
 
PDF
프로세스 코디 사용자 가이드
uEngine Solutions
 
PPTX
올챙이로 살펴보는 개발툴과 Cloud
cho hyun jong
 
PDF
[110730/아꿈사발표자료] mongo db 완벽 가이드 : 7장 '고급기능'
sung ki choi
 
PDF
Cloud-Barista 제7차 컨퍼런스 : 멀티클라우드 애플리케이션 실행환경 통합 관리 (CB-Ladybug)
Cloud-Barista Community
 
PDF
NODE.JS 글로벌 기업 적용 사례 그리고, real-time 어플리케이션 개발하기
John Kim
 
PDF
스마트폰 앱 백-엔드 솔루션 개발을 위한 Node.js 실전 가이드
Jeongsang Baek
 
PDF
Slipp 발표 자료 20151212
Jinsoo Jung
 
PDF
Firebase for web (웹개발을 위한 파이어베이스) 3 Real-Time Database
승빈이네 공작소
 
모바일 게임과 앱을 위한 오픈소스 게임서버 엔진 프로젝트 CloudBread 프로젝트
Dae Kim
 
CouchDB - Introduction - Korean
정명훈 Jerry Jeong
 
Internship backend
Yein Sim
 
MEAN Stack 기반 모바일 서비스 개발 overview
민태 김
 
파이어베이스 스터디
성일 한
 
NoSQL 위에서 MMORPG 개발하기
Hoyoung Choi
 
Firebase for Web (웹개발을 위한 파이어베이스) 1 Hosting
승빈이네 공작소
 
Rhea_MMO_SNG_Convergence_Server_Architecture
Rhea Strike
 
Tdc2013 선배들에게 배우는 server scalability
흥배 최
 
[D2 CAMPUS] tech meet up(Back-end) - 교내 웹서비스 개발 일지 (박은찬님)
NAVER D2
 
삶이편해지는_백엔드_개발자_지식.pdf
Seung kyoo Park
 
프로세스 코디 사용자 가이드
uEngine Solutions
 
올챙이로 살펴보는 개발툴과 Cloud
cho hyun jong
 
[110730/아꿈사발표자료] mongo db 완벽 가이드 : 7장 '고급기능'
sung ki choi
 
Cloud-Barista 제7차 컨퍼런스 : 멀티클라우드 애플리케이션 실행환경 통합 관리 (CB-Ladybug)
Cloud-Barista Community
 
NODE.JS 글로벌 기업 적용 사례 그리고, real-time 어플리케이션 개발하기
John Kim
 
스마트폰 앱 백-엔드 솔루션 개발을 위한 Node.js 실전 가이드
Jeongsang Baek
 
Slipp 발표 자료 20151212
Jinsoo Jung
 
Firebase for web (웹개발을 위한 파이어베이스) 3 Real-Time Database
승빈이네 공작소
 
Ad

Couchbase .net client 개발