공부 기록/IT 기술

lsof / npm vs yarn / node.js. / 아파치

naraewool 2022. 12. 6. 00:38
728x90

 

터미널에서 어느 작업을 위해 yarn dev 명령어를 입력했는데 다음과 같은 에러가 나왔다. 

Error: listen EADDRINUSE: address already in use :::11040     ......

11040 포트가 사용중이라는 메시지가 있어 lsof를 사용하여 11040 포트가 어디서 사용하는지 보았다.

lsof 사용법에서 안내한대로 다음 명령어 입력

lsof -i TCP:11040 // -i 옵션뒤에 프로토콜과 포트 명시


COMMAND   PID  USER   FD   TYPE             DEVICE SIZE/OFF NODE NAME
node    56721 xxxx   24u  IPv6 0x46252a7dc418bd63      0t0  TCP *:11040 (LISTEN)

프로세스 PID가 56721임을 확인한 후, 해당 프로세스를 강제 종료한다.

kill -9 56721 // 해당 프로세스 강제 종료

 

내가 참고한 문서 (https://jootc.com/p/201912253249)에서는 강제 종료 후 `npm run`을 입력 -> yarn dev -> 성공!

사실 나는 yarn dev를 사용하려다가 나타난 에러였므로 `npm run`은 굳이 사용하지 않아도 됐을 것 같다.

그럼 yarn과 npm의 차이를 알아보자!

참고: [DEV] npm 과 yarn

결론적으로 둘 다 node.js를 관리하는 package manager이다.

그럼 node.js는 무엇일까?

https://www.w3schools.com/nodejs/nodejs_intro.asp

  • node.js는 windows, Linux, macOS 등에서 모두 사용될 수 있는 cross platform
  • 서버 환경 관리를 위한 오픈 소스
  •  Node.js 자체는 프로그래밍 언어가 아님, JavaScript로 작성되어 있음
  • JavaScript로 서버측 개발을 할 수 있도록 JavaScript  런타임환경을 제공
  • 내장 HTTP 서버 라이브러리를 포함하고 있어 웹 서버에서 아파치*와 같은 별도 소프트웨어 없이 웹 서버 동작을 컨트롤 할 수 있음 (예: 이벤트 처리, 네트워킹 등)
  •  애플리케이션 서버 측에서 JavaScript를 사용할 수 있도록 하는 백엔드 기술 혹은 서버측 애플리케이션!
  • 서버에서 JavaScript를 이용하여 데이터를 관리하거나 서버의 파일들을 관리할 수 있다.

 

아파치는 무엇일까?

wiki에서는 "크로스 플랫폼 HTTP 웹 서버 소프트웨어"라고 말한다.  결론적으로 웹 서버를 관리할 수 있는 소프트웨어구나. node.js를 사용하면 아파치와 같은 프로그램 없이도 JavaScript만으로도 백앤드 쪽 (서버)을 컨트롤 할 수 있는 것이고.

 

 

참고