전체 글 77

PostgreSQL 함수(Function)

PostgreSQL에서는 함수(Function)을 사용할 수 있다. 함수 구조 CREATE [OR REPLACE] FUNCTION function_name (arguments) RETURNS return_datatype AS $$ DECLARE -- 변수 선언 BEGIN -- 함수 로직 END; $$ LANGUAGE plpgsql; 키워드 설명 CREATE [OR REPLACE] FUNCTION 함수 생성 / [ON REPLACE]는 기존 함수 업데이트 허락 여부 function_name 함수명 arguments 함수 입력 인수 RETURNS return_datatype 함수 리턴 데이터 타입 DECLARE 함수에서 사용할 변수 선언 BEGIN, END 함수 로직 $$ LANGUAGE plpgsql 함수..

Git 기본

처음 github에서 repository를 만들면 위와 같은 화면이 나온다. local git이 설정되어있다면 아래와 같이 연동하고, 그게 아니라면 위와 같이 연동한다. 하나씩 살펴보자. git 생성하기(local 저장소 생성)git init git에 추가할 파일 알려주기git add // 모든 파일 추가 git add . git에 변경사항 저장하기git commit -m "저장할 메시지" main으로 브랜치명 변경git branch -M main 저장소 연동(주소 연동 시 앞으로 push 할 때 자동으로 기록된 주소로 변경사항 저장 됨)git remote add 저장 내용 업로드git push

Git

JavaScript 배열 자르기

JavaScript에서 배열을 자르기 위해서는 slice() 함수를 사용한다. slice() - 배열의 일부분을 잘라내어, 새로운 배열로 리턴 - 원본 배열의 값은 유지arr.slice([begin[, end]]) 파라미터 - begin: 잘라낼 배열의 시작 index - end: 잘라낼 배열의 종료 index로, end index 값은 잘라낼 배열에 포함되지 않음 end index를 생략하는 경우, begin index 부터 배열의 끝까지 잘라냄 리턴값 - 잘라낸 원소들로 만든 새로운 배열을 리턴 예시arr.slice(1, 3); // arr[1]~arr[3]까지 복사한 새로운 배열 리턴 (arr[3]은 제외) arr.slice(1); // arr[1]부터 배열의 끝까지 복사한 새로운 배열 리턴 arr..

JavaScript 배열 중간에 요소 추가 및 삭제

JavaScript에서 배열 중간에 요소를 추가하거나 삭제하기 위해서는 splice() 함수를 사용한다. splice() - 배열의 요소를 삭제, 교체하거나 새로운 요소를 추가하여 기존 배열을 변경하고, 변경된 배열을 반환array.splice(start[, deleteCount[, item1[, item2[, ...]]]]) 파라미터 - start: 변경할 배열의 시작 Index - deleteCount: start index부터 deleteCount의 개수만큼 요소 삭제 - items: 배열의 start index에 item들 추가 리턴값 - 삭제된 요소의 배열을 리턴 예시 # 추가users.splice(1, 0, 'Test'); // 1번 인덱스 자리에 'Test' 추가# 삭제users.splice..

JavaScript로 GCS에 파일 업로드 및 다운로드

Import const { Storage } = require('@google-cloud/storage') const xlsx = require('xlsx') GCP Storage에 파일 업로드 try { const storage = new Storage() await storage .bucket(bucket) .file(file) .save(req.files.image.data, { public: false, }) } catch (err) { console.log('storage error ', err) } GCP Storage에 업로드한 xlsx 파일을 json으로 조회 const storage = new Storage() const content = await storage.bucket(bucket..

Excel 그룹화 (부분합)

엑셀에도 그룹화 기능이 있어 정리하려고 한다. 사용 방법은 아래와 같다. 1. 그룹화 할 데이터로 정렬 - 부서명 내림차순으로 정렬 2. 데이터 탭의 부분합 메뉴 선택 3. 부서명으로 그룹화하여 매출액 합계 계산 결과 # 그룹화 된 결과만 복사하고 싶다면? 1. 왼쪽의 2번 탭 클릭하여 요약된 정보로 축소 2. 전체 선택 후 F5 누르고, 이동 창에서 [특수] 버튼 클릭 3. 이동 옵션에서 화면에 보이는 셀만 선택 후 확인 4. 복사 후 붙여넣기

ETC

Puppeteer 감시 방지

요즘 웹 사이트들은 안티 봇 시스템을 사용하여 헤드리스 브라우저를 감지 할 수 있다. 감지를 조금이나마 피하는 방법을 정리해보자. 1. 프록시 사용 - args에 매개변수로 proxy를 추가할 수 있다. const puppeteer = require('puppeteer'); const proxy = ''; // Add your proxy here (async () => { // Initiate the browser with a proxy const browser = await puppeteer.launch({args: ['--proxy-server=${proxy}']}); // ... continue as before })(); 2. 헤더 설정 - 사용자 지정 헤더를 추가할 수 있다. (user-agen..