728x90

분류 전체보기 136

[개발 공부 113일차] Map과 Set 딥 다이브

0. Map과 Set 딥 다이브 계기1. Set2. Map3. Set과 Map 차이4. Set과 Map, 일반 객체의 차이점5. 왜 일반 객체는 키가 문자열로 변환되는 거고, Map은 객체나 배열도 키로 저장되게끔 설계된 걸까?  0. Map과 Set 딥 다이브 계기 여느 때처럼 알고리즘 문제를 풀기 위해 돌아다니던 중, '캐시'라는 문제를 발견했다.기업에서 실제로 낸 코테 문제를 좋아하는 나는 어렵든 말든 일단 도전해봤다.  LRU랑 cache hit, cache miss가 뭔지 도통 전혀 모르겠어서 다른 분의 풀이를 보며 찬찬히 이해하기 시작했다. function solution(cacheSize, cities) { // DB 캐시를 적용할 때 캐시 크기에 따른 실행시간 측정 let answer..

[프로그래머스 Lv.1] 2016년 (JS, 특정 날짜로 요일 반환)

0. 문제 설명 및 제한 조건1. 작성한 답안 코드2. 풀이 과정3. AI가 한 리팩토링4. Date 객체  0. 문제 설명 및 제한 조건  1. 작성한 답안 코드function solution(a, b) { const date = '2016-0'+ a + '-' + b; const week = ['SUN', 'MON', 'TUE', 'WED', 'THU', 'FRI', 'SAT']; return week[new Date(date).getDay()];}  2. 풀이 과정문제를 봤을 때, 되게 흥미로웠다. 날짜를 반환하거나 날짜 포맷을 변환하는 것은 보고, 코드를 직접 작성해 본 적도 있었지만 요일 반환은 해본 적이 없기 때문이다. 그래서 어떻게 코드를 작성해야 할지 감이 안 옴과 ..

[개발 공부 112일차] DB 개론 | 성능을 고려한 데이터 모델링

0. TL;DR1. 정규화, 반정규화2. PK, FK 순서 조정3. 컬럼 수가 많은 테이블의 1:1 분리4. 대용량 테이블 파티셔닝*5. 복잡한 모델의 단순화로 성능 향상6. 일관성 있는 데이터 타입7. 좋은 모델링이란  0. TL;DR정규화, 반정규화 성능 향상: 데이터 무결성 및 관리에 대한 주의 필요PK, FK 순서 조정[매우 중요] PK가 여러 속성으로 구성된 복합 식별자일 경우, PK 순서에 따라 성능 차이가 발생FK로 사용되는 컬럼에 인덱스를 추가하여 성능 향상일관성 있는 데이터 타입 설정: 동일한 속성의 컬럼에 데이터 타입이 맞지 않으면 DB는 같은 데이터라고 생각하지 않음비즈니스 도메인을 잘 이해하는 것이 좋은 모델링을 도출함  1. 정규화, 반정규화정규화가 잘 되어 있으면 입력, 수정, ..

[개발 공부 111일차] DB 개론 | 데이터 모델링 문제 및 해소

0. TL;DR1. 1:1 관계2. M:N 관계3. 엔티티 타입 통합4. 이력(log, 기록) 엔티티 타입 설계  0. TL;DR1:1 관계1개의 엔티티 타입으로 통합: PK가 동일하게 사용 or 한 시점에 2개의 엔티티 타입이 동시 발생 금지부분 통합: PK 속성들의 구조가 모두 비슷한 경우, 편의상 하나로 통합하여 표현슈퍼 엔티티 타입 생성: PK와 의미가 동일하고, 속성의 일부만 다를 경우 슈퍼 타입으로 통합M:N 관계관계 엔티티 타입 분리주 식별자 통합부모 엔티티 타입에 속성 추가이력 엔티티 타입 설계이력 관리: 하나의 업무가 시간 흐름에 따라 발생하는 데이터이력 데이터 발생 유형발생 이력변경 이력진행 이력  1. 1:1 관계: 엔티티 타입 간 관계가 1:1로 대응하는 것즉, 해당 엔티티 타입의 ..

[개발 공부 110일차] DB 개론 | 3차 정규화, 보이스-코드 정규화, 4차/5차 정규화

0. TL;DR1. 정규화2. 오브젝트 분석과 정규화 엔티티 타입 분석 차이점3. 1차 정규화4. 2차 정규화  0. TL;DR3차 정규화: 속성에서 종속적인 속성을 분리하는 것보이스-코드 정규화: 복잡한 식별자 관계에 의해 발생하는 문제를 해결하기 위해 3차 정규화를 보완한 정규화4차 정규화: 보이스-코드 정규화를 만족해야 하며, 다치 종속(Multi-Value Attribute)이 없어야 하는 정규화5차 정규화: 중복을 제거하기 위해 분해할 수 있는 만큼 전부 분해하는 과정  1. 3차 정규화: 속성에서 종속적인 속성을 분리하는 것 1차 정규화 및 2차 정규화 이후, 속성 간의 종속관계가 발생한다면 3차 정규화 진행이행적 함수 종속 제거, 기본키가 아닌 모든 속성 간에서는 서로 종속될 수 없음  [예..

[개발 공부 109일차] DB 개론 | 데이터 모델링 1차 정규화, 2차 정규화

0. TL;DR1. 정규화2. 오브젝트 분석과 정규화 엔티티 타입 분석 차이점3. 1차 정규화4. 2차 정규화  0. TL;DR정규화: 다양한 유형의 검사를 통해 데이터 모델을 구조화하고, 개선시켜나가는 절차에 관련한 이론데이터 모델을 견고하고, 잘 만들기 위해서는 정규화 과정이 필요1차 정규화: [속성에 대한 분리] 모든 속성이 반드시 1개의 원자값만 보유하게 하는 것2차 정규화: [종속에 대한 분리] 주 식별자에 종속적이지 않고, 주 식별자를 구성하는 일부 속성에 종속적인 속성을 분리하는 것  1. 정규화: 다양한 유형의 검사를 통해 데이터 모델을 구조화하고, 개선시켜나가는 절차에 관련한 이론 정규화의 기본 원칙: 하나의 테이블에 ‘중복된 데이터가 없도록’ 하는 것데이터를 수학적인 방법에 의해 구조화..

[개발 공부 108일차] DB 개론 | ERD, 논리적/물리적 데이터 모델링

0. TL;DR1. 논리적 데이터 모델링2. 개념적 모델링과 논리적 모델링 매핑3. 물리적 데이터 모델링4. ERD (Entity Relationship Diagram)  0. TL;DR논리적 데이터 모델링: 개념적 모델을 상세화하는 과정물리적 데이터 모델링: 논리적 데이터 모델을 특정 DBMS 기술에 매핑하고, 소프트웨어의 용어를 사용ERD: 시스템의 엔티티가 무엇이 있는지, 어떤 관계가 있는지를 나타내는 다이어그램  1. 논리적 데이터 모델링: 개념적 데이터 클래스를 기술적 데이터 구조에 매핑하는 단계즉, 개념적 모델을 상세화하는 과정을 의미한다. 개념적 데이터 모델에서 식별된 데이터 개념과 복잡한 데이터 관계에 대한 자세한 내용을 제공한다. 다양한 속성의 데이터 유형 (e.g. 문자열 or 숫자)데..

[개발 공부 107일차] 함수형 코딩 | 타임라인 조율하기

0. TL;DR1. 타임라인 다이어그램 그리는 단계2. 더 빠르게 동작하는 타임라인3. 모든 병렬 콜백을 기다리는 Cut(컷)4. 멱등성*을 적용해, 여러 번 호출하더라도 한 번만 실행되도록5. 명시적 시간 모델6. 기타 | 어떠한 응답이 다른 응답보다 가끔 늦어지는 이유?  드디어 쏙쏙 들어오는 함수형 코딩 스터디 마지막이다!유익한 내용도 꽤 있었지만 설명이 좋지 않아서 이해하는 데 시간이 꽤 걸리기도 하였다. 다음에 읽을 땐 하이라이트 처리한 부분 위주로 읽어야겠다. 스터디 내용은 블로그와 개인 노션에 핵심 정리하며 읽었는데 확실히 큰 도움이 되었다.이해가 안 되는 부분이나 이해는 되었으나 필자가 제대로 설명하지 못해 헷갈리는 부분은 내 표현대로 다시 개념과 내용을 정립했다. 기억에 오래 남을 것 같..

[개발 공부 106일차] DB 개론 | 데이터 모델링 단계, 개념적 데이터 모델링

0. TL;DR1. 데이터 모델링 5단계2. 데이터 모델링 관점에 따른 분류3. 요구사항4. 개념적 데이터 모델링  0. TL;DR데이터 모델링 5단계: 요구사항 분석 → 개념 모델링 → 논리 모델링 → 물리 모델링 → 데이터베이스구체화 및 세분화 될수록 현업에 적용할 수 있는 단계가 됨요구사항 분석: 업무 및 기능 수행에 필요한 정의 분석요구사항 주요 작업: 업무 영역의 설계 범위를 결정개념적 모델링 단계주제 영역 도출핵심 데이터 집합 도출관계 설정핵심 속성 정의식별자 정의  1. 데이터 모델링 5단계 요구사항 분석: 업무 및 기능 수행에 필요한 정의 분석개념 모델링: 정보 표현의 상위 수준 모델로 핵심 엔티티 도출 및 관계 정의 (개념 ER 모델)논리 모델링: 업무 요건을 명확하게 표현 및 설계 (상..

[개발 공부 105일차] DB 개론 | 식별자, 관계

0. TL;DR1. 식별자 (indentifier)2. 식별자 구분3. 관계 (Relationship)4. 관계 카디널리티  0. TL;DR식별자: 하나의 엔티티 타입에서 각각의 엔티티를 구분할 수 있는 결정자식별자 구분주 / 보조내부 / 외부단일 / 복합원조 / 대리관계 (Relationship): 2개의 엔티티 타입 사이의 논리적인 관계로, 서로에게 영향을 주는 것관계 페어링: 각각의 엔티티들이 자신과 관련된 엔티티들과 관계의 *어커런스로 참여하는 형태관계 카디널리티: 엔티티 타입 간 관계에서 ‘참여자 수’를 표현한 것1:11:NM:N  1. 식별자 (indentifier): 하나의 엔티티 타입에서 각각의 엔티티를 구분할 수 있는 결정자 모든 엔티티 타입에는 반드시 하나 이상의 식별자가 필요하다.DB..

728x90