목록분류 전체보기 (386)
만족

오늘날 프론트엔드와 백엔드를 막론하고 Node.js 생태계는 빠르게 성장하고 있으며, 그 중심에는 수많은 패키지와 의존성이 있다. 이 의존성들을 효율적으로 관리하는 것은 프로젝트의 성능과 안정성을 좌우하는 중요한 요소이다. npm, Yarn에 이어 새롭게 떠오르는 pnpm에 대해 자세히 알아보면서, 각 도구가 어떻게 패키지를 관리하고 디스크 공간을 사용하는지 함께 파헤쳐 본다. npm과 Yarn, 그리고 그들의 node_modules 이야기Node.js 생태계에서 가장 널리 사용되는 패키지 관리 도구는 역시 npm과 Yarn이다. 두 도구 모두 package.json 파일을 기반으로 프로젝트 의존성을 설치하고 관리하며, 설치된 패키지들은 대부분 프로젝트 루트의 node_modules 디렉토리에 저장된다...

최근 fastify 라는 nodejs 를 알게 되었는데, 이 framework는 "express 보다 4배 빠르다" 고 한다.https://fastify.dev/benchmarks/ 위 사이트에 들어가보면 다양한 framework 들과 express의 벤치마크를 분석하는데, express 는 그 중에서도 압도적인 최하위를 기록하고 있다.벤치마크'use strict'const fastify = require('fastify')()const schema = { schema: { response: { 200: { type: 'object', properties: { hello: { type: 'string' } ..

서비스 장애 발생 시 빠른 인지를 위해 일정 시간마다 서버 상태를 체크하기 위한 스크립트를 작성하고이것을 AWS lightsail에서 가장 저렴한 인스턴스에 올려 cron으로 동작시키고 있다. https://satisfactoryplace.tistory.com/403 [사이퍼즈 서포터] 헬스체크 정책 추가얼마 전부터, 불명의 원인으로 서버의 CPU수치가 100%로 치솟으면서 내려오지 않아 서버가 요청을 전혀 처리하지 못하는 현상이 발생하고 있다. 특정 프로세스, 특정 시간이나 특정 주기로 발현되satisfactoryplace.tistory.com 그런데 아무리 저렴한 인스턴스라지만, 실제로는 5분에 한 번 서버 상태를 체크하는 기능 외 아무것도 하는 일이 없는데instance 하나를 할당해서 헬스체크만 ..

2024년 5월 1일자로 라이트세일 가격이 인상되었다. https://library.gabia.com/contents/aws-contents/13171/ 가비아 라이브러리IT 콘텐츠 허브library.gabia.com 엄청나게 인상된 것은 아니지만, 하위 라인업(5~20달러) 인스턴스를 사용하고 있다면 인상폭이 부담스러울 수 있다. 구체적으로 어떻게 오른걸까?정확히는 ipv4, ipv6를 모두 사용할 수 있는 듀얼스택 인스턴스만 가격이 인상되었다. 만약 ipv4가 필요하지 않다면, ipv6 only를 사용하여 인상 전 가격으로 이용할 수 있다. ipv4의 경우 우리가 익히 알고 있는 ip의 형태(ex: 123.123.123.123)를 가지고 있고,ipv6는 비교적 난해한 2416:de12:1ab:9..

프로젝트 루트에 .github/workflows 폴더 안에 yml 파일을 추가하여 github action을 추가할 수 있다. github action을 이용해 특정 브랜치에 푸쉬가 발생했을 때 작업을 정의하는 등 자동화에 이용할 수 있다. croncron은 특정 시간마다 지정한 스크립트를 실행하는 기능이다. 이 기능을 이용해 5분마다 헬스체크를 하는 작업을 생성해볼 것이다. # .github/workflows/health-check.ymlname: health-check# 어떤 작업을 진행할지?on: schedule: - cron: "*/5 * * * *"# ... 이렇게 선언함으로써 매 5분마다 이 action이 실행되도록 할 수 있다. cron 문법은 리눅스에서 crontab과 동일하다. h..
생성된지 24시간 이내라면 저장된 파일을 사용하고, 캐시가 존재하지 않거나 24시간을 초과했다면 파일을 overwrite 하는 식으로 이미지 캐시를 운영하고 있다. 그런데 뒤늦게 캐시가 정상적으로 작동하지 않았다는걸 알았다. birthtime과 mtimebirthtime은 파일의 최초 생성 시간을 의미한다.mtime은 파일의 마지막 업데이트(modified) 시간을 의미한다. 이미 존재하는 파일에 append모드로 파일을 '쓰기'하면birthtime은 변경되지 않지만 mtime은 현재 시간으로 업데이트된다 overwrite file?그렇다면 파일을 overwrite 하면 어떻게 될까? 파일 내용을 완전히 대체하는 작업이기에 내 생각에는 birthtime이 변경된다고 생각했다. 하지만 write 모드로 o..

const str= '😅';console.log(str.length); 위 코드를 실행하면 콘솔에는 어떻게 표시될까? '1글자니까 1이겠지' 라고 생각할 수 있지만 2가 표시된다. 왜 이렇게 표시되는지 알아보자 써로게이트 페어 (surrogate pair) 기본적으로 js에서 string은 UTF-16으로 다뤄진다. UTF-16은 문자를 표현할 때 2바이트 또는 4바이트를 가변적으로 사용한다. 한국어 문자(가, 나, 다...)는 2바이트로 표현이 가능하지만일부 한자나 이모지 등은 2바이트로 표현이 불가능해 2바이트를 더 사용해야 한다, 따라서 기본적으로는 2바이트를 사용하되, 2바이트로 표현 가능한 범위 바깥의 문자열들은 2바이트를 더 사용하여 표현한다. 두 글자만큼의 공간을 한 글자를 표현하는데 사..

지난번에 독거미 키보드를 구매해서 산 이후로 사무실에서 쓸 커스텀 키보드를 하나 더 마련하고 싶어서 알아보다가닌자87 하우징을 저렴하게 판매하고 있길래 하나 구매했다. https://smartstore.naver.com/monstarkorea/products/4766961551?NaPm=ct%3Dlx4pnsu7%7Cci%3Dcheckout%7Ctr%3Dppc%7Ctrx%3Dnull%7Chk%3D78b40d7009bde36d59bd8fafc7d603465f52e8be 닌자87 v2 RGB DIY키트 핫스왑 기계식키보드 커스텀키보드 : 몬스타기어#닌자87 #커스텀키보드 #축교체 #기계식키보드 #데빌스킬 #닌자키보드 #측각키캡 #조립식키보드 #아크릴키보드 #닌자87RGBsmartstore.naver.com 판..