DTO Data Transfer Object)는 애플리케이션 간에 테이터의 전달을 목적으로 하는 객체이다. 이는 프레젠테이션 계층과 비즈니스 계층, 혹은 비즈니스 계층과 데이터 액세스 계층, 더 나아가 애플리케이션 간에서 비즈니스 로직을 갖지 않고 순수하게 데이터 전송을 위해 사용된다. 클라이언트와 서버의 관계를 갖는 서비스를 설계/구축해 봤으면 누구나 DTO에 대한 개념을 알 것이다. 그러나 순수한 DTO의 의미와 의도를 정확히 파악하고 구현하는 것은 어려움이 있을 것이라 생각된다. 최근 서비스를 구현하면서 DTO/VO/Entity 등 데이터를 다루는 기본적인 객체에 대해 고민을 해보면서, 더 정확히 알고 쓰면 깔끔하면서 명확한 코드 작성이 가능할 것 같아 몇 가지 알아본 내용을 정리해보려고 한다. 이..
typescript
TypeORM을 이용해서 SQL Server 2008 DB에 연결해 데이터를 가져오는 과정에서 문제가 생겼다. QueryFailedError: Error: Invalid usage of the option NEXT in the FETCH statement. SQL Server 2008 버전은 MS에서도 서비스를 종료했지만 작업 진행 중인 장비 특성상 DB의 버전을 변경할 수 없는 처지여서 원인을 찾고 해결해 보기로 했다. SQL Server 2008 버전은 너무 구버전이어서 MS 홈페이지에서도 매뉴얼을 찾을 수 없다. 관련 내용을 찾아보니 OFFSET/FETCH 구문이 SQL Server 2011 버전 이후에 도입된 듯하다. 아래 링크는 관련 이슈 내용이다. https://github.com/typeor..
현재 업무는 함수형 프로그래밍을 지향하다 보니 함수들만 주야장천 찍어냈습니다. 그러던 중 오랜만에 필요에 의해 클래스를 작성하게 되었고 싱글톤 패턴을 적용을 해보는 기회가 되었습니다. 이론으로만 보던 싱글톤 패턴을 보니 반갑기도 하고 해서 간단히 서칭 한 내용을 정리해보려고 합니다. 싱글톤 패턴 singleton pattern이란? 애플리케이션에서 하나의 인스턴스만을 생성하고, 이를 전역적으로 사용하는 디자인 패턴 싱글톤 패턴은 객체지향 디자인 패턴 중 하나로, 어떤 클래스의 인스턴스가 오직 하나만 만들어져야 하는 상황에서 사용됩니다. 이 패턴을 사용하면 인스턴스를 여러 개 만들어서 발생할 수 있는 문제를 방지할 수 있습니다. 인스턴스를 여러 개 만들면 발생할 수 있는 문제 인스턴스를 여러 개 만들어서 ..
Node.js의 child_process 모듈을 사용하여 프로세스를 실행하고 결과를 받는 과정에서 콜백 형태가 아닌 더 깔끔한 방법으로 처리 가능할까 하고 찾아보다가 promisify()라는 함수를 알게 되었습니다. 나름 유용할 것 같아 소개 글을 작성해보려고 합니다. Node.js는 비동기적인 작업을 수행하는데 매우 유용한 프레임워크입니다. 그러나 Node.js에서는 대부분의 함수들이 콜백 패턴을 사용하며, 이는 비동기적인 작업을 수행할 때 중첩된 코드를 작성하게 만들어 코드의 가독성과 유지보수성을 낮추는 요인 중 하나입니다. 이러한 문제를 해결하기 위해 Node.js의 util 모듈에는 콜백 패턴을 사용하는 함수를 Promise 객체를 반환하는 함수로 변환해 주는 promisify() 함수가 있습니다..
[Node.js] 스트림이란 (Stream) ① C++로 작성된 DLL을 이용해 Callback 데이터를 node.js기반의 프로그램으로 받아오는 작업을 진행하면서 rxjs라는 모듈을 사용해보았습니다. reactive의 필수 개념인 steam을 학습해보면서 공부한 내용을 jangbageum.tistory.com [Node.js] 스트림이란 (Stream) ② [Node.js] 스트림이란 (Stream) ① C++로 작성된 DLL을 이용해 Callback 데이터를 node.js기반의 프로그램으로 받아오는 작업을 진행하면서 rxjs라는 모듈을 사용해보았습니다. reactive의 필수 개념인 steam을 jangbageum.tistory.com 이전 포스트에서 Stream을 다룬 이유는 RxJS를 접하게 되면..
[Node.js] 스트림이란 (Stream) ① C++로 작성된 DLL을 이용해 Callback 데이터를 node.js기반의 프로그램으로 받아오는 작업을 진행하면서 rxjs라는 모듈을 사용해보았습니다. reactive의 필수 개념인 steam을 학습해보면서 공부한 내용을 jangbageum.tistory.com Node.js 스트림은 데이터 처리를 위한 강력한 기능입니다. 이전 포스팅에서는 스트림 개요, 스트림 API, 스트림 사용 예시 등에 대해 알아보았습니다. 이번 포스팅에서는 스트림 변환, 스트림의 한계, 스트림 활용 등에 대해 더 자세히 알아보도록 하겠습니다. 스트림 변환 스트림 변환은 데이터를 변환하여 스트림을 통해 전달하는 것을 의미합니다. 이를 통해 스트림을 통해 데이터를 처리하고 변환하는 ..