Backend

NestJS에서 TypeORM을 사용하다 보면 Active Record와 Data Mapper라는 말을 종종 들었고 이 둘을 비교하는 글도 볼 수 있었다. 이들은 쿼리 메서드의 정의 방법을 결정하는 패턴인 듯 보인다. 평소에 당연하다는 듯이 Data Mapper 방식을 사용했고 Active Record 패턴은 생소했기에 적어두려고 한다. TypeORM의 패턴 Node.js에서 많이 사용되는 ORM인 Sequelize는 Active Record Pattern이라고 한다. 그러나 같은 Node.js의 ORM인 TypeORM은 Active Record Pattern뿐만 아니라 Data Mapper 패턴을 지원한다고 한다. Data Mapper Pattern은 큰 서비스에서 유지 보수하며 개발하기 좋다는 장점이..
2022년 3월 TypeORM이 0.3 버전으로 새롭게 배포되면서 많은 것이 달라진 듯하다. 이전에 봤던 함수들이 deprecated 되었고 DB 설정 방식이나 repository 이용 방법 등이 달라졌다. 오랜만에 TypeORM을 사용하면서 기존과 많이 달라졌고 구글링 해도 예전 방식의 설명이 많아 혼란스러웠기에 어떤 점이 바뀌었는지 간단하게 적어보려고 한다. @EntityRepository EntityRepository는 repository 패턴을 이용해 Active Recorder에 없는 함수를 정의할 때 사용하던 Decorator이다. @EntityRepository() class UserRepository extends Repository {} 기존에는 위와 같이 사용되었지만 deprecated..
socket.io라는 것을 학습해보면서 polling이라는 단어를 접했다. 예전에 들어봤지만 정확한 개념을 알지 못하고 각각 어떤 차이가 있는지 몰랐기에 적어두려고 한다.  기존의 HTTP 프로토콜 HTTP규격은 애초에 클라이언트에서 서버로의 단방향 통신을 위해 만들어진 방법이다. 이렇기에 클라이언트의 요청이 있어야만 서버가 응답을 할 수가 있고 반대로  서버가 먼저 보내는 요청은 클라이언트가 받을 수 없다. 이는 웹이 발전하면서 다양한 콘텐츠에서 단점으로 작용한다.이러한 단점을 보완하기 위해 일반적인 HTTP request에 약간의 트릭을 사용해 실시간 통신인 것처럼 작동하는 기술이 Polling이다.   Polling Polling은 클라이언트 측에서 일정 시간을 두고 request를 계속해서 보내면..
관계형 DB는 수직확장(Scale Up)에 유리하고 NoSQL은 수평 확장(Scale Out)에 유리하다고 한다. 이를 추상적으로만 알고 있었기에 시각적으로 표현해 확실히 하고자 기록해두려고 한다. Scale Up과 Scale Out Scale Up은 간단하게 이야기해 기존의 서버를 이전보다 높은 사양으로 업그레이드하는 것을 말한다. 이는 하드웨어 적으로 보면 용량을 늘리기 위한 목적으로 디스크를 늘리거나 혹은 성능을 높이기 위한 목적으로 CPU 또는 메모리를 업그레이 하는 등의 예시를 들 수 있다. Scale Out은 서버를 추가하는 방식을 말한다. 기존 서버의 용량 혹은 성능이 한계를 도달했을 때, 성능이 비슷한 혹은 낮은 성능을 가진 서버를 추가로 연결하는 방식이다. 이는 데이터의 저장 용량을 늘릴..
최근 객체지향적인 코드를 만들어 보려고 노력하다 보니 다양한 디자인 패턴을 경험할 수 있었다. 객체를 생성하는 방법은 new 키워드를 이용하는 방법만 생각하고 있었는데, 그 왜에도 Factory functino과 ES6부터 추가된 class 문법을 이용해 객체를 만들 수 있다는 것을 확인했고 이 글에서는 박복 객체를 생성할 때 쓰이는 패턴인 Factory Pattern에 대해 남겨두려고 한다. Factory Pattern Factory Pattern 객체를 사용하는 코드에서 객체 생성 부분을 때어내 추상화한 패턴이자 상속 관계에 있는 두 클래스에서 상위 클래스가 중요한 뼈대를 결정하고, 하위 클래스에서 객체 생성에 관한 구체적인 내용을 결정하는 패턴 Factory Pattern은 공장(Factory)이라..
이전에 진행한 프로젝트에 유효성을 검증하는 기능을 넣으려고 했다.하나하나 조건문을 이용해 검증하기에는 코드도 지저분해지고 미들웨어로 넣어 처리해주고 싶었다.그래서 joi라는 것을 사용해 유효성 검증 기능을 넣었다.https://joi.dev/ joiSite## Build Setupjoi.devjoi 왜에도 node.js 환경에서 유효성 검증을 도와주는 모듈은 다양하다.express-validator, yup 등이 있지만 정확한 차이는 잘 모르겠고 이용 수가 가장 많으면서 스키마로 따로 정의할 수 있다는 저에서 joi를 선택했다.모듈을 설치$ yarn add joi 사용법은 간단했다.내가 작성한 코드를 간단하게 얘기하자면유효성 검증을 위한 조건을 가진 스키마들을 따로 정의하고 요청과 함께 들어온 데이터들을..
장바금
'Backend' 카테고리의 글 목록 (4 Page)