백엔드 서버 구축을 하다 보면 많이 듣는 단어가 바로 "MVC패턴"인데요. 그렇다면 MVC 패턴이 무엇일까요? MVC패턴은 Model-View-Controller의 약자며, 각각의 성격에 맞는 코드를 작성을 하게 됩니다. 하지만 node에는 Router라는 개념이 추가되어 있는 상태입니다. 그렇다면 node의 파일구조는 어떻게 되어있는 건지 알아봅시다. Router에는 어떤 코드를 작성하나요? Router에는 기본적으로 경로를 설정하고, 핸들링이라 부르는 로직까지 작성을 합니다. 이렇게 라우터에서 경로 및 로직까지 다 수행하게 되는 경우에는 단점이 존재하게 되는데요 프로젝트의 규모가 커질수록 코드가 복잡해집니다. 가독성을 떨어뜨립니다. 오류를 찾고 그를 해결하는 작업도 힘이 듭니다.(트러블슈팅) 즉, 유..
분류 전체보기
작업환경 mysql workbench8.0 발생오류 Error 1005: Can't create table `bookstore`.`likes` ( errno: 121 "Duplicate key on write or update") SQL Statement: CREATE TABLE `Bookstore`.`likes` ( ... ) 원인 Foreign Key name(외래키 이름)은 다른 테이블에서 사용한 Foreign Key name을 그대로 사용할 수 없음. ex) user table의 외래키 이름을 A라고 하고, book table 생성 중에 의 외래키 이름을 똑같이 A라고 설정을 하면 book table은 생성이 되지 않고 오류가 발생합니다. 즉 외래키 이름을 A가 아닌 B로 변경을 해야 합니다.
프로젝트 팀원 전다해🐣 프로젝트 정보 - project github 프로젝트 목적 book store 사이트 개발을 위한 서버 및 API 구축 프로젝트 기능 - 회원 : 로그인 시. JWT 토큰을 이용한 인증 인가 사용 - 장바구니 - 좋아요 - 결제 프로젝트 기간 2023.12.28 ~ 프로젝트 구조 project-book-store ├─ .env ├─ app.js └─ routes ├─ books.routes.js ├─ carts.routes.js ├─ likes.routes.js ├─ orders.routes.js └─ users.routes.js 사용 스킬 발생 이슈 - 2024-01-01 : 테이블 생성이 안되는 이슈 발견 - 2024-01-04 : SubQuery 코드 작성 오류
오늘 수업 내용📚 express-generator 구조에 맞춰 기존에 설정한 API 설계 기반 만들기 database 구축하기 오늘은 express-generator의 구조를 참조하면서 설계했던 API를 세팅하고 그에 필요한 database를 구축했고 기존강의에서 놓친 부분들을 체크하여 확인 후 추가도 하였습니다. 예시로 기존에 테이블 가이드 해놓은 것들 중에 부족한 부분(제1 정규화를 지키지 않음)이 존재하여 그것도 테이블 분리 작업을 하여 수정하였습니다. 오늘 수업에서는 많은 내용들을 다루지 않았지만 기초적인 부분이다 보니 더 나은 방법이 뭐가 있을까 생각을 했습니다. 그 과정에서 궁금한 것도 생겼는데 http URI에서 localhost/books?p=1 이런 주소가 존재할 때 query 영역은 경..
Error: listen EACCES: permission denied 8080; at Server.setupListenHandle [as _listen2] (node:net:1723:21) at listenInCluster (node:net:1788:12) at Server.listen (node:net:1887:5) at Function.listen (c:\Users\first\Desktop\team-project\project-book-store\node_modules\express\lib\application.js:635:24) at Object. (c:\Users\first\Desktop\team-project\project-book-store\app.js:7:5) at Module._compi..
오늘 배운 내용📚 dbdiagram.io를 이용하여 ERD 짜기 ERD를 통해서 API 설계 추가 정리 내용📑 테이블 구성 완성 테이블을 가지고 ERD 짜기 프로젝트 명세 정리 오늘은 dbdiagram.io로 ERD를 만들고 어제 배운 API를 조금 더 디벨롭하는 방식으로 진행됐다. 그 과정을 거치면서 우리 하 흔히 주문하기라고 말하는 페이지는 사실 주문하기 API가 아니라 주문 예상 페이지에 불과하여 장바구니에 속한다는 것이었다. 이번에 테이블을 혼자 구성해보면서 느꼈던 점은 와이어프레임을 보고 내가 어떤 데이터가 필요한지 이 데이터들로 어떤 테이블이 나올지, 그 테이블을 어떻게 분리할지에 대해서 많이 생각해 봤고, 그 필요한 데이터 들을 최대한 와이어프레임 내에서만 가져오는 반면에 나는 어느새 조금 ..
오늘 배운 내용📚 회원/도서/좋아요/장바구니/주문 부분 설계 명세 짜보기 추가 정리 내용📑 와이어프레임 보고 데이터베이스 테이블 구성해 보기 이번 프로젝트를 시작하면서 설계 명세라는 단어를 처음 들었다. 설계 명세서란 요구사항들을 분석하고 산출된 결과들을 설계하는 과정을 말하는데 우리 과정에서는 구체적인 설계 명세서가 아니라 와이어프레임을 보고 요구사항들을 분석해서 어떻게 API로 만들지를 작성을 하였다. 미니프로젝트의 API설계와 비슷하게 진행하지만 차이점은 와이어프레임 존재 유무였던 것 같다. 이 과정에서 강사님이 분석한 내용과 내가 분석한 내용이 다른데, 그 점을 추가정리내용 링크에서 확인할 수 있는데, 기본적으로 API를 만들기 전에 분석한 내용을 정리할 겸 테이블로 하나하나 작성을 하였다. 수업..
풀사이클 데브코스를 진행한 지 벌써 한 달이 지났다. 그간 프로그래머스에서 진행했던 방식이나 공부 방법에 대해서 조금 생각해 보는 시간이 됐던 것 같다. 제일 처음 생각해본 것은 공부방식이었다. 라이브강의가 아니고서야 녹화된 동영상강의라서 영상 틀어놓고 코드를 따라 적어도 문제가 되는 게 아니라 생각한다. 하지만 이 방식은 결국 날 위한 방식이 아니라고 생각을 했다. 왜냐하면 이렇게 따라 적는 코드는 결국엔 기억에 남지 않기 때문이다. 그래서 다른 방법을 고민을 했다. 첫 번째로 영상을 처음부터 보고 기억을 더듬어서 코드를 작성하는 것이었다. 기본적인 코드 작성 흐름을 배우는 방법이라 생각을 했다. 두 번째로는 영상에서 강사님이 어떻게 만들어봐라 혹은, 코드를 이렇게 짜볼 거다 등의 가이드를 제시하면 내..
오늘 배운 내용📚 백엔드 학습 방법 알고리즘 모의고사 실무역량 과제테스트 스프린트 2~3 설명 오늘은 알고리즘 모의고사와 실무역량테스트를 진행했고, 라이브 수업으로 백엔드 학습 방법에 대해서 공부하게 되었는데요. 알고리즘은... 네 많이 부족한 것 같습니다. 많이 풀어보면 좋아질 거라는 이야기는 듣고 있지만 너무 처참하게 끝나서 기초부터 차근차근 접근해야 할 것 같다는 생각을 했습니다. 실무 역량과제 테스트 경우에는 라이브시간을 잘못 알고 있어서 라이브시간과 테스트시간이 겹치는 일이 발생했고 두 마리 토끼를 다 놓치게 된 것 같습니다. 뒤늦게 백엔드 학습방법 수업도 들었는데 앞에 테스트 때문에 못 들은 부분들은 라이브강의가 올라오면 해당 영상을 다시 꼼꼼하게 보고 정리를 할 것 같습니다. 두 번째 스프린..