분류 전체보기
-
[DB] 반정규화(Denormalization)DB 2020. 7. 14. 21:51
시스템의 성능 향상, 개발 및 운영의 편의성 등을 위해 정규화된 데이터 모델을 통합, 중복, 분리하는 과정으로 의도적으로 정규화 원칙을 위배 하는 행위 반정규화를 수행하면 시스템의 성능이 향상되고 관리 효율성은 증가하지만 데이터의 일관성 및 정합성이 저하될 수 있음 과도한 반정규화는 오히려 성능을 저하시킴 테이블 통합 두 개의 테이블이 조인되는 경우가 많아 하나의 테이블로 합쳐 사용하는 것이 성능 향상에 도움이 될 경우 수행 테이블 분할 테이블을 수직 또는 수평으로 분할하는 것 수평 분할(Horizontal Partitioning) 레코드를 기준으로 테이블을 분할하는 것 레코드별로 사용 빈도의 차이가 큰 경우 사용 빈도에 따라 테이블을 분할 수직 분할(Vertical Partitioning) 하나의 테이..
-
[DB] 데이터 모델 (Data Model)DB 2020. 7. 12. 21:10
현실 세계의 정보들을 컴퓨터에 표현하기 위해서 단순화, 추상화하여 체계적으로 표현한 개념적 모형 데이터, 데이터의 관계, 데이터의 의미 및 일관성, 제약조건 등을 기술하기 위한 개념적 도구들의 모임 데이터베이스 설계 과정에서 데이터의 구조를 논리적으로 표현하기 위해 사용되는 지능적 도구 구성 요소 개체(Entity) 데이터베이스에 표현하려는 것으로 사람이 생각하는 개념이나 정보 단위 같은 현실 세계의 대상체 속성(Attribute) 데이터의 가장 작은 논리적 단위로서 파일 구조상의 데이터 항목 또는 데이터 필드에 해당 관계(Relationship) 개체 간의 관계 또는 속성 간의 논리적인 연결을 의미 개념적 데이터 모델 현실 세계에 대한 인간의 이해를 돕기 위해 현실 세계에 대한 인식을 추상적 개념으로 ..
-
[소프트웨어 공학] UML이란?Software Engineering 2020. 7. 10. 15:15
Unified Modeling Language의 약어로 시스템 분석, 설계, 구현 등 시스템 개발 과정에서 개발자와 고객 또는 개발자 상호 간의 의사소통이 원활하게 이루어지도록 표준화한 대표적인 객체지향 모델링 언어 Rumbaugh, Booch, Jacobson 등의 객체지향 방법론의 장점을 통합하였으며 OMG에서 표준으로 지정 시스템 구조를 표현하는 6개의 구조 다이어그램과 시스템의 동작을 표현하는 7개의 행위 다이어그램이 있음 구성 요소로는 사물, 관계, 다이어그램이 있음 사물(Things) 모델을 구성하는 가장 중요한 기본 요소로 다이어그램 안에서 관계가 형성될 수 있는 대상을 의미 사물에는 구조 사물, 행동 사물, 그룹 사물, 주해 사물이 있음 구조 사물(Structual Things) 시스템의 ..
-
[TypeScript] TypeScript란?JavaScript/TypeScript 2020. 7. 8. 17:24
Microsoft에서 개발해고 관리하는 오픈소스 프로그래밍 언어 Javascript에 정적 타입을 도입한 Javascript로 ES6를 지원 특징 1. ES6 모듈 및 네임스페이스 ES6에서 제공하는 모듈 선언과 모듈 호출 방식을 지원 클래스를 그룹으로 구분할 수 있는 네임스페이스를 지원하여 라이브러리 단위의 모듈 구성 가능 2. 클래스와 인터페이스 객체지향 프로그래밍 환경을 제공해서 Class, Interface, Extends 등의 객체지향 언어에서 사용하던 키워드를 사용할 수 있음 3. 타입 시스템 타입 시스템을 지원하여 타입 안정성을 제공
-
[Algorithm] BFS와 DFSAlgorithm 2020. 7. 7. 21:19
DFS(Depth-First Search) 루트 노드 또는 임의의 노드에서 다음 브랜치로 넘어가기 전에 해당 브랜치를 모두 탐색하는 방법 스택 or 재귀함수를 이용해 구현 모든 경로를 방문해야 할 경우에 적합함 시간 복잡도(정점의 수 : N, 간선의 수 : E) 인접 행렬 : O(V^2) 인접 리스트 : O(V+E) BFS(Breadth-First Search) 루트 노드 또는 임의의 노드에서 인접한 노드부터 먼저 탐색하는 방법 큐를 이용해 구현 최소 비용이 우선일 때 적합함 시간 복잡도(정점의 수 : N, 간선의 수 : E) 인접 행렬 : O(V^2) 인접 리스트 : O(V+E)
-
[OS] 세마포어(Semaphore)와 뮤텍스(Mutex)의 차이OS 2020. 7. 6. 15:35
세마포어의 정의 공유된 자원의 데이터를 여러 프로세스나 스레드가 접근하는 것을 제어하는 방법 즉, 병행처리를 위한 동기화 기법 세마포어 동작 원리 semWait 연산 세마포어 값을 감소시킴 값이 음수가 아니면 프로세스는 계속 수행 값이 음수가 되면 semWait을 호출한 프로세스는 블록됨 semSignal 연산 세마포어 값을 증가시킴 값이 양수가 아니면(0 또는 음수) semWait연산에 의해 블록된 프로세스를 깨움 세마포어의 종류 카운팅 세마포어(Counting Semaphore) 동시에 사용가능한 자원에 대해 사용 임계 영역 안에 스레드나 프로세스가 들어오면 카운트를 증가시켜 일정 숫자만큼의 스레드만 사용하게함 이진 세마포어(Binary Semarphore) 값으로 0 또는 1만 가질 수 있음 뮤텍스..
-
[OS] 교착상태(Dead Lock)OS 2020. 7. 5. 20:56
프로세스가 자원을 얻지 못해 다음 처리를 하지 못하는 상태로 교착 상태라고도 함 시스템적으로 한정된 자원을 여러 곳에서 사용하려고 할 때 발생 발생 조건 교착 상태는 4가지 조건이 동시에 성립 할 때 발생 상호 배제(Mutual Exclusion) : 한 자원은 한 번에 한 프로세스만 사용할 수 있어야함 점유 대기(Hold and Wait) : 프로세스 자원을 가진 채 다른 자원을 기다릴 수 있음 비선점(No Preemption) : 다른 프로세스에 할당된 자원은 사용이 끝날 때까지 강제로 빼앗을 수 없음 순환 대기(Circular Wait) : 프로세스의 집합에서 각 프로세스는 순환적으로 다음 프로세스가 필요로하는 자원을 가지고 있음 해결 방법 예방(Prevention) : 4가지 발생 조건이 하나라도..
-
[JAVA] Class Object Instance 차이JAVA 2020. 7. 4. 16:27
Class 개념 객체를 만들어 내기 위한 설계도 혹은 틀 연관되어 있는 속성과 메서드들의 집합 Object 개념 구현할 대상 클래스에 선언된 형태로 생성된 실체 특징 클래스의 인스턴스라고도 부름 객체는 모든 인스턴스를 대표하는 포괄적인 의미를 가짐 oop관점에서 클래스의 타입으로 선언되었을 때 객체라 부름 Instance 개념 객체를 소프트웨어에 실체화한 것 실체회된 인스턴스는 메모리에 할당됨 특징 인스턴스는 객체에 포함 oop관점에서 객체가 메모리에 할당되어 실제 사용될 때 인스턴스라고 부름 객체는 클래스의 인스턴스 Class와 Object의 차이 클래스는 설계도, 객체는 설계도로 구현한 모든 대상을 의미 Object와 Instance의 차이 클래스의 타입으로 선언되었을 때 객체라 부름 객체가 메모리에..