🏢 업무 리서치 기록
-
Clinic.js로 Node.js 서버 프로파일링 하기🏢 업무 리서치 기록 2023. 1. 17.
Clinic.js는 Node.js 런타임 분석도구로 Doctor, Flame, Bubbleprof, Heap Profiler의 4가지 분석 도구를 지원해준다. 설치 $ npm install -g clinic 사용하기 1. 프로파일링 실행 아래 명령어로 프로파일링 할 Node.js 애플리케이션을 시작 할 수 있다. Nest.js 로 작성된 서버로 테스트 해보았다. $ clinic doctor -- node dist/main To generate the report press: Ctrl + C [Nest] 51844 - 2023. 01. 16. 오후 8:31:28 LOG [NestFactory] Starting Nest application... [Nest] 51844 - 2023. 01. 16. 오후 8:..
-
elasticsearch 7.17 scroll API 사용해보기(with TypeScript)🏢 업무 리서치 기록 2023. 1. 3.
이 포스트는 elasticsearch 7.17 버전에 대한 이야기 입니다. 운영 중인 7.17 버전 elasticsearch의 한 인덱스의 모든 도큐먼트를 S3로 옮겨야 하는 상황이 발생했다. elasticsearch 에서는 _search API로 한 인덱스의 전체 도큐먼트를 가지고 올 수 없다. elasticsearch의 _search API의 경우, 아래 처럼 size를 지정해 가져오고 싶은 도큐먼트의 갯수를 지정할 수 있다. curl -X POST "localhost:9200/my-index-000001/_search?pretty" -H 'Content-Type: application/json' -d' { "size": 100, "query": { "match_all": {} } } ' 그런데 이 ..
-
로그인 기능 구현의 과정 (feat. OAuth2.0 와 JWT)🏢 업무 리서치 기록 2022. 12. 16.
회사에서는 Google Workspace를 도입해서 사용하기 때문에 사내 구글계정이 따로 있고 사내 내부 서비스의 대부분은 그 회사 구글 계정으로 로그인 할 수 있는 기능을 지원하고 있다. 그렇다면 어떻게 구글 로그인을 구현했을까? 먼저 OAuth 인증 방식에 대해 알아보자 OAuth 참여자 리소스 서버 : Google, Facebook 같이 클라이언트가 제어하고자 하는 인증 자원(아이디, 비번)을 보유하고 있는 서버 리소스 오너 : 자원의 소유, 실제 사용자 클라이언트 : 리소스 서버에 접속해서 정보를 가져오고자 하는 웹 어플리케이션 OAuth 과정 1. 리소스 서버에 Client 등록해야 합니다. → GCP에서 등록 작업 수행 이때 웹어플리케이션에서 인증을 수행할 URL과 Authorization C..
-
OLTP VS OLAP (feat. 트랜잭션 ACID 특성)🏢 업무 리서치 기록 2022. 12. 15.
OLTP 란? Online Transactional Processing 의 약자, 그렇다면 Transactional이란 무엇일까? 트랜잭션처리가 가능한 작업들을 말한다. 그런 작업에서는 데이터의 ACID 특성을 보장하는 것이 중요한데 다음의 예시를 통해 트랜잭션의ACID 특성에 대해 알아보자 트랜잭션은 여러개의 DB 명령들을 하나의 단위로 실행시키는 일종의 커멘드 패턴이라고 볼 수 있다. ACID 특성이란? Atomicity 원자성 : 트랜잭션 내 여러 작업들은 하나의 작업처럼 동작한다. 하나라도 실패하면 전체가 다 실패한 결과를, 전체가 다 성공해야 트랜잭션이 성공한 결과를 내보내야 한다. Consistency 일관성 : 트랜잭션이 성공적으로 완료되면 일관적인 DB상태를 유지해야한다. 여기서 일관적인 ..
-
ssh 포트포워딩(터널링) 뚫기 (feat. 로컬에서 AWS VPC내 RDS 접속하기)🏢 업무 리서치 기록 2022. 12. 15.
SSH 란 무엇일까? Secure Sell의 약자로 원격지에 있는 컴퓨터를 안전하게 제어하기 위한 프로토콜 또는 이 프로토콜을 사용하는 프로그램들을 의미한다. 사용자 인증부터 데이터 전송까지 모든 과정이 암호화되기 때문에 보안성이 매우 높다. 이전까지는 Telnet을 주로 사용했는데 이것을 대체하기 위한 수단으로 등장했다고 한다. SSH Key 란? SSH 서버에 접속할 때 비밀번호 대신 키를 제출하는 방식을 말한다. 비밀번호방식보다 높은 수준의 보안을 필요로 하거나 비밀번호 없이 자동으로 서버에 접속하고 싶을때 키 방식을 사용한다. SSH key는 공개키와 비공개 키로 동작이 이루어진다. 공개키는 서버에 위치시키고, 비공개 키를 클라이언트가 가지고 있게 한다. 그리고 SSH 요청시에 클라이언트가 서버에..
-
[BigQuery] Streaming Insert VS Insert Into DML Query (1)🏢 업무 리서치 기록 2022. 12. 1.
현재 회사에서 BigQuery 테이블에 앱에서 발생된 사용자 로그를 BigQuery Streaming Insert 기능을 통해 로딩 하고있는 상황 인데, 쿼리 비용을 조사하던 중 Insert Into Query에서는 비용이 발생되지 않는 것을 발견 했다! 그렇다면 구지 돈을 써가면서 Streaming Inserts기능을 사용할 필요가 있을까? Streaming Insert 방식과 Insert Into Query로 데이터를 테이블에 넣는 방식은 서로 어떤 차이점이 있는지 궁금해 졌고, 각 방법의 차이에 대해 조사 한 내용을 정리했다. 💰 먼저 돈에 대한 부분에 대해 알아보자 Streaming Insert price VS Insert Into DML Query price 1. Streaming Insert ..
-
YouTube 데이터와 친해지기 (2) - Channel Reports VS Content Owner Reports🏢 업무 리서치 기록 2022. 12. 1.
이전 글 참고: YouTube 데이터와 친해지기 (1) 회사에서 YouTube 데이터 관련 이슈가 들어왔다. YouTube 채널들의 구독자수, 조회수 등 지표를 YouTube 스튜디오를 통해 관리하고 있는데 이 YouTube 스튜디오에서 제공하는 분석기능에 불편한 점이 많 neverfadeaway.tistory.com 지난 포스트 : YouTube Studio의 한계 지난 포스트에서는 유튜브 채널들의 통계데이터를 제공하는 유튜브 스튜디오의 불편한 점 그리고 유튜브에서 제공하는 API의 종류에 대해 살펴 보았다. 1년 보다 더 이전 기간 부터 발생된 데이터가져오기, 쿼리 방식 -> YouTube Analytics API 방식 앞으로 발생할 데이터가 안없어지고 살아남아 있도록 하기, 대량 다운로드 방식 ->..
-
YouTube 데이터와 친해지기 (1) - YouTube Analytics API VS YouTube Reporting API🏢 업무 리서치 기록 2022. 10. 27.
회사에서 YouTube 데이터 관련 이슈가 들어왔다. YouTube 채널들의 구독자수, 조회수 등 지표를 YouTube 스튜디오를 통해 관리하고 있는데 이 YouTube 스튜디오에서 제공하는 분석기능에 불편한 점이 많은 것 같다. 불편 한 점 중 몇가지를 적어보면 비디오 갯수가 500개로 제한이 걸려있어서 500개 이상의 비디오들의 구독자 수, 조회 수 등 지표를 확인하고 싶을 경우 수동으로 일일이 그룹을 만들어서 지표를 뽑아야한다. 콘텐츠 관련 회사라 운영하는 채널들도 많고, 비디오 갯수가 500개가 넘어 관리가 쉽지 않은 상황인것 같다. YouTube에서 제공하는 API를 활용하면 이런 문제를 해결 할 수 있을것 같다는 생각에 업무자동화를 해보기로 하였다. 먼저 YouTube에서 제공하는 API는 크..