728x90

전체 글 176

[js 내장 객체] Set

자바스크립트의 내장 객체인 Set은 중복을 허용하지 않는 값의 집합이다. 모든 값들이 unique하며, 삽입한 순서대로 순서가 유지된다. 배열에서 중복된 값들을 제외하고 보고 싶을 때가 많은데 그 때 Set객체가 아주 유용하다. 아래와 같이 새로운 set객체를 생성할 수 있다. const mySet = new Set(); 이렇게 만들면 빈 객체가 만들어지고, 아래와 같이 처음 생성 시 값을 넣어 만들 수도 있다. const mySet = new Set([1, 2, 3]); console.log(mySet); // Set(3) {1,2,3} 주요 메서드에는 아래와 같이 4가지 메서드가 있다. 1. add() 인자로 넣은 값을 객체에 추가한다. mySet.add("fish"); mySet.add("lion"..

Node.js/JavaScript 2023.06.16

[js 메서드] 배열.sort()

자바스크립트 내장 메서드인 array.sort()는 배열의 요소를 정렬하는 메서드이다. sort()메서드는 원본 배열을 변경하므로 주의. 새로운 배열이 만들어지는 것이 아니다. 인자를 삽입하지 않고 array.sort()를 그대로 사용할 경우 유니코드 코드 포인트(문자열 순서)에 따라 정렬한다. 이는 숫자로 구성된 배열을 정렬할 때 특히 주의하여야 한다. 숫자라도 문자열로 인식했을 때의 기준으로 정렬되기 때문이다. 아래의 예시를 참고하자. const months = ['March', 'Jan', 'Feb', 'Dec']; months.sort(); console.log(months); // Expected output: Array ["Dec", "Feb", "Jan", "March"] const arra..

Node.js/JavaScript 2023.06.16

[js 메서드] 배열.reduce()

배열에 사용하는 reduce()메서드는 배열의 각 요소에 콜백 함수를 실행하여 `하나의 값`을 반환한다. 이때 accumulator를 사용할 수 있는 것이 특징적인데, accumulator라는 인자를 사용하여, 요소를 순회하며 콜백을 실행할 때 accumulator에 값을 저장해 다음 요소의 콜백에 넘길 수 있다. 아래와 같이 reduce 메서드는 callback 함수와 initial value 두 개의 인자를 받는다. initial value는 accumulator의 초기값으로, 입력하지 않으면 배열[0]이 할당된다. arr.reduce(callback, initialValue) callback함수는 최대 4개의 인자를 아래 순서대로 받는다. currentIndex와 array는 생략 가능하다. 1. ..

Node.js/JavaScript 2023.06.16

[js 메서드] 배열.slice()

slice() 메서드는 어떤 배열의 시작 위치부터 끝 위치까지(끝 위치의 값은 미포함) 값을 복사하여 새로운 배열을 반환한다. 원본 배열은 바뀌지 않음. 문법은 아래와 같다. arr.slice([begin[, end]]) mdn에서 가져온 사용 예시는 아래와 같다. const animals = ['ant', 'bison', 'camel', 'duck', 'elephant']; console.log(animals.slice(2)); // 1. 결과: Array ["camel", "duck", "elephant"] console.log(animals.slice(2, 4)); // 2. 결과: Array ["camel", "duck"] console.log(animals.slice(1, 5)); // 3. 결..

Node.js/JavaScript 2023.06.13

[회고] 3rd 프로젝트: WECAR - c2c 차량 대여 플랫폼 제작

📍새로운 환경에서 시작된 프로젝트 2개월 간의 학원 생활을 거쳐, 5월 한달 간 회사에서 인턴으로 근무하게 됐다. 처음 입사하고 첫 주에는 딱히 맡은 일이 없었다. 프론트엔드 동기와 함께 입사했는데, 우리 둘 다 현업에서 일하시는 개발자분들께 배울 수 있는 기회를 이대로 흘려보내고 싶지 않은 마음이었다. 마냥 기다리고 있기 보다는 직접 프로젝트를 기획해서 제안드리는 것으로 의견을 모았다. 우리는 학원에서 해보고 싶었으나 다른 주제에 밀려 못해본 프로젝트를 이 기회에 해보기로 했다. airbnb를 모델링하여 c2c 차량 대여 플랫폼을 만드는 것이었다. Notion에 producting을 담은 기획안과 sprintq별 계획을 준비해 사수님께 프로젝트를 제안드렸다. 처음 얘기를 꺼냈을 때 우려를 표하시던 사수..

