Git Product home page Git Product logo

todo99's Introduction

☑ Todo 99 - Backend

99일 단위의 프로젝트 생성, todo list를 관리할 수 있습니다.

링크 (todo99)



👨‍💻 프로젝트 기간 & 팀원



🎬 시연영상

todo99 시연영상

🎨 구동 이미지

디자인

🔨 개발 도구

  • Backend

    • Node.js
    • Express
    • MongoDB
  • Frontend

    • React


📖 핵심기능 && 트러블 슈팅

  • 로그인, 회원가입

    • JWT를 이용하여 로그인과 회원가입을 구현하였습니다.
    • 아이디와 닉네임의 중복확인이 가능합니다.
  • Todo list, Feedback CRUD

    • 미들웨어를 이용, 지나간 일자의 투두리스트는 수정이 불가합니다.
    • 투두리스트 체크는 당일 날짜의 리스트만 가능합니다.
    • 완성한 todo list 개수를 db에 저장, 메인 화면에서 시각효과를 주었습니다.(메인 페이지 색상변화)
  • 트러블슈팅

new Date()객체 관련 문제
로컬의 node에서 new Date()로 시간객체 생성 후 getMonth, getDate등으로 값을 받아오면 한국 시간 기준으로 생성이 된다.
그러나, EC2의 node에서 동일하게 실행을 하면 UTC 기준으로 생성이 되어 한국 시간과 차이가 생겨 동작에 문제가 생겼다.
원인은 EC2 서버의 Timezone이 UTC로 설정되어 있기 때문이다.

해결 방법에는 두 가지가 있다.
1. EC2 서버의 Timezone을 KST로 번경하기
2. 영국 시간을 받아서 한국 시간으로 변경하기

우리는 해결할 당시 1번 방법을 알지 못해 2번 방법으로 해결했다.
UTC 시간을 받고, 그 시간에 한국 시차만큼 더해서 한국 시간을 구한 것이다.
하지만, 이렇게 해결하면 추가적인 로직과 연산과정이 필요하기 때문에, 앞으로는 1번 방법을 사용하는 것이 올바른 해결법으로 보인다.
github 페이지에 작업물들을 공유하면서 발생한 보안 문제
JWT의 비밀키와, 비밀번호 db 등록시 사용한 난수의 무분별한 노출

해결방법
1. .env파일 생성 후 JWT의 비밀키와, 비밀번호 db 등록시 사용한 난수를 .env에 등록
2. 해당파일을 .gitignore에 등록하여 작업 진행시 커밋되지 않게 만듬.
3. .env파일의 경우 서버 관리자만 공유하도록하여 작업물들의 수정.


API

go

💻 개인회고

  • 공성훈
회고 본문 수정 또는 블로그 링크


  • 김희경

회고 본문 수정 또는 블로그 링크


  • 이건희

회고 본문 수정 또는 블로그 링크


  • 이성진

회고 본문 수정 또는 블로그 링크


  • 정연재

회고 본문 수정 블로그 링크


todo99's People

Contributors

isthislee avatar gimgit avatar johnberman-j avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.