단축키 및 팁 정리

Yunes·2023년 8월 14일
0

DOCS

목록 보기
4/6
post-thumbnail

📚 VSCode

파일 클릭시 새 탭에서 열리게 하기

visual studio code 가 파일 클릭시 새 탭에 열리지 않고 기존 파일에 덮어씌워서 켜지는게 많이 불편했는데 이 설정으로 해결했다.

⌘ + , 로 설정파일 열고 Enable Preview 혹은 Enable Preview From Quick Open 이 체크되어 있다면 체크해제하기

📚 HTTP

가끔 백엔드 작업을 하다보면 로컬에서 작업을 해서 localhost 만 url 을 갖고 있는데 서드파티 API 를 사용할때 redirect URL 은 https 만 사용 가능하다고 할때 난감할 수 있다. 테스트를 할때마다 배포를 하는 것도 번거롭고..

이럴때 ngrok 을 사용하면 매우 편하다.

대략 2~3시간정도? 어떤 유지시간이 있던거로 기억하는데 ngrok 을 사용하면 localhost 가 https://랜덤문자열.ngrok.io 로 변환되는 것을 볼 수 있다. 이러면 포트포워딩 결과 localhost 인 것은 변함없는데 redirect url 을 로컬환경에서 사용할 수 있게 된다.

수아뎀 - localhost 에 https 로 접속하기 를 참고했다.

📚 VS Code 단축키 추가

엔조이 - VS Code Snippets 추가 방법

"const": {
    "prefix": "ct",
    "body": ["const "],
    "description": "make const"
  },

  "log": {
    "prefix": "cl",
    "body": ["console.log('$1');", "$2"],
    "description": "Log output to the console"
  },

  "화살표 함수": {
    "prefix": "ar",
    "body": ["($1) => {}", "$2"],
    "description": "make arrow function"
  }

console.log 는 워낙 자주 사용해서 추가했고 const 는 종종 cosnt 라고 오타를 내서 추가했다. 그리고 화살표함수도 자주 사용해서 추가했다.

📚 error

<ref *1> Error: ENOENT: no such file or directory, uv_cwd

팀프로젝트를 진행후 팀의 레포를 내 깃허브 레포로 클론받아 설정을 만지고 sass 를 돌리려는데 위의 에러가 떴다. 자료를 찾다보니 그냥 터미널을 껐다가 켜보라는 말에 따라해보니 해결이 되었다..

stackoverflow 에서는 같은 디렉토리에 git clone 을 하여 다른 터미널을 켤때 발생했다고 한다. 여기의 글을 볼때 해당 오류의 원인은 노드가 오래된 파일 핸들이 있는 디렉토리를 읽으려고 시도하니 팀 프로젝트 레포를 내 깃허브 레포로 가져오기 위해 git remote remove origin, git remote add origin github~~~.git 으로 remote 를 변경하는 과정에서 변경이 발생했는데 이전 위치를 찾으려다 해당 오류가 발생한 것으로 보인다. 그래서 그저 터미널을 새로 켜보는 것으로 도움이 된다고 한다.

참고
s_yeah velog
stackoverflow
stakoverflow post

📚 프로젝트 구조

brew install tree

2단계 트리구조 조회

tree -L 2 -F .

node_modules 제외 프로젝트 구조 조회

tree -I node_modules

📚 소유자 변경

-R 로 하위 폴더 전부 적용

sudo chown -R jihun ./react-redux

📚 dpkg 오류

상황 : ec2 에서 ubuntu 를 사용중인데 nodejs 버전이 바뀌질 않는다
삭제하고 다시 설치해도 12.x 버전이라 옵셔널 체이닝같은 문법이 다 먹히지 않는다..

해결방법 :
오류에 나오는 /var/cache ... 를 sudo dpkg -i --force-overwirte 명령어로 넣어주면 해결된다.

나는 저기 오류에서 /var/cache/apt/archives/nodejs_16.20.2-1nodesource1_amd64.deb 가 나타났다.

그래서

sudo dpkg -i --force-overwrite /var/cache/apt/archives/nodejs_16.20.2-1nodesource1_amd64.deb

실행후

sudo apt -f install

를 실행해주니 해결되었다.

이후

sudo apt-get install nodejs -y

명령어를 통해 nodejs 를 재설치해주니 내가 원하던 버전인 16.x 로 버전이 수정되었다.

참고 레퍼런스
엘런임더의 블로그
nodesource/distributions

📚 port already in use

lsof -i tcp:8080

sudo kill -9 [PID]

📚 node.js 삭제후 재설지

sudo rm -rf /usr/local/lib/node
sudo rm -rf /usr/local/lib/node_modules
sudo rm /usr/local/lib/dtrace/node.d
sudo rm /usr/local/share/man/man1/node.1
sudo rm -rf /usr/local/share/doc/node
sudo rm -rf /usr/local/share/systemtap/tapset/node.stp
sudo rm -rf /usr/local/include/node
sudo rm /usr/local/bin/node
sudo rm /usr/local/bin/npm
sudo rm /usr/local/bin/npx

이후 새로 node.js 사이트에서 lts 버전을 다운받아 사용하면 된다.

📚 error: error:0308010c:digital envelope routines::unsupported

가끔가다가 node.js 버전이 잘 안맞아서 생기는 오류라고 하는데 버전을 바꾸고 node.js 를 삭제하고 다시 설치해도 해결이 되고 있지 않던 찰나 velog bi_sz 님의 포스트를 보고 해결할 수 있었다.

mac os, linux

export NODE_OPTIONS=--openssl-legacy-provider

windows

set NODE_OPTIONS=--openssl-legacy-provider

windows powershell

$env:NODE_OPTIONS = "--openssl-legacy-provider"

위의 명령어를 실행하고 나서 해결이 되었다.

이러고 넘어가면 원인도 모르고 왜 해결되었는지도 모르니 더 확인해봤다.

해당 오류의 원인은 Node.js 버전 호환성 문제로 웹팩이 해당 Node.js 버전과 함께 작동하지 않아서 최신 Node.js (나는 최신버전인 20.2버전을 쓰고 있었는데 이전버전인 18, 16버전으로 다운그레이드해도 해결되지 않았다...) 버전과 라이브러리/프레임워크 간의 호환성 문제가 발생할 수 있다.

npv (노드 버전 관리자) 혹은 n 을 통해서 노드의 버전을 쉽게 변경할 수 있으니 그걸 설치해봐도 해결은 되지 않았다.

상단의 명령어는 Node.js 에서 OpenSSL 대신 OpenSSL Legacy Provider 를 사용하도록 설정하는 것으로 이전 버전의 OpenSSL 과 호환성을 유지한다고 한다.

단, 상단의 해결방법은 컴퓨터를 재부팅시 다시 명령을 실행해줘야 하는 문제가 있다.

위의 문제는 WebRTC 를 알아보기 위해 참고 레포를 클론받아 실행해보려 하던 중 발생한 문제였다.

해당 프로젝트를 개발하신 분이 사용중이던 node 버전과 내 컴퓨터의 노드 버전이 달라서 발생한 문제가 아닐까 싶다.

참고 자료 https://stackoverflow.com/questions/74726224/opensslerrorstack-error03000086digital-envelope-routinesinitialization-e

profile
미래의 나를 만들어나가는 한 개발자의 블로그입니다.

0개의 댓글