기본 출력문 - log, info, debug, warn, error

console.log('기본');
console.info('정보');
console.debug('디버그');
console.warn('경고');
console.error('에러');

 console로 출력할 수 있는 출력문은 level(중요도)로 분류해서 사용할 수 있습니다. log4j처럼

console의 level [log, info, debug, warn, error]

 만약 console.debug()로 출력한 내용이 나오지 않으면 콘솔에 출력 옵션을 확인해보시면 됩니다.

크롬의 console level 설정

 크롬 같은 경우 console 출력 설정 기본 값이 Info, Warnings, Errors라 Debug는 출력이 안될 수 있기 때문에 옵션이 원하는 데로 설정이 되었는지 확인이 필요합니다.

여러 가지 출력 방법

const owner = 'YD';
const message = 'Hello world!';
const isDeveloper = true;
const age = 27;

console.log(owner); // 하나의 값만 출력
console.log(owner, message, isDeveloper); // 여러 개의 값을 동시에 출력
console.log('%s는 문자와 %d는 숫자', owner, age); // 치환 문자 사용하기
console.log(`${owner} ${message}`); // "`" 백틱 사용하기

 console.log()는 단 하나의 값뿐만 아니라 여러 가지 방법을 이용해서 값을 출력할 수 있습니다. 개발자마다 취향은 다르지만 개인적으로 선호하는 방법은 백 틱을 사용하는 방법입니다. 사용하는 방법에는 정해진 가이드가 없으니 편한 방법을 택해서 사용하시면 됩니다.

스타일을 입혀보자

// 출력문에 스타일 적용하기
console.log('%c출력문의 색상과 글자 크기를 변경하였습니다.', 'color: green; font-size: 16px;');

// 여러가지 스타일을 동시에 적용하고, 추가 메세지 출력하기
console.log('다중 스타일과 추가 메세지 출력하기: %c초록 %c파랑', 'color: green', 'color: blue', '추가 메세지 작성');

 console.log()는 %c(치환 문자)를 사용하면 스타일을 설정할 수 있습니다. 뿐만 아니라 동시에 여러 개의 스타일을 적용할 수도 있습니다.

console.log()에 스타일 적용하기

 

 

 

객체 출력하기

const obj = { owner: 'YD', text: 'Hello world!' };

console.log(obj); // 객체를 출력할 때는 이 방법 대신
console.log(JSON.parse(JSON.stringify(obj))); // 이 방법을 사용하자!

 이 내용은 이전 글에서도 다룬 내용이지만 구체적인 이유는 다루지 않았기 때문에 한번 더 이야기해보도록 하겠습니다. 왜 객체를 출력할 때는 JSON.parse()와 JSON.stringify() 함수까지 번거롭게 사용하면서 객체를 출력해야 하는 걸까요? 그 이유는 console.log()가 우리가 원하는 방식대로 동작하지 않기 때문입니다. console.log()를 통해 객체를 출력하면 console.log()를 사용한 시점의 객체가 출력되길 원하지만 결과는 그렇지 않기 때문입니다.

let obj = {};
console.log(obj);
// 출력되길 원하는 값: {}

obj.owner = 'YD';
console.log(obj);
// 출력되길 원하는 값: { owner: 'YD' }

 위의 예제 코드를 출력해보면 아래와 같은 결과를 확인할 수 있습니다. 2번째 줄 console.log()에서는 어떤 값도 가지지 않고 있어야 하는데 코드를 실행하면 obj가 값을 가지고 있다고 보이고 있습니다. 많은 브라우저들이 객체의 경우에는 값이 경신될 때마다 바뀐 값을 보여주게 되어있습니다. 그렇기 때문에 객체를 출력할 때는 console.log(JSON.parse(JSON.stringify(obj))) 이렇게 사용하는 것이 가장 좋습니다.

cosole.log()를 사용한 객체 출력

DOM 요소를 JSON처럼 보여주는 console.dir()

 console에는 log()와 같아 보이지만 다른 출력문 기능인 dir()이 있습니다. log()와 dir() 차이는 요소를 HTML과 같은 트리 구조를 보여주느냐 JSON과 같은 형태로 구성 요소를 보여주느냐입니다.

 

  Element가 가진 메서드를 확인하고 싶어서 console.log()를 사용해보신 적이 있으실 텐데요. 원하는 결과는 보여주지 않고 HTML의 구조만 보여줍니다. 바로 이럴 때 console.dir()를 사용하시면 됩니다.

