목록항해99/FinalProject (3)
Día de Ruru
문제점 기존에 사용하던 winston을 사용한 에러로그확인 방식은 서버 컴퓨터에 직접 들어가서 해당 날짜의 에러 로그 파일을 찾은 후 에러 로그를 확인해야 하는 부분이 너무 번거롭고 불편했다. ✔ 해결방법 클라우드 기반의 팀 협업 툴인 Slack을 이용해서 팀원 전체가 실시간으로 서버 에러를 모니터링 할 수 있게 적용했다. ✔ 도입 먼저 Slack에 서버를 추가하고 incomming webhooks 을 설치한 후, URL을 발급받았다. 👉 토큰을 발급 받아서 사용할 수도 있지만 incomming webhooks은 메세지 전송에 특화되어 있어서 더 다양한 기능을 시도해 볼 수 있다. 그리고 애초에 토큰이 없기 때문에 토큰 탈취로 인한 정보 유출의 가능성이 아예 없다. URL 을 발급 받았으면 Slack에서..

문제점 mypage에서 파일 목록을 조회할 때 다중 파일일 경우, 아래의 사진처럼 fileName, fileLocation의 객체로 이루어진 배열로 보내달라는 프론트엔드의 요청이 있었다. 초기에 fileName과 fileLocation 을 조회할 때 아래처럼 GROUP_CONCAT으로 객체 모양의 문자열을 만든 후 Split()으로 배열로 만들어주고 객체 모양의 문자열인 요소들을 map()으로 하나씩 가져와서 JSON.parse()로 진짜 객체로 바꿔주었다. 하지만 이 경우 Sequelize의 문자열 제한 때문에 파일을 여러 개 올리게 되면 GROUP_CONCAT에서 문자열의 뒷부분이 생략되어서 조회되는 문제점이 있었다. [ Sequelize.literal( "(SELECT GROUP_CONCAT('{\..

문제점 우리 프로젝트는 회사를 대상으로 한 b2b 프로젝트이다보니 최초에 회사가 가입하는 부분이 필요하다. 회사가 가입할 때 입력하는 정보를 각각 companies , teams, users 테이블에 정보를 나눠서 입력해주기 위해서 하나의 API에 create 명령어가 세개 들어가게 되었다. 그런데 해당 명령어들이 순차적으로 진행되다보니 3개중에서 하나의 명령어에서 에러가 생겨도 그 전에 실행되었던 명령어는 성공이 된 상태이기 때문에 다시 회원가입을 하려고 할 때, companies에 성공적으로 입력된 값 때문에 이미 가입된 회사라는 에러메세지를 반환하게 된다. 트랜잭션 도입 순차적으로 동작하는 3개의 명령어를 트랜잭션 도입으로 단일 작업처럼 실행되게 하면 문제를 해결할 수 있을 것 같다. 트랜잭션(Tr..