2023.10.17 ~
openlist.mp4
체크리스트 작성이 어려운 사람들을 위해 AI 추천기능을 구현하였습니다.
GPT-4를 이용한 체크리스트 캐싱 시스템, CLOVA Studio를 이용한 평가 시스템을 도입하여 빠르고 정확한 정보를 제공합니다.
체크리스트 작성을 위해 카테고리를 선택해주세요 | 선택된 카테고리로 AI가 체크리스트를 추천해줘요 | AI가 추천한 목록들로 개인 체크리스트를 만들어요 |
---|---|---|
여러명과 동시에 체크리스트를 작성하기 위해 동시편집 기능을 구현하였습니다.
동시편집은 CRDT 알고리즘 중에 RGATreeSplit 방식을 채택하였습니다.
개인 체크리스트를 함께 작성하도록 변경할 수 있어요 | 친구를 초대하여 체크리스트를 같이 작성할 수 있어요 | 동시편집시 현재 편집중인 친구의 위치를 알 수 있어요 |
---|---|---|
- [동시편집] CRDT vs OT
- [동시편집] 왜 RGATreeSplit 방식을 채택하였나?
- [동시편집] ID 부여 방식
- [동시편집] Tree 방식에서 밸런싱
- [동시편집] 자소분리 문제 해결과정
-
🔗 서버 다중화: Redis의 Pub/Sub 모델을 활용하여 서버 다중화를 구현하고, 효율적인 트래픽 분산 및 높은 확장성을 실현했습니다.
-
🔄 실시간 데이터 스트리밍: 앱에서는 CRDT를 활용하여 실시간으로 체크리스트를 업데이트하고, 서버는 Redis의 list 자료구조를 이용해 데이터 어레이를 모두 유지하여 사용자의 연결의 끊어져도, 문서에 대한 실시간 최신 상태를 유지합니다.
-
⚡ 응답 시간 최적화: DB에서 카테고리별로 캐싱된 데이터를 활용하여 Clova Studio API 응답 시간을 단축했습니다.
-
🛠 캐싱 파이프라인: Pipe & Filter 아키텍처를 적용하여 순차적 데이터 처리와 Redis Pub/Sub을 통한 효율적인 데이터 관리를 구현했습니다.
-
📊 실시간 모니터링: 프로덕션 환경에서 서버 상태를 모니터링하고 장애를 신속하게 관리할 수 있는 관리자 페이지를 구축했습니다.
-
📈 데이터 관리 및 로깅: Redis를 통해 시스템 로그를 관리하고, 캐싱 데이터 생성 및 평가 파이프라인을 트리거할 수 있는 기능을 통합했습니다.
admin-page.mp4
번호 | 제목 | 키워드 |
---|---|---|
1 | CRDT vs OT | CRDT |
2 | 왜 RGATreeSplit 방식을 채택하였나? | CRDT |
3 | ID 부여 방식 | CRDT |
4 | Tree 방식에서 밸런싱 | CRDT |
5 | 자소분리 문제 해결과정 | CRDT |
6 | 딥링크로 체크리스트 초대하기 | 딥링크 |
7 | 프레임워크 vs 라이브러리 | 모듈 |
8 | 소켓통신: Any와의 싸움 | 소켓 |
번호 | 제목 | 키워드 |
---|---|---|
1 | vpc 설정 feat. 서브넷 마스킹 | vpc |
2 | public, private 서버 인스턴스 생성 | 서브넷 |
3 | private 서버 인스턴스 NAT 게이트웨이 생성 | NAT |
4 | 로컬에서 ssh tunneling을 통한 private 인스턴스 속 postgresql 서버 접속 | ssh tunneling postgresql |
5 | github actions와 docker를 통한 nest 서버 배포 | github actions docker CI/CD |
6 | Logger 설정 - winston middleware to interceptor | Logging Winston |
7 | apple login | OAuth Apple Login |
8 | NestJS 서비스에서 CLOVA Studio API 연동 | CLOVA Studio API |
9 | Pipe & Filter 아키텍처와 인공지능 데이터 캐싱 | Redis Pub/Sub |
S006 | S008 | S021 | J050 | J080 |
---|---|---|---|---|
김성훈 | 김영균 | 위성철 | 박민성 | 양동석 |
iOS | iOS | iOS | Backend | Backend |