몽고디비(MongoDB)에서 insert와 upsert는 데이터를 데이터베이스에 추가하는 두 가지 다른 방법입니다. 이들의 주된 차이점은 데이터가 이미 존재하는 경우 어떻게 처리되는지에 있습니다. 아래에서 각각의 차이점과 예시를 자세히 설명해드리겠습니다. insert 새로운 데이터를 컬렉션에 추가할 때 사용됩니다. 만약 insert를 사용해 추가하려는 데이터의 _id 값이 이미 존재한다면, MongoDB는 중복된 키 에러를 반환합니다. 이는 insert가 오직 새로운, 존재하지 않는 데이터에만 사용될 수 있음을 의미합니다. db.users.insert({ _id: 1, name: "홍길동", email: "hong@example.com" }); 이 예시에서 users 컬렉션에 새 사용자를 추가하려고 합니..
registry MongoDB에서 registry는 일반적으로 데이터 유효성 검사(validation) 규칙, 커스텀 함수(custom functions), 또는 특정 데이터 처리 작업을 위한 설정을 저장하고 관리하는데 사용됩니다. 데이터 유효성 검사 규칙 설정 MongoDB에서는 registry를 사용하여 컬렉션의 문서에 대한 유효성 검사 규칙을 설정할 수 있습니다. 예를 들어, 특정 필드가 특정 형식을 가져야 하거나 특정 값을 포함해야 할 때 이러한 규칙을 정의할 수 있습니다. db.createCollection("users", { validator: { $jsonSchema: { bsonType: "object", required: ["name", "email"], properties: { name..
이름 및 태그 EC2의 이름을 설정하는 곳입니다. 이름을 지을 때는 이 컴퓨터가 어떤 역할을 하는 지 알아볼 수 있게 작성합니다. ex) instagram-server Application and OS Images (Amazon Machine Image) Ubuntu 22.04 LTS 선택 OS를 선택하는 단계입니다. 하지만 Windows나 Mac OS는 생각보다 용량도 많이 차지하고 성능도 많이 잡아먹습니다. 그래서 서버를 배포할 컴퓨터의 OS는 훨씬 가벼운 Ubuntu를 많이 사용합니다. ▷OS(운영체제)란 Mac, Windows 7, Windows 10, Windows 11 같은 것들이 OS입니다. 인스턴스 유형 인스턴스란 AWS EC2에서 빌리는 컴퓨터 1대를 의미합니다. 그럼 인스턴스 유형은 무..
AWS EC2 서비스로 들어가서 Region 선택 Region 이란 리전(Region)이란 인프라를 지리적으로 나누어 배포한 각각의 데이터 센터를 의미합니다. 우린 EC2가 컴퓨터를 빌려서 원격으로 접속해 사용하는 서비스라는 걸 알고 있습니다. 여기서 EC2를 통해 빌려서 쓸 수 있는 컴퓨터들이 전 세계적으로 다양하게 분포해있다. 이렇게 컴퓨터들이 위치한 위치를 보고 AWS에서는 리전(Region)이라고 합니다. Region 사용 이유 지연 시간 감소: 리전은 지리적으로 분산된 위치에 설정되어 있습니다. 이를 통해 사용자는 자신에게 가장 가까운 리전을 선택하여 서비스를 이용할 수 있으며, 이는 네트워크 지연 시간을 줄이고, 어플리케이션의 성능을 향상시킬 수 있습니다. 고가용성 및 재해 복구: 여러 리전에..
EC2(Elastic Compute Cloud) 아마존 웹 서비스(AWS)에서 제공하는 클라우드 컴퓨팅 서비스입니다. 이 서비스를 통해 사용자는 가상 컴퓨터를 임대하여 다양한 컴퓨팅 작업을 수행할 수 있습니다. EC2의 핵심 기능과 특징을 다음과 같이 요약할 수 있습니다. 유연성과 확장성: EC2는 다양한 유형의 인스턴스를 제공하여 사용자의 요구에 맞춰 컴퓨팅 리소스를 선택할 수 있게 합니다. 이러한 인스턴스는 필요에 따라 쉽게 확장하거나 축소할 수 있어 비즈니스의 성장 또는 수요 변화에 유연하게 대응할 수 있습니다. 비용 효율성: 사용자는 실제로 사용한 컴퓨팅 리소스에 대해서만 비용을 지불합니다. 이는 물리적 서버를 구매하고 유지하는 것보다 비용적인 면에서 효율적일 수 있습니다. 보안: AWS는 데이터..
문제 출처 Lv.4 자동완성 - JavaScript https://school.programmers.co.kr/learn/courses/30/lessons/17685 문제 설명 포털 다음에서 검색어 자동완성 기능을 넣고 싶은 라이언은 한 번 입력된 문자열을 학습해서 다음 입력 때 활용하고 싶어 졌다. 예를 들어, go 가 한 번 입력되었다면, 다음 사용자는 g 만 입력해도 go를 추천해주므로 o를 입력할 필요가 없어진다! 단, 학습에 사용된 단어들 중 앞부분이 같은 경우에는 어쩔 수 없이 다른 문자가 나올 때까지 입력을 해야 한다. 효과가 얼마나 좋을지 알고 싶은 라이언은 학습된 단어들을 찾을 때 몇 글자를 입력해야 하는지 궁금해졌다. 예를 들어, 학습된 단어들이 아래와 같을 때 go gone guild..
트라이(Trie) 알고리즘 트라이는 문자열들을 저장하고 효율적으로 탐색할 수 있는 트리 기반의 자료구조입니다. 특히, 자동 완성, 사전 검색 등의 기능에 유용하게 사용됩니다. 기본 구조 트라이의 각 노드는 알파벳을 키로 가지는 자식 노드들의 맵(또는 배열)과, 문자열의 끝을 나타내는 플래그로 구성됩니다. 1. 트라이 노드 정의 class TrieNode { constructor() { this.children = {}; this.isEndOfWord = false; } } 2. 트라이 클래스 정의 class Trie { constructor() { this.root = new TrieNode(); } // 문자열 삽입 insert(word) { let node = this.root; for (let ch..
Expo CLI Expo는 React Native를 위한 프레임워크 및 플랫폼입니다. Expo CLI는 이 프레임워크를 사용하여 앱을 개발, 빌드 및 배포하는 데 사용하는 도구입니다. 장점 초기 설정 간소화: Expo를 사용하면 React Native 프로젝트를 시작하는 데 필요한 초기 설정을 건너뛸 수 있습니다. 편리한 개발 도구: 실시간 코드 리로딩, 디버깅 도구 등을 포함한 다양한 편리한 도구를 제공합니다. 네이티브 모듈 포함: Expo는 카메라, 위치 정보, 알림 등 다양한 네이티브 기능을 사용할 수 있는 모듈을 포함하고 있습니다. OTA(Over-the-Air) 업데이트: 앱 스토어를 거치지 않고도 사용자들에게 앱의 자바스크립트 코드 업데이트를 배포할 수 있습니다. 단점 제한된 네이티브 모듈: ..
React Native는 Facebook에서 개발한 프레임워크로, 자바스크립트를 사용하여 iOS와 Android 앱을 개발할 수 있게 해줍니다. 자바스크립트 스레드: React Native 앱은 기본적으로 두 개의 주요 스레드에서 작동합니다. 하나는 자바스크립트(JS) 스레드이며, 여기서 React Native 코드가 실행됩니다. 네이티브 스레드: 다른 하나는 네이티브 스레드로, OS의 UI 작업과 같은 네이티브 작업들이 여기서 수행됩니다. 브릿지(Bridge): JS 스레드와 네이티브 스레드 사이에는 '브릿지'라는 통신 매채가 있습니다. 이 브릿지를 통해 두 스레드가 서로 통신하며, 이 통신을 통해 자바스크립트에서 작성된 로직이 네이티브 동작으로 변환됩니다. 네이티브 모듈: React Native는 네..
목차 문제 출처 문제 설명 제한 조건 정답 문제 출처 Lv.3 표현 가능한 이진트리 - JavaScript https://school.programmers.co.kr/learn/courses/30/lessons/150367 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 문제 설명 당신은 이진트리를 수로 표현하는 것을 좋아합니다. 이진트리를 수로 표현하는 방법은 다음과 같습니다. 이진수를 저장할 빈 문자열을 생성합니다. 주어진 이진트리에 더미 노드를 추가하여 포화 이진트리로 만듭니다. 루트 노드는 그대로 유지합니다. 만들어진 포화 이진트리의 노드들을 가장 ..