본문 바로가기

node.js

(6)
첫 WEB프로젝트 회고 - unic5n🦄 가구이커머스 모델링 첫 WEB프로젝트였고 내가 구현한 코드가 프론트를 만나서 실제로 작동되는 것을 보며 구현한 코드의 가치를 더욱 느낄수 있었던 경험이였습니다. 2023.4.3~2023.4.14 이주간의 프로젝트과정을 생각해보면 우여곡절도 많았고 힘들기도 했지만 소중했던 경험이 된것같습니다. 담당했던 부분은 PM(project manager)을 했고 BE로서 제품나열&필터, 상세페이지, 쇼룸, 리뷰작성, 제품구매확인페이지, 제품검색까지 구현했습니다. 가구 서칭 Keep (프로젝트에서 만족했고, 앞으로의 업무에서 지속하고 싶은 부분) 제품구매 페이지 & 쇼룸페이지를 위해 만든 쿼리문을 완성했을 때 쿼리문 작성전에 ERD를 보며 생각했던 로직으로 구현했을 때 제품 나열페이지에서 필터 조건을 줄때 쿼리빌더를 클래스화 시켰던게 이..
(unic5n)프젝 중 리팩토링 - 제품나열 DAO Ver2 (class) 마지막 update (23.06.12) ver1에서 하던걸 계속 이어서 하는 중 const getProductList = async (mainCategory, subCategory, pricefilter, start, limit, isnew) => { try { let conditionMain = ''; let conditionSub = ''; let order = 'ORDER BY p.id'; let conditionIsNew = ''; let condition = ''; if (mainCategory) conditionMain = `main_category.id = ${mainCategory}`; if (subCategory) conditionSub = `sub_category.id = ${subCa..
(unic5n)프젝 중 잠깐 리팩토링 - 제품나열DAO Ver1 가격으로 정렬하는 필터를 주는데 한줄을 덧뭍이는 것때문에 쿼리문을 한번더 써주니까 효율적이지 않다고 생각을 하게되었다. 그래서 여러 방법을 찾으면서 클래스를 사용하여 문제를 해결하고 싶었지만 프로젝트는 제출기한에는 제출해야니까 우선 다른 방법으로 기능을 만들어 놓고 이후 공부를 해서 클래스를 사용하기로 타엽했다. 카테고리별로 데이터를 받아오고 앞의 코드랑 같이 보면서 받는 데이터가 같지만 조건들때문에 세번이나 써주고 마지막 코드를 보면서 이런 코드는 하나로 합쳐줄 수 있을 것같다고 생각을 했습니다. 세개의 sql문을 조건으로 한개의 sql문으로 만들어줬습니다. 리팩토링이 잘이루어졌는지는 모르겠지만 간결해졌습니다. 이 코드의 문제는 새로운 조건을 추가했을 때 생기는 경우의 수에 대해서 고려를 하고 코드를 ..
4XX 대 상태코드 4XX(요청오류) 400(잘못된 요청) 서버가 요청구문을 인식하지 못함 401(인증 실패) 인증필요/ 서버는 로그인이 필요한 페이지에 대해 이 요청을 제공 할수 있다. 402 이 요청은 결제 필요 403 서버가 요청 금지, 사용자가 권한 갖고있지않음(인가실패) 404 NOT Found 405 (허용되지 않은 메소드) post 방식에 get 넣어줌? 408 요청 시간 초과
회원가입 및 포스팅 후기 하나의 app.js에서 layered pattern을 적용해서 레이어 계층을 구조화해서 정리를 해보았다. 처음 해보는 계층화라서 서툴렀지만 진행할수록 깔끔해지며 가독성이 높아져 재미가 있었다. 에러를 찾는데도 더 쉬워졌음. 이후 암호화를 배우며 인증인가하는 로직을 추가해주었다. bcrypt와 JWT Token을 실제 로그인할 때 적용해보니 학부때 배웠었던 단방향 암호화와 양방향, 해시 함수등 배웠었던 기억이나면서 직접 코드 진행을 하니 좀더 확실하게 이해할 수 있었다. 그리고 DB구조를 설계할 때 주어야할 조건들을 잘 정리하는게 중요하다는걸 로그인과정중 sql을 사용해 조건(email unique)을 추가하고 변경해주면서 ERD초기 설계의 중요성에 대해 생각해 볼수 있는 계기가 되었음 코드를 짜는 연습도..
구조분해할당-기초?예시 배열이나 객체의 속성을 해체하여 그 값을 개별 변수에 담을 수 있게하는 javaScript 표현식입니다. let a, b, rest; [a, b] = [10, 20]; console.log(a); // Expected output: 10 console.log(b); // Expected output: 20 [a, b, ...rest] = [10, 20, 30, 40, 50]; console.log(rest); // Expected output: Array [30, 40, 50] 위의 코드를 말로 푼다면 [10,20]배열을 [a,b]에 하나씩 할당을 해주면서 a = 10, b= 20이 되게됩니다. 이제 객체를 분해해보겠습니다. let demo = {c:123,d:"too"} let {c,d} = demo;..