console.log()와 console.dir()의 차이

 

 

 

console.log()를 묶어서 사용해보자

console.group();
    console.log('Hello world!');
    console.group('Web Developer');
        console.log('Frontend Engineer');
        console.log('YD');
    console.groupEnd();
console.groupEnd();

 console을 이용해 메시지를 그룹화시켜서 사용할 수 있습니다. 이는 시각적으로 계층을 분리하는 효과가 있으며, log level과 같이 사용하면 활용도를 더 높일 수 있습니다.

console.group()를 사용하면 가질 수 있는 시각적 혜택

배열을 멋지게 보는 console.table()

let data = ['Mark', 'YD', 'Evan'];
console.table(data);

 배열 형식의 데이터를 console.table()를 사용하면 console.log() 보다 멋진 출력물을 확인할 수 있습니다. JSON 형태의 값도 확인할 수 있습니다.

console.table() 출력 결과

숫자를 세어보자 console.count()

console.count('Yap!');
console.count('Yap!');
console.count('Yap!');
console.count('Yap!');

 이 함수는 특정 count()가 호출된 횟수를 기록하고 보여줍니다. label을 옵션으로 사용하며 횟수를 기록합니다. console.countReset()를 호출하면 누적된 기록이 초기화됩니다.

console.count() 사용 결과

성능을 측정해볼까? console.time()과 console.timeEnd()

console.time('타이머');
let value = 0;
for (let count = 0; count < 100; count++) {
    value += 5;
}
console.timeEnd('타이머');

 코드의 소요 시간을 측정할 때 사용하면 유용한 기능입니다. label을 필수 인자로 사용하며, 타이머를 식별하는데 이용됩니다. 시간 단위는 밀리초를 사용합니다.

console.time()과 console.timeEnd()를 사용한 소요 시간 측정 결과

 

 

1. Temp 폴더

C:\Users\[사용자ID]\AppData\Local

 

2. 두번째 Temp 폴더

경로 : C:\Windows\Temp

설명 : 씰데없는 파일들.(현재 열려있는 파일은 지워지지 않는데 그냥 건너뛰기 하세요)

 

3. DLL캐쉬 폴더

 

경로 :  C:\WINDOWS\system32\dllcache

설명 : 윈도우 설치 초기 관련 파일들이 있는 곳인데 삭제해도 무방

 

4. 오피스 설치 파일 폴더

 

경로 : C:\MSOcache

설명 : 오피스(Office) 프로그램을 설치하고 나면 생기는 폴더 입니다. 더 추가로 설치할 기능이 없다면 삭제하셔도 됩니다. 


5. 윈도우 인스톨 폴더(Install Folder)

경로 : C:\windows\installer

설명 : 저 폴더를 한방에 다 지우시면 안됩니다. C:\windows\installer\$PatchCache$\Managed 이 폴더만 지우도록 합시다.

 

6. 디스트리뷰션 다운로드 폴더

경로 : C:\WINDOWS\SoftwareDistribution\Download

설명 : 윈도우 및 오피스군의 업데이트 파일들이 있는곳.

 

 

AWS EC2 Ubuntu 20.04 LTS 버전에 Redis 설치

# OS 버전 확인
lsb_release -dc
Description:    Ubuntu 20.04.3 LTS
Codename:       focal

1. Redis Server 패키지 설치하기

sudo apt-get install redis-server

1-1. Redis Server 패키지 설치가 완료되면 버전 확인

sudo redis-server --version

2. Redis Server 설정

# OS .conf 경로
sudo vi /etc/redis/redis.conf
  • redis 접속 비밀번호
  • redis에 접속 가능한 ip 주소
  • redis가 사용할 min/max 메모리
  • 메모리가 가득 찼을 때 데이터 교체 알고리즘 등등..

2-1. Redis Server 메모리 설정

설정 파일에서 maxmemory 옵션으로 설정

max 메모리 값 만큼의 용량이 확보

