Wecode - Project 3 (부트캠프) 87

Project 3 - 최종 주문/결제 api 코드 설명

코드를 왜 이렇게 썼는지, 왜 여기에 썼는지 설명할 줄 아는 것이 중요하다. 이전에는 블로그 기록하면서 코드를 작성했는데 계속 수정되기도 하고 바로바로 통신하고 확인해보고 이렇게 저렇게 해보는 도전정신이 줄어들어, 그때그때 주석으로 달아두었다. 그 정신없는 와중에 기록해두었던 주석 하나하나를 뜯어보며 routers orderRouter를 Index에서 불러온다 orderRouter.post('/', orderController.createOrders); // 토큰 X orderRouter.post('/', verifyToken, orderController.createOrders); //토큰 O orderRouter.post('/', verifyToken, asyncWrap(orderController...

에러 핸들링 w/ [asyncwrap, next, ErrorHandler.js ]

동기 분께서 설명해주신 부분 1) async를 쓸 때 controller.js 에서 try, catch 지우고 errorHandler.js 사용 ( 에러 시 일로 감) 1-1) errorHandler.js 에서 next 사용 X 1-2) errorHandler.js 에서 next 사용 2) async를 안 쓸 때 - controller.js 에서 try/catch를 쓴다 --> service.js에서 throw로 에러를 던진다 (그러니까 controller.js에서 catch로 잡는 것) (controller.js에서 try/catch쓰면, 가장 가까운 try catch로 가서 2-1) next 호출 --> error handler로 보냄 2-2) res.status // next(error) 사용x :..

middlewware 공부 , errorhandler, async

에러 핸들링 2 [적용] 1. throw로 에러 던져보기 에러를 던지는 방법으로 throw 이는 개발자가 작성하는 모듈에서 발생가능한 에러 상황에서 던지게 되며 상위 계층이나 호출하는 곳에서 모듈의 에러를 감지할 수 있습니 pm-developer-justdoit.tistory.com Middleware -> err, res, req, next를 받음 (errorhandler.js처럼) Client -> req -> Router -> Controller-> services -> models -> services -> controller -> res Express.js에서 미들웨어는 app.use() 함수로 추가 Express.js 쓸 거면, next 쓰는 게 좋음 app.js에 있는 app.use가 미들웨..

Software Testing 2) - [TDD] 테스트 실습 + 추후에 따라해보기 **

A. 테스트 자동화 실습 Javascript를 테스트할 수 있는 도구로 Jest가 있습니다. 기존 모듈들을 Jest를 통해 테스트를 진행해보겠습니다. 1. 유닛(단위) 테스트 실습 아래에 계산기 프로그램 코드가 있습니다. add 는 두 숫자를 받아서 더하는 함수, subtract 는 두 숫자를 받아서 빼는 함수, multiple 은 두 숫자를 받아서 곱하는 함수, divide 는 두 숫자를 받아서 나누는 함수 입니다. calculate.js unit 단위 테스트 코드 현재 함수 단위로 나누어져 있음 // calculate.js function add(a, b) { return a + b; } function subtract(a, b) { return a - b; } function multiple(a, ..

