728x90
반응형

전체 글 209

Error: Cannot find module '../build/Release/canvas.node'

✔️ 필요성 canvas package를 사용해야하는데 Cannot find module '../build/Release/canvas.node' 다음과 같은 에러가 떴다. ✔️ 문제 확인 이런 저런 글을 살펴보니 설치할 때 신경써야하는 부분이 있는 것 같다. 아래 canvas 공식 github에 가서 설치하는 방법을 찾아봤다. https://github.com/Automattic/node-canvas GitHub - Automattic/node-canvas: Node canvas is a Cairo backed Canvas implementation for NodeJS. Node canvas is a Cairo backed Canvas implementation for NodeJS. - GitHub - ..

[모니터링] AWS CloudWatch

DevOps에서는 Ops도 Dev만큼이나 중요하다 > 모니터링 CloudWatch 개요 - AWS 리소스 모니터링 서비스 - AWS에 구동중인 application 모니터링 - 다양한 서비스와 integration이 편하다 (알람, 지표 backup, 자동화 시스템 구축) CloudWatch에 사용되는 개념 - namespace : 측정하고자하는 대상. EC2, RDS 같은 것들 - metrics : 측정하고자하는 값 - dimensions : namespaces를 묶는 추상화된 대상 (ex. AutoScaling 그룹 등등..) - statistics : 평균, 최대, 최소 - resolutions : 과금과 관련된 정보. standard resolutions(1m 데이터) / hish resoluti..

DevOps/AWS 2023.12.22

[CI/CD] CI/CD (Jenkins/ AWS Code Series/Github Actions)

CI/CD (continuous integration / continuous deployment) - CI : 하루에도 여러번 mainline에 merge하는 행위 - CD : software를 자동화하여 배포 Jenkins란? - free and open source 자동화 서버 - 다양한 플러그인 제공 (pipeline, authentication, Git, Docker) - 다양하게 third party solution과 확장 - docker-compose에 yml 파일에 적어둔 다음에 docker로 실행 (docker-compose up -d) - 열면 Jenkins Dashboard가 뜬다 Jenkins Pipeline이란? - Jenkins plugins의 묶음 (일련의 단계들의 묶음) - r..

ETC 코딩/ETC 2023.12.22

[docker] 쿠버네티스와 컨테이너 오케스트레이션 시스템

쿠버네티스란? - 구글 내부에서 사용하던 배포시스템 borg를 기반으로 2014년에 오픈소스로 공개 - 가장 대표적인 컨테이너 오케스트레이션 시스템 (사실상 표준) 컨테이너 오케스트레이션 시스템이란? - 컨테이너의 배포, 관리, 확장, 네트워킹을 자동화하는 기술 - Docker / Compose는 한 대의 머신에서 관리하기 위한 시스템 - 여러대의 머신을 클러스터 안에서 사용하기 위한 기술 - Scaling / Rollback / Resource Allocation / Scheduling .... - 컨테이너 오케스트레이션 시스템은 여러 머신으로 구성된 클러스터 상에서 컨테이너를 효율적으로 관리하기 위한 시스템 컨테이너 오케스트레이션 시스템이란? - 컨테이너의 배포, 관리, 확장, 네트워킹을 자동화하는 기술

ETC 코딩/ETC 2023.12.22

[Docker] 도커 컨테이너 기본 명령어

컨테이너 라이프사이클 Running 상태로 가는 두가지 방법이 있다 - 컨테이너 생성 docker create [image] - 컨테이너 시작 docker start [container] - 컨테이너 생성 및 시작 docker run [image] - 실행중인 도커 확인 docker ps docker ps -a docker inspect [container] docker run nginx docker pause [container] docker unpause [container] docker stop [container] docker kill [container] - 모든 컨테이너 종료 docker stop $(docker ps -a -q) - 컨테이너 삭제 (실행중인 컨테이너 불가) docker rm ..

ETC 코딩/ETC 2023.12.22

[Docekr] 도커 이미지와 컨테이너

도커 이미지와 컨테이너 - docker engine = docker daemon - docker engine이 설치된 서버 = docker host - 이미지는 build하는 방법이 있고 pull 해서 remote에서 가지고 올 수도 있다. 다른 사람들이 공유해준 image를 로컬 도커 호스트에 저장할 수 있고 그걸 실행하면 컨테이너가 된다 이미지와 컨테이너는 도커에서 사용하는 가장 기본적인 단위 이미지와 컨테이너는 1:N 관계 이미지는 컨테이너를 생성할 때 필요한 요소, 목적에 맞는 바이너리와 의존성이 설치되어 있다. 여러개의 계층으로 된 바이너리 파일 컨테이너는 호스트와 다른 컨테이너로부터 격리된 시스템 자원과 네트워크를 사용하는 프로세스이다. 이미지는 읽기 전용으로 사용한다 도커 이미지 저장소 (..

ETC 코딩/ETC 2023.12.22

[Docker] 도커와 쿠버네티스를 이용한 서비스 운영

기업들이 컨테이너에 주목하는 이유는 ? 하나의 서버에서 여러개의 어플리케이션을 만들어야하면 각각의 의존성이 필요하고, 서로 영향을 주지 않아야 한다. 기업들이 가장 먼저 시도했던 방법이 가상화 = 가상머신 방법이다. Host OS -> Guest OS 가상머신의 단점은 CPU를 emulation하는 과정에서 overhead가 발생하고 성능이 떨어지고 비용이 증가한다. 컨테이너 기술은 Guest OS를 띄우는 것은 아니지만 Host OS의 커널을 공유해서 사용한다. 컨테이너 안에 App Binary와 의존성을 띄우게 되어 경량화되었고, 가상머신 방법에 비해서 overhead가 줄어들고 성능은 높아졌다. 컨테이너 기술에서 주목받는 오픈소스 라이브러리가 docker (2013)이다. Kubernetes = C..

ETC 코딩/ETC 2023.12.22

Puppeteer waitforTimeout deprecated

✔️ 필요성 Puppeteer로 headless browser를 선택하고 싶은데 waitforTimeout 이 deprecated 되어 사용하지 못한다고 한다. ✔️ 문제 확인 waitforTimeout 대신 setTimeout을 활용해서 유사한 기능을 구현할 수 있다 import puppeteer from "puppeteer"; (async () => { const browser = await puppeteer.launch({ headless: 'new', }); const page = await browser.newPage(); await page.goto(url); await new Promise((page) => setTimeout(page, 30000)); await page.screenshot..

ETC 코딩/JS 2023.08.29

json 파일에서 필터링해서 보내주는 Next.js API 만들기

import { NextApiRequest, NextApiResponse } from "next"; import abroad from "../../../../data/aptLifestyle/abroad.json"; import { Type } from "../../../../types"; export default async function handler( req: NextApiRequest, res: NextApiResponse ) { const { query: { code } } = req; const foundData = (abroad as Type[]).filter( (item) => String(item.code) === (code as string) ); // if (foundData.leng..

728x90
반응형