분류 전체보기

Computer Science/DataBase

[데이터베이스 - 3] 데이터베이스 구조

스키마 데이터베이서 구조는 스키마로 구성된다. 스키마(Schema)란 데이터베이스에 저장되는 데이터 구조와 제약조건을 정의한 것이다. 스키마에 따라 저장된 데이터를 인스턴스라 부른다. 스키마는 자주 변경되지 않지만 인스턴스는 자주 변경된다. 3단계 데이터베이스 구조 미국의 표준화 기관인 ANSI/SPARC은 사용자와 데이터베이스의 복잡한 내부 구조를 분리할 수 있도록 3단계 데이터베이스 구조(3-level database architecture)를 제안했다. 3단계 데이터베이스 구조는 데이터베이스 구조를 3가지 단계별로 추상화한다. 외부 단계 (external level) : 데이터베이스 구조를 사용자(응용 프로그램) 입장에서 추상화한다. 추상화 되어진 데이터베이스 구조가 외부 스키마(View)이다. 외..

Computer Science/DataBase

[데이터베이스 - 2] DBMS

DBMS DBMS(Data Base Management System)는 DB를 관리하는 소프트웨어다. 과거에는 데이터를 파일에다 저장하고 관리했는데 이러다보니 아래의 문제가 발생했다. 데이터가 여러 파일에 중복 저장되는 문제 응용 프로그램이 데이터 파일에 종속적인 문제 데이터 파일에 대한 동시 공유 · 회복 · 보안 기능이 부족한 문제 등등 이러한 문제를 해결하기 위해 DBMS와 DB가 등장하게 되었다. DBMS의 장단점 DBMS로 인해 여러 장점을 얻지만 대신 단점도 존재한다. 하지만 장점의 이점이 훨씬 더 크기에 대부분의 시스템은 데이터를 DB에 저장한다. DBMS의 주요 기능 DBMS의 주요 기능은 세 가지로 요약할 수 있다. 정의 기능 : 데이터베이스 구조를 정의하거나 수정 할 수 있는 기능 (c..

Computer Science/DataBase

[데이터베이스 - 1] 데이터베이스란?

데이터베이스란? 데이터베이스는 데이터를 모아두는 창고이다. 더 정확히 말하면 데이터베이스는 공유 데이터(shared data), 통합 데이터(integrated data), 저장 데이터(stored data), 운영 데이터(operational data)의 집합이다. 공유 데이터 : 조직 내 여러 사용자들이 함께 사용하는 데이터 통합 데이터 : 조직 내 데이터가 여러 군데 흩어져있지 않고 한곳에 합쳐진 데이터 → 데이터 중복 최소화 저장 데이터 : 컴퓨터가 접근할 수 있는 매체에 저장된 데이터 운영 데이터 : 조직의 업무를 수행하는데 사용되어 데이터 데이터베이스의 특징 실시간 접근이 가능하다. 계속 변화한다. 동시 공유가 가능하다. 내용, 즉 값으로 참조한다. 데이터 유형 데이터베이스에 저장되는 데이터는..

Computer Science/Network

[데이터통신 - 12] 데이터통신 전체 흐름

전체 흐름 데이터 통신의 전체 흐름과 OSI 각 계층에서 무슨 일이 일어나는지 살펴보자. 이 글에서의 데이터통신은 표준 프로토콜인 OSI 7계층을 기반으로 하며 2계층에서는 Ethenet을 3계층에서는 IP를 4계층에서는 TCP를 사용한다고 생각한다. OSI 각 계층의 핵심 기능은 아래와 같다. 응용 계층(세션, 표현 계층 포함) : 응용 계층의 프로토콜 정의 전송 계층 : 종단 간 데이터 전송의 오류 제어, 흐름 제어 네트워크 계층 : 라우팅 데이터링크 계층 : 네트워크 장비 간의 오류 제어, 흐름 제어 물리 계층 : 비트 변환, 비트 전송 네트워크 구성도 아래의 네트워크가 있다. 총 세 개의 사설 네트워크 192.168.1.0/24, 192.168.10.0/24 ,172.168.0.0/16로 구성되어..

Computer Science/Network

[데이터통신 - 11] 응용 계층

응용 계층 OSI 7계층인 응용 계층은 응용 프로그램 간의 프로토콜, 즉 응용 계층의 프로토콜을 정의하기 위한 계층이다. 응용 프로그램 간의 통신은 응용 계층의 프로토콜에 맞춰 이루어진다. 여기서의 응용 계층은 세션 계층과 표현 계층을 포함하는 것으로 생각하도록 하자. 응용 계층의 프로토콜 HTTP, HTTPS, FTP, SMTP, DNS 등의 프로토콜이 응용 계층의 프로토콜이다. HTTP, HTTP는 웹 서버와 웹 클라이언트 간의 프로토콜이며 FTP는 FTP 서버와 FTP 클라이언트 간의 프로토콜이다. 이렇듯 통신을 하는 응용 프로그램은 하나 이상의 응용 프로토콜을 정의하고 사용한다. 또한 OSI 1,2,3,4 계층은 보안 기능(암호화, 인증)을 제공하지 않기에 보통 응용 계층에서 보안 기능을 제공한다.

Computer Science/Algorithm

이진 탐색

Binary Search 리스트의 탐색 범위를 반씩 줄여나가면서 타겟의 위치를 찾는 알고리즘. 탐색 시 O(log n) 성능을 보인다. 리스트가 먼저 정렬되어 있어야만 binary seach 알고리즘을 적용할 수 있으며 분할 정복 기법을 사용한다. 리스트에서 타겟의 인덱스를 빠르게 찾거나 해가 존재할 범위에서 해를 빠르게 찾는데 사용된다. Java의 binary search 자바의 Arrays, Collections 클래스는 binarySearch 정적 메서드를 제공한다. binarySearch 메서드의 리턴 값은 아래와 같다. 리스트에서 키를 찾았으면 키 인덱스 리턴 리스트에서 키를 찾지못하면 키가 삽입되어야할 인덱스 값인 insertion point 값을 구한 뒤 -(insertion point + ..

카테고리 없음

타겟 넘버 - Brute Force

class Solution { public int solution(int[] numbers, int target) { int answer = 0; answer = f(0, 0, numbers, target); return answer; } int f(int answer, int index, int[] numbers, int target) { if(index == numbers.length) { if(answer == target) return 1; else return 0; } int count = 0; count += f(answer + numbers[index], index + 1, numbers, target); count += f(answer - numbers[index], index + 1, n..

WEB/HTTP

Web Server 구조

정적 페이지 초기 웹 서버는 페이지의 내용이 변하지 않는 정적 페이지만을 제공했다. 즉 파일의 내용이 변하지 않는 정적 리소스 (HTML, CSS, JS ··)만을 제공했다. 이 방식은 매우 쉽고 빠르지만 아래의 문제들이 발생한다. 페이지 수만큼의 정적 리소스가 웹 서버내에 저장되어야 한다. 만약 만 개의 페이지를 제공한다면 만 개의 HTML 파일이 존재해야한다. 저장 용량에 많은 부분을 차지할 뿐만 아니라 수정도 힘들다. 만약 홈페이지 로고를 바꾼다면 만 개의 HTML 파일을 모두 수정해야 하는 대작업이 벌어진다. 사용자가 페이지를 추가 할 수 없다. 사용자가 페이지를 추가하기 위해서는 웹서버 관리자에게 페이지를 구성하는 리소스를 줘야한다. 동적 페이지 이러한 문제를 해결하기 위해 웹 서버는 페이지의 ..

gunjoon98
'분류 전체보기' 카테고리의 글 목록 (14 Page)