해당 내용은 코드잇 '프로그래밍 핵심 개념 in javascript'을 보면서 정리한 내용입니다. 문제가 될 시 삭제하겠습니다. 1. 자료형 01. 숫자형 // 나머지 console.log(7 % 3); // 1 // 거듭제곱 consloe.log(2 ** 3); // 8 // 덧셈 console.log(1 + 8); // 9 // 뺄셈 console.log(6 - 7); // -1 // 곱셈 console.log(2 * 2 * 2); // 8 // 나눗셈 console.log(5 / 2); // 2.5 // 사칙연산에 맞게 계산 됨 console.log(2 + 3 * 2); // 8 console.log((2 + 3) * 2); // 10 03. 문자열 기본 // 문자열 // 문자열은 같은 따옴표로 작..
HTTPS 사용 이유와 동작방식 1. HTTPS를 사용하는 이유 1-1. 웹사이트에서 주고 받는 정보를 암호화합니다. HTTP는 서버에서부터 브라우저로 전송되는 정보가 암호화되지 않습니다. HTTP는 정보를 단순 텍스트로 주고 받기 때문에 네트워크에서 전송 신호를 인터셉트 하는 경우 원하지 않는 데이터 유출이 발생할 수 있습니다. 예를들어, 네트워크를 공동으로 쓰는 PC방, 회사, 학교 등에서 간단한 스니핑툴로 로그인, 회원가입, 예약 등의 개인정보를 입력할 때 정보를 훔쳐 볼 수 있습니다. 하지만 HTTPS 는 통신 시에 정보를 암호화해주기 때문에, 아래 그림에서와 같이 해커가 중간에 정보를 훔쳐보아도 암호화되어 있어 정보를 알 수 없습니다. 1-2. 접속하는 사이트가 신뢰할 수 있는 사이트인지를 알려..
1. Forward Proxy, Reverse Proxy 란? 1-1. Forward Proxy 란? 일반적으로 대학 및 기업과 같은 대규모 조직에서 내부적으로 사용하며 아래와 같은 것들을 수행한다. 네트워크의 사전 설정된 정책에 따라 아웃바운드 트래픽을 규제 (예를들어, 회사 내부직원이 회사 컴퓨터로 특정 사이트에 접속할 때 접속을 막는다.) 직원이 특정 웹사이트를 방문하지 못하도록 차단 직원 온라인 활동 모니터링 클라이언트의 IP 주소를 위장하고 들어오는 악성 트래픽이 원본 서버에 도달하지 못하도록 차단 외부 사이트 콘텐츠를 캐싱하여 사용자 경험 개선 1-2. Reverse Proxy 란? 다수의 서버를 Reverse Proxy 서버 하단부에 위치시켜 두고, 특정 조건(일치하는 도메인 혹은 주소)에 ..
Nginx란? 기본 설정 파일 및 사용 방법 1. Nginx 란? Nginx는 가벼운 고성능의 웹서버로서 높은 트래픽 처리를 위해 만들어졌습니다. 예를들어 Apache의 경우는 접속마다 Process 또는 Thread를 생성하는 구조로, 1만명이 동시접속을 하면 그 만큼 Process or Thread 생성비용이 들 것이고 대용량 요청을 처리할 수 있는 웹서버로서의 한계를 드러냅니다. 하지만 Nginx는 한 개 또는 고정된 프로세스만 생성 하고, 그 프로세스 내부에서 비동기 방식으로 효율적으로 작업을 처리합니다. 따라서 동시 접속 요청이 많아도 Process 또는 Thread 생성 비용이 존재하지 않아서 높은 트래픽 처리에 유리한 웹서버입니다. 2. Nginx 기본 설정 파일 위치 기본 설정 파일 명 :..
Swap 이란? Swap 설정방법 Swap 이란? swap 이란 메모리가 부족할 경우 하드 디스크의 여유 공간을 활용하여 RAM 처럼 사용할 수 있도록 만드는 것을 말합니다. 디스크를 SSD 를 사용한다고 하더라도, RAM보다는 속도가 느리므로 swap 을 사용하게 되면 처리속도가 떨어집니다. swap 영역은 메모리가 부족한 경우 하드디스크에서 사용하게 되므로, 이 때문에 불필요한 I/O가 생겨 시스템의 성능이 저하될 수 있습니다. swap 영역의 크기를 동적으로 조정할 수 없어 하드디스크의 공간을 차지하게 됩니다. swap영역을 사용한다는 것은 시스템의 메모리가 부족하다는 의미이며, 이는 프로세스의 메모리 누수이거나 실제로 필요한 메모리가 부족하다는 뜻입니다. 메모리의 사용량이 시간이 지남에 따라 증가..
Redis cannot allocate memory 1. 에러 상황 12:M 27 Aug 16:20:23.500 * Starting BGSAVE for SYNC with target: disk 12:M 27 Aug 16:20:23.500 # Can't save in background: fork: Cannot allocate memory 12:M 27 Aug 16:20:23.500 # BGSAVE for replication failed 12:M 27 Aug 16:20:29.083 * 1 changes in 900 seconds. Saving... 12:M 27 Aug 16:20:29.084 # Can't save in background: fork: Cannot allocate memory 12:M 2..
Rabbitmq memory resource limit alarm 1. 에러상황 ********************************************************** =WARNING REPORT==== 08-Aug-2021::01:45:05 === memory resource limit alarm cleared on node 'rabbit@rabbitmq' =WARNING REPORT==== 08-Aug-2021::01:45:05 === memory resource limit alarm cleared across the cluster =WARNING REPORT==== 08-Aug-2021::01:45:06 === memory resource limit alarm set on node..
Fluentd 설치방법 (서버에 설치, docker로 설치) Fluentd 설치 방법을 두가지 버전으로 나누어서 설명하도록 하겠습니다. 첫번째는 ubuntu 20.04 서버에 직접 설치하는 방법 두번째는 도커로 서버에 설치하는 방법입니다. 두가지 방법 중 편한 방법으로 사용하시면 됩니다. 1. 서버에 직접설치 방법 공식 문서에 따르면 Fluentd 를 설치하기 전에 권장사항을 따를 것을 권고합니다. 참고 : https://docs.fluentd.org/installation/before-install NTP 설정 (NTP 데몬 설정, 정확한 현재 타임스탬프 설정) 최대 File Descriptors 로 늘리기 네트워크 커널 매개변수 최적화 1-1. File Descriptors 확인 $ ulimit -n..
Fluentd란? Fluentd 사용법 1. Fluentd 란 ? 로그를 수집할 수 있는 로그 수집기 입니다. Fluentd에서는 서버에 쌓이고 있는 log 파일을 지정하여 로그를 수집하도록 할 수 있습니다. 또는 http, tcp 통신하여 Fluentd로 직접 전송하는 방식도 사용할 수 있습니다. 이렇게 Fluentd에서 수집한 로그를 가공(로그에 값 추가 혹은 삭제, 필터 등) 할 수 있으며, 이를 파일이나 데이터베이스로 저장하거나 전송할 수 있습니다. 2. Fluentd 사용방법 Fluentd는 Input, Parser, Engine, Filter, Buffer, Ouput, Formatter 7개의 컴포넌트로 구성이 되어있습니다. 7개의 컴포넌트중 Engine을 제외한 나머지 6개는 플러그인 형태..
item-img 클래스 클릭 시 색상 변경 되고, python flask api 를 통해 DB 에 update, delete 하는 코드 1. python flask api method 생성 @app.route('/post/add_items', methods=['POST']) def add_items(): data = json.loads(request.data) user_id = data.get('user_id') subject = data.get('subject') items = data.get('items') user_db = db.MongoDB('user') user_db.add_item(user_id, subject, items) return items @app.route('/delete/delet..
MongoDB Docker 백업하기 MongoDB 를 백업하려면 mongodump 명령어를 사용해야 한다. MongoDB 도커에 exec 로 접속해서 mongodump 명령어를 사용할 수 있다. 매번 접속해서 명령어를 날리기 불편하므로, 도커 컨테이너 밖에서 사용할 수 있는 sh -c 명령어를 통해서 /bin/bash 로 도커 안으로 접속하지 않고도 사용할 수 있도록 명령어를 작성했다. 해당 명령어를 crontab 에 작성해놓아도 잘 실행된다. 1. mongodb volume 설정 docker run 컨테이너 실행 시 -v 옵션으로 volume 설정을 한다. mongodump 결과물을 저장하고 싶은 곳으로 설정한다. ex) -v /backup/tmp:/backup/tmp 2. docker exec 명령어..
1. __dict__ 용도 클래스 객체의 속성 정보를 확인하기 위해 사용 객체가 가진 여러가지 속성들을 딕셔너리 형태로 편하게 확인할 수 있다. 2. __dict__ 활용 방법 객체의 변수를 dict형태로 변경할 수 있다. dictionary 형태로 만들어 두면, 편하게 속성 값들을 가져올 수 있다. class Test: def __init__(self, name): self.name = name self.test_dict = {'a':1, 'b':2} self.test_list = ['1','2','3'] # Test 객체 생성 test_object = Test("minimi") # __dict__ 메소드를 이용해보면 type이 dict인 것을 확인 할 수 있다. print(type(test_objec..