본문 바로가기

전체 글69

[Fastify] Fastify - Node.js 웹 프레임워크 Fastify 개요 Node.js 기반 웹 프레임워크로 스스로도 낮은 오버헤드를 통한 빠른 웹 프레임워크라고 소개하고 있습니다. 특징 초당 최대 30,000개의 요청을 처리할 수 있는 프레임워크 TypeScript 지원 및 유지를 지속적으로 노력중 2024년 2월 7일 기준으로 주간 다운로드 횟수가 140만회로, 2400만 회를 기록중인 express에 비해 현저히 적다. 커뮤니티가 적다고 생각 할 수 있음. Fastify vs Express 두 프레임 워크 모두 오픈소스이며, Nest가 기본적으로 Express 기반으로 작동하지만 fastify로 작동시킬 수 있다. Fastify 장점 : - 빠르다, 가볍다 - 오고 나가는 데이터의 유효성 검사 및 직렬화를 기본적으로 지원. 데이터 검증을 위해 JSON.. 2024. 2. 7.
[JavaScript] sort() 배열 정렬 메서드 sort sort 기본 문법 ✓ Array.sort([compareFunction]) ✓ compareFunction 함수가 정의 되지 않은 기본값에 대해서는 요소를 문자열로 치환하여 유니코드 기반 오름차순 정렬한다. ✓ compareFunction 함수가 정의 되어 있다면, 함수의 반환값에 따라 정렬을 수행한다. ✓ sort 함수는 복제본에 수행되지 않고 원본에 수정을 수행한다. ※ 비교함수를 사용하지 않고 sort를 사용하면 문자열로 변환 후 유니코드 기반 정렬을 한다는것에 주의하자. compareFunction 함수가 정의 되지 않은 CASE const normal = [40, 5, 1, 7]; normal.sort(); // 기본 정렬 : 유니코드 기반 오름차순 console.l.. 2024. 1. 30.
VSCode ESLint Prettier 설정 ESLint : https://eslint.org/ Prettier : https://prettier.io/ 오류를 잡으려면 린터, 스타일을 교정하려면 포맷터 ESLint 는 linter 이다. linter 는 소스 코드를 분석하여 프로그램 오류, 버그, 스타일 오류, 의심스러운 구조체에 표시(flag)를 달아놓기 위한 도구들을 가리킨다. Prettier 는 코드 스타일링 도구이다.(포맷터) 설정할 수 있는것을 예로 들명 최대 글자 수에 따른 줄바꿈 등이 있다. Prettier 와 ESLint 를 같이 사용 주의할점 : ESLint 에 존재하는 코드 스타일링과 관련된 설정이 Prettier 와 충돌할 수 있다. 방법 : 1. non-style 룰만 포함된 eslint 를 사용 하는 방법 (eslint-c.. 2024. 1. 22.
브라우저 동작방식(기초) 사용자가 브라우저에서 특정 사이트를 요청하고 사이트가 완전히 렌더링되고 상호작용 가능한 상태가 될 때까지 동작 방식 URL 탐색 -> DNS 조회 -> TCP 핸드셰이크 -> TLS 핸드셰이크 -> 서버에서 응답 줌 -> 클라이언트에서 응답으로 받은 데이터 파싱 -> 렌더트리 생성 및 화면에 그림 -> 이후 사용자의 상호작용 처리 1. 탐색: 사용자가 브라우저 주소창에 URL을 입력 등 2. DNS 조회: - DNS(Domain Name System) 서버에 조회 한다. ( 도메인을 전달하고 웹서버의 IP 주소를 알아내기 위해) - 이때, 이전에 방문한 사이트의 IP 주소는 일정 기간 동안 캐시되어 재조회를 최소화한다. 3. 웹서버와 TCP 핸드셰이크: - 브라우저와 서버의 소통을 통해 연결을 설정 (실.. 2024. 1. 22.
[JavaScript] 스코프와 비동기적 실행,렉시컬 환경, 클로저 다루는 내용 - 함수가 외부 변수를 기억하고 유지하는 메커니즘인 클로저 - 렉시컬 환경과 함수: 함수가 생성된 렉시컬 환경에 대한 참조와 변수 접근 - 중첩 함수와 렉시컬 환경: 함수 내부에서 선언한 함수의 동작과 렉시컬 환경 - 중첩 함수로 인해 외부 렉시컬 환경을 참조하게되며 가비지컬렉션이 동작하지 않음(메모리에 유지) 비동기 동작과 외부 스코프 변수 예제코드 1 function countdown() { let i; console.log('Countdown:'); for (i = 5; i >= 0; i--) { setTimeout(function () { console.log(i === 0 ? 'GO!' : i); }, (5 - i) * 1000); } } countdown(); 위 코드 실행시 5에.. 2023. 12. 13.
Docker 없이 Container 만들기 "도커 없이 컨테이너를 만들기" 핸즈온 강의를 듣고 정리 실제 강의 주소 https://www.youtube.com/watch?v=mSD88FuST80 https://tech.kakaoenterprise.com/150 https://github.com/sam0kim/container-internal https://tech.kakaoenterprise.com/154 본 포스팅은 위 핸즈온을 따라해보고 스스로 정리해보려고 작성한 글입니다. 링크를 타고 가면 잘 정리된 글과 강의를 보실수 있습니다. 1. 컨테이너 사용 목적 - 앱전용 환경을 만들기 적합하기 때문, 전용 환경을 만들면 개발/운영단계에서 효율적으로 사용할 수 있음 왜 적합 ? - 올인원 패키징 가능 (필요한 도구들을 패키징 할 수 있음) - 타.. 2023. 12. 6.