분류 전체보기
-
[Design Pattern] Singleton Pattern, Nest.jsBackend/Design Pattern 2024. 7. 18. 18:32
Singleton Pattern이란? 싱글톤 패턴은 특정 클래스의 인스턴스가 하나만 생성되고, 이를 통해 모든 클라이언트가 동일한 인스턴스를 공유하도록 보장하는 디자인 패턴입니다. 이 패턴은 전역 변수처럼 어디서든 접근할 수 있는 객체를 제공하며, 이를 통해 리소스를 절약하고 데이터 일관성을 유지할 수 있습니다. 어떤 문제가 있을까? 1. 구현 코드가 많이 들어갑니다.인스턴스 생성 여부를 제어하고 멀티쓰레드 환경에서 동기화 처리 등을 해야 하므로 구현이 복잡해집니다. 2. DIP(Dependency Inversion Principle, 의존성 역전 원칙) 위반의존성 역전 원칙은 고수준 모듈과 저수준 모듈이 추상화된 인터페이스에 의존해야 한다고 하지만, 싱글톤 패턴은 클라이언트 코드가 구체 클래스에 직접 ..
-
[Design Pattern] 전략 패턴(Strategy pattern) in JavascriptBackend/Design Pattern 2024. 7. 16. 14:46
작은 게임을 하나 제작하려고 하는데 처음 기획이 아래와 같다고 가정합니다.챔피언은 이름, 체력, 공격타입(AD, AP)을 가집니다.챔피언의 역할군에는 전사와 마법사가 있습니다.따라서 아래 코드처럼 챔피언 추상 클래스를 정의하고 상속받아 전사와 마법사 챔피언 클래스를 생성합니다.// 챔피언 이름enum Championname { BRIAR = 'Briar', VAX = 'Vax',}// 공격 종류enum AttackType { AD = 'AD', AP = 'AP',}abstract class Champion { constructor( public readonly championInfo: { name: Championname; health: number; attack..
-
[데이터베이스개론] ch5. 관계 데이터 모델DB 2024. 7. 15. 02:42
관계 데이터 모델의 개념관계 데이터 모델의 기본 용어하나의 개체에 관한 데이터를 릴레이션(relation) 하나에 담아 데이터베이스에 저장relation : 파일 관리 시스템의 파일에 대응하는 개념 속성(attribute)릴레이션의 열파일의 필드에 대응하는 개념튜플(tuple)릴레이션의 행파일의 레코드에 대응하는 개념도메인(domain)속성 하나가 가질 수 있는 모든 값의 집합관계 데이터 모델에서는 더는 분해할 수 없는 원자 값만 속성 값으로 사용가능특정 속성이 가질 수 있는 모든 원자 값의 모임고객 릴레이션에서 등급 속성의 값으로 vip, gold, silver 중 하나만 허용된다면 네 가지 값을 모아놓은 것이 등급 속성의 도메인이 된다. 이렇게 정의해두면 사용자가 속성 값을 입력하거나 수정할 때 데이..
-
[데이터베이스개론] ch4. 데이터 모델링DB 2024. 7. 15. 02:36
데이터 모델링과 데이터 모델의 개념데이터베이스는 현실 세계에 존재하는 수많은 데이터 중에서 조직을 운영하는 데 꼭 필요한 데이터만 선별하여 컴퓨터에 저장한 것 데이터 모델링 : 현실 세계에 존재하는 데이터를 컴퓨터 세계의 데이터베이스로 옮기는 변환 과정개념적 모델링(conceptual modeling) : 코끼리에 대한 중요 데이터를 추출하여 개념 세계로 옮기는 작업논리적 모델링(logical modeling) : 개념 세계의 데이터를 데이터베이스에 저장할 구조를 결정하고 이 구조로 표현하는 작업 보통 합쳐서 데이터 모델링이라고 부르고, 데이터 모델링은 데이터베이스 설계의 핵심 과정이다.코끼리 하나를 데이터베이스로 옮기는 일이 쉽지 않았듯, 현실 세계를 데이터베이스로 옮기는 작업은 훨씬 복잡하다. 이러한..
-
[데이터베이스개론] Ch3. 데이터베이스 시스템DB 2024. 7. 15. 02:32
데이터베이스 시스템의 정의데이터베이스 시스템(DBS; DataBase System) : 데이터베이스에 데이터를 저장하고, 저장된 데이터를 관리하여 조직에 필요한 정보를 생성해주는 시스템→ 다양한 목적의 정보 처리 시스템을 구축하는 데 필요한 핵심 요소 데이터베이스 : 데이터를 저장해두는 곳데이터베이스 관리 시스템 : 데이터베이스에 저장된 데이터가 일관되고 무결한 상태로 유지되도록 관리하는 역할데이터베이스 시스템 : 데이터베이스와 데이터베이스 관리 시스템을 이용해 조직에 필요한 정보를 제공해주는 전체 시스템 데이터베이스의 구조스키마데이터베이스에 저장되는 데이터 구조와 제약조건의 정의한 것인스턴스 : 정의된 스키마에 따라 데이터베이스에 실제로 저장된 값 3단계 데이터베이스 구조개별 사용자 관점에서 바라보는 ..
-
[데이터베이스개론] Ch2. 데이터베이스 관리 시스템DB 2024. 7. 15. 02:28
데이터베이스 관리 시스템의 등장 배경과거에는 데이터를 관리하기 위해 파일 시스템이라는 소프트웨어를 사용했다.별도의 구매 비용이 들지 않지만, 응용 프로그램마다 파일을 따로 유지하는 특성 때문에 다음과 같은 문제가 발생했다.같은 내용의 데이터가 여러 파일에 중복 저장된다.데이터가 중복되면 저장 공간이 낭비되고, 데이터 일관성과 데이터 무결성을 유지하기 어렵다.응용 프로그램별로 파일을 유지하므로 같은 데이터가 여러 파일에 저장된다. 즉, 데이터 중복성 문제가 발생한다.응용 프로그램이 데이터 파일에 종속적이다.따라서 사용하는 파일의 구조를 변경하면 응용 프로그램도 함께 변경해야 하는데, 이 특징을 데이터 종속성이라고 한다.응용 프로그램은 파일에 직접 접근하여 데이터를 처리해야 하므로 사용하는 파일의 데이터를 ..
-
[데이터베이스개론] Ch1. 데이터베이스 기본 개념DB 2024. 7. 15. 02:24
1. 데이터베이스의 필요성데이터 : 현실 세계에서 관찰하거나 측정하여 수집한 사실이나 값, 자료정보 : 데이터를 의사 결정에 유용하게 활용할 수 있도록 처리하여 체계적으로 조직한 결과물목장에서 짠 원유가 데이터이고, 고객을 위해 공장에서 가공하여 팩에 담는 우유가 정보입니다. 정보처리 : 데이터에서 정보를 추출하는 과정 또는 방법, 즉 데이터를 상황에 맞게 분석하거나 해석하여 데이터 간의 의미 관계를 파악하는 것 현재성과 정확성을 보장하는 가치 있는 정보를 얻으려면 현재 상황을 정확히 판단하고 측정하여 의미 있는 데이터를 많이 수집해야 합니다.데이터를 많이 수집하는데 그쳐서는 안되고, 수집한 데이터를 효율적으로 저장했다가 필요할 때 언제든지 사용할 수 있어야 합니다.유용하게 활용할 수 있는 정보를 정확히..
-
[Javascript] 비동기 프로그래밍(promise, async/await)JavaScript 2024. 7. 11. 10:18
promise, async/await으로 비동기를 처리하는 예제를 통해 자바스크립트가 비동기를 처리하는 과정을 살펴보겠습니다.const findUserById = (userId) => { console.log('findUserById 함수 호출'); return new Promise((resolve, reject) => { console.log('findUserById 함수가 반환하는 promise 객체'); if (userId === 1) { resolve('유저를 찾았습니다.'); } else { reject(new Error(`userId가 ${userId}인 유저를 찾을 수 없습니다.`)); } });};async function getUser() { ..