akasai
- tjdwns2020@gmail.com
- Seoul/Korea
👨💻 Backend Developer
- #Node.js
- #Typescript
- #GraphQL
- #Serverless
- #PostgreSQL
- #Kubernetes
쿠버네티스
KubeConfig란?
CKA를 준비하며 공부하고 있는 내용을 정리하고 있습니다. 부족한 부분도 많을 수 있습니다. 언제든 말씀해주시면 더 공부하고 수정하겠습니다. KubeConfig란? REST API 또는 kubtctl 명령을 이용하여 정보를 호출…
기초
extends와 implements의 상속개념
OOP에서 핵심적인 특징 중 한가지인 상속의 종류에 대하여 알아보았습니다. 상속 객체간의 계층구조를 표현하는 방법입니다. 상속을 통해 하위객체는 상위객체의 특징을 물려받습니다. 상위객체는 , 하위객체는 이라고 표현합니다. 상속…
기초
OLTP와 OLAP
OLTP와 OLAP는 오래전부터 데이터 처리의 목적성에 따라 구분되어 사용된 용어입니다. 비슷하지만 다른 두 용어에 대해 알아보았습니다. OLTP (OnLine Transaction Processing) 네트워크상 온라인 사용자…
DevOps
Scale Up과 Scale Out
다양한 환경에서 서버 구성을 하다 보면 늘어나는 접속자 또는 처리량에 따라 스케일링(Scaling) 을 고려해야 하는 상황이 옵니다. 스케일링에 있어 대표적인 두 가지를 비교해보았습니다. Scale Up (스케일 업) 기존 서버…
기타
2021년 회고
블로그를 새로 만들고 나서 첫 번째 회고인 것 같다. 기념으로 미디엄에 썼던 예전 회고를 읽어 보았는데, 다시 쓰려니 감회가 새롭다. 발버둥 치던 2021년이 끝나고 벌써 2022년의 1월도 절반이 지나갔다. 달마다 간단한 느낌…
DevOps
apt와 apt-get의 차이점
Terminal에서 여러가지 실습을 하던 도중 와 에 모호함이 생겨서 간단하게 이를 알아보았습니다. apt(Advanced Packaging Tool) 이란? ubuntu환경에서 형식의 파일을 대상으로 하는 패키지 관리 cli입…
기타
개발자 로드맵 2022
2022년 버전이 새로 업데이트 되어 포스팅해본다. 아직 한글버전은 준비되지 않은 것 같다. 기존 페이지가 많이 업데이트 되서 백엔드는 이미지가 아니라 서비스형태로 변경되었다. 최근에 GoLang공부를 시작하게 되어 GoLang…
Node.js
Promise.allSettled()
Promise.allSettled함수는 iterator의 모든 Promise함수들의 결과가 처리( 또는 )될 때까지 대기한 뒤 결과를 반환하는 함수입니다. 이와 관련된 내용을 알아보려 합니다. Promise.all은 여러개의 함…
쿠버네티스
Pod란?
CKA를 준비하며 공부하고 있는 내용을 정리해보려고 합니다. 공부 순서대로 정리를 하고 있어서 다소 부족한 부분도 많을 수 있습니다. 파드(Pod)란? 는 쿠버네티스가 만들 수 있는 가장 작은 오브젝트이며, 기본이 되는 배포 …
기타
해피해킹 키보드 튜닝하기
해피해킹(HHKB)키보드를 쓴지도 3년 정도 되었습니다. Lindy케이블을 연결하여 매우 만족스럽게 사용하고 있었지만, 있었지만 선이 좀 거추장스러워서 블루투스 지원 키보드 구매를 고려하고 있었습니다. 우연히 블루투스 튜닝에 대…
AWS
VPC란?
AWS기반의 클라우드 환경을 사용하면 자연스럽게 사용하게 되는 리소스가 바로 입니다. 전반적인 구성요소에 대한 개념을 간단하게 알아봤습니다. VPC (Virtual Private Cloud) 논리적으로 격리된 네트워크를 의미합니…
기초
Web Server와 WAS
자주 헷갈리는 개념인 와 의 차이점을 알아보았습니다. Web Server Http 요청이 들어오면 로부터 해석된 HTML문서와 같은 웹페이지를 반환하는 역할을 합니다. 주로 정적(Static)인 데이터를 처리합니다. 종류 Ap…
DB
DB의 Index
인덱스를 간단하게 살펴보고 클러스터 인덱스와 넌 클러스터 인덱스를 알아보았습니다. Index란? 추가적인 쓰기와 저장공간을 사용하여 Database 테이블의 검색속도를 높여주는 자료구조입니다. CUD 작업(, , )은 기본적으로…
Architecture
MSA(Microservice Architecture)이란?
실무에서 실제로 사용중인 아키텍처 패턴인 MSA에 대하여 간략히 알아보았습니다. MSA(Microservice Architecture)란? Microservice Architecture의 약자로 독립적인 배포가 가능한 서비스들로…
TTL을 이용한 DynamoDB Stream Trigger
주기적으로 캐싱을 해야 하는 작업이 있어 삽질해본 경험을 공유하려 합니다. 단순하게 Crontab이나 배치 등을 이용하여 처리하는 방법과 Request 단위로 캐싱을 하는 방법을 생각해보았지만, 여러 조건이 존재해서 아래 방법을…
Architecture
EDA(Event Driven Architecture)이란?
최근 기존 구조를 고도화하는 작업을 진행했습니다. 동기 처리되던 로직을 비동기로 변경하면서 EDA(Event Driven Architecture)를 도입하였습니다. 관련된 내용을 정리해보려고 합니다. EDA(Eventt Driv…
DB
Isolation Level이란?
격리 수준(isolation level)이란? 격리수준(isolation level)이란 트랜잭션끼리 얼마나 서로 고립되어 있는지를 나타내는 수준입니다. 즉, 한 트랜잭션이 다른 트랜잭션이 변경한 데이터에 대한 접근 강도를 의미…
DB
트랜잭션과 ACID
트랜잭션이란? 여러 작업을 하나로 묶은 작업수행의 논리적 단위입니다. 한 개 이상의 작업으로 구성되며 한 트랜잭션은 모두 실행되거나, 실행되지 않습니다. 트랜잭션의 상태 한 트랜잭션 플로우의 흐름입니다. Active(활성) 트…
Redis
Redis가 싱글스레드인 이유?
레디스의 대표적인 특징은 싱글스레드입니다. 왜 싱글스레드로 구성되었는지 알아보았습니다. 레디스가 싱글스레드인 이유? 레디스는 **Event Loop(이벤트루프)**를 이용하여 요청을 수행합니다. 즉, 실제 명령에 대한 작업(Ta…
Redis
Redis란?
개인적으로 가장 좋아하는 NoSQL DBMS가 Redis입니다. 실무에서 기존부터 사용하고 있다 보니 자연스럽게 익숙해진 것 같습니다. 몇몇 특징들을 대충 알고는 있었지만 이번 기회에 자세히 알아보았습니다. 레디스란? Redis…
기타
개발자 로드맵 2021
2021년 버전이 새로 업데이트 되어 포스팅해본다. 아직 한글버전은 준비되지 않은 것 같다. Backend는 변경점이 거의 없고, Devops에는 컨테이너쪽에 내용이 추가되었다. 백엔드 개발자 데브옵스 개발자 Referenc…
기초
동시성과 병렬성
싱글 스레드기반의 프로그램들에 대한 공부를 하던 먼저 알고 넘어가야할 중요한 개념이라 생각되어 정리를 해보았다. 동시성 (Concurrency) 동시에 실행되는 것처럼 보이는 것. Time-sharing 알고리즘(시분할 등)을 …
Typescript
Typescript 4.1
11월 19일 Typescript 4.1이 릴리즈되었다. 한달이 지난 시점이지만, 대략적인 내용을 정리해 보았다. Template Literal Types String literal types 에서는 문자열 나열형태의 타입을 지…
기타
[컨퍼런스] if(kakao) 2020
if(Kakao) 2020 매년 카카오에서 진행하는 개발자 컨퍼런스이다. 추첨을 통해 제한된 인원만 참석할 수 있었는데, 올해는 언택트로 진행되어 너무 편하게 참여할 수 있었다. 기분탓인지 모르겟지만 오프라인때보다 더 많은 세션…
기타
[컨퍼런스] Devday 2020
지인의 추천으로 팀에서 진행한 발표내용을 보게되었다. 이를 보고 간략하게 느낌 부분을 적어보려 한다. Devday2020 Devday2020 에서 언택트로 진행한 개발자 컨퍼런스이다. 아쉽게도 일본 시장을 대상으로 잡고 진행한 …
Docker
도커 용어 정리
지속적으로 업데이트할 예정입니다. 도커와 관련된 용어들을 정리해본다. Docker 기존의 VM(Vertual Machine)처럼 하드웨어 기반 가상화가 아닌 커널을 공유하는 프로세스 기반 가상화 방법이다. Host OS 위 …
Typescript
Enum
은 Javascript와 Typescript와의 여러가지 차이점 중 한가지이다. 다양한 시스템 언어들이 Enum을 사용하고 있기 때문에 굳이 자세히 설명하지 않아도 될 것 같다. Enum Enum 타입을 사용하는 이유는 다양하다…
Typescript
Closure와 Private
Closure는 JS의 특징을 말할 때 필수적으로 나오는 요소이다. 이와 Typescript의 연관성 및 특징을 알아보려고 한다. 클로저 (Closure) Goggle에 검색만 해도 잔뜩나와서 (Chain Smokers를 포함해…
Node.js
Node.js의 I/O 동작
간단한 예제 코드를 이용하여 싱글스레드의 특징을 알아보려한다. 예제 코드 암호화 함수인 와 통신을 이용한 예제를 바탕으로 Node.js의 비동기 처리방법을 파악해보려고 한다. pbkdf2 모듈에 포함된 함수로 상당한 CPU작업을…
기타
개발자 로드맵
꾸준히 업데이트되고 있는 로드맵이다. 해외 개발자들이 오픈소스로 정리하고 배포하는 프로젝트인데 한글로 번역된 내용이 있어서 올려본다. 무조건 정답이라고 할 순 없지만 충분히 도움이 되는 것 같다. (다른 파트 로드맵은… 사이트에…
Node.js
Node.js의 스레드
앞서서 Node.js의 비동기처리에 대한 전반적인 내용을 정리했다. 이번엔 싱글만레드의 특징을 정리하려 한다. + 정말… 해도해도 공부할 내용이 끝이 없다. 얼마나 대충쓰고 있었는지 반성한다… 싱글 스레드 (Single Thre…
Node.js
비동기와 논블로킹
기본적인 Node.js의 비동기 처리에 대하여 정리해보았다. 비동기 처리에 있어서 단골로 등장하는 키워드인 을 정리해보려고 한다. 정의 동기(Sync) / 비동기(Async) 처리해야 할 작업들에 대한 처리과정. 두 가지 이상의…
Node.js
2020 TOP 10 Node.js Package & Framework
좀 … 이른감이 있지만 몇몇 해외블로그에서 TOP 10을 정리한 글이 있어서 정리해본다. NPM Package TOP 10 Express 가장 유명한 Server Framework가 아닐까? PM2 대표적인 Node.js Ap…
Node.js
Node.js의 이벤트 루프와 비동기
자바스크립트 V8엔진과 Node.js 런타임을 기반으로 비동기처리가 어떻게 처리되는지 이벤트 루프의 동작방식등을 정리한다. 이벤트 루프 이벤트 루프는 콜 스택과 큐를 감시하며 비어있는 콜 스택에 작업을 넣는 작업(Tick)을 수…
Node.js
Node.js의 구조
Node.js를 이용하고 개발을 하면서 너무나 자연스럽게 callback 을 다루면서 callback헬 을 겪었다. 본격적으로 Promise를 이용한 비동기 처리를 배우고 async/await 를 사용하여 편리하게 비동기 처리를…
DB
DB의 Lock/DeadLock
교착상태(Dead Lock)란? 모든 프로세스가 대기 상태이며 각 프로세스가 다른 프로세스가 가지고 있는 자원을 기다리고 있으면 라고 한다. 데이터베이스 관점에서는 트랜젝션간 발생하는 것을 의미하며, 두 개의 트랜젝션이 각각…
Node.js
async/await 병목현상 줄여보기
블로그 글을 보다 나는 지금 어떻게 개발하고 있는지 궁금해서 직접 테스트해보았다. async/await를 습관적으로 쓰고 있지만, 잘 쓰고 있는지 되돌아보는 계기가 되었다. Async/Await의 병목현상 Promise의 등장으…
Typescript
solid하게 SOLID (2)
Typescript 란? Typescript는 MS에서 만든 Javascript의 상위 언어로써, 서로 다른 언어가 아니다. 컴파일 언어이자, 정적 타입 언어이다. Javascript는 인터프리터 언어지만, Typescript…
Typescript
solid하게 SOLID (1)
OOP 란? OOP 가 뭐길래? 프로그래밍에서 필요한 데이터를 추상화시켜 상태와 행위를 가진 객체를 만들고 그 객체들 간의 유기적인 상호작용을 통해 로직을 구성하는 프로그래밍 방법이다. 왜 좋은데? 코드 재사용이 용이 존재하는 …
AWS
파일에 접근제한 부여하기 - Presigned URL
S3의 접근권한이 일 경우 버킷과 파일주소만 안다면 업로드된 파일을 자유롭게 접근가능하다. 이를 통해서 S3에 이미지 리소스를 저장한다거나 업로드되는 파일을 저장하는 방법으로 사용하고 있다. 이런 편의성은 큰 장점이지만 보안관점…
git
Local 저장소와 Github 연결하기
local에서 첫 개발을 시작하고 Github repository에 push를 할 단계가 온다. Git 초기화 위 명령어를 이용하여 git을 초기화한다. 방금 초기화 했다면 당연히 안되어 있겠지만, local 저장소가 원격저장소…