![NodeJS Express를 통해서 API 서버 구축 및 DB 업데이트 하기](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbbzaST%2FbtsCxFy0I4X%2FEnLFjJODXEBoTX6pKJhHe1%2Fimg.png)
이전 포스팅 2023.12.06 - [프로젝트/Github Rest API로 프로젝트 리뷰 대시보드 구성하기] - Github RestAPI를 통해서 Repository 정보 크롤링 및 알림 서비스 구현 2023.12.09 - [프로젝트/Github Rest API로 프로젝트 리뷰 대시보드 구성하기] - Repository 정보 크롤링 및 알림 서비스 구현 요구사항 정리하기 필요 배경 지식 NodeJS Typescript HTTP Request 기본 이해 Prerequisite NodeJS 설치 Typescript 환경 설정 Express.js 설치 Typescript 환경설정에 아래와 같이 express를 설치해야한다. express.js는 npm install express npm install --..
![Typescript - TypeORM 적용](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2F2dsFf%2FbtsCDd1QRTi%2F4bldtVGgdX8yR1fygzoh5K%2Fimg.png)
필요 배경 지식 Typescript Prerequisite TypeORM 라이브러리 TypeORM이란? TypeORM은 TypeScript와 JavaScript (ES7, ES6, ES5)를 위한 ORM(Object-Relational Mapping) 라이브러리입니다. 이 라이브러리는 SQL 데이터베이스를 객체지향적으로 조작할 수 있게 해주며, Node.js 환경에서 주로 사용됩니다. 결국 TypeORM은 DB 쿼리문에 대한 직접적인 조작없이 객체지향적으로 DB 조작을 할 수 있게 도와주는 라이브러리다. 그래서 이를 잘 활용하면 코드의 가독성을 올리고 유지보수를 쉽게 할 수 있다는 장점이 생긴다. TypeORM의 권장 디렉토리 구조 Entity Layer - 데이터 베이스 테이블을 클래스로 표현 엔티티는..
![Grafana 리뷰 대시 보드 구성 - Panel 에 변수 추가하기](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FcZc6GN%2FbtsCxC9soEO%2FyOTAo0NFP0hwIYzQIiMxg0%2Fimg.png)
이전 포스팅 2023.12.06 - [프로젝트/Github Rest API로 프로젝트 리뷰 대시보드 구성하기] - Github RestAPI를 통해서 Repository 정보 크롤링 및 알림 서비스 구현 2023.12.09 - [프로젝트/Github Rest API로 프로젝트 리뷰 대시보드 구성하기] - Repository 정보 크롤링 및 알림 서비스 구현 요구사항 정리하기 2023.12.18 - [프로젝트/Github Rest API로 프로젝트 리뷰 대시보드 구성하기] - Grafana에서 DB 조작하기 필요 배경 지식 Grafana 대시보드 작성 방법 및 적용방법 PostgreSQL 사용법 Grafana에서 대시보드 변수 사용하기 Grafana에서 변수(variable)를 패널(panel)에서 사용하..
![Grafana에서 DB 조작하기](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FkLIqj%2FbtsB7c4TKVD%2FWfDBbeTiR1k3LXZi7lrwA1%2Fimg.png)
필요 배경 지식 Grafana 대시보드 기본적인 사용법 Prerequisite B 쿼리에 대한 지식 Grafana 에 대한 기본지식 프로젝트에서 나의 요구사항 1. Grafana에서 직접 일부 데이터를 추가하고싶다. (Repo 정보, User 정보 등) 2. Grafana에서 직접 일부 데이터를 삭제 (혹은 visibility 조정) 을 하고싶다. 이다. 그래서 이런 접근이 가능한건지 확인하고 싶었다. Grafana에서 Select를 제외한 Insert/Update/Delete row가 가능할까? 결론부터 말하자면 불가능하고 좋지 않은 접근이다. Grafana는 모니터링 툴이라서 Select만 하는것이 권장된다. 물론 나는 Grafana에서 할 수 있으면 좋은 상황이라서 가능한지를 찾아봤지만 역시나 ..
![Typescript - TypeORM 사용해서 DB 쿼리하기](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fcx6Z9U%2FbtsBVGLlcJi%2FO2Rl7uGjybCyBuQyLSfmk1%2Fimg.png)
이전 내용 관련 참고자료 2023.12.09 - [프로젝트/Github Rest API로 프로젝트 관리하기] - Repository 정보 크롤링 및 알림 서비스 구현 요구사항 정리하기 2023.11.26 - [백엔드/Typescript] - Typescript 컴파일 설정 - tsconfig.json Prerequisite Typescript 기본 엔트리 파일 컴파일 및 실행 방법 Typescript - Postgresql 연결 사용법 - pg 라이브러리 설치하기 PostgreSQL DB 스키마 작성 방법 1. TypeORM 및 Reflect-metadata 설치 npm install typeorm --save npm install reflect-metadata --save npm install [DAT..
![Repository 정보 크롤링 및 알림 서비스 구현 요구사항 정리하기](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FzTEDe%2FbtsBGGKVMwg%2Fg2hK0aeXlSytz8xQIukt4K%2Fimg.png)
이전 포스팅 2023.12.06 - [프로젝트/Github Rest API로 프로젝트 관리하기] - Github RestAPI를 통해서 Repository 정보 크롤링 및 알림 서비스 구현 필요 배경 지식 RestAPI에 대한 개념 Prerequisite Typescript 기본 개발 환경 세팅 사용할 Github REST API 들 내가 사용할 Github Rest API들은 아래와 같다. 1. API rate limit Rate limit - GitHub Docs Status: 200 { "resources": { "core": { "limit": 5000, "used": 1, "remaining": 4999, "reset": 1691591363 }, "search": { "limit": 30, "u..
![Typescript 프로젝트의 naming convention](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FcEqupf%2FbtsBxf9k16J%2FQnnXh8vKRYVghbPSE2YgLk%2Fimg.png)
Enforcing a naming convention keeps the code base consistent and reduces overhead when thinking about how to name a variable. We recommend the following: Use camelCase for variable and function names.Use PascalCase for class names and interface names.Use camelCase for interface members.Use PascalCase for type names and enum names.Name files with camelCase (for example, ebsVolumes.tsx or storage...
![Github RestAPI를 통해서 Repository 정보 크롤링 및 알림 서비스 구현](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbQhAMQ%2FbtsBx9NpoDu%2FkkvrvdDLBjQ8a2qafP9931%2Fimg.png)
목표 내가 진행하고 있는 프로젝트의 정보를 가져와서 여러 사람들을 지원하고 활용하게 하기 위함이다. 회사에서 개발 함에 있어서 다음과 같은 문제점이 있다. 어쩌다 보니 Repository를 여러개 사용중이다. 그에 대한 영향으로 Pull request를 확인해야하는 repository가 많은데 동시에 여러군데서 올라오면 확인하기가 힘들다. 주기적으로 확인하는 개발자가 아닌경우에는 리뷰를 잘 확인할 수 있는 방법이 필요하다. 또한, 사내 메신저는 이런 알림을 전달하기 위한 제약사항이 있긴하나 만들수는 있을것으로 생각된다. 따라서, 위와 같은 기능을 하는 플러그인을 만들기 위한 데이터 크롤링하는 프로그램부터 만들어보자 와 같은 요구사항이 발생했다. 최근 Github Public의 기능 추가를 통해서 내가 리..
![Solidigm CSAL + Alibaba Cloud](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbKLkCA%2FbtsBioY47Em%2F1q5W5zTfcYOedzbTJGo8k0%2Fimg.png)
Alibaba ECS D2C의 HDD to QLC SSD의 전환 과정 HDD가 가지고 있던 문제들 Alibaba’s D2C instance family is equipped with high-capacity and high-throughput local SATA HDDs However, there exist two challenges in upgrading this instance family with HDDs: (1) the capacity scaling challenge and (2) the challenge in performance per terabyte (TB) 이렇게 두 가지를 언급하고 있다. In recent years, the compute (e.g. core counts) and IO i..
![Solidigm CSAL이란](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fx3HWt%2FbtsBkmsaWwN%2FK1GvRTSg216553mHjTGPL1%2Fimg.png)
CSAL ( Cloud Storage Accelerate Layer) 기존에 PoseidonOS (https://github.com/poseidonos/poseidonos)와 비슷한 설루션이 최근에 출시되었다고 확인되어서 그 대상인 CSAL에 대해서 조금 더 자세히 알아보기 위해서 글을 작성한다. 기본적인 구조는 위와 같다. 여러 SSD를 묶어서 Volume의 형태로 만드는 Software Defined Storage 형태를 가정하고 있는 것으로 확인된다. (이는 PoseidonOS도 동일하다) 성능을 보정해 주기 위해서 Write Buffer 역할을 하는 SLC SSD를 두었다. 일부 SLC와 큰 용량의 QLC를 사용하는 것으로 확인된다. TLC SSD만 사용하는 옵션도 있는데 어떤 경위로 이 두 가지..