Skip to content
This repository has been archived by the owner on Nov 14, 2021. It is now read-only.

1ilsang/Toy-Blind

Repository files navigation

Toy-Blind

0. 목표

  • 블라인드 앱을 모방해 보자.
  • Sample image

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. 아키텍처

  • architecture
  • JWT 토큰을 통해 인증/인가 및 로드벨런싱된 채팅 서버간의 pub/sub 을 위한 Redis.

4. 개발과정

  1. 초반설계 및 Bash 쉘 스크립팅
  2. Vue 프론트 따라 만들기
  3. 회원가입(메일인증) / 인증(JWT) / 로그아웃 - NodeMailer, JWT, Redis, Bcrypt, MySQL, Vuex
  4. 게시글 CRUD - 무한스크롤, 이미지 리사이징, GCP: Storage, Cloud function
  5. Plugin 설정과 Vuex 모듈화, 단순 Socket 채팅방 구현
  6. 채팅 소켓 로드벨런싱 - HAProxy, Docker, Redis-pubsub, ShellScript
  7. 댓글 구현 및 문제점과 의문
  8. 대댓글 구현하기 - 디비 성능 개선기
  9. ESLint 적용하기
  10. Auth 서버 TypeScript 적용 및 모듈화 + TSLint
  11. API-Gateway 구현과 Buffer 처리

개발중 ...

5. 어떻게 실행하나요?

  • Redis, MySQL 이 설치되어 있어야 합니다.
  • MySQL 테이블 정보는 덤프파일을 사용해 주세요.
  • 통합 커멘드 라인을 지원합니다
    chmod +x cmd.sh
    sh cmd.sh [target] [option]
    cmd1 png cmd2 png cmd3 png
  • frontend / backend 디렉토리별 package.json 에 별도의 실행 스크립트가 있습니다.

License

This is released under the MIT license. See LICENSE for details.

About

TeamBlind 따라해보기

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published