7주차에는 1주일간 클론 코딩을 진행했다.
우리 팀에서는 socket.io를 이용해 노션을 클론코딩 하기로 했다.
페이지 내에 접속하는 모든 유저가 공동으로 문서를 실시간 편집하도록 해야 했기 때문에, 우리는 UDP통신을 가능하게 해주는 socket.io 라이브러리를 사용하게 되었다.
사실, 백엔드에서는 통신에 필요한 코드가 전혀 어렵지 않았다. 실시간 문서 공동 편집을 위한 대부분의 기술적 처리는 프론트에서 이루어졌고, 백엔드에서는 랜던 닉네임, queue 자료구조를 이용한 페이지 저장 등의 비즈니스 로직을 구현하는데 힘을 쏟았다.
이 프로젝트를 하면서 가장 좋았던 점은, 내가 해보고 싶었던 기술을 사용해 보았다는 것, 그리고 redis라는 새로운 in memory cache db를 다뤄보았다는 점이다.
아래는 깃허브 백엔드 레포지토리를 공유한다.
GitHub - bla-bla-Notion/backend
Contribute to bla-bla-Notion/backend development by creating an account on GitHub.
github.com
프로젝트에서 챌린징 했던 부분은 til로 블로그에 짧게 남겨두며 프로젝트를 진행했다.
[7주차] [20221226] Notion clone 프로젝트 DB 설계
[7주차] [20221226] Notion clone 프로젝트 DB 설계
1주일 노션 클론 팀 챌린지 1주일 내에 완성하기 위해 프로젝트 스코프를 최대한 간결하게 잡았다. 소켓 사용을 주 목적으로 하여, 다른 것은 다 빼고, 실시간 통신 기능을 구현하는데 초점을 맞
dev-jn.tistory.com
[7주차] [20221227] Redis Node.js에서 활용하기
[7주차] [20221227] Redis Node.js에서 활용하기
Redis 설정하기 require('dotenv').config(); const { createClient } = require('redis'); console.log(process.env.REDIS_USERNAME); const redisClient = createClient({ url: `redis://${process.env.REDIS_USERNAME}:${process.env.REDIS_PASSWORD}@${process.env.RE
dev-jn.tistory.com
[7주차] [20221228] queue 자료구조를 이용하여 autoSave 구현
[7주차] [20221228] queue 자료구조를 이용하여 autoSave 구현
이번 주차에 진행한 노션 클론 챌린지에서는, 1시간 단위로 페이지에 있는 글을 자동 저장하고, 이후 6시간 동안만 조회가 가능하도록 구현하기로 했다. db에는 항상 총 6개의 페이지가 저장되고,
dev-jn.tistory.com
'항해99_10기 > 105일의 TIL & WIL' 카테고리의 다른 글
[8주차] [20220103] nest.js 맛보기 (0) | 2023.01.04 |
---|---|
[8주차] [20230102] 실전 프로젝트 적용 기술 스택 조사 (0) | 2023.01.02 |
[8주차] [20221231] 실전 프로젝트 기획 (0) | 2023.01.01 |
[7주차] [20221229] 1주일 notion clone 챌린지 회고 (0) | 2022.12.30 |
[7주차] [20221228] queue 자료구조를 이용하여 autoSave 구현 (0) | 2022.12.29 |