Node11 data mapper 패턴, active record 패턴 🌱 이제껏 백엔드 에서 orm을 사용할때 rails에서는 active record 패턴을, nestjs에서는 data mapper 패턴을 사용하였습니다. (rails에서는 ActiveRecord를 nestjs에서는 typeorm을 사용하였었습니다) 두 패턴간의 특징을 정리해두려 합니다 DB를 조회하는 메소드를 모델내에 정의하면 active record 패턴 별도의 repositories 클래스를 생성하여 쿼리 메소드를 작성하는 것은 data mapper 패턴이라 합니다. active record 패턴 DB를 조회하는 메소드를 모델내에 정의하는 패턴을 active record 패턴이라 합니다. 간단하다고 생각합니다. 개인적인 생각으로는 typeorm 에서는 entity 내부에 관계정의까지 같이 정의하는 것이 .. 2022. 4. 2. npm link 2022.03.04 - [Node] - nestjs 코드레벨에서 까보기 에서 nest의 여러 패키지들을 까볼때 두가지 방법을 썼다 일단 둘다 무식하게 console.log를 하나씩 찍어봤다. nest는 추상화가 잘 되어있다고 코드를 읽으면서 느꼈다. 근데 2~3 depth 넘어가게 되면 계속 흐름을 놓쳤다. (아직 큰 흐름이 크게 안읽힌다... 정진하자) 1. nest 라이브러리를 clone 받고나서 npm link를 이용하였다. 2. node_modules 에 설치되어있는 코드에서 console.log를 하나씩 찍었다. 2번을 시도하기 전에 1번으로 계속 시도했었다. 1번의 효율이 너무 안좋아서 2번으로 우회하였다. 1번을 시도하면서 알게된 방법이 npm link이다. @nest-cli를 적용할때는 n.. 2022. 3. 4. nestjs 의존성 주입, 싱글턴 패턴 HTML 삽입 미리보기할 수 없는 소스 싱글턴 패턴 nestjs에서는 모듈들(@Module, @Injectable 데코레이터를 사용하여 등록한 것들)에 싱글턴 패턴을 적용하여 사용한다. 싱글턴 패턴은 뭐고 왜 사용하는 것일까?? 싱글턴 패턴은 인스턴스를 메모리에 최초로 만들어두고 사용하는 디자인 패턴이다. 매 요청마다 인스턴스를 생성하면 메모리 관리에 어려울 수 밖에 없다(언제 삭제해줘야하는지 알수가 없음) 따라서 nestjs에서는 의존성이 주입된 모듈들을 global scope로 최초 실행시 메모리에 인스턴스를 띄워두고 각 모듈들을 사용해야 하면 메모리에서 꺼내 쓴다. (scope는 설정 가능) Node 는 싱글스레드로 동작하기 때문에 싱글턴 패턴으로 모듈들을 관리해도 문제가 없다(동시성 이슈가 발생 .. 2022. 2. 28. npm 만드는 법 && 출시 간단한 node package를 만들고 출시까지 진행하는 방법을 알아보겠습니다. 진행 순서는 다음과 같습니다. 1. 패키지 만들기 2. 로컬에서 해당 패키지 테스트 3. npm 사이트 회원가입 4. npm cli 이용해서 배포 5. npm으로 다운받고 테스트 해보기 1. 패키지 만들기 1-1 제일 처음에 폴더를 만들고 (이름을 조금 특이하게 지었습니다.) mkdir npm_my_dist_test npm init -y npm init -y 를 하게 되면 package.json 파일이 생성됩니다. 잠시 package.json에 대해 살펴보고 가겠습니다. package.json이란?? npm으로 출시를 진행하려면 package.json은 필수입니다. 다른 이들이 설치와 관리를 쉽게 하기 위해 추가할수 있습니다.. 2022. 2. 7. .npmignore 최근 npm을 하나 만들면서 npmignore에 대해 궁금중이 생겼습니다. .npmignore은 package에 포함되지 않을 내용을 지정할 수 있습니다. .npmignore이 존재하지 않을시에는 .gitignore의 내용을 패키지에 포함 시키지 않습니다. 제가 겪었던 상황은 다음과 같습니다. .npmignore에 추가했지만 npm으로 배포를 했을때 npmignore의 내용들이 포함이 되어서 배포가 되었습니다. 제가 내린 결론은 다음과 같습니다. (공식적인 정답은 찾지 못하였습니다) 공식문서에서의 내용 package.json의 files에 포함된 파일들은 .npmignore와 .gitignore로 인해 제외될수 없습니다. 1. package.json에 있는 entry_point들의 내용들과 files의 .. 2022. 2. 7. algorithm-cli 생성기 아래의 포스팅은 algorithm cli를 만들어 보면서 고민했던 내용들에 대한 기록과 프로젝트 구조에 대한 내용입니다. npm을 이용해서 node 패키지를 만들었습니다. https://github.com/woobottle/algorithm-cli GitHub - woobottle/algorithm-cli Contribute to woobottle/algorithm-cli development by creating an account on GitHub. github.com https://www.npmjs.com/package/algorithm-cli algorithm-cli algrorithm solve file create program. Latest version: 0.0.3, last publish.. 2022. 2. 7. 이전 1 2 다음