소감 & 회고록 2023.06.08

[nestjs + ec2 + docker] 트러블 슈팅 일기

0524(수) 3차 프로젝트가 프론트 1명 백엔드 1명(나)으로 진행되고 있다. API를 만들고 프론트에서 테스트해보기 위해서는 서버를 실행시켜주어야 하는데, 서버를 켜 둔 상태로 가만히 기다리고 있자니 개발을 못하고, 서버를 켜두고 계속 코드를 쓰자니 프론트에서 API를 사용하는 도중에 계속 에러가 난다. 그래서 git으로 develop 브랜치를 파서 새로운 API는 새로운 branch에 작성하여 완성되면 develop 브랜치에 머지시키고, EC2 서버에 docker를 띄워 서버를 가동시켜 놓으려고 한다. 계획은 완벽했으나... 실행이 되지 않는 것이 문제다. 한 가지 더 장벽은 취준 기간에 1차 프로젝트의 서버 배포를 내가 맡기로 하여, 1차 프로젝트도 함께 가동시켜야한다는 점이다. 현재 발생 중인 ..

환경 2023.05.24

[TypeScript] Item[] 타입과 빈배열

특정 객체로 이루어진 배열로 타입을 지정해둔 값에 빈배열이 들어간다면 오류가 안 날까? 정답은 '오류가 안 난다.' 아래는 chatGPT의 답변이다. TypeScript에서 함수의 반환 타입을 `CarModel[]`로 지정하고 해당 함수에서 빈 배열을 반환하는 경우, 에러가 발생하지 않습니다. TypeScript는 정적 타입 검사를 수행하며, 빈 배열은 `CarModel[]` 타입에 할당 가능한 유효한 값이기 때문입니다. 예를 들어, 다음과 같이 함수의 반환 타입을 `CarModel[]`로 지정한 경우를 살펴봅시다: function getCarModels(): CarModel[] { return []; } 위 예제에서 `getCarModels` 함수는 빈 배열을 반환하고 있습니다. 이 경우 `CarMod..

Node.js/TypeScript 2023.05.19

[TIL][NestJS] @Param() 데코레이터 사용 시 주의사항 (+Typeorm)

오늘의 삽질... controller에서 아래와 같이 단순한 get요청 처리 함수를 만들고 @Get('brands/:id') getModelsByBrand(@Param() id: number) { return this.carsService.getModelsByBrand(id); } service에서 아래와 같은 단순한 데이터 조회 쿼리문을 작성하는데, async getModelsByBrand(id: number) { const selectedBrand = await this.brandRepository.findOne({ where: { id: id }, relations: ['carModels'], }); return selectedBrand.carModels; } } 아무리 다양한 어떤 방법을 써도 T..

Node.js/NestJS 2023.05.19

[TypeScript] 비동기 - promise 안에 promise? Promise.all()로 처리

아래와 같이 TypeScript로 함수를 만들었는데, Promise[] 같이 배열 안에 Promise 객체들이 담긴 이상한 return 값이 나왔다. registerNewModel(newModels: NewModelDto[]): Promise[] { return newModels.map(async (newModel) => { const isExisting = await this.carModelsRepository.findOneBy({ name: newModel.name, }); if (isExisting) { return isExisting; } const brand = await this.brandRepository.findOneBy({ name: newModel.brand, }); const engi..

Node.js/TypeScript 2023.05.19

[AWS RDS] Mysql access denied 에러 트러블슈팅 (+ 해킹 체험)

띄웠던 도커를 내렸다가 오랜만에 다시 도커 띄워서 서버를 실행시키니 해당되는 database가 없다는 에러가 났다. 이상하다 싶어 RDS mysql 서버에 접속해보니 접속은 되는데 내가 만들었던 db들이 사라져있었고, 새로 database를 생성하려고 하면 ERROR 1045 (28000): Access denied for user 'root'@'%' to database 'dream' 이런 에러만 계속 났다. 로컬이랑 ec2 둘 다 계속 똑같은 에러가 났음. 보통 비밀번호가 틀렸을 때 나오는 에러라고 한다. 그러나 비밀번호가 틀렸으면 접속이 안돼야 하는데 접속은 되는데 데이터 베이스 생성 등 쿼리문 실행이 안 됐다. 구글링 해서 나온 GRANT ALL PREVILEGES 뭐시기를 아무리 해봐도 계속 같..

환경 2023.05.19
728x90