클래스/└ TIL 101

<TIL> fileName.ts:24:12, NPMCompare.com

🧭 에러코드에서 두번째 숫자의 의미 에러가 발생하면 "fileName.ts:24:12"와 같이 에러가 발생한 위치를 알려줍니다. 첫번째(24)는 에러가 발생한 줄이라고 알았지만, 두번째(12)는 에러가 발생한 컬럼인 것을 이제야 알았습니다. https://stackoverflow.com/questions/16366207/what-does-the-2nd-number-after-the-colon-in-a-node-js-stack-trace-line-mean What does the 2nd number after the colon in a node.js stack trace line mean? In a node.js stack trace there are always two numbers, the line n..

클래스/└ TIL 2022.05.15

<TIL> git reset, TypeORM, Jest

🧭 깃 git cherry-pick [커밋해시] - 현재 브랜치로 [커밋해시]에 해당하는 커밋 가져오기 git reset --hard [커밋해시] - 현재 브랜치를 [커밋해시]까지 강제로 되돌리기 TypeORM JOIN JOIN 방법 4가지 https://seungtaek-overflow.tistory.com/9 [TypeORM] Relation 관계에서 Join을 하는 방법들 RDBMS를 사용할 때 테이블 간의 참조를 통한 관계는 필수적이다. Node.js 진영에서 가장 핫한 ORM 라이브러리인 TypeORM에서 관계가 맺어져 있는 테이블을 다음 4가지 Join 하는 방법들을 통해 실제 쿼리 seungtaek-overflow.tistory.com https://velog.io/@josworks27/Ty..

클래스/└ TIL 2022.05.14

<TIL> 오늘 만난 에러들

🧭 [ExceptionHandler] Nest can't resolve dependencies of the ... 에러 해당 기능의 Module에서 의존성을 설정하면 해결됩니다. MissingPrimaryColumnError: ... 에러 @PrimaryColumn을 추가하면 해결됩니다. UpdateValuesMissingError: ... 에러 DB의 데이터를 업데이트하는데 값이 제대로 들어가지 않아서 발생하는 에러입니다. DB에 넣을 데이터를 DB에서 찾아오는데 await를 누락했습니다. await만 추가하니 정상 작동하였습니다.

클래스/└ TIL 2022.05.11

<TIL> 외부 API 요청 응답 시간 개선

🧭 깃헙 이슈 생성 깃헙에서는 프로젝트에 대한 이슈를 생성해서 필요 기능 구현, 디버깅, 마일스톤 관리 등을 할 수 있습니다. 외부 API 요청 성능 개선 좌표값을 구하기 위해 카카오 API 및 공공 API를 활용하고 있습니다. 요청 3개를 보낼 경우 3.022s, 10개를 보낼 경우 9.666s 정도 소요되었습니다. 각각의 요청을 병렬처리하여 응답속도를 개선하였습니다. 요청 3개를 보낼 경우 1.027s, 10개를 보낼 경우 1.353s 정도 소요되었습니다. 그러나 429 Too Many Requests 에러를 응답받았습니다. 40~50개의 요청을 한번에 보내다보니 kakao API에서 응답을 거부하였습니다. 어쩔 수 없이 요청을 20회로 나누어 보냈습니다. 대신 시간이 4초대로 늘어났습니다. 프로젝트..

클래스/└ TIL 2022.05.10

<TIL> git(hub), API 요청

