[Design Pattern] Singleton
·
Reference/Design Pattern
"헤더퍼스트 디자인패턴" + "면접을 위한 CS 전공 지식 노트"에 개인적인 의견과 생각들을 추가하여 작성한 포스팅이므로 틀린 내용이 있을 수 있습니다. (있다면 지적 부탁 드립니다.) 📕 목차 1. 리틀 싱글턴 2. 싱글턴 패턴 3. 싱글턴 패턴 구현 전략 1. 리틀 싱글턴 📌 The Little Lisper 클래스의 인스턴스를 생성하기 위해서는 일반적으로 다음과 같이 new 연산자를 사용한다. new Foo(); 다른 객체에서 또 Foo라는 클래스의 인스턴스가 필요하면, 또 new 연산자를 사용해 인스턴스를 생성하면 된다. 그런데 만약, Foo 클래스의 생성자를 private로 바꾼다면 어떻게 될까? class Foo() { private Foo() {} } 이렇게 되면 Foo 클래스 내부에서만 생성..
[C++] 1774 - 우주신과의 교감 (골드 3)
·
Coding Test/Solution
1. 문제 설명 1774번: 우주신과의 교감 (1,1) (3,1) (2,3) (4,3) 이렇게 우주신들과 황선자씨의 좌표가 주어졌고 1번하고 4번이 연결되어 있다. 그렇다면 1번하고 2번을 잇는 통로를 만들고 3번하고 4번을 잇는 통로를 만들면 신들과 선자씨끼 www.acmicpc.net 2. 아이디어 💡 사이클을 이루지 않는 최소 비용의 간선 찾기 => MST 보자마자 최소 신장 트리를 만들어야 겠다는 건 떠올리지 못 했고, 한참을 문제를 째려보다가 탐욕법으로 접근하면 되겠다 싶긴 했는데 구현이 막혔다. (각 노드가 선택할 수 있는 경로 중에 가장 비용이 작은 간선을 선택하면 되므로 탐욕법 접근이 가능하다 판단했다.) 구현이 막혔던 이유는 처음에 모든 정점의 좌표를 이용해서 간선에 대한 비용을 계산해두..
[Database] 데이터 종속성과 정규화
·
Computer Science/Database
📕 목차 1. 관계형 데이터베이스 설계의 문제점 2. 분할 3. 함수 종속성 4. 함수 종속성을 이용한 정규화 5. 다중치 종속성을 이용한 정규화 1. 관계형 데이터베이스 설계의 문제점 📌 잘못된 데이터베이스 설계 정보의 중복 Branch 정보의 중복 특정 정보를 나타낼 수 없음 삽입 이상(Insert Anomaly) : 계좌가 없는 Branch 정보를 입력? 삭제 이상(Delete Anomaly) : L-29 계좌 삭제 → Pownal 지점 정보 삭제 갱신 이상(Update Anomaly) : Downtown 지점의 Asset이 변경됨 2. 분할 📌 정보 중복 및 이상 현상을 해결하는 방법 릴레이션을 분할한다. 단, 잘못된 분할은 정보 손실(Information Loss)을 초래한다. ❌ 잘못된 분할 ..
[Database] 논리적 모델
·
Computer Science/Database
📕 목차 1. ERD → Logical Model 2. EERD → Logical Model 1. ERD → Logical Model 📌 7 단계로 진행 일반 Entity Type의 변환 Weak Entity Type의 변환 이진 1:1 관계의 변환 이진 1:N 관계의 변환 이진 M:N 관계의 변환 다중치 속성의 변환 N-ary 관계의 변환 ✒️ 변환에서 반드시 지켜야 할 지침 테이블 수를 줄여라 (Join의 감소는 곧 속도의 증가) Null 속성을 줄여라 (무결성 제약 조건) 1️⃣ 일반 Entity Type의 변환 일반 (Strong) Entity Type E는 하나의 테이블 R로 변환 E의 모든 단순 속성은 R에서도 속성으로 변환 E의 복합속성은 원소 속성들만 R의 속성으로 변환 (ex. 주소(도시..