본문 바로가기

ETC

(13)
canvas - node version 안맞음 해결 코드를 실행하려던 중에 canvas 모듈이 node version과 맞지 않다는 에러를 보였다. was compiled against a different Node.js version using 이라는 에러 문구가 출력되었다. 해결 방법은 다음과 같다. 나는 pnpm을 사용하고 있었기 때문에 아래와 같이 실행하였다. 1) pnpm uninstall canvas 2) pnpm install canvas 3) pnpm rebuild canvas 의 방법으로 위의 에러를 해결하였고, 잘 실행이 되었다.
Docker 배포 안됨 (pnpm 버전 다름) pnpm 버전을 9.0.2를 사용하고 있었다. 하지만 Docker 환경에서는 pnpm 버전을 9.0.1을 사용하고 있어 내가 빌드를 누른 것은 에러가 나고, 당연히 배포가 되지 않았다. 확인해야 할 부분) 1- package.json에서 packageManager 부분에 pnpm 버전 명시를 해주거나 2-Docker 파일에서 RUN npm install -g 부분에 RUN npm install -g pnpm@9.0.1 과 같이 버전 명시를 해주거나 해야 한다. 만약 버전 명시를 해주지 않는경우 '최신 버전'으로 빌드되며, 위의 방법처럼 버전 명시를 해주게 된다면 내가 명시해준 특정 버전으로 맞춰져 Docker 배포 환경에서도 같은 버전을 사용할 수 있게 된다.
디버깅하기 - 다양한 console의 종류 사실 디버깅으로 제일 유명한 것은 console.log이다. 나 또한 디버깅을 할 때 console.log를 찍거나 nestjs의 Logger인 this.logger.log를 통해 로그를 찍곤 한다. 오늘 본 노마드코더의 영상 중에서 다양한 log를 찍어볼 수 있는 방법에 대해 소개된 유튜브가 있는데 한 번 정리해보고자 포스팅으로 남긴다. console에도 내가 모르는 것들이 정말 많았구나를 실감했다. 1) console.count() console이 호출된 횟수를 보여준다. 이렇게 인자값을 직접 넣어 내가 원하는 것의 console count를 확인할 수 있다. 2. console.time() 작업 시간을 측정하며, 하나의 페이지에서는 최대 10,000개의 타이머를 실행할 수 있다. console.ti..
CNAME이란? + DNS TXT CNAME을 frontDoor에서 DNS 등록,수정을 할 수 있다. CNAME이란 Canonical 표준이 되는 이름이라는 뜻으로, alias와 기준이 되는 이름이 있다고 생각하면 된다. DNS란 도메인 정보 한 건 한 건에 대한 이름을 나타낸다. CNAME은 하나의 DNS에 대하여 별칭 alias를 부여하는 것이다. 터미널에서 nslookup(DNS 조회 명령 커맨드) 명령어를 통해 ip 주소 등에 대해 조회할 수 있다고 한다. > CNAME으로도 해당 DNS에 CNAME이 등록되었는지 확인할 수 있다. 여기서 더 나아가서 프론트도어에 설정하면서 DNS의 TXT를 적는 란이 있다. DNS TXT란 text record의 줄임말로 임의의 문자열로 구성된 값이다. 텍스트를 리소스에 연결시킬 수 있는 매개체..
Corresponding file not included in tsconfig.json 에러 해결 https://stackoverflow.com/questions/41144902/how-to-resolve-corresponding-file-not-included-in-tsconfig-json-error-in-webst
npm install 했는데 npm ERR! ERESOLVE unable to resolve dependency tree 라는 에러가 뜨는 현상 npm으로 winston 라이브러리를 설치하려고 터미널에 입력했더니 위와 같이 에러가 뜨며 npm 라이브러리 설치가 되지 않았다. class-transformer 버전이 맞지 않아 생기는 에러로 생각된다. 제일 눈여겨볼 부분이 아래와 같다. npm ERR! code ERESOLVE npm ERR! ERESOLVE unable to resolve dependency tree 이를 해결하기 위해서 npm config set legacy-peer-deps true 명령어를 입력해주었다. npm config set legacy-peer-deps true legacy-peer-deps=true로 설정하는 이유는, 특정 라이브러리의 메인테이너가 더이상 유지보수를 하지 않아서 버전 업그레이드가 안되는 라이브러리를 사..
일급 컬렉션이란? 객체지향에서 알아두어야 할 것이 '일급 컬렉션(First Class Collection)'이었다. 나는 왜 몰랐던 것인가.. 아래와 같은 코드가 있다고 보자. Map map = new HashMap(); map.put("1", "A"); map.put("2","B"); map.put("3","C"); map에 3개의 값을 wrapping 하는 것이 일급 컬렉션이다. public class HelloWorld { private Map hi; public HelloWorld(Map hi) { this.hi = hi; } } collection을 wrapping 하면서, 그 외 다른 멤버변수가 없는 상태를 일급 컬렉션이라고 한다. 즉, Collection을 wrapping 하면서 + 멤버변수가 하나밖에 없다는..
@Get() 자동 import에 대한 vscode와 intelliJ의 차이점 회사에서 개발을 할때 intelliJ IDE를 사용한다. 처음에는 음..뭐 회사에서 intelliJ를 많이 사용한다니 사용하겠구나 라고 생각만 하고 있었고, 내가 개인적으로 공부할때는 주로 vscode를 사용하였다. 집에 와서 공부할때는 강의가 vscode로 실행되니 똑같이 맞추기 위해서 vscode 환경에서 실습을 진행하고 있었다. 그러던중에 @Get()을 다루는 vscode와 intelliJ의 태도(?)가 다른것 같아 느낌을 남겨보고자 한다. IntelliJ Controller단에서 @Get()을 쓰면 빨간줄이 나타나는데, 여기서 마우스 우클릭을 하면 자동으로 import가 되어 import단에 @Get이 추가된다. 굉장히 편리하다. 바로 Add import statement를 클릭하여 @Get()을..
terminal에서 npm ~ 설치 시 권한 에러가 나올 때 해결방법 해당 경우는 터미널에서 직접 겪은 상황은 아니며, 해당 경우를 영상에서 접했기 때문에 미리 정리해두고자 한다. 에러 발생 문구 Error: EACCES: permission denied, access ~ errno : -13, code: 'EACCES', syscall: 'access', path: ~ } 위와 같은 에러가 발생한다면 잘못된 방법 npm i -g @nestjs/cli (X) 올바른 방법 sudo npm i -g @nestjs/cli (O) 의 방법으로 진행해보도록 한다.
개발문화 : 모놀리식 구조(MA) vs MSA 구조 차이 개발조직에 몸을 담고 있다보면 모놀리식(Monolithic Architecture) 그리고 MSA(MicroService Architecture)으로 개발을 할 것인가?에 대한 의견이 있다. 오늘 '모놀리식 구조'를 듣게 되어 이에 대해 정리해보고자 하였다. Monolithic Architecture : MA 하나의 서비스 또는 애플리케이션이 하나의 거대한 아키텍처를 이룰 때 모놀리식 구조라고 한다. + End-to-End 테스트가 용이하다 (애플리케이션이 하나의 아키텍처로 구성되어있기 때문에) 빠르게 서비스를 만들 수 있다 - 조그마한 수정사항이 있어도 전체를 다시 빌드하고 배포해야 한다 > 유지보수가 힘들다 프로젝트 규모가 커질수록 구동시간이 늘어난다 일부 오류가 전체 서비스에 영향을 미친다 MSA ..