분류 전체보기
-
[python] vscode pyenv로 python 로컬 개발 환경 구성하기✍️ 개인 스터디 기록 2023. 1. 12.
1. pyenv 란? 프로젝트에 따라 파이썬 버전이 다른 경우, pyenv로 가상 환경을 만들어 사용하면 프로젝트 별로 프로젝트에서 사용하는 버전과 패키지들을 분리해 관리할 수 있다. pyenv로 파이썬 설치하기 pyenv install 3.11.0 install 할 경우 macOS의 경우 아래 기본 경로에 파이썬이 설치된다. pyenv로 설치한 파이썬이 저장되는 경로: ~/.pyenv/versions $ cd ~/.pyenv/versions $ ls 3.10.4 3.11.0 3.9 3.9.15 fastapi recsys pyenv로 설치 한 파이썬 버전 및 가상환경 확인하기 pyenv versions 명령으로 설치된 버전과 가상환경을 확인 할 수 있습니다. $ pyenv versions * system..
-
[TS] tsconfig.json 변환 할 파일 지정 과 변환 결과 설정 옵션 (files, include, exclude, outDir)✍️ 개인 스터디 기록 2023. 1. 7.
타입스크립트는 기본적으로 tsconfig.json 파일의 경로를 기준으로 모든 디렉토리를 탐색하며 모든 .ts 파일을 .js파일로 변환한다. tsconfig.json 설정에서 변환 시킬 타깃 파일을 지정 할 수 있는데, 타깃 파일을 지정하면 그 파일과 그 파일 내에서 import 나 required 로 불러와 사용하는 다른 파일들이 있다면 그 파일들도 함께 딸려와서 변환 된다. tsconfig.json에서 변환 대상을 지정하는 옵션에는 다음과 같은 항목이 사용된다. files include exclude 1. files : 변환 포함시킬 파일 직접 지정 타입스크립트 CLI 로 아래와 같이 변환 할 파일을 선택 할 수 있는데 $ tsc target.ts 그 타깃이 되는 파일들을 files에 작성해 놓으면 ..
-
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": {} } } ' 그런데 이 ..
-
12월 회고 및 2022년 회고🤔 개인 회고 2023. 1. 1.
12월도, 2022년도 정신을 차려보니 벌써 지나가 버렸다. 시간은 나만두고 왜이렇게 빨리 달려가는 걸까? 부모님은 시간이 너무 빨리가는것 같다는 나의 말에 나이가 들면 시간이 빨리간다고, 부모님도 나와 형제들을 낳고 정신을 차려보니 벌써 환갑이 넘으셨다고 하셨다. 이렇게 벌써 30대의 첫 해가 이렇게 눈 깜빡 할 사이에 지나가고 앞으로의 시간도 빨리 지나갈것 같은 마음에 시간이라는게 참 무섭게 느껴진다. 이번 달에는 개인적으로 2023년 목표를 세우고 계획들을 정리하는 데에 시간을 많이 보낸것 같다. 여러 목표를 세웠지만, 먼저 개발과 관련된 목표를 말하면 3년이라는 시간 동안 내가 회사에서 개발을 해오면서 고민했던 부분을 다시 기록하고 블로그로 옮기는 작업을 진행 하려고 한다. 기록은 참 중요한것 같..
-
로그인 기능 구현의 과정 (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 요청시에 클라이언트가 서버에..
-
[Real MySQL] 인덱스 (3) - B-Tree 인덱스를 통한 스캔 방식들✍️ 개인 스터디 기록 2022. 12. 12.
인덱스 레인지 스캔 인덱스 풀 스캔 루즈 인덱스 스캔 인덱스 스킵 스캔(v8.0 이상) 1. 인덱스 레인지 스캔 아래 쿼리와 같이 검색해야 할 범위가 결정되었을 때 사용되어지는 방식 일단 리프노드에서 시작 지점을 찾기만 하면 그 이후로는 이미 정렬되어있는 리프노드를 따라 쭉 읽기만 하면 된다. SELECT * FROM employees WHERE first_name BETWEEN 'Ebbe' AND 'Gad' (1) 리프노드까지 들어가 시작지점을 찾는다. (2) 시작지점부터 리프노드만 순차적으로 읽는다.(이때 정렬된 결과가 반환 됨) (3) 리프노드에서 실제 데이터 파일 읽어올때는 랜덤 I/O가 개별적으로 발생함.😓 (1)번과 (2)번 과정은 얼마나 일어났는지 아래 쿼리로 확인하는것도 가능! 😮 SHOW..