- 진행 날짜 - 2021.04.23 ~ 2021.05.28
- 주특기(Node.js) 목적 - 팀원들과 함께, 백엔드와 프론트 엔드의 역할을 맡아 주제를 선정하고 프로젝트를 진행하자
- 필수 포함 사항
- 깃 허브 링크 -
항해 99의 열두번째 주가 밝았습니다!
저희팀은 더 이상 일정을 지체할 수 없어서, 원래 구현하려고 했던 기능들을 많이 날리기로 했습니다. 자잘한 알림메시지라던가, 팝업메시지라던가, 1:1채팅방 이라던가요. 구현하려고 준비했던 기능들을 날리는게 너무 가슴 아팠지만, 지금 속도로는 도저히 시간을 못 맞출 것 같았습니다.
앞으로 해야 할 목록을 보니 프론트 쪽은 그 동안 채팅 때문에 너무 많은 일이 밀려있었고 뷰를 신경쓰지 못해 너무 홈페이지가 보기 안좋았습니다. 그래서 지금이라도 채팅방 보다는 뷰에 신경쓰기로 했습니다. 기본적인 뷰를 포함해, 반응형 웹, 로고, 아이콘 디자인, 팝업 디자인 등등...... 하나의 기능 때문에 너무 많은 기본 기능을 놓친 것 같습니다 ㅠㅠ 😭
프론트엔드에서 뷰를 작업할 동안 백엔드는 오류 메시지와 응답 메시지를 다듬기로 하였습니다. 작년에 회사 다닐때 배웠던 건데, 팝업 메시지나 오류 메시지를 이런 식으로 관리하면 좋은점은 공통적으로 뺄 수 있는 메시지는 공통으로 빼고, 그러한 메시지들을 한번에 변경하거나 관리할 수 있다는 점입니다. 이런 조그마한 프로젝트에서는 쓰나 안쓰나 상관 없긴 하지만, 정리하는 건 언제나 옳습니다!
그 다음은 필요없는 기능 잘라내면서 필요가 없어진 테이블을 정리해야 했습니다. 꼬여있던 ERD도 다시 정리하였고, deal 이라고 적혀있는 1:1 테이블을 모조리 없애버렸습니다. 그 다음, mysql의 스케줄러 기능은 이벤트를 사용하기로 했습니다. 등록해둔 글의 유효시간이 지나면 알아서 상태를 거래 종료로 바꿔야했는데 그러려면 해당 기능을 구현해야 했습니다.
CREATE EVENT IF NOT EXISTS exchange_Fail ON SCHEDULE EVERY 1 HOUR STARTS '2021-05-20 00:00:00'
ON COMPLETION NOT PRESERVE
ENABLE
COMMENT 'If the exchange is not made within the specified time, make it fail...'
DO
UPDATE saleItem SET status = 'SI03' WHERE status = 'SI01' AND deadLine <= now();
이런 식으로, 5월 20일 부터 들어오는 모든 게시글에 대하여 1시간씩 스케줄러가 돌면서 유효시간과 현재시간을 비교해 유효시간이 현재시간보다 작다면, 상태값을 바꿔버리는 이벤트를 만들었습니다. 해당 기능은 mysql 5.1 이상 버전에서만 사용 가능하답니다. 이러면 어렵게 노드로 스케줄러를 돌리지 않아도, 쉽게 sql에서 스케줄러를 돌릴 수 있답니다.
그리고 인증에서 사용하는 nodemailer 이메일 양식도 따로 폴더로 빼서 정리하기로 했습니다. 그래야 나중에 프론트엔드 쪽에서 디자인 css를 주셨을 때 쉽게 적용할 수 있고, 코드도 쉽게 알아볼 수 있으니까요.
프론트에서는 프론트 대로 정리하느라 고생하고, 백엔드도 오류 고치고 정리하느라 서로 고생하면서 요번주를 보낸 것 같습니다. 다행히도 채팅방 구현은 어느정도 끝나고, 디자인도 정돈했습니다. 이제 프론트 엔드에서 도메인을 사고 실제 서비스를 하면서, 페이스북 광고도 하고, 사용자 요구사항을 받는일만 남았습니다. (물론 터지는 오류는 계속 고쳐야 합니다 ㅠㅠ)
😀 배운 점
mysql 이벤트에 대해서 배웠고, 메시지를 정리하는 방법에 대해 알 수 있었습니다.
😙 느낀 점
매일매일 제가 일정을 제대로 관리하지 못한 것에 대한 대가를 받고 있는 느낌이 듭니다......
😭 아쉬웠던 점
다음에는 확실하게 쳐낼 기능은 쳐내고 꼭 필요한 기능만 구현한 후, 나머지 기능을 붙여야할 것 같습니다.
'항해 99 > WIL(Weekly I Learned)' 카테고리의 다른 글
[WIL13] 파이널 프로젝트 (5) (0) | 2021.06.02 |
---|---|
[WIL11] 파이널 프로젝트 (3) (0) | 2021.05.16 |
[WIL10] 파이널 프로젝트 (2) (0) | 2021.05.09 |
[WIL9] 파이널 프로젝트 (1) (0) | 2021.05.02 |
[WIL8] 미니 프로젝트(2) 및 최종 프로젝트 시작 (0) | 2021.04.25 |