본문 바로가기

분류 전체보기

(122)
나의 개발일지 20220105 TIL(Today I learned) - 팀프로젝트 Today I learned 리뷰를 작성하는 기능을 구현하는 부분에서 문제가 발생을 했다 /api/orders/:orderId url에서 router가 실행이 되고 /review url에서 review컨트롤러 미들웨어가 실행이 되도록 구성을 했는데 review컨트롤러에서 orderId 파라미터를 받아오지 못하고 중간에 누락되는 문제가 발생했다 이 문제를 해결하기 위해서 파라미터가 들어가는 url을 review컨트롤러 미들웨어가 실행되는 부분의 url로 가도록 /api/orders/review/:orderId 로 API 설계를 바꾸고 진행을 했다 이런 식으로 수정을 하고 다시 테스트를 해보니까 정상적으로 orderId 파라미터를 review컨트롤러에서 받아서 사용할 수 있었다 이 문제를 해결하면서 알게 된..
나의 개발일지 20220104 TIL(Today I learned) - 팀프로젝트 Today I learned 오늘은 supertest와 jest를 이용해서 api가 잘 작동하는지 테스트 데이터베이스를 만들어 테스트환경으로 세팅하고 동작하는 통합 테스트를 진행했다 처음에는 --coverage의 옵션을 주고 테스트 코드를 진행한 상태를 보여주는 상태창을 보고 100을 채워야 하는구나 생각을 하고 테스트 코드를 진행했는데 점점 테스트 코드를 위해 나의 로직을 바꿔야 하는 문제가 발생했다 그래서 무작정 테스트 코드를 하는 것보다 테스트 코드를 하는 이유와 방식에 대해서 더 학습을 했다 테스트 코드는 나의 생각으로 나의 로직이 제대로 동작하는지 로직이 괜찮은 로직인지 확인을 하기 위해서 테스트 코드를 작성하고 테스트를 진행한다고 생각이 든다 테스트 코드만을 위한 로직 변경은 매우 안 좋은 행..
나의 개발일지 20220103 TIL(Today I learned) - 팀프로젝트 Today I learned 오늘은 팀프로젝트 테스트 코드를 작성하는 작업을 진행했다 테스트 코드를 작성을 하면서 문제가 발생을 했다 req.params를 못찾는 문제가 발생을 했다 이 문제를 해결하기 위해서 3시간을 보낸거 같다 해결을 해보기위해서 req.params를 지워봤는데 당연하게 문제되는 부분을 지웠으니까 작동을 했다 여기저기 콘솔로그를 찍어서 테스트를 해보아도 문제를 해결하기 어려워 보였는데 정말 쉽게 해결을 해버렸다 jest를 사용하면서 더미 리퀘스트 객체를 만들고 리퀘스트를 사용하는 지점에서 리퀘스트의 속성을 사용할 수 있게 해줘야하는데 그 부분에서 params를 선언해주지 않았다 let mockOrdersService = { getOrderRequests: jest.fn(), getOr..
나의 개발일지 20220102 TIL(Today I learned) - 팀프로젝트 Today I learned 오늘은 팀프로젝트를 진행하면서 팀원들과 코드리뷰를 하고 ejs를 이용해서 렌더링 페이지를 만들어 프론트를 구현해보고 예외처리를 진행했다 팀원의 코드 리뷰를 하면서 생성한 인스턴스에 메서드가 존재하지 않는다는 에러가 계속 발생하는 문제가 있었다 위 코드에서 creatOrder 메서드가 class 밖으로 빠져있는 문제였다 그래서 인스턴스를 만들어도 메서드를 찾지 못하는 간단한 문제여서 금방 해결했다 여기서 배운점은 메서드는 꼭 클래스의 안에 위치하고 있는걸 확인하자 그리고 데이터베이스에 핸드폰 번호를 INSERT를 하는 부분에서 Out of range value for column phone at row 1 이라는 에러가 발생을 했다 이 문제는 테스트로 핸드폰 번호를 적어넣을때 ..
나의 개발일지 20221230 TIL(Today I learned) - 팀프로젝트 Today I learned 오늘은 팀프로젝트의 시작이다 오늘은 지난 팀프로젝트를 하면서 항상 부족했던 부분이었던 계획을 짜는 부분에 노력을 많이 진행했다 지난 팀프로젝트의 문제점은 업무분장이 부족하고 프로젝트 설계가 부족했던 문제가 있었다 오늘은 문제점이였던 부분을 해결하기 위해서 조금 더 자세하게 계획을 진행하는 걸 시도했다 업무 구분 페이지 담당자 담당자 User 1. 로그인 이효원 2. 회원가입 이효원 3. 마이페이지 이보형, 박무현 Order/Review (고객) 1. 주문 신청 작성 이해담, 주현진 2. 주문 내역 이해담, 주현진 3. 리뷰 작성 이해담, 주현진 Order/Review (업체) 1. 주문 신청 리스트 이보형, 박무현 2. 주문 접수내역 이보형, 박무현 폴더의 구조도 데이터베이스..
나의 개발일지 WIL(Weekly I learned) 2022-01-01 Weekly I learned 이번주는 저번주의 목표였던 access token, refresh token를 사용해보면서 JWT를 더 안전하게 사용해보았다 그리고 MVC모델을 적용하기 위해서 학습을 진행했는데 내 프로젝트는 MVC모델 보다는 3계층 아키텍쳐 패턴이 더 좋아보여서 3계층 아키텍처 패턴을 이용해서 프로젝트를 진행했다 그리고 socket.io를 사용해 보면서 실시간 통신을 해보는 한주는를 보냈다 이번주에 배운 내용은 저번주에 계획했던 access token, refresh token, MVC모델, 3계층 아키텍처 패턴, socket.io에 대해서 좀 더 깊게 배웠다 그리고 추가 적으로 자바스크립트의 호이스팅 실행 컨텍스트에 대해서 배웠다 다음주의 목표는 호이스팅과 같은 자바스크립트의 특징인 t..
나의 개발일지 20221229 TIL(Today I learned) - 호이스팅, var, let, const Today I learned 호이스팅 var, let, const 오늘은 자바스크립트에 부족함을 느끼고 자바스크립트의 복습을 진행했다 그냥 기능을 사용하는 거보다는 자바스크립트의 동작을 이해하면 더 자바스크립트를 잘 학습할 수 있을 거 같아서 그 부분을 집중적으로 학습했다 호이스팅을 학습하면서 매우 흥미로웠다 console.log(name); var name = "hong" 나는 여기서 당연하게 에러가 발생하는 줄 알았는데 undefined가 출력이 되었다 이렇게 되는 이유가 호이스팅이라는 자바스크립의 기능 때문이다 자바스크립트 코드를 실행하면 자바스크립트는 함수와 변수를 제일 위로 가져가서 선언하고 메모리를 준비한다고 한다 let, const를 비슷한 코드로 작성해 보았다 console.log(name..
나의 개발일지 20221228 TIL(Today I learned) - Supertest Today I learned Supertest 오늘은 Supertest를 이용해서 가상 API요청을 보내고 원하는 결과를 받는지 점검하는 걸 진행했다 어제랑 오늘 jest와 Supertest를 이용해서 통합 테스트를 진행했다 테스트파일에서 API를 요청을 해야 하기 때문에 express의 객체인 app을 exports해서 테스트파일에서 사용한다 // app.js ... moudule.exports = app; 그리고 Sequelize를 이용할 때 config에서 development말고 test라는 옵션이 있었다 이번에 테스트를 진행하기 위해서 Sequelize Test DB를 설정합니다 "test": { "username": "root", "password": "0000", "database": "da..