전체 글
-
시작하는 이들을 위한 mongoDB Aggregation 가이드whatIRead 2022. 11. 25. 16:56
예전에 몽고디비 사용할 때 읽으면서 정리해뒀던건데, 노션에서 작성해두고 그냥 뒀던것을 이제 올린다. 이럴거면 그냥 노션을 쓸까.. https://studio3t.com/knowledge-base/articles/mongodb-aggregation-framework/ MongoDB Aggregation: tutorial with examples and exercises | Studio 3T Master the MongoDB aggregation pipeline. Follow along with query examples using the most important aggregation stages, and test your skills! studio3t.com mongoDB를 시작할 때, 당신은 넓은 범위..
-
DBMS Connection pool 이 뭐임TodayILearned/TILWIL 2022. 9. 30. 01:36
postgresql Connection pool RDBMS connection pool DBMS는 자체적으로 서버와 클라이언트를 갖고있다. (데이터를 요청하는쪽이 클라이언트, 요청을 받아 처리하는쪽이 서버.) connection pool 이란 DB의 서버-클라이언트간의 연결 객체를 의미한다. 데이터베이스 연결에 드는 비용 데이터베이스에 연결하는 것은 아래처럼 여러 단계를 거쳐야하는 리소스가 많이 필요한 작업이다. 그러나 연결을 닫지않고 열린 상태로 유지하는 것 또한 리소스를 소모한다. 애플리케이션은 연결을 하기위해 DB driver를 사용한다. 네트워크 소켓이 애플리케이션과 DB를 연결하기위해 열린다. 유저 인증됨 작업이 완료되고 연결은 닫힌다. 네트워크 소켓이 닫힌다. DB connection pool..
-
Nest CacheTodayILearned/TILWIL 2022. 9. 28. 02:29
Cache 최근에 요청된 데이터가 금방 다시 요청 될 가능성이 높을 때 캐시에 저장한다 DB에 접근하여 데이터를 가져오는 것 보다 빠름 Nest cache Nest.js에서 자체적으로 캐싱을 제공하고있다. 캐시 인터셉터에 대한 코드는 nest.js 레포지토리에서 제공하고있다. 캐싱된 데이터는 기본적으로 서버의 메모리 내에 저장된다. (로컬캐시) 로드밸런서가 요청을 분산하는 경우, 동일한 요청이 다른 노드로 이동하면서 캐시 누락이 될 수 있음 공식문서에 따르면 Nest.js의 캐시를 사용하다가 Redis와 같은 인메모리 DB로도 쉽게 마이그레이션 가능한 것 같다. Cache interceptor code @Injectable() export class CacheInterceptor implements Ne..
-
gRPC 동작순서TodayILearned/TILWIL 2022. 8. 12. 14:50
protocol buffers의 동작 순서 .proto파일에 데이터 구조를 정의한다. .proto file 생성 ProtoC compiler로 해당하는 언어로 된 PB code를 생성한다. 프로젝트 코드와 PB코드를 컴파일한다. 컴파일 된 class들이 생성된다. PB클래스를 사용해 (데이터를) 직렬화하고 역직렬화한다. .proto file에서 정의한 데이터 형식대로 데이터를 매핑 출처 : https://developers.google.com/protocol-buffers/docs/overview Overview | Protocol Buffers | Google Developers Protocol buffers provide a language-neutral, platform-neutral, extens..
-
비전공자를 위한 이해할 수 있는 it 지식whatIRead 2022. 5. 6. 18:03
요즘은 시간을 들여 틈틈히 책을 읽는 중.. 책책책 책을 읽읍시다 같은 프로가 또 유행했음 좋겠다. 사실 내가 읽으려고 샀다기보다 누군가에게 선물하려고 산 책인데, 읽어보지도 않고 주는게 별로 성에 안차서 저녁에 빠르게 읽고 다음날 선물해드렸다. 비전공자가 읽기에 아주 어렵지도 않고, 또 나도 읽으면서 아 이건 이거구나 했던 부분이 안드로이드의 SDK부분.. 앱개발은 정확히 어떻게 진행되는지 알기 어려웠고, 그 중에서도 SDK가 뭔지 몰랐다. 이 책에서 프론트엔드, 백엔드를 모두 아울러 설명해주기 때문에 웹개발에 대해 한 눈에 톺아보기 좋은 책인 것 같다.. 하지만 이 책을 진짜 개발자와 비개발자가 소통하기 위해 읽어야할까 하는 생각은 들었다. 서버, 클라이언트같은 기초지식 부터 API 등.. 이런 부분..
-
CODEwhatIRead 2022. 5. 3. 01:34
지금 한 1/4 남았나.. 회사에서 동료가 힘들어보인다며 도움이 됐으면 좋겠다고 추천해 준 책.. 사실 책 내용보다 그 마음이 더 도움됐던 것 같다. 컴퓨터 공학의 유명한 근본, 운영체제, 네트워크, 자료구조와 알고리즘 강의들은 한번씩 들어봤지만 컴퓨터 구조는 굳이 들을필요 없다! 라고해서 한눈에 보는 컴퓨터 구조 책을 한번 슥 보는것으로 마무리했었는데 여기서 이렇게 다시 만날 줄 몰랐다. 한눈에 보는 컴퓨터 구조책은.. 시험에 특화된 책 같은 느낌이라면 CODE는 진하게 뽑은 샷같은 책이었다. 근데 샷인데 양은 아메리카노인..? 보통 저 하얀책 시리즈는 자바 기준으로 코드를 뽑길래 여기서도 자바가 나오면 난 어떻게 받아들여야할까.. 걱정을 했지만, 우리가 코딩을 할 때 쓰는 그 코드는 전혀 나오지 않는..
-
asynchronous-synchronous programmingTodayILearned/TILWIL 2022. 5. 2. 02:31
노드의 동기, 비동기, 블로킹, 논블로킹 개념은 엄청 기본적인 상식이다. 하지만 잠깐 외웠다가도 금방 헷갈리는 개념이었는데, 동기, 비동기는 무엇과 동기되고 비동기된다는 뜻일까? 스레드*의 흐름이 공통자원의 데이터와 동기, 비동기 된다고 생각하면 될 것 같다. 동기라는 단어는 운영체제 강의에서 자주 들어본 단어이다. 운영체제에서 동기화에 대해서는 이렇게 설명한다. 공통 자원에 여러명이 동시에 접근할 때, 임계구역 문제가 발생한다. 이것을 해결하기 위해 프로세스/스레드를 동기화하는데 이 때 동기화 도구로 세마포어가 있다. 세마포어는 공통된 자원에 접근하는 여러 프로세스들을 관리하는 것인데, 예를들어 내 은행계좌(인데 천만원이 있는) 에서 A가 천만원을 빼간 후, B가 동시에 천만원을 또 출금하겠다고하면 은..
-
왜 타입스크립트 마이그레이션을 해야할까TodayILearned/TILWIL 2022. 5. 1. 22:20
왜 멀쩡히 잘 돌아가고있는 JS를 코드를 굳이 TS로 바꿔야하는가? 성능이 좋아지는건가? 개발속도가 빨라지나? 하는 의문을 가졌다. 결론적으론 성능이 좋아지는 것과는 상관이 없고 개발속도도 조금 느려질 수 있다. 하지만, 서비스가 발전할 수록, API가 많아질 수록, 나의 코드를 다른 개발자들이 작업해야하는 경우가 생긴다. 남의 코드를 읽고 이해하는것도 시간이 필요한 작업이고, 이것을 해소하는데 타입스크립트를 사용하는것이 도움이 된다고 생각했다. 타입스크립트를 처음 접했을 때, 타입이 존재함으로 인해서 장점이 생긴다는 것이 와닿지않았다. 하지만 타입스크립트를 이용해 만든 API를 다루다가 아직 마이그레이션되지 않은 API로 넘어가면서 타입스크립트의 장점을 느끼게됐다.. 있다 없으니까.. 예를들어 운송장을..