Toy-Blind
0. 목표
- 블라인드 앱을 모방해 보자.
-
1. 기술스택
- Main:
Vue, Vuex, Node.js, MySQL, Redis: Pub/Sub, JWT
- Module:
Express, Helmet, Bcrypt, Multer, Axios, NodeMailer, Socket.io
- Infra:
Linux, Docker, GCP: VM, Storage, Cloud Function(Img Resizing)
2. 기능
- 회원 CRUD
- 게시판 CRUD
- 좋아요 on/off
- 댓글 CRUD
- 대댓글 CRUD
- 1:N 채팅
- 쪽지 보내기
3. 아키텍처
-
- JWT 토큰을 통해 인증/인가 및 로드벨런싱된 채팅 서버간의 pub/sub 을 위한 Redis.
4. 개발과정
- 초반설계 및 Bash 쉘 스크립팅
- Vue 프론트 따라 만들기
- 회원가입(메일인증) / 인증(JWT) / 로그아웃 - NodeMailer, JWT, Redis, Bcrypt, MySQL, Vuex
- 게시글 CRUD - 무한스크롤, 이미지 리사이징, GCP: Storage, Cloud function
- Plugin 설정과 Vuex 모듈화, 단순 Socket 채팅방 구현
- 채팅 소켓 로드벨런싱 - HAProxy, Docker, Redis-pubsub, ShellScript
- 댓글 구현 및 문제점과 의문
- 대댓글 구현하기 - 디비 성능 개선기
- ESLint 적용하기
- Auth 서버 TypeScript 적용 및 모듈화 + TSLint
- API-Gateway 구현과 Buffer 처리
개발중 ...
5. 어떻게 실행하나요?
License
This is released under the MIT license. See LICENSE for details.