Skip to content

마이크로 서비스간 통신을 포함한 복잡한 로직 구현 #18

@downfa11

Description

@downfa11

어떤 기능인가요?

추가하려는 기능에 대해 간결하게 설명해주세요

일전에 논의한 HTTP 기반 동기식 통신을 이용해야하는 복잡한 기능들에 대해서 진행하고자 합니다.

작업 상세 내용

  • 노트 생성시 통신 로직
    1. 클라이언트에서 노트 생성 요청 (클라이언트 → 노트 서비스)
    2. 해당 사용자가 Owner인지 아니면 권한이 있는 사용자인지 검증 (노트 서비스 → 사용자 서비스)
    3. 해당 워크스페이스가 존재하는지 확인 (노트 서비스 → 그래프 서비스 findByTitle(string workspace))
    4. 제텔카스텐 워크스페이스라면 그래프 서비스로 백링크 요청 (그래프 서비스)
    5. 백링크 추천해서 미완료 상태의 백링크 연결 (그래프 서비스 → 토픽 서비스에서 조회)
  • 노트 삭제시 통신 로직
    • 생성시와 동일한 1,2번 동작으로 권한 검증
    • 해당 연관된 그래프 모두 삭제하도록 요청 보내고 모두 OK되면 노트 삭제(노트 서비스 → 그래프 서비스)
  • 워크스페이스 CRUD는 그래프 서비스에서 진행
  • 상향식 글쓰기 방식의 변환
    1. PARA → 제텔카스텐:
    • 자동으로 모든 문서간 백링크를 미완료 상태로 모두 넣는다.
    • 사용자가 직접 일부 백링크를 편집 & 나머지 미완료를 전부 완료 처리하는 동작
    1. 제텔카스텐 → PARA:
    • 모든 문서들을 상하좌우 드래그앤 드랍

PARA와 generic note의 차이점:

  • 노트 엔티티에 para-type이 P | A | R | A로 존재하는지 여부로 구분 (@nullable을 이용)

참고할만한 자료(선택)


Metadata

Metadata

Assignees

Labels

feat새로운 기능 추가

Type

No type
No fields configured for issues without a type.

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions