오늘 한일
- 대화방 확정 API를 작성하였습니다. 모임 일정을 모두 구성하고, 만나기 직전 갑작스럽게 방장이 모든 유저를 추방하거나, 모임 구성원이 나가는 상황을 방지하고 싶었고, 그렇게 해서 만들어진 것이 확정 기능입니다. 간단하게 게임에서 모든 사용자가 준비하고, 방장이 시작하는 개념과 동일하게 구성하였고, 방장이 마지막으로 확정을 눌렀을 경우 모임의 수정, 삭제, 추방, 퇴장 기능이 동작하지 않도록 구현하였습니다.
- AWS SES 한도를 200 > 50,000개까지 확장하였습니다. 실전 프로젝트의 사용자가 어느 정도인지는 알 수 없지만, 하루에 200개라는 메일 한도는 서비스하기에는 너무 부족한 것 같았습니다. 처음 AWS 고객 센터에 한도 확장에 대해 문의하였을 때는 확실한 사유를 작성하지 않았다고 반려를 당했었고, 두 번째로 넣은 문의에서는 실전 프로젝트의 전반적인 내용과 만약 사용자들이 동시에 많이 접근하게 될 경우 이메일 인증이 동시다발적으로 발생할 수 있다는 설명을 하였습니다. 문의를 한 지 1~2일이 지난 오늘 아마존 측에서 한도 확장을 해주었고, 다른 메일 서버를 구현해야 한다는 걱정을 내려놓을 수 있었습니다.
- MySQL에서 View를 구성하였습니다. 기존에는 모임을 검색할 때 세부적인 내용까지 Raw Query에 삽입해 사용하였지만, 확정 기능을 넣으면서 테이블을 수정할 때마다 모든 API를 수정하는 것이 불필요하다고 생각하였습니다. 생각이 듦과 동시에 모임을 조회하는 부분에서 동일하게 사용하는 부분을 View로 생성하였고, Server에서 사용하는 Raw Query 부분에서 간결한 코드를 구현할 수 있었습니다. 마지막으로 마음에 걸리는 부분은 VIEW를 사용할 경우 특정한 Express Method에서는 쓸모없이 버려지는 부분이 발생할 수 있는데 이러면 조회에 대한 부하를 추가로 주는 것이 아니냐는 생각을 하였습니다.
- 배포한 Route 53 React 서버에서 Node.js Socket HTTPS에 접속이 되지 않고 있습니다. Route53에서 새로운 도메인을 발급받고, Build한 React 서버에 HTTPS를 적용하였습니다. 하지만 Node.js 서버와 접속할 때 API 통신은 정상적으로 진행되지만, Socket 접속이 되지 않았습니다. 이유를 알 수 없었고, Socket HTTPS 서버와 연결을 하려고 했을 때 ESL 에러가 발생하였고, Socket 서버에서 HTTPS 인증서를 연동하지 않아서 발생하는 문제인 것 같지만, 모든 인증서를 연동하였음에도 동일하게 문제가 발생하였고, 아직 해답을 찾지 못하고 있습니다.
- MySQL에서 max allowsedpacket 에러가 발생하였습니다. Sequelize Raw Query를 이용해 MySQL을 조회할 때 발생하는 문제였는데, DB 서버에 전달하는 패킷의 양이 많아서 발생하는 것 같았습니다. 우선은 Raw Query가 부하가 얼마나 걸리는지, 코드 길이가 너무 긴 것이 아닌지 등 문제 상황에 대해 고려하고 있으며, 아직 수정 중에 있습니다.
업무 리스트
- 초대된 리스트 SQL 및 API 구현 [10:34]
- 대화방 확정 논리 구조 수정 [14:00]
- 대화방 확정 API 예외 조건 추가 [15:40]
- View 기반 Posts 조회 구현 [16:49]
- View 기반 모임 입장 및 퇴장 예외 구현 [17:57]
- 대화방 강퇴 API 구현 [17:57]
오늘 배운 것
- MySQL VIEW
- AWS SES
- Socket HTTPS
- max allowsedpacket 에러
내일 할 것
- 코딩 테스트 연습
- 프로젝트 배포
- 팀장 주간 회의
- max allowsedpacket 에러 수정
'항해99 > TIL' 카테고리의 다른 글
2021-08-21 항해99 TIL (0) | 2021.08.21 |
---|---|
2021-08-20 항해99 TIL (0) | 2021.08.21 |
2021-08-18 항해99 TIL (0) | 2021.08.19 |
2021-08-17 항해99 TIL (0) | 2021.08.18 |
2021-08-16 항해99 TIL (0) | 2021.08.16 |