전체(17)
-
node-cron을 활용한 스케쥴링
전체 데이터를 카테고리화 하여 반영되어야하는 페이지가 있고 그 페이지 이용 수가 많아 과부하가 우려됨. 스케쥴링을 통해 특정 시간에 한 번씩 종합하여 반영하여 자원 소모를 줄이고자 함. 1. node-cron 설치 npm i --save cron 2. 스케쥴링 세팅 기본적인 형태는 아래 코드처럼 쓸 수 있음. 스케쥴링할 파일에 node-cron을 임포트 해주고, 주기 설정함. schedule()함수의 첫 번째로 인자로 실행 주기를 입력하고 두 번째 인자로 콜백 함수를 넣어 실행할 작업을 설정해줄 수 있음. const cron = require('node-cron'); //import cron.schedule('* * * * * *', () => { // scheduling console.log('runn..
2022.03.17 -
Maria DB 권한 관리
1. USER 생성 CREATE USER '[계정명]'@'[접속 위치(host)]' IDENTIFIED BY '[비밀번호]'; HOST는 IP를 입력하여 특정 IP에서만 접속할 수 있도록 허용할 수 있고, %기호를 사용하여 모든 호스트를 허용하거나 localhost를 입력하여 내부에서만 허용할 수 있음. 2. USER 삭제 DROP USER '[계정명]'@'[접속 위치(host)]'; 3. 권한부여 GRANT Create accounts and set privileges or roles. mariadb.com ↑권한 관련 공식 문서 GRANT [권한] ON [데이터베이스].[테이블] TO '[사용자]'@'[호스트]'; // 권한 지정 부여 GRANT ALL PRIVILEGES ON [데이터베이스].[테이..
2022.03.17 -
replace함수로 string타입 데이터 가공
RegExp와 String 메소드는 정규표현식에서 함께 사용되는 메소드이며 replace 함수는 String 메소드 중 하나 RegExp Method Description exec 매칭된 문자열이 있다면 매칭된 값의 배열을 리턴하고, 매칭된 문자열이 없다면 null을 리턴 test 매칭된 문자열이 있다면 ture를 리턴하고, 매칭된 문자열이 없다면 false를 리턴 String Method Description match 매칭된 문자열이 있다면 매칭된 값의 배열을 리턴하고, 매칭된 문자열이 없다면 null을 리턴 search 매칭된 문자열이 있다면 매칭된 문자열의 인덱스를 리턴하고, 매칭된 문자열이 없다면 -1를 리턴 replace 매칭된 문자열을 찾아 매칭된 문자열을 변경하는 메소드 split 매칭된 ..
2022.03.17 -
cross-env
필요상황 서로 다른 운영체제 사용자간 협업 등에서 특정 환경변수 주입이 필요한 상황, 보안상의 문제로 개발, 배포 버전의 설정을 달리해야하는 상황 등 데이터베이스 수정을 위해 사용 중이던 DB를 로컬에 백업하고, 개발 기간 동안 로컬에 백업된 DB를 대신 활용해야 하는 상황. cross-env 패키지를 사용하면 동적으로 process.env(환경 변수)를 변경할 수 있으며, 모든 운영체제에서 동일한 방법으로 환경 변수를 변경할 수 있게 됨. 수 시간 내로 완성될 작업이라 '.env'를 임시로 수정하여 해결할 수 있었지만 이후 이루어질 DB정규화 등의 과정을 위해 cross-env를 활용하게 되었음. 설치 npm install --save-dev cross-env 유사한 철자를 활용한 악성라이브러리 이슈가..
2022.03.17 -
Bcrypt 암호화
bcypt는 블로피시 암호에 기반을 둔 암호 해시 함수로서 Niels Provos와 David Mazières가 설계하였으며 1999년 USENIX에서 발표되었다. 레인보 테이블 공격 방지를 위해 솔트를 통합한 bcrypt는 적응형 함수의 하나이다. 시간이 지남에 따라 속도 저하를 위해 반복 횟수가 증가가 수반될 수 있으므로 연산 파워의 증가에도 브루트 포스 검색 공격에 대한 저항을 유지하게 된다. 비밀번호를 안전하게 보관하기 위처럼 비밀번호를 Plaintext로 저장해둔다면 특정 상황에서 데이터베이스가 뚫릴 경우 보안상의 큰 위험을 초래하게 된다. Hashing을 한 번 해주고 저장하면 조금은 보안성을 갖출 수 있지만 rainbow table 등의 위협에서 아직 자유롭지 못하다. 그래서 비밀번호에 Sa..
2022.03.17 -
REST 미지원 메서드 처리
1. Ajax 로 처리 $.ajax({ type: 'PUT', headers: { "X-HTTP-Method-Override": "PUT" }, }); type이나 headers에 메서드를 설정할 수 있음. 간혹 환경에 따라 GET, POST, PUT, DELETE 전부를 이용하지 못할수도 있음. 예를 들면 WAS가 메소드를 모두 지원해도 방화벽에서 GET과 POST만 받아들이면 PUT과 DELETE는 이용할 수 없기 때문에 헤더를 통해 메소드를 별도로 설정해주면 저걸 key 값으로 해서 작업을 할 수 있다고 함..... ajax예시 $.ajax({ type: 'PUT', url: url data: data headers: { "Content-Type": "application/json", "X-HTTP..
2022.03.17