maxmemory <bytes> 라인의 주석(#) 해제하고 <bytes> 부분에 원하는 max 메모리 값을 입력

데이터 단위 정보 까지 포함 (ex: maxmemory 1gb, 1g, 1mb, 1m, 1kb, 1k)

2-2. Redis Server 데이터 교체 알고리즘 설정

maxmemory-policy 옵션으로 설정.

maxmemory-policy  라인의 주석(#) 해제하고 원하는 데이터 교체 알고리즘 값을 넣습니다. Ex: 모든 키에 대해서 사용된 지 가장 오래된 데이터를 삭제하는 allkeys-lru 알고리즘

가능한 교체 알고리즘의 목록과 설명은 https://redis.io/topics/lru-cache <<Eviction Policies 부분 확인

정책명 설명

noeviction ★ 기존 데이터 삭제 안함. 메모리 한계에 도달하면 OOM 오류 반환하며 새 데이터가 저장되지 않는다.
allkeys-lru ★ 모든 것 중에서 LRU 기준으로 삭제하여 공간확보
volatile-lru ★ expire set을 가진 것 중 LRU로 삭제하여 간확보
volatile-ttl ★★ expire set을 가진 것 중 TTL이 짧은 것부터 삭제하여 공간확보
allkeys-random 모든 것 중에서 랜덤으로 삭제하여 공간확보
volatile-random expire set을 가진 것 중에서 랜덤으로 삭제하여 공간확보

2-3. Redis Server 외부 접속 설정

외부 접속 설정 ip 정보는 bind 옵션으로 설정 가능

bind 값 수정

2-4. Redis Server 패스워드 설정

SECURITY 영역 이동 requirepass <비밀번호> 라인(#)주석 해제 후 설정

2-5. Redis Server Port 설정

2-6. Redis Server Port Bind 확인

ubuntu@ip-172-31-59-154:/etc/redis$ sudo ps -ef | grep redis
redis    2859926       1  0 16:55 ?        00:00:00 /usr/bin/redis-server 0.0.0.0:6379
ubuntu   2862300 2715715  0 17:02 pts/0    00:00:00 grep --color=auto redis

3. Redis Streams Consumer Groups 생성

 
sudo redis-cli
6379> XGROUP CREATE webhook group-1 $ MKSTREAM

3-1. Redis Server 설정 후 서비스 재 시작

sudo systemctl stop redis-server
sudo systemctl start redis-server
sudo systemctl status redis-server
sudo systemctl restart redis-server

 

Secure tunnels to localhost외부에서 로컬에 접속 가능하게 하는 터널 프로그램이다.

설치하기

  1. ngrok 사이트에서 다운로드 받기 _ ngrok 바로가기
  2. ngrok 압축풀기
  3. ngrok.exe가 설치된 경로에서 아래 명령어 실행하기

실행하기

windows

./ngrok.exe http 8080

mac or linux

./ngrok http 8080

npm으로 실행하기

npm install -g ngrok
ngrok http 8080

실행화면

Session Expire

  • 한 세션은 8시간 후 만료된다.
  • 회원 가입 후 아래 링크에서 AuthToken을 가져와 입력한 후 실행하면 세션 만료 없이 사용할 수 있다. _ AuthToken 가져오기
./ngrok http 8080 AuthToken값

AuthToken 추가 후 Account

테스트

참고 글https://akageun.github.io/2019/06/26/how-to-use-ngrok.htmlhttps://phoby.github.io/ngrok/

ngrok을 사용하여 이미 HTTPS를 제공하는 로컬 서버의 공용 HTTPS 주소 가져오기(무료)

여기 시나리오는 이미 https를 통해 웹 애플리케이션을 제공하는 로컬 웹 서버가 있다는 것입니다. 다른 컴퓨터/장치에서 웹 응용 프로그램에 액세스할 수 있기를 원하므로 ngrok를 사용하여 공개 URL을 제공하고 있습니다. 기본적으로 ngrok은 로컬 웹 서버가 http를 제공하고 있다고 가정하고 로컬 웹 서버에 대한 http 및 https 터널링을 모두 지원하는 공개 URL을 제공합니다. 이것은 정말 멋지지만 이미 https를 제공하고 있다면 어떻게 될까요? ngrok이 제공하는 https URL이 작동하지 않습니다.

이제 ngrok의 무료 제품에 이 기능이 포함되어 매우 간단하게 작업할 수 있게 되어 기쁩니다!

포트 4200에서 실행 중인 로컬 웹 서버가 있고 이미 SSL 인증서로 설정되어 있다고 가정해 보겠습니다(따라서 https URL을 통해 액세스할 때만 작동함).

기본 명령줄로 ngrok을 시작하는 대신:

ngrok http 4200

대신 다음 명령줄을 사용하세요.

ngrok http <https://localhost:4200>

로컬 웹 서버가 호스트 헤더에 대해 까다롭다면 다음 명령줄로 ngrok를 시작하여 이를 매핑할 수도 있습니다.

ngrok http <https://localhost:4200> -host-header="localhost:4200"

다음 오류가 발생하면 ngrok 버전이 너무 오래되어 이 최신 기능을 지원하지 않기 때문일 수 있습니다. 최신 버전을 다운로드하고 다시 시도하기만 하면 됩니다.

참조링크 :

Using ngrok to get a public HTTPS address for a local server already serving HTTPS (for free)

Ubuntu 20.04 LTS 버전에 MongoDB 설치

# OS 버전 확인
lsb_release -dc
Description:    Ubuntu 20.04.3 LTS
Codename:       focal

1. 패키지 관리 시스템에서 사용하는 public key 가져오기

wget -qO - <https://www.mongodb.org/static/pgp/server-4.4.asc> | sudo apt-key add -

2. MongoDB를 위한 List 파일 만들기

List 파일을 만드는 방법은 우분투 버전에 따라 다르기 때문에 이 글의 도입부에 안내 한대로 본인의 우분투 버전을 확인하고, 그에 맞춰 진행해야 한다.

(현재 우분투 20.04 버전 입니다.)

$ echo "deb [ arch=amd64,arm64 ] <https://repo.mongodb.org/apt/ubuntu> focal/mongodb-org/4.4 multiverse" | sudo tee /etc/apt/sources.list.d/mongodb-org-4.4.list

3. 로컬 패키지 데이터베이스 불러오기

MongoDB 패키지 설치를 위해, 먼저 터미널 창에서 다음 명령어를 실행해 로컬 패키지 데이터베이스를 불러온다

sudo apt-get update

4. MongoDB 패키지 설치하기

(3) 번 작업이 완료되었다면, 이제 MongoDB 패키지를 설치해주자.

아래의 명령어로 최신 안정 버전의 MongoDB 설치

sudo apt-get install -y mongodb-org

5. MongoDB 실행하기

터미널에서 아래 명령어로 몽고디비를 실행.

sudo systemctl start mongod

mongodb - 상태 확인

sudo systemctl status mongod

mongodb - 재 시작

sudo systemctl restart mongod

mongodb - 시작

sudo systemctl start mongod

mongodb - 중지

sudo systemctl stop mongod

mongodb - 시스템 재부팅 후 시작되도록 설정

sudo systemctl enable mongod

6. MongoDB 사용 시작하기

아래 명령어를 사용해 mongo 실행하면 27017 포트(default port)로 localhost에서 실행 중인 mongod에 연결된다. (서비스가 정상으로 접속이 되는지 확인.)

mongo

7. MongoDB 외부에 연결(AWS EC2)

mongoDB는 디폴트로 내부에서만 접속을 허용하고 있기 때문에. 이 작업은 외부에서 접근이 가능하도록 설정을 수정합니다.

sudo vi /etc/mongod.conf
# mongod.conf

# for documentation of all options, see:
#   <http://docs.mongodb.org/manual/reference/configuration-options/>

# Where and how to store data.
storage:
  dbPath: /var/lib/mongodb
  journal:
    enabled: true
#  engine:
#  mmapv1:
#  wiredTiger:

# where to write logging data.
systemLog:
  destination: file
  logAppend: true
  path: /var/log/mongodb/mongod.log

# network interfaces
net:
  port: 27017
  bindIp: 0.0.0.0

# how the process runs
processManagement:
  timeZoneInfo: /usr/share/zoneinfo

#security:

#operationProfiling:

#replication:

#sharding:

## Enterprise-Only Options:

#auditLog:

#snmp:

7-1. 아래 네트워크 인터페이스 내용 수정

# network interfaces
net:
  port: 27017
  bindIp: 0.0.0.0

 

7-2. 내용 수정 후 mongod 서비스 재 시작

sudo service mongod restart

'Database' 카테고리의 다른 글

[PostgreSQL] Stored Procedure  (1) 2022.09.21
Redis 설치 및 설정(AWS EC2)  (0) 2022.03.22
[MS-SQL] 대용량 데이터 삭제하기  (0) 2021.12.29
Database Naming rule  (0) 2021.09.14
[MS-SQL] SQL_SERVER DB계정 Query  (0) 2021.08.30

+ Recent posts