본문 바로가기

분류 전체보기

(18)
MongoDB - BulkWrite https://j-ho.dev/feature-3/ MongoDB(BulkWrite) BulkWrite란? BulkWrite는 MongoDB 데이터 쓰기 명령( , , )을 모아서 한 번에 실행할 수 있는 명령입니다. BulkWrite 명령은 다음과 같은 명령을 한 번에 모아서 실행할 수 있는데, 반드시 하나의 컬렉션에 j-ho.dev
소프트웨어 아키텍트 소프트웨어 아키텍트란? 소프트웨어 아키텍트는 프로그래밍 외에도 여러 책임을 집니다. 아키텍트는 엔지니어링 관점에서 문제를 정의합니다. 소프트웨어 시스템을 구현 가능한 작은 조각으로 나누는 동시에 전체 시스템이 일관성 있게 동작하도록 큰 그림을 그립니다. 아키텍트는 품질에 영향을 주는 다양한 품질 속성사이에서 균형을 잡아야 하며 어쩔 수 없이 늘어나는 기술 부채도 관리합니다. 무엇보다도 아키텍트는 팀원들의 설계 역량을 개발합니다. 소프트웨어 아키텍트가 하는 일 소프트웨어 아키텍트는 프로그램 매니저가 아닙니다. 아키텍트는 소프트웨어가 언제 어떻게 전달되는지 결정하는 사람입니다. 또한 소프트웨어가 비지니스 목표에 부합하도록 만드는 사람입니다. 코딩은 하지만 알고리즘이나 코드를 짜기보다는 더 크고 많은 것을 설..
모듈과 컴포넌트 모듈과 컴포넌트의 차이 소프트웨어 개발에서 모듈과 컴포넌트가 유사한 의미로 혼용되곤 합니다. 기술적으로 말하자면 모듈과 컴포넌트는 다릅니다. 모듈(module) 설계 시점에 의미 있는 요소 설계할 때 만들기 시작해서 주로 코딩할 때 다루게 됩니다. 모듈은 파일 시스템 상의 어떤 형태로 표현할 수 있으며 소프트웨어가 동작하지 않아도 상관없습니다. 컴포넌트(component) 런타임 시점에 의미 있는 요소 소프트웨어가 실제 동작할 때부터 의미 있습니다. 소프트웨어가 실행하기 시작하면 컴포넌트 간에 커넥션을 만들고 프로세스를 생성하거나 오브젝트를 초기화합니다. 모듈 타입과 다른 점이라면, 시스템이 동작하지 않으면 사라진다는 점입니다. 프로그램이 실제 실행하면서 만드는 로그파일이나 데이터베이스 기록만으로 파악할..
구글 검색 너란 녀석... 구글 검색 너란 녀석... 다들 한 번쯤은 구글을 써보았을 것입니다. 그런데 궁금하지 않으신가요? 구글은 어떻게 30조 개가 넘는 웹 페이지들 속에서 사용자가 입력한 검색어에 맞는 결과물을 10개로 추려서 보여줄까요? j-ho.dev
Redis-Stat - 레디스 모니터링 레디스를 쓰다 보면 각 레디스 서버가 메모리를 얼마나 쓰고 있는지 모니터링할 필요가 있습니다. 그럴 때 간단하게 쓸 오픈 소스 라이브러리를 소개해드리겠습니다. redis-stat redis-stat으로 띄운 대시보드입니다. 인스턴스 별로 정보를 볼 수도 있습니다. 맘에 드신다면 아래 설치를 따라가 주세요. Install redis-stat은 ruby로 만들어져 있습니다. yum install ruby-devel gcc make rpm-build rubygems ruby를 사용할 때 필요한 라이브러리들을 설치합니다. gem install redis-stat gem을 이용해 redis-stat을 설치합니다. USAGE redis-stat 주소:포트번호 주소:포트번호 주소:포트번호 --verbose --dae..
NestJs 예외 처리 ( Error Handling, Error Exception ) NestJS 예외 처리 (Error Exception) NestJs에는 애플리케이션 전체의 모든 예외 처리를 하는 Exceptions Layer가 내장되어 있습니다. 애플리케이션 코드에서 예외 처리를 하지 않으면 이 레이어에서 예외를 처리합니다. 커스텀으로 예외 j-ho.dev
CI/CD란? CI/CD란? CI/CD 란 용어를 알고 계신가요? 요즘 같이 빠르게 진화하고 변화하는 시대에는 어떻게 하면 시장과 고객의 요구에 빠르게 반응해서 제품을 출시, 업데이트할 것인가가 큰 과제입니다. 이 같은 고 j-ho.dev
MongoDB - $addToSet $addToSet mongoDB의 $addToSet 연산자는 타입이 배열인 필드에 값을 추가할 수 있는 연산자입니다. 배열 안에 중복인 값이 있다면 추가되지 않습니다. { $addToSet: { : , ... } } Missing Field 값을 추가하려는 필드가 없다면 필드를 생성하고 그 안에 배열 타입인 값을 추가합니다. 단! 배열의 순서를 보장하진 않습니다. Field is Not an Array 필드는 반드시 배열 타입이어야 합니다 만약 아래와 같은 document가 있을 때 { _id: 1, colors: "blue,green,red" } $addToSet으로 update를 해도 colors의 타입은 string이기 때문에 연산이 실패합니다. db.update( { _id: 1 }, { $add..