
유닛 테스트 코드 오류 예시 설명 repositories 1. User Repository Unit Test 테스트하려는 테스트스위트 4가지가 정의 되어 있고 나머지는 통과가 됬는데 updateToken Method테스트에서 실패를 했다라는걸 간략하게 보여줌 2. User Repository Unit Test > updateToken Method 해당 테스트에서 에러가 난걸 강조해서 보여준다. 3. expect(received).toBe(expected) 둘을 서로 비교해주는 메서드인걸 주석으로 알려주며 아래의 예상값과 현재값이 담겨있다. Expected의 예상값은 "upload refreshToken" Received의 현재값은 {} 즉, 실패한 원인을 알려주고 어느 위치에서 에러가 낫는지도 친절하게 ..

P r o b l e m S3를 사용해서 이미지를 업로드하는 테스트를 하고 있었다. 해당 코드 로직을 다 짠뒤 인섬니아로 테스트를 하는데 this.client.send is not a function 이라는 에러메세지와 함께 에러가 생겼다. T r y 1. 버킷에 문제가 있나 싶어서 버킷을 뜯어봤다. • 구글링을 해보면서 버킷에 무슨 문제가 있는지 보니 AWS S3연결할때에 어떤 사람은 버킷을 생성한뒤 정책생성기로 정책을 생성한뒤 정책 편집기에 설정해 주는 방법을 사용했다. 자세히 알고 있진 않지만 그 과정이 퍼블릭액세스 차단 설정을 활성화하여 퍼블릭 액세스권한을 부여하지 않는 과정인데 처음 시작할때 모든 퍼블릭 액세스 차단을 했기 때문에 하지 않아도 되는것 같았다.(같은 맥락이니까) 버킷은 문제 없이 ..

문제 게시물의 댓글을 조회 하는 과정에서 프리즈마 에러가 떳다. 시도 위 처럼 게시물의 아이디를 못가져오는 것 같아서 받아오는 게시물을 문자열로 받아오나 싶어서 number로 변환을 시켜주었다. 똑같이 에러가뜬다.. 자세히 읽어보니 타입을 BigInt라고 설계했었던걸 알수가 있었다. 타입을 BigInt로 지정해주었다. SyntaxError가 발생하였다.. 다시 잘 읽어보니 req.param은 객체형태로 전달되는데 그 객체를 BigInt로 변환하려고 했기 때문에 발생한걸 알수 있었다. 해결 객체 자체의 값을 꺼내와서 변환해준뒤 실행해주었다. 값이 잘 나오는걸 확인할 수 있다.

Swagger란? 개발한 Rest API를 편리하게 문서화 해주고 프론트 와의 협업에서도 쉽게 API를 호출하고 테스트 할수 있게 해줍니다. 즉, UI를 이용하여 API를 쉽게 테스트하여 개발자가 문서를 작성하지 않아도 되므로 개발 시간을 단축할수있고 API 버전 관리가 용이해지고 다양한 API문서를 통합할 수 있습니다. 패키지 설치 // yarn 패키지 yarn add swagger-ui-express yarn add swagger-autogen // npm 패키지 npm install swagger-ui-express npm install swagger-autogen 모듈 설정 및 경로 설정하기 //app.js import swaggerUi from "swagger-ui-express"; import..

개인서버에서 개발할 때는 잘돌아가기만 하면 즉, 로직을 잘 작성했는지는 개발을 하면서 확인 할수 있습니다. 가장 쉬운 방법으로 console.log()로 찍어가면서 데이터다 잘 들어오고 잘 사용되는지 확인 하는 방법이 있습니다. 하지만 하지만 운영서버( 프로덕션 서버 )에서는 한사람만 사용하지 않습니다. 10명, 100명, 1000명도 사용할수 있게 됩니다. 이렇게 되면 어느정도의 사람이 사용하면 문제가 생기는지, 서버의 허용치 테스트를 해야합니다. 기능을 잘 만든다해도 1001명이 들어왔을때 오류가 생긴다면 없는것이나 마찬가지이기 때문입니다. 이렇게 성능 테스트를 할때 실제 유저의 트래픽이 들어오는것처럼 테스트를 할수 있는 도구는 많습니다. 그중 하나인 k6로 테스트를 해보겠습니다. 저는 윈도우를 사용..

문제발생 router.post("/sign-in", async (req, res) => { // 이메일과 비밀번호로 로그인 요청 const { email, password } = req.body; // 해당 이메일을 가지고 있는 유저가 있는지 검색 const user = await prisma.users.findFirst({ where: { email } }); // 없다면 존재하지 않는 이메일입니다. if (!user) { return res.status(401).json({ message: "존재하지 않는 이메일 입니다." }); // 이메일은 있지만사용자가 입력한 비밀번호와 암호화된 비밀번호가 일치하지 않는다면 에러문구와 함께 return } else if (!(await bcrypt.compare..

node.js로 amazon RDS를 VS CODE에 연결하기 위해 설정을 다하고 서버를 켰습니다. 서버를 열자 서버가 연결되었다는 문구가 떠서 다 연결이 됐구나 싶었는데 갑자기 node : events: 492 throw er; // Unhandled 'error' event 에러가 떳습니다. 그 밑에 에러 코드를 읽어 보면 연결이 Timedout이 됐나고 나옵니다. 설정한 코드와 비밀번호가 맞지 않나? 싶어서 다시 다 적어줬지만 그대로 나와서 뭐가 문제지 하면서 살피는 도중 Docker의 mysql포트번호와 로컬의 mysql의 포트번호가 같았을 때 충돌이 난 경험이 있어서 이번에 RDS만들 때 포트번호를 3306 기본 값으로 설정한게 아닌 3308로 설정한걸 깨닫고 mysql 연결설정해주는 곳에 포트..
자바스크립트에서 변수는 원시 값과 참조 값이 있습니다. 원시 값에는 string, number, bigint, boolean, undefined, symbol이 있습니다. 참조 값은 위 원시값을 제외한 나머지는 다 참조타입입니다.(배열, 객체, 함수가 대표적) 참조 타입은 변수에는 실제 데이터가 아닌 데이터가 저장된 메모리 위치(주소)를 할당받습니다. 예를 들어, 객체를 a 변수에 할당하고 나서 b 변수에 a를 복사하면, b는 a와 동일한 메모리 위치를 참조하게 됩니다. 따라서, a나 b 중 하나에서 객체 내부의 값을 수정하면, 다른 변수에도 동일한 메모리를 참조하는 관계이므로 수정 내용이 반영됩니다. 이러한 특성은 객체나 배열과 같은 참조 타입의 변수들이 가변적인(mutable) 특성을 가지게 됩니다...