Software Testing 1) - [Software Test란 ?

1. 소프트웨어 테스트란 소프트웨어를 배포하기 전 해당 소프트웨어가 정상적으로 작동하는가에 대해 검증하는 단계 테스트의 종류: 3가지 유닛 테스트, 통합 테스트, 인수 테스트 --> 프로그래밍적으로 수행가능하기 때문에 자동화 처리가 가능 이후 QA 통해 테스터가 직접 소프트웨어를 테스트 이전 직장에 QA, RA 부서가 바로 앞에 있고, 프로그래밍 팀 - SW - HW - V&V (verify, validate) - marketing clinic (임상) - QA, RA 가 있어서 흥미로웠다. QA는 외주 혹은 개별 팀에서 진행하는 사항이기 때문에 여기에서는 자동화 할 수 있는 테스트 방식에 집중하여 살펴보겠습니다. 테스트 전체 형태 아래 피라미드처럼 구성합니다. 1. 단위테스트, 유닛 (Unit) 테스트..

이후 해보면 좋을 [계산기 프로그램 리팩토링] 과제 **

이후 개발을 하면서, 이전에 학습 자료에 있던 과제를 해보고 나서 하면 도움이 된 적이 있어서, 이렇게 적어둔다. 과제 안내 https://www.notion.so/wecode/Assignment-1-e94825f059d04f2fbea2917ecb407ca2 calculate.js 코드 function add(a, b) { if (b < 0) { throw new Error("b가 0보다 작습니다."); } return a + b; } function subtract(a, b) { return a - b; } function multiple(a, b) { return a * b; } function divide(a, b) { return a / b; } module.exports = { add, subt..

주니어 개발자 마인드셋

세션은 아니지만, 늘 벽에 붙어있던, 내가 가장 크게 공감했던, 부분들. 나는 비즈니스와 프로덕트를 고려하는, 코드로 문제를 해결하고자 하는 개발자이다. 코드만 생각하는, 개발자 동기들로 인해 어려웠다. 앞으로는 미래만 나아가야 하니. 🗣️ 성장하는 주니어 개발자의 11가지 혼잣말 1. 개발자는 내가 가진 기술로 누군가의 삶의 가치를 높여주는 업이다. 2. 프로그래밍은 무엇을 알고 있는가에 대한 것이 아니라 무엇을 알아낼 수 있는 가에 대한 것이다. 3. 코드의 90%는 개발 시간의 90%를 설명하며 나머지 10%는 그 시간에 일어난 다른 일의 90%를 설명한다. 4. 붓과 색을 공부한다고 좋은 화가가 되지 않듯이, 기술만 공부한다고 좋은 프로그래머가 되지 않는다. 5. 지금 쓰는 한 줄은 찰나를 기억하..

에러 핸들링 3 [각 Layer 별 Error Handling] 개념 + 실제

각 레이어 별 에러 Controller - Service - Dao 각 레이어 별로 각기 다른 목적을 위한 에러 핸들링 에러가 발생하는 위치와 실제 에러 메세지를 던지는 위치가 실제와 상이할 수 각 레이어별 에러 핸들링 시 동기, 비동기적 에러 처리에 유의하여 코드를 작성 1. Controller Error 입력과 출력에 관련 HTTP 통신을 처리하는 웹 서버의 관점에서는 http request (요청 입력), http response (응답 출력)을 담당하는 레이어 따라서 통신이 처음 시작될 때, 사용자로 부터 받은 정보를 클라이언트(프론트엔드)가 전달해주면, 해당 입력에 대한 유효성 검증을 처리하며 에러 및 예외가 발생 KEY_ERROR가 대표적 console.log(req.body) // { pas..

Project 3 - 3주의 대장정, 전체회고

1,2차 프로젝트에서 회원가입 로그인만 하던 내가, 이번 3차 프로젝트에서 내가 맡았던 주문/결제 api를 맡으면서 일주일 간 쿼리 공부를 하며 비즈니스 로직이 그려지고, 에러 핸들링도 혼자서 하고 결제 로직도 혼자서 하고 통신도 혼자서 하고 유닛테스트도 혼자서 에러 해결하는 성장을 하였다. 혼자서 하는 법과 로직 짜는 법을 배우게 되었다. 팀의 운영에 있어 아쉬운 점은. 본격적인 회의가 시작되기 전부터, 발표는 무조건 본인이 하겠다는 A가 있었다. 이미 이전 1,2차 프로젝트에서 평판이 좋지 않던 분이였는데, 프론트 PM이 되었고, 이후 모든 회의과 진행과 mvp 선정을 본인의 방향대로 하였고, 팀원들은 따라가는 축이 되었다. 내가 아이디어와 제안을 하였음에, 나머지 백엔드 팀원들이 A의 리드에 무조건..

git clone + 추가 branch 관련 명령어

개인저장소에 올린 코드를 활용하거나, 팀이 만든 초기세팅을 받은 후 개발을 시작할 떄에 clone을 많이 하게 되는데, 할 때마다 헷갈리니 정리해두기 1. github repository 주소 복사 Code - HTTPS - 복수 후 체크 표시됨 2. 터미널로 가서. git clone [복사한 repository 주소 붙여넣기] 만약 main에 다 넣을 거면 (보통 개인 프로젝트) 상관없는데, 팀 프로젝트라면, main에 넣으면 안 되니, 브랜치 생성 3. cd 클론 받은 폴더명 (위치 이동) 개별 브랜치 생성 git branch [branch 이름] 그 후, checkout으로 브랜치 이동해야 한다. 아직 main에 있을 것이기에. [추가 branch 관련 명령어] 브랜치 이동 git checkout..