일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | ||||
4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 | 12 | 13 | 14 | 15 | 16 | 17 |
18 | 19 | 20 | 21 | 22 | 23 | 24 |
25 | 26 | 27 | 28 | 29 |
- 문법
- 13305
- Critical_Path_Analysis
- 백준
- deletion
- '0'
- 알고리즘
- list
- red-black tree
- Heap
- Biconnected_Component
- singly Linked List
- qsort
- template
- sort
- Articulation_Point
- 예제
- connected_component
- 자료구조
- Pair
- function_template
- data_structure
- c++
- STL
- class_template
- 구현
- 총정리
- sstream
- 5397
- Algorithm
- Today
- Total
- Today
- Total
- 방명록
목록2024/02 (6)
어제의 나보다 성장한 오늘의 나
HTTP를 공부하다가 Resource, URI , URL , URN 의 개념에 대해 공부하게 되었습니다. 겹치는 부분이 많다 보니 제대로 공부하지 않으면 굉장히 헷갈리는 개념입니다. 그래서 오늘 이것들에 대해 정리를 해보기로 했습니다. 1. Resource 인터넷 상의 Resource 란 URI(Uniform Resource Identifier)를 통해 유일하게 식별되고 접근할 수 있는 모든 형태의 디지털 자산 또는 서비스를 의미합니다. 이는 웹 페이지, 이미지 파일, 비디오, API 엔드포인트, 문서, 소프트웨어 컴포넌트 등 인터넷을 통해 제공되고 사용될 수 있는 데이터나 기능을 포함합니다. 물론 html, css 파일도 이곳에 포함됩니다. 이것들을 식별할 수 있도록 도와주는 것에는 URI, URL ,..
JS로 벡엔드를 개발할 때 DI를 어떻게 설계 해야할 지 고민이 될 것이다. 이 때 tsyringe는 좋은 선택이다. JS 의존성 주입 라이브러리로 tsyringe는 코드 관리에 아주 좋다. 왜냐하면 다른 라이브러리에 비해 코드의 양이 매우 짧다. 그 이유는 이 라이브러리는 의존성을 데코레이터 기반으로 Container에 등록 해주는 방식인데 클래스에 데코레이터가 붙어있으면 자동 으로 container에 등록해주기 때문에 코드의 양이 줄어든다. ( 마치 스프링 같다. ) 그럼 사용하는 방법에 대해 코드로 알아보자 1) 설치 방법 // npm npm install --save tsyringe // pnpm pnpm add tsyringe // yarn yarn add tsyringe 2) tsconfig...
개발팀 내에서 빠른 생산성을 위해 fastify를 사용하기로 하였고 개발 도중 의존성 주입에 필요성을 느끼게 되어 awilix를 도입하고자 하였다. 이에 따라 오늘은 fastify에서 awilix를 어떻게 사용하는 지에 대해서 알아보자. 자바스크립트로 의존성 주입을 설계 하다보면 해당 클래스나 함수에 필요한 의존성들을 미리 등록해 두어야 한다. 이를 Awilix에서는 container로 관리한다. 필요한 의존성들은 미리 container에 등록(register) 해두고 필요한 곳에서 꺼내서(resolve) 사용한다. 1) 설치 npm i @fastify/awilix awilix 2) 플러그인 연결 fastify와 awilix를 연결해 주는 작업을 진행한다. const { fastifyAwilixPlugi..
벡엔드를 공부 하다보면 한 번쯤 의존성 주입에 대해 들어본 적 있을 것이다. 중요하다는 건 알겠는데 대체 무엇일까?? 의존성 주입은 의존성(Dependency)과 주입(Injection)이 합쳐진 말이다. 그래서 의존성에 대해서 먼저 이해해야 한다. 코드와 함께 보자 예시 1) 의존성 X class Person { driveCar() { console.log("차를 운전합니다."); } } const driver = new Person(); driver.driveCar(); // 차를 운전합니다. Person 클래스에서 driveCar 메서드를 실행 시키는 단순한 구조이다. Person 클래스는 현재 다른 클래스와 어떤 의존성도 가지고 있지 않은 독립적인 구조이다. 예시 2) 강한 결합 ( 높은 의존성 ..
Vite가 엄청 떠오르고 있습니다. 최신 번들러 들 중 가장 빠르다고 하는데 대체 왜 빠른 걸까요?? 1. 번들러가 나오게 된 계기 ES6가 나타나면서 자바스크립트에서 ESM (ES Modules)를 지원합니다. ESM은 간단하게 말하면 자바스크립트가 모듈화를 할 수 있도록 export / import 기능을 지원하고 간 모듈을 내보낼 수 있게 된 것입니다. ESM이 지원되면서 웹 브라우저에서 더 많은 기능들과 많은 활동들이 나타났고 관리해야 하는 소스 코드나 라이브러리들이 늘어나게 되었습니다. 그래서 더 효율 적인 관리 툴이 필요하게 되었습니다. 2. WebPack의 등장 WebPack은 여러 파일과 에셋들을 번들로 합치고 최적화하여 브라우저에서 사용할 수 있게 제공합니다. 압축의 개념으로 볼 수 있습..
몽고 디비를 로컬에 직접 설치하지 않고 도커 컨테이너 안에 설치하여 접속하여 사용해보는 방법을 알아보자. 1. 도커 설치 도커 공식홈페이지에서 도커를 설치한다. https://www.docker.com/get-started/ Get Started | Docker Get started with Docker Desktop and join millions of developers in faster, more secure app development using containers and beyond. www.docker.com ~ docker -v Docker version 24.0.7, build afdd53b 2. 몽고 디비 이미지를 Docker Hub로 부터 설치한다. 설치 docker pull mongo..