🧭 에러노트 Error: connect ECONNREFUSED 127.0.0.1:80 ConfigModule.forRoot() 설정 누락으로 API KEY값이 적용되지 않았습니다. API로 주소 받아오기 key가 사라져서 재발급 받았습니다. config 파일이 적용되지 않아 .env 파일을 사용하였습니다. config 파일이 다시 적용되었습니다. .env vs config/*.yaml 공통점: 환경별 구분가능 .env - .env.dev / .env.prod / .env.test https://darrengwon.tistory.com/965 dotenv 대신 @nestjs/config을 사용해야하는 이유 + 활용 docs.nestjs.com/techniques/configuration Documentat..

클래스/└ TIL 2022.05.08

<TIL> 한글 키워드로 주소 검색하는 방법

🧭 URI에 한글 넣는법 API 요청시 한글에 적절한 처리를 해주지 않으면 'Request path contains unescaped characters' 에러를 만나게 됩니다. encodeURI 함수를 사용해서 URI에 한글을 사용할 수 있습니다. 특정한 문자를 UTF-8로 인코딩해 이스케이프 문자로 변환합니다. (띄어쓰기는 %20으로 변환) .get(https://www.juso.go.kr/addrlink/addrLinkApi.do?keyword=${encodeURI("한글키워드")}); https://hashcode.co.kr/questions/9521/nodejs-%EC%82%AC%EC%9D%B4%ED%8A%B8%EC%A0%91%EA%B7%BC-%EC%8B%9C-request-path-contai..

클래스/└ TIL 2022.05.06

<TIL> 카카오 로컬 API, git pull

🧭 git pull error repo만 설정하고 branch 설정을 안해서 에러 발생 $ git pull team (x) $ git pull team dev (o) git pull 취소 팀 레포에서 git pull 하다가 conflict를 씨게 얻어 맏고 다시 되돌리고 싶어졌습니다. $ git reset --hard ORIG_HEAD 로 되돌립니다. https://mrgamza.tistory.com/593 git. commit, add, pull, merge 취소 git은 기능이 많아서 그런지 다들 너무 어려워 합니다. 하지만 하나도 어렵지 않지만 알고 있는 자만 어렵지 않습니다. 그래서 오늘은 하나 더 알고 있는것을 남기기 위해서 글을 적어봅니다. 일 mrgamza.tistory.com 카카오 API..

클래스/└ TIL 2022.05.06

<TIL> npm-checks-update

🧭 npm-checks-update 패키지 웹스톰에서 express 보일러 플레이트 실행시 기본 설치되는 패키지들은 버전이 낮습니다. npm-checks-update를 설치하고, ncu -u 명령어를 실행하면 package.json 파일에서 패키지들을 최신버전으로 변경해 줍니다. 이후 npm i 명령어를 통해 각각의 패키지들을 업데이트합니다. https://www.npmjs.com/package/npm-check-updates npm-check-updates Find newer versions of dependencies than what your package.json allows. Latest version: 12.5.11, last published: 3 days ago. Start using np..

클래스/└ TIL 2022.05.04

<TIL> IoC / DI, unknown database

🧭 IoC / DI 네스트(NestJS)를 공부하다가 IoC와 DI라는 개념을 접했습니다. 클래스의 생성과 사용을 구분해서 관심사를 분리합니다. IoC(Inversion of Control, 제어 역전)란 생성의 제어권을 프레임워크에 넘겨주는 것입니다. IoC의 방법으로 DL과 DI가 있고, 다시 DI에는 Setter, Constructor, Method 방식이 있습니다. 일반적으로 IoC는 DI를 사용하며, DI 중에서 Constructor 방식을 사용합니다. 네스트에서는 서비스 클래스를 컨트롤러 클래스에 주입하게 됩니다. 에러 네스트에 MySQL을 연결하던 중 "Unknown database 'DB이름'" 에러가 발생했습니다. TypeOrm이 알아서 데이터베이스를 생성해 줄 것이라고 착각했기 때문입니..

클래스/└ TIL 2022.04.28

<TIL> NestJS, AWS

🌱 NestJS "컨트롤러"에 "서비스"를 붙이는 행위를 DI(Dependency Injection)라고 합니다. NestJS는 Fastify랑 Express 위에서 돌아간다고 하는데 배포시에 결정하는 것일까요? 데코레이터는 함수로써, 함수의 역할을 보충해주는 역할을 합니다. 쿼리 파라미터, 패스 파라미터(라우트 파라미터), 본문(body)을 통해서 데이터를 전달할 수 있습니다. AWS 모놀리틱 구조란 하나의 서버 컴퓨터에 프런트엔드, 서버, DB가 모두 포함되어 있는 것입니다. MSA란 프런트엔드, 서버, DB를 각각 다른 서버 컴퓨터에서 관리하고, 나아가서 각각을 기능 단위로 더욱 세분화하는 것입니다. 일기 NestJS를 처음 접했을 때는 너무 복잡해 보였습니다. 백엔드 학습을 어느정도 하고 보니 잘..

클래스/└ TIL 2022.04.27