![thumbnail](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fcounie%2FbtrRaEeLUoy%2FZkyP15IAEknpJMDbhK7vHk%2Fimg.png)
netstat 명령어 사용법
2022. 11. 14. 17:47
리눅스
들어가며 평소 서버를 켜고 나서 현재 수신하고 있는 상태인지 확인할 때 netstat 명령어를 자주 사용하곤 합니다. 매번 netstat -lntp 명령만 사용하다 보니 이 외 다른 옵션으로는 어떻게 조회하는지 알지 못해 이번 포스팅을 통해 다른 옵션들에 대해 알아보고자 합니다. netstat netstat 은 네트워크 연결 상태, 라우팅 테이블, 인터페이스 상태 등을 보여주는 명령어입니다. 사용법 및 옵션 netstat 사용법은 다음과 같습니다. # netstat [옵션] netstat 옵션은 다음과 같습니다. 옵션 설명 -a 모든 네트워크 상태 출력[-all] -c 현재 실행 명령을 매 초마다 실행[-continuous] -e 확장된 정보 출력[-extend] -g 멀티캐스트에 대한 그룹별 정보 출력..
![thumbnail](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fcpl02N%2FbtrQ9aZg6m7%2FikC9jiuKDCQdjX4vytgoS0%2Fimg.png)
서버 실행할 때 왜 .env.production 파일이 파싱되지 않지?
2022. 11. 14. 17:16
포트폴리오/JJINCAFE IN SEOUL
에러 발생 상황 데이터베이스 관련 정보는 소중하기 때문에 production 전용 환경변수 파일은 서버에 접속 후에 envs 디렉토리 하위에 직접 .env.production 파일을 생성했습니다. 이후 cross-env NODE_ENV=production pm2 start src/bin/www.js 명령 스크립트를 실행해 서버를 실행시켰습니다. 그러나 NODE_ENV 값이 설정되지 않는 경우 예외 처리 로직이 실행되어 로그 메세지 상에는 'process.env.NODE_ENV를 설정하지 않았습니다.' 가 보여질 뿐이었습니다. 위에서 보시다시피 명령 스크립트 상에 NODE_ENV 를 production 으로 설정했음에도 불구하구요. 로그 메세지 상에 환경변수 파일을 파싱하는 config.js 쪽에서 에러가..
TypeScript 언어 소개 및 장점 및 단점, 컴파일러 동작 방식
2022. 11. 14. 09:57
프로그래밍 언어/TypeScript
이 포스트에서 다룰 내용 TypeScript 란? TypeScript 장점 및 단점 TypeScript 컴파일러 동작 방식 TypeScript 란? TypeScript 란 순수 JavaScript 로 컴파일하는 정적 형식의 JavaScript 슈퍼셋입니다. 쉽게 말해서 JavaScript 에 타입을 부여한 정적 타입 언어입니다. TypeScript 의 장점 1. 컴파일러를 통해 사전 에러를 발견할 수 있습니다. 만약 타입스크립트를 설치하면 tsc 라는 명령어로 타입스크립트 파일을 컴파일할 수 있습니다. 이때 컴파일 단계에서 문법 에러를 잡을 수 있으므로 사소한 실수들을 프로그램 실행 전 모두 체크할 수 있습니다. 2. 타입을 강제화합니다. 타입스크립트는 모든 객체에 타입을 강제화하여 타입으로 발생하는 문..
![thumbnail](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FNUcxn%2FbtrQ1LjZ8gP%2FUTzB6K0Op90lieWkAgMzf0%2Fimg.png)
JavaScript 의 동작방식
2022. 11. 12. 18:56
프로그래밍 언어/JavaScript
살펴볼 내용 - 코드를 통해 알아보는 JavaScript 동작 방식 - JavaScript 런타임 환경 구성 JavaScript의 동작 방식(싱글 스레드, 콜스택) JavaScript 는 싱글 스레드 즉 단 하나의 스레드를 기반으로 한 프로그래밍 언어입니다. 싱글 스레드라는 말은 하나의 메인 스레드와 하나의 콜스택(호출 스택)을 가진다는 것입니다. 하나의 메인 스레드에서 호출되는 함수들은 하나의 콜스택에 쌓입니다. 이 함수들은 스택 구조 특성상 LIFO(Last In First Out) 방식으로 실행됩니다. 예시를 통해 알아보기 function a() { function b() { function c() { console.log("c"); } c(); console.log("b"); } b(); cons..
큐(Queue)
2022. 11. 11. 13:08
컴퓨터 과학/자료구조
큐(Queue) - FIFO(First In First Out) 으로 데이터를 저장하는 구조입니다. - 먼저 들어온 데이터가 먼저 나갑니다. - 주요 동작 : enqueue, dequeue, peekFront - enqueue(데이터) : 큐에 데이터 추가 - dequeue( ) : 큐의 가장 앞에 있는 데이터 제거 후 반환 - peekFront : 큐의 가장 앞에 있는 데이터 반환 JavaScript 로 Queue 구현(feat.Linked List) dequeue 메서드 구현 시 array 가 제공하는 shift() 메서드를 사용하면 간단하게 구현 가능하겠지만, shift() 메서드는 시간 복잡도가 O(n) 이므로 Queue 구현에 적합하지 않습니다. 시간 복잡도를 O(1)으로 하기 위해 연결 리스트..
스택(Stack)
2022. 11. 11. 12:42
컴퓨터 과학/자료구조
스택(Stack) - LIFO(Last In First Out) 으로 데이터를 저장하는 구조입니다. - 나중에 들어온 데이터가 먼저 나갑니다. - 주요 동작으로는 push, pop, peek 등이 있습니다. - push(데이터) : 스택에 데이터 추가 - pop() : 스택으로부터 최상단에 있는 데이터 제거 - peek() : 스택 최상단에 있는 데이터 값 반환 JavaScript 로 스택 구현(feat. Array) class Stack { constructor() { // item들을 받을 배열 생성 this.stack = []; } isEmpty() { return this.stack.length == 0; } push(item) { this.stack.push(item); } pop() { ret..
ADT 와 Data Structure 의 차이
2022. 11. 11. 11:52
컴퓨터 과학/자료구조
ADT - Abstract Data Type 의 약자로 추상화된 데이터 타입이라는 의미를 가지고 있습니다. - 가령 이 데이터 타입은 어떤 속성과 어떤 메서드를 가지고 있는지, 그리고 이 메서드는 무엇을 하는 건지 정의만 합니다. - 실제로 이 데이터 타입이 내부적으로 어떤 자료 구조로 구현되어 있고 어떻게 동작하는지에 대해서는 논의하지 않습니다. - 정의, 구현을 분리하면 사용자는 굳이 어떻게 구현되어 있는지 알 필요 없이 데이터 타입을 사용하는데 아무런 문제가 없습니다. - 그저 사용자는 ADT에서 정의된 기능을 사용하기만 하면 되고 구현은 개발자가 알아서 하면 됩니다. - 설사 데이터 타입의 구현 방법이 바뀌더라도 정의만 그대로라면 기존 사용자는 아무런 변경 없이 동일하게 데이터 타입을 사용할 수 ..
도커 컨테이너 환경변수 주입
2022. 11. 10. 18:10
Docker
들어가며 현재 예전에 진행했었던 프로젝트 시스템 구성을 도커 컨테이너 환경으로 전환하는 과정에 있는데요. express 서버 구성용 도커 이미지를 생성하는 과정에서 분명 환경 변수 파일이 저장되어 있는 디렉토리(envs) 또한 복사해 가도록 명령 구성을 했습니다. express 서버 컨테이너의 bash 창에 접근해 ls 명령을 실행해 현재 위치에 존재하는 디렉토리 및 파일 목록을 확인했는데요. envs 디렉토리가 존재하는 것이 확인되었으나, cd envs 명령과 ls 명령을 실행한 결과 envs 디렉토리 안에는 아무 파일도 존재하지 않는 걸 확인했습니다. 왜 환경변수 파일만 복사되지 않는지 그 이유를 찾지 못했습니다. 계속 헤매는 대신 환경변수 파일을 express 서버 컨테이너에게 전달해줄 다른 방법을..