사용자 프로필은 소프트웨어 아키텍처의 일반적인 패러다임입니다. 이는 사용자 데이터 관리를 담당하는 코드를 중앙 집중화하기 위한 것입니다. 마이크로서비스의 인기가 높아지면서 소프트웨어 설계자들은 이 작업을 통합하기 위해 단일 서비스를 만들기 시작했습니다.
최근 자체 시스템 구축을 시작하는 데 도움이 되는 두 가지 튜토리얼을 만들었습니다:
이 콘텐츠는 새롭게 검색 가능한 "튜토리얼" 섹션. 오픈 소스이며 콘텐츠가 점점 늘어나고 있습니다!
사용자 프로필
사용자 프로필은 사용자 관련 데이터로 구성됩니다. 저장되는 일반적인 데이터에는 사용자의 이름, 로그인, 비밀번호, 주소, 기본 설정, 보안 역할, 보안 그룹 등이 포함됩니다.
카우치베이스가 이 사용 사례에 적합한 이유는 무엇인가요? 사용자는 가장 자주 액세스하는 데이터이며, 이는 전체 시스템의 성능에 영향을 미칠 수 있습니다. 성공적인 시스템의 주요 비기능적 요구 사항 중 일부는 Couchbase가 제공할 수 있습니다:
-
강력한 일관성
-
높은 읽기 및 쓰기 처리량
-
캐싱
-
유연한 데이터 모델
-
쉽고 빠른 쿼리
-
자연어 매칭
-
높은 확장성
-
고가용성
사용자 프로필 단계별
이 튜토리얼에서는 기본 사용자 프로필 서비스를 단계별로 만들게 됩니다. 이러한 단계에는 다음이 포함됩니다:
-
새 프로젝트 설정(Spring 또는 ASP.NET)
-
프로필을 클래스로 표현하기
-
프로필에 액세스할 수 있는 리포지토리 만들기
-
적절한 인덱스로 데이터 쿼리하기
-
전체 텍스트 검색으로 사용자 검색
-
사용자 이벤트를 비동기적으로 저장(RxJava 또는 async/await)
-
데이터 센터 간 복제 구성
사용자 프로필 서비스를 막 시작하는 경우 1단계부터 시작할 수 있습니다. 기존 시스템을 개선하려는 경우 이후 단계부터 시작할 수 있습니다.
Java 및 .NET 자습서
다루어야 할 내용이 많을 것 같지만 이 튜토리얼은 간단한 프로필에서 시작하여 거기서부터 확장해 나갑니다. 이 튜토리얼은 관용적 관점에서 .NET과 Java를 다루며, 이미 익숙한 언어/도구의 강점을 보여 줍니다.
Java에서는 Spring 프레임워크를 사용하므로 리포지토리의 시작은 두 개의 클래스를 만드는 것만큼이나 간단합니다:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 |
@데이터 @문서 public 클래스 사용자 엔티티 { @Id 비공개 문자열 id; @NotNull @크기(최대 = 2, 분=2) 비공개 문자열 국가 코드; @NotNull 비공개 문자열 사용자 이름; @NotNull 비공개 문자열 비밀번호; } @N1qlPrimaryIndexed @N1qlSecondaryIndexed(인덱스 이름 = "userEntity") public 인터페이스 사용자 엔티티 저장소 확장 카우치베이스 페이징 및 정렬 저장소<사용자 엔티티, 문자열> { } |
C# 및 .NET에서 async/await은 프로필에 이벤트 배치를 저장하는 데 필요한 비동기 프로그래밍을 쉽게 작업할 수 있는 일급 키워드입니다:
1 2 3 4 5 6 7 8 9 10 11 |
public 비동기 작업 추가 이벤트 동기화(목록<사용자 이벤트> 이벤트) { var 작업 = 이벤트.선택(e => _버킷.InsertAsync(e.Id, new { e.생성된 날짜, e.이벤트 유형, e.UserId, e.유형 })); 기다림 작업.WhenAll(작업); } |
다음 단계
자세한 내용은 원하는 튜토리얼을 참조하세요.
.NET 개발자인 경우에는 NET 사용자 프로필 자습서.
Java 개발자라면 다음과 같이 Java 사용자 프로필 튜토리얼
이 튜토리얼에 대한 질문이나 피드백이 있는 경우 다음에서 저를 찾을 수 있습니다. 트위터 @mgroves .NET에 대한 질문이 있거나 데니스 로사의 트위터 @deniswsrosa 를 참조하세요. Couchbase 문서의 모든 내용과 마찬가지로 이 튜토리얼은 오픈 소스이며 개선을 위한 풀 리퀘스트 환영합니다!