QuickThink, 프로젝트를 톺아보며

Alpha, Orderly·2024년 1월 2일
0

Quickthink

목록 보기
1/1

본 글은 경북대학교 소프트웨어 공학 수업중 진행한 프로젝트를 회고 및 정리한 글입니다.

링크

Frontend : https://github.com/capstone-3-team/frontend
Backend : https://github.com/capstone-3-team/backend

QUICKTHINK

  • QUICKTHINK 는 복습지향적 학습 블로그입니다.
  • 유저는 Markdown language로 개별 글을 작성할수 있고,
    개별 글은 마지막으로 학습한 일자를 트래킹할수 있습니다.
  • 복습 이후 최종 학습 일자를 유저가 스스로 갱신할수 있어, 마지막으로 자신이
    확인한 일자를 정리할수 있습니다.
  • 구글 로그인으로 사용 가능합니다.

개발 환경

FRONTEND

  • React JS와 Recoil을 사용했습니다.

BACKEND

  • 스프링부트를 사용했습니다.
  • 데이터베이스로는 MySQL을 사용했습니다.

기능 설명

1. 글 작성

  • 글은 제목, 내용, 해시태그로 구성됩니다.
  • 글 작성시 오른쪽에 마크다운 결과의 미리보기가 제공됩니다.
  • 글 작성시 Katex 문법을 사용한 수식의 작성도 가능합니다.
  • 하단의 해시태그에서 + 버튼을 눌러 글의 대표 주제를 적은 해시태그를 작성할수 있습니다.
2. 글 조회

  • 메인 화면에서 자신이 작성한 모든 글을 확인할수 있습니다.
  • 좌측엔 자신이 작성한 모든 해시태그를 확인할수 있으며, 이를 클릭해 특정 해시태그를 포함한 글만 조회할수 있습니다.

  • 개별 글 클릭시 삭제 혹은 수정할수 있으며,
    복습 완료 버튼을 눌러 마지막으로 복습한 시간을 추적할수 있습니다.

  • 상단의 검색창을 통해 다른 유저들을 검색할수 있고, 이들이 작성한 글 또한 열람할수
    있습니다.
3. 프로필 작성

  • 유저 검색시 나올 프로필 설명을 작성하거나 로그아웃 할수 있습니다.
4. ChatGPT

  • 컴퓨터 공학 교수로서 답하도록 프롬프팅 되어있는 ChatGPT 에게 질문 및 답변을 바로 카드로 작성 가능합니다.

개발시 어려웠던 점과 해결

1. 테스팅 작성

  • 항상 팀프로젝트를 진행할때 테스팅은 뒷전으로 하였는데,
    이번 프로젝트는 개인적 실력향상을 위해 테스팅을 진행하였습니다.
    테스팅 대상은 백엔드이며, Mockito를 사용하였습니다.
  • 테스팅 대상이 될 클래스를 제외한 기타 클래스의 동작을 설정하고 테스트 하는
    과정으로 진행되었습니다.

2. SSL 적용

  • Lets Encrypt를 전부 사용하고자 했으나, DNS 인증과정에서 계속 문제가 생겨
    GoGetSSL이라는 기타 업체를 사용해 구현하였습니다.
  • 이 과정에서 SSL 인증과정이 어떻게 일어나는지에 대한 학습을 할수 있었습니다.
  • CNAME을 지정하거나 특정 접속에 파일을 전송하게 하는 방식이였습니다.

3. 협업 과정에서의 문제

  • 프로젝트 극 초기에 팀장과의 마찰로 인해 팀장이 이탈하는 일이 있었습니다.
    • 본인의 과하게 적극적인 태도와 팀장의 보수적이고 적당히 하려는 입장이
      마찰이 되어 일어난 사건이였습니다.
  • 교수님과의 상담 이후 제가 팀장자리를 맡아 과하게 적극적인 태도를 버리고
    팀원들과의 꾸준한 개인 상담과 진행 관리를 통해 성공적으로 프로젝트를
    마무리 할수 있었습니다.
  • 이를 통해 혼자만 너무 열심히 하려고 하는것은 남에게 피해를 줄수 있을을
    깨달았습니다.

개선하고 싶은 점

  1. Expire 되지 않는 토큰을 통해 사용자 계정을 관리하고 있는데 이를 JWT로 하면 어땠을까 싶습니다.

Reference

profile
만능 컴덕후 겸 번지 팬

0개의 댓글