엘리스 AI트랙 4기/회고

인공지능 웹서비스 프로젝트 4주차 회고

남쪽마을밤송이 2022. 6. 26. 21:57

 요약 

 총 프로젝트 기간 

2022.05.31 ~ 07.03

 4주차 

2022.06.20 ~ 06.26

 역할 

백엔드, 근데 이제 필요시 프론트엔드를 곁들인...

 완료 항목 

  • Sequelize로 영양제 일정 Web Push에 필요한 데이터 불러오는 쿼리 짜기
  • 가져온 데이터 정제해서 Web Push 알림 보내기
  • node-schedule 사용해서 cron 기능으로 30분에 한 번씩 자동 푸시 알람 가도록 설정
  • 모바일 접근성 위해 QRcode로 구독 버튼 접근할 수 있도록 변경
  • Web Push 알림에 Checklist 버튼 추가해서 오늘의 체크리스트 작성할 수 있도록 변경
  • 위 두 기능을 위한 모바일 겸용 프론트 페이지 제작
  • 위 두 기능에서 URL로 JWT Token을 보낼 때 AES 암호화/복호화 하는 과정 추가
  • device_token 만료 후 Web Push 알림시 서버 중단 문제 해결
    (문제 되는 토큰 정보 DB에서 삭제)
  • 토큰 만료시 nodemailer로 재구독 요청하는 정보 포함한 메일 전송

 회고 

 1. 구현하면서 어려웠던 부분 

- Web Push 대장정

이번주는 정말 Web Push로 시작해서 Web Push로 끝났다고 해도 과언이 아니다. 그래도 나름 그 안에서 기능을 디테일하게 설정하기 위해 crontab 설정이나 QRCode라던지 AES 암호화, 푸시 클릭시 action 추가 등을 구현했는데, 그러면서 새로운 걸 많이 해봐서 재밌었던 것 같다. 관련 내용은 블로그 소재로 아주 풍족해서(?) 프로젝트 끝나고 잊기 전에 바로!!! 하나씩 작성해봐야겠다.

 

그래서 이번주에서 제일 어려웠던 것도 역시 Sequelize를 이용해서 Push Data에 필요한 데이터를 전부 가져오는 게 제일 고민이었다. Sequelize 문법을 새롭게 알게 된 것도 있었고, 테이블을 다섯 개나 탐색해야 해서 복잡하기도 복잡했다. 그래도 이번 기회에 좀 inner join과 outer join의 차이를 알게 됐던 것 같다.

 2. 오프라인 모임 

이번주에는 팀원들과 오프라인으로 만나 작업을 진행하기도 했다.

월~화요일은 나와 계속 온라인으로 같이 작업했던 백엔드 팀원과 만나 코딩을 했고, 수요일은 다른 팀 팀원이지만 같은 엘리서, 목~금요일은 우리팀 프론트엔드분과 같이 작업했다.

그래서 심심할 일이 없었고 밖에서 밥도 사먹으며 즐거운 코딩 생활을 했다.

오프라인으로 만나 코딩을 진행해본 결과 나는 정말 일이든 취미든 다른 사람과 소통하며 진행하는 게 잘 맞다는 걸 다시 한 번 깨달았다. 집중력과 효율은 물론 나의 감정과 멘탈에도 더 좋다.

그렇다고 약속이 없는데 혼자 나가는 편도 아니라서 빨리 취업해서 주 5일 강제 외출하며 피곤하지만 행복해하고 싶다.

 3. 남은 할 일 

Web Push 관련 기능은 거의 마무리 돼서 기능 테스트와 자잘한 버그, 이슈들만 수정하면 될 것 같다.

다만 이 기능이 배포되면 http에서는 작동하지 않기 때문에 꼭!!! https를 위해 SSL을 적용해야 하는데 엘리스가 또!!!!! 443 포트 사용할 수 있다 해놓고 VM에서 포트스캔 해보면 코빼기도 안보여서 문의를 넣어둔 상태이다...

저번에도 이러다가 이번에 변경해주기엔 시간 부족하다고(?!) 포기하라 했는데 이번에도 그러면 내가 2주간 구현한 web push 기능을 날려먹는것 + 무책임하다고 생각해서 정말 강력하게 요구할 생각이다.

포트 열어주고 다른 백엔드 팀원분이 테스트 배포 완료하시면 나는 SSL을 적용하고 웹과 모바일(Android)에서 테스트를 해봐야 한다.

 

추가로 이번주는 최종 발표를 위한 발표 자료도 준비해야 한다. 중간 발표 때 작성한 부분을 그대로 쓸 수 있는 부분도 있지만 기능 구현 플로우는 신경써서 작성해야 한다. 그리고 시연 영상..! 최종 발표는 신기하게 바로 데모를 보여주는 것이 아니라 시연 영상(2분 가량)을 준비해와서 그걸 틀어놓고 설명하라고 한다. 2분이고 미리 준비하는 영상이면 기능 순서와 확대해서 보여줄 부분을 신경써서 녹화해야겠다.

 4. 마무리 

벌써 일주일밖에 안 남은 마지막 프로젝트! 4주가 어떻게 지나갔는지 모르겠는데 확실한 건 정말 빠르다... 생각해보면 그 중에 1주는 기획이었으니까 제외하고 3주동안 첫 1주일은 환경 세팅, 기술스택 적응, 로그인/회원가입/정보수정과 같은 기본적인 CRUD 기능 구현이었고 남은 2주는 Web Push와 함께했다...ㅎㅎ

 

인공지능 정확도가 좀 아쉽지만 그래도 우리끼리 만족하며 마무리하고 실제 서비스화 시켜보고 싶다. 아이디어도 괜찮은 것 같은데 피드백을 반영해서 수정해나가고 그런 경험해보고 싶은 생각! 사실 내가 영양제를 또래에 비해 많이 먹어서 생각난 아이디어였는데 내가 제일 잘 쓸지도...^_^

 

어쨌든 남은 기간도 화이팅이다!!! 마지막 주차 회고 쓰며 홀가분하기를😊