flow-vector
데이터 베이스 관리 시스템
Computer Science/DataBase 2023. 6. 27. 13:14

데이터 베이스 관리 시스템의 등장 배경 파일 시스템의 문제점 같은 데이터가 여러 파일에 중복됨 여러 응용 프로그램이 동일한 데이터를 가지는 여러 파일들을 참조할 수 있음 응용프로그램이 파일에 종속적이게 됨 파일의 데이터 구조가 바뀌면 응용프로그램의 수정이 필요함 → 데이터 베이스 관리 시스템이 해당 문제를 해결 데이터 베이스 관리 시스템 특징 주요 기능 정의 기능 데이터 베이스 구조 정의 / 수정 조작 기능 데이터 삽입 삭제 수정 검색 제어 기능 데이터를 정확하고 안전하게 유지 : 데이터 제한 사항 설정 (범위, 권한 설정 등) 장점 및 단점 장점 데이터 중복 통제 데이터 동시 공유 데이터 무결성 유지 단점 비용 발생 (소프트웨어 비용) 중앙 집중 관리 시스템에 따른 취약점 존재 종류 네트워크 DBMS ..

데이터 베이스의 기본 개념
Computer Science/DataBase 2023. 6. 27. 13:13

데이터베이스의 필요성 데이터와 정보의 차이 데이터 관찰되거나 측정된 사실이나 값 정보 의사결정에 유용하게 데이처를 처리한 결과물 → 의미가 부여가 되었는지 의미있게 처리가 되었는지 정보처리(information processing) 데이터에서 정보를 추출하는 과정 또는 방법 제품별 총 판매액 분기별 판매액 정보 시스템과 데이터베이스 정보 시스템 조직 운영에 필요한 데이터를 수집해 두었다가 필요시 유용한 정보를 만들어주는 수단 데이터 베이스 정보 시스템안에서 데이터를 저장하고 있다가 필요시 데이터를 제공하는 역할을 담당함 공유, 통합, 중복, 효율이 중요키워드 데이터베이스의 정의와 특성 데이터베이스의 정의 특정 조직의 여러 사용자가 공유하여 사용할 수 있도록 통합해서 정장한 운영 데이터의 집합 통합 데이터..

알고리즘 - Prefix Sum
Computer Science/DSA 2023. 6. 20. 13:33

Prefix Sum 배열에서 i 번째 까지의 값의 합을 가지고 있는 새로운 배열 prefix sum 배열을 만드는 것을 pre-processing이라고 볼 수 있고 main 로직에서 시간 복잡도를 줄여주는 역할을 한다. i ~ j 까지 합을 O(1)에 구할 수 있음 prefix[j] - prefix[i - 1] // 0이하로 out of bound되는 것을 막고 싶다면 prefix[j] - prefix[i] + nums[i] prefix sum 만들기 prefix sum이 없다면 query를 수행하는데 O(n) 만큼이 들고 query의 갯수가 m개라면 총 O(n*m) prefix sum을 사용함으로서 O(n + m)으로 시간복잡도를 낮출 수 있음.(O(n) 만큼의 공간을 추가 사용) vector answ..

알고리즘 - Sliding Window
Computer Science/DSA 2023. 6. 20. 13:32

Sliding Window 유형 subarray를 유효하게 만드는 조건이 주어 진다. 합해서 몇 이하, 어떤 숫자의 포함 빈도 등 여러 subarray안에서 최적의 subarray 를 찾는 문제가 나옴 혹은 몇개의 subarray가 나오는지? 예시 합이 k보다 작거나 같은 가장 긴 하위 배열을 구합니다. "0"이 하나 이상 있는 가장 긴 부분 문자열을 구합니다. k보다 작은 곱을 갖는 서브 배열의 개수 찾기 수도 코드 function fn(arr): left = 0 for (int right = 0; right < arr.length; right++): Do some logic to "add" element at arr[right] to window while WINDOW_IS_INVALID: Do so..

애플리케이션 계층 - 웹과 HTTP
Computer Science/Network 2023. 3. 22. 11:19

1990년대초, 네트워크 애플리케이션인 월드와이드웹이 등장하였다. 웹은 기존의 TV나 라디오 송출과는 달리 온디맨드 방식으로 사용자가 원할 때, 원하는 페이지를 수신하고 웹상에 사용자가 원하는 정보를 발행할 수도 있다. HTTP 개요 HTTP 프로토콜은 웹의 어플리케이션 계층 프로토콜이다. HTTP 프로토콜은 클라이언트와 서버 프로그램으로 구현된다. 각 프로그램들은 서로 메세지 교환을 통해 통신을 한다. 따라서 HTTP 프로토콜은 주고 받는 메세지의 구조, 어떻게 메세지를 교환하는지에 대해 정의하고 있다. 구성 요소 웹 페이지 (web page) 웹 페이지는 여러 객체들로 이루어지는데 여기서 객체란 단일 URL로 지정할 수 있는 하나의 파일이다. 파일의 예시 : HTML 파일, JPEG 이미지, 자바스크..

애플리케이션 계층 - 네트워크 애플리케이션의 원리
Computer Science/Network 2023. 3. 12. 00:12

가장 기본적인 네트워크 애플리케이션으로는 종단시스템에서 실행되는 웹 브라우저와 웹 서버 호스트에서 실행되는 웹 서버 프로그램이 있다. 네트워크 애플리케이션을 개발한다고 하는 것은 종단시스템에서 작동하는 소프트웨어를 개발하는 것이다. 네트워크 애플리케이션의 구조 현대 네트워크 애플리케이션 구조에는 잘 알려진 아래의 2가지 대표 구조가 있다. 클라이언트 - 서버 구조 (client -server architecture) 서버 항상 작동하고 있는 호스트를 서버라고 한다. 여러 클라이언트들로 부터 서비스 요청(request)을 받는다 클라이언트 가끔 혹은 항상 작동하고 있을 수 있다. 웹 브라우저 특징 클라이언트들은 서로 직접적으로 통신하지 않고 서버를 거쳐서 통신하게 된다. 서버는 고정 ip를 가지는데 이는 ..

C++ - new, delete 연산자
Computer Science/C,C++ 2023. 3. 11. 18:20

new, delete 연산자 c의 malloc, free 시스템 콜 함수에 대응되는 c++에서 생긴 메모리 할당/해제 연산자이다. 사용법 및 특징 // 변수 동적할당 int* a; a = new int(123); // int 크기만큼 메모리를 할당하고 123이라는 값으로 초기화 delete a; // a 메모리 할당 해제 // 배열 동적할당 int* b; b = new int[5]; // 길이 5인 int형 배열 동적 할당 delete[] b; // 배열 b 메로리 할당 해제 // 객체의 동적할당 class A { public: A(std::string name); }; A *a = new A("hello"); // A 클래스가 사용하는 생성자를 사용하여 동적할당 delete a; new 연산자로 객체를..

C++ - 참조자(reference)
Computer Science/C,C++ 2023. 3. 11. 17:42

참조자는 c++에서 새롭게 추가된 기능이다. 변수의 별명(alias)을 정의하게 된다 별명을 정의한다는 것은 하나의 변수에 두개의 이름이 생기게 되어 별명으로 변수를 사용할 수 있게 된다는 것으로 볼 수 있다. 참조자 사용 방법 및 특징 int a = 10; int b = 11; int& c = a; int& d; c = a; // compile error c = b; // a : 10위와 같은 방법으로 참조자를 선언 할 수 있다. 1) 참조자는 선언과 동시에 초기화 되어야 한다. 예외의 경우 함수의 매개변수로 참조자를 받을때 : 함수가 호출될 때 실제 인수로 초기화 된다. 클래스의 멤버로 사용할 때 : 생성자에서 반드시 초기화 해야함 변수를 extern 선언할 때 : 레퍼런스의 초기식이 이미 외부에 선..