728x90

전체 글 176

[NestJS] 각종 트러블 슈팅

사수님이 코드 리뷰 해주시면서 배운 너무나 많은 정보들. 알찬 것들이 많은데 까먹을 것 같아서 적어두기. 1. Circular Depencies : Module끼리 서로 import할 경우 뭘 우선할 지 알 수 없어 일어나는 오류 forwardRef()=> 를 걸어주자 2. Module import, exoprt Service : 일반적으로 다른 모듈의 service를 사용하고 싶을 때에는 그 모듈에서 export:[Service]를 해주고, 사용하고자 하는 모듈에서 import: [쓰고 싶은 서비스가 있는 Module]을 해줘야 한다. provider에 남의 모듈의 Service를 그대로 넣어버리면 그 service의 clone을 만드는 격으로 둘은 엄격히 보았을 때 다른 두 객체가 된다. 3. Ser..

Node.js/NestJS 2023.05.18

[회고] 2nd 프로젝트: DREAM - KREAM 모델링 c2c 경매 플랫폼 제작

📍2주 동안 7명이서 위코드 부트캠프에서 4월 20일부터 5월 4일까지 2주 동안, 7명의 팀원으로 두 번째 프로젝트를 진행했다. 멤버 구성은 프론트엔드 3명, 백엔드 4명(나 포함). 총 4명으로 진행되었던 1차 프로젝트에 비해 많은 인원과 함께하는 프로젝트라 걱정도 크고 기대도 컸다. 인원이 많아지며 가장 크게 달라진 점이 두 가지가 있었다. 그 중 첫 번째는 백엔드 인원이 2명에서 4명으로 늘었다는 점이다. 이번 프로젝트에서 4명이 함께 일하며, 협업에 대해 더욱 깊게 고민하고, 함께 서비스를 만들어갈 체계적인 방법을 찾고자 더 많이 노력하게 되었다. 2명일 때는 옆자리에 앉아 그때 그때 필요한 논의를 할 수 있었으나, 4명이 되니 함께 논의하고 결정할 사항이 있으면 시간을 정하고 회의실을 잡아 모..

소감 & 회고록 2023.05.18

[NestJS, TypeORM] 배열, 객체 데이터를 database에 저장하는 법

* 개발 환경: Typescript, NestJS, Typeorm, MySql NestJS 프레임워크로 Typeorm을 통해 MySql database를 사용하려고 하던 중, entity.ts 파일에서 아래와 같은 에러가 발생했다. 'data type array is not supported by mysql database' //error가 났던 movie.entity.ts 파일 import { Column, Entity, PrimaryGeneratedColumn } from 'typeorm'; @Entity() export class Movie { @PrimaryGeneratedColumn() id: number; @Column() title: string; @Column() year: number; ..

Node.js/NestJS 2023.05.11

[JS문법] ...(three dots, 점 세개)의 사용법 두 가지(객체/배열 vs 함수)

자바스크립트에서 점 세개, `...` 은 두 가지 사용법이 있다. 1. Spread Operator 뒤늦게 알게 되어 매우 아쉬울 정도로 객체와 배열을 사용할 때 아주 유용한 방식이다. 객체와 배열을 사용할 때 서로 다른 객체/배열끼리 합치고 싶을 때가 많다. 그때 {}, [] 의 껍데기가 거슬리게 느껴지는데 이를 없애주는 것이 ...이다. 사용법은 아래와 같다. [객체 ver.] const walwal = { name: "Walwal", age: 19, height: 180, job: "backend developer" } const john = { ...walwal, name: "John", age: 20, hobby: "skating" } // john = { // name: "John", // a..

Node.js/JavaScript 2023.05.10

[Docker] Macbook M1, M2 사용자의 Docker 사용법

EC2에 docker 띄우기 전에 .env 파일 RDS에 맞게 변경해준 뒤 RDS에 data dump 잘 들어갔는지 확인 후 실행 ***package.json에서 nodemon을 사용했다면, node로 수정해주기 e.g., scripts: "nodemon server.js" > "node server.js" !!! 명령어 입력 시 괄호()는 빼고 각자 해당하는 명령어로 변경하여 실행 1. Dockerfle 작성 2. buile 명령어 입력 (괄호 안 amd64는 mac 실리콘 칩에 해당) - docker build (--platform linux/amd64) -t (dockerhub username)/(project name):0.1.0 . 3. 잘 만들어 졌는지 확인 - docker images 4. ..

환경 2023.05.03

[MySql] 조건 입력 순서

1. SELECT2. FROM3. WHERE4. GROUP BY5. HAVING6. ORDER BY7. LIMIT 참고한 블로그: https://dwbutter.com/entry/MySQL-SELECT-%EB%AC%B8-%EA%B0%81-%EC%A0%88%EB%93%A4%EC%9D%98-%EC%82%AC%EC%9A%A9-%EC%88%9C%EC%84%9C-%EC%8B%A4%EC%A0%9C-%EC%8B%A4%ED%96%89-%EB%90%98%EB%8A%94-%EC%88%9C%EC%84%9C [MySQL] SELECT 문 각 절들의 사용 순서, 실제 실행 되는 순서SELECT 문의 각 절들은 먼저 써야 하는 순서들이 정해져있다. 이 순서는 반드시 지켜야 함 더 앞에 나와야 하는 순서대로 보면 1. SELECT..

DataBase/MySQL 2023.04.27

[Git&Github] merge대신 깔끔하게 rebase!

git rebase [-i] merge와 유사한 기능이나, merge 커밋이 남는 merge와 달리 merge 커밋이 남지 않고, 여러 commit을 하나로 합칠 수 있다. rebase는 말 그대로 기본바탕을 새로 교체한다는 의미이다. rebase 대상이 되는 branch에 새로 현재 브랜치를 판 것처럼 바뀐다. 현재까지의 commit이 branch 관계 없이 시간 순으로 합쳐지는 merge와 달리, rebase를 사용하면, rebase를 실행한 branch의 commit 내역이 모두 최신으로 모아진다. rebase 대상이 된 branch의 commit들이 더 과거의 순서로 들어가게 된다. 예를 들어, feature/signup branch에서 `git rebase main`을 실행한다면 main의 co..

[개념 정리] 단축평가(short circuit evaluation) - &&, ||

단축평가란 왼쪽부터 오른쪽으로 평가를 진행하여, 논리연산자 &&와 || 에 따라 다른 결과를 반환한다. &&는 and, || 는 or를 의미한다. 아래의 에러 핸들러에서 || 연산자가 사용되었다. const globalErrorHandler = (err, req, res, next) => { console.error(err); err.statusCode = err.statusCode || 500; res.status(err.statusCode).json({ message: err.message }); }; 단축평가는 왼쪽부터 평가되기 때문에 || 연산자의 경우 왼쪽 값이 true라면 그 값을 반환하고, false라면 오른쪽 값을 반환한다. 위 코드에서 err.statusCode에 값이 있다면 truthy..

Node.js/JavaScript 2023.04.19

[Git&Github] 잘못된 branch에 작업했을 때, git stash

아무 생각없이 작업을 하다가 문득 잘못된 branch에 코드를 작성했다는 사실을 깨달았을 때! 당황하지 말고 commit 하지 않았다면 git stash를 입력하자 commit 되지 않은 수정 사항이 임시 저장되고 잘못 작업한 branch는 수정되기 전 직전 commit 상태로 돌아간다. 그 후 원하는 branch로 checkout한 후, git stash apply 입력 그리고 add commit 해주면 완성 다만 stash는 commit하기 전에만 사용 가능하다는 사실을 기억하자.

[회고] 첫 프로젝트: 4bsop - Aesop을 모델링한 커머셜 웹사이트 제작

📍 생애 첫 프로젝트 2023년 4월 3일부터 4월 13일까지 총 12일 간 위코드 부트캠프에서 생애 첫 프로젝트를 진행하게 되었다. 참여 인원은 프론트엔드 2명과, 백엔드 2명(나 포함). 동기들은 5명, 6명으로 팀이 구성되어, 팀원이 4명인 팀은 우리 뿐이라, 시작 전에는 다른 팀들에 비해 뒤쳐지거나 완성도가 비교될까 걱정이 되었었다. 캠프 멘토님들도 커머셜 웹사이트의 기본 구성요소인 [회원가입, 로그인, 상품 목록, 상품 상세 페이지, 장바구니, 주문, 결제] 중 '장바구니'까지 구현하는 것을 목표로 하라고 조언을 주셨었다. 그러나 결국 12일의 시간 동안 회원가입부터 결제까지 모든 기능을 백엔드와 프론트엔드 통신을 통해 문제 없이 진행되도록 만들어냈다. 더 많은 기능을 구현했다고 해서 더 좋은 ..

소감 & 회고록 2023.04.17
728x90