| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 1 | 2 | 3 | 4 | 5 | 6 | 7 |
| 8 | 9 | 10 | 11 | 12 | 13 | 14 |
| 15 | 16 | 17 | 18 | 19 | 20 | 21 |
| 22 | 23 | 24 | 25 | 26 | 27 | 28 |
| 29 | 30 | 31 |
- XMLHttpRequest 예제
- 코어자바스크립트
- JavaScript
- dockerignore example
- docker compose
- cloudflare certbot
- cloudflare DNS
- 로스트아크 open API
- docker compose setting
- 코어 자바스크립트
- dockerignore setting
- XMLHttpRequest example
- cloudflare Origin Server
- nodejs DB
- docker compose example
- nodejs myslq2
- nodejs mariaDB
- 코어자바스크립트 정리
- docker image deploy
- Dockerfile setting
- cloudflare Origin Server CA
- docker
- cloudflare
- cloudflare ssl
- 로스트아크 API
- XMLHttpRequest with promise
- Raspberry Pi docker-compose install
- Dockerfile example
- Raspberry Pi docker install
- docker image 배포
- Today
- Total
목록전체 글 (22)
오늘
01 - 실행 컨텍스트란? 더보기 실행 컨텍스트(execution context) : 실행할 코드에 제공할 환경 정보들을 모아놓은 객체 자바스크립트는 동일한 환경에 있는 코드들을 실행할 때 필요한 환경 정보들을 모아 컨텍스트를 구성하고, 이를 콜 스텍에 쌓아올렸다가, 가장 위에 쌓여있는 컨텍스트와 관련 있는 코드들을 실행하는 식으로 전체 코드의 환경과 순서를 보장. 실행 컨텍스트를 구성하는 방법으로는 전역공간, eval()함수, 함수 등이 있다. 실행 컨텍스트 예제 ) var a = 1; function outer() { function inner() { console.log(a);// log : undefined var a = 3; } inner(); console.log(a); // log : 1 }..
01 - 자바스크립트의 데이터 타입 종류 더보기 기본형 ( primitive type) : [ 불변성 ] number string boolean null undefined symbol 참조형 (reference type) : 여러개의 프로퍼티(변수)가 합쳐진 데이터 타입 [ 가변성 ] Object Array Function Date RegExp Map, WeakMap Set, WeakSet 02 - 데이터 타입에 관한 배경지식 더보기 모든 데이터는 바이트 단위의 식별자( 메모리 주소 )를 통해 서로 구분하고 연결 가능. 변수 : 변할수 있는 데이터 식별자 : 특정한 데이터를 식별하는데 사용되는 이름 ( 변수명 ) 03 - 변수 선언과 데이터 할당 방식 더보기 ※ 변수 영역과 데이터 영역은 책의 저자이신 ..
cloudflare 의 SSL 설정은 크게 4단계로 구분된다. cloudflare Doc에서는 가능한경우 Full , Full ( strict ) 를 사용할 것을 권고하고 있다. 1. OFF 2. Flexible 3. Full 4. Full ( strict ) ** 적용 후에 바로 테스트하지말고 시간을 두고 천천히 확인 요망. 서버에 SSL 인증서를 적용한 후, 어느정도 시간이 지나야 cloudflare 측에 반영되는것 같음. ( SSL 인증서 적용하고 나서 식사하고 오니 반영되었음 ) cloudflare SSL - Full ( strict ) 모드를 사용하기 위한 방법. 1) 서버에 신뢰할만한 CA인증서 적용 아래의 포스팅 참고. 더보기 let's encrypt 인증서 발급. https://dev715..
현재 로스트아크에서 제공하는 오픈 API은 발급받은 Key마다 사용횟수 제한이 있다. (기본 : 100회/1분) 사용자가 요청을 할 때마다 API를 호출하게 된다면 사용횟수 제한에 걸려서 서비스가 정상적으로 동작할 수 없다. 아래 시퀀스의 하늘색 박스부분의 구현을 통해서 문제를 해결하기로 했다. 구현 내용 : 오픈API 호출이 정상적으로 이루어 지면 해당 데이터를 저장하고, 업데이트 시간을 기록. 사용자의 요청 시간 - 데이터 업데이트 시간이 일정수치 이상일때, 오픈API 호출 다시 데이터 저장 반복. ++ 예정 : cluster-shared-memory 패키지 적용 후 공유메모리에 데이터 저장. 현재는 클러스터별(4개)로 각각 메모리에 저장되기 때문에 불필요한 API 사용이 남아있음. - myloa 서..
XMLHttpRequest 사용 도중 status code에 따라 재요청을 해야하는 로직이 필요하게 되었다. 재요청 로직을 위해 재귀 호출로 구현을 하면서 promise 객체를 활용하였다. 재요청 로직 : status code 429 ( API key 사용량 초과)일때 다른 API key를 사용하여 API 호출. 최대 5번. https://developer-lostark.game.onstove.com/usage-guide#api-errors Lostark OpenAPI Developer Portal USAGE GUIDE This guide describes how to interact with Lostark Open APIs. This is a technical guide intended for soft..
certbot 을 통해 let's encrypt 인증서 발급하는 방법. 1. certbot 플러그인 설치 sudo apt-get install certbot sudo apt-get install python3-certbot-dns-cloudflare 사용중인 도메인을 Cloudflare에 등록해놓았을경우에는 python3-certbot-dns-cloudflare 를 추가로 설치해야 한다. 2. /.secrets/certbot/cloudflare.ini 파일 작성 dns_cloudflare_api_token = "" ++ api key 를 사용하려면 아래처럼 ini 파일 내용을 작성하면 될 듯 하다. dns_cloudflare_email = dns_cloudflare_api_key = ++ cloudfla..
mariaDB에 접근하기위해서는 mysql 모듈을 사용하면 된다. 개인적으로 async/await 방식이 더 가독성이 좋다고 느껴져서 mysql2 모듈을 사용. npm install mysql2 --save mysql 모듈 : 콜백 기반, promise 지원 X mysql2 모듈 : promise 지원, async/await 사용 가능 // mariadb.js connection pool 사용, 쿼리 수행도중 에러 발생시 rollback.callback, callbackfail을 외부에서 주입받아 사용할 수 있게 코드 작성. const mariaMyLoa = { host: '', port: , user: '', password: '', database: '', dateStrings: 'date', }; ..
2023/03/13 임시 방편 적용 내용 : api 서버의 응답으로 526 에러코드 가 전달됨. 원인 : ssl 설정 충돌 추측됨. [ 기존 ssl 설정 : Flexible ] 해결 : react 에 SSL 적용 ( 아직 nginx 적용전이라 react start script에 적용 ) 더보기 이슈 내용 : api 서버의 cors 설정을 완료하였지만, CORS 에러와 함께 api 서버에서 526 에러코드가 전달됨. 원인 파악 히스토리 : 1. 구글링 cloudflare에서 원본서버의 ssl 인증을 확인할 수 없을때 전달되는 에러코드라고 함. cloudflare ssl 설정이 Full SSL(Strict) 로 되어있을때. 2. cloudflare ssl 설정 4가지를 전부 테스트 해 봄. 단계 : Full..
2023/03/12 해결 내용 : react 배포용 빌드에서 api서버로 (nodejs) 데이터를 가져오기 위해 fetch를 할 때 api 서버에서 응답이 오지 않음. 원인 : cloudflare DNS의 프록시 기능을 사용하면, 사용자의 요청이 중간에 cloudflare Proxy server를 경유하게 됨. 기존에 사용하려고 했던 3030 은 cloudflare Proxy 에서 지원하지 않는 포트번호. ex) [도메인] >> cloudflare Proxy server >> [도메인에 등록한 IP] 해결 : cloudflare doc 참고하여 cloudflare Proxy 에서 지원하는 포트(2087)로 nodejs 서버 구동. https://developers.cloudflare.com/fundame..
npm을 사용하여 winston 설치 npm install winston winston-daily-rotate-file 로그 설정 파일 logDir : 절대경로 or 상대경로 설정 가능 아래 설정에 콘솔로그를 제외하고 2개 로그파일이 정의되어 있음. info 이상의 로그 : WorkingDir/logs 디렉토리에 저장 error 이상의 로그 : WorkingDir/logs/error 디렉토리에 저장 ++ WorkingDir/logs 디렉토리에 저장되는 로그파일에도 물론 error 로그 포함됨. const winston = require('winston'); const winstonDaily = require('winston-daily-rotate-file'); const { combine, timesta..