-
기초적인 SQL 문법 (DML)
SQL 언어는 크게 세가지로 나눌 수 있다.Data-definition language (DDL) : Schema, Relation등에 대해 관리한다.Data-manipulation language (DML) : select, insert, delete from....Data-control lagnuage (DCL) : save point, rollback, commit.....그리고 그중에서 정말 죽어라 줄창 쓸 DML 분법에 대해서 좀 알아보도록 하자. Queries on Multiple Relationsselect namefrom friendswhere dept_name = 'medical' and salary > 70000;Select-From-Where은 단일 릴레이션에 대한 쿼리에서는 사실..
-
Sorting in Linear Time
Merge/Heap/Quick Sort같이 Comparsion을 이용한 Sorting의 경우 최저 하한선이 O(NLogN)가 된다. (Decision Tree를 통해 시각화 하면 -> n개 element에 대해서 Decision Tree의 Height 만큼인 LogN번 Comparision 해야 되기 때문.) 하지만 Counting/radix/bucket Sort의 경우 저러한 하한선을 깨고 (경우에 따라서) O(N) 안에 정렬을 마무리 할 수 있다! 이는 정수의 범위 제한/분포 같은 추가 정보를 이용한 것이다. Counting Sort Counting Sort는 n개의 요소들이 0 to k의 정수라고 가정할 때 작동한다. 그럼 한번씩 순회하면서 0 to k의 element가 각각 몇개인지 세고, 그 ..
-
QuickSort
Quick Sort는 Merge Sort와 비슷하게, 아래와 같이 분할 정복을 사용한다.Divide : 배열 A[p..r]을 A[p..q-1]과 A[q+1..r]로 나눈다.Conquer : 재귀를 이용해서 배열A[p..r]과 A[q+1..r]에 대해서 Quick Sort를 시행한다.Combine : 서브 배열들이 이미 정렬된 관계로 딱히 합칠 필요는 없다. 그리고 이는 아래와 같은 의사 코드로 표현해 낼 수 있다.// Let A -> matrix and p,r -> indexPartition(A, p, r) x = A[r] i = p-1 for j = p to r-1 if A[j] 대충 하나를 Pivot으로 잡아서 서브어레이를 만들어 내고, 정렬을 때린 다음 다시 서브 어레이를 돌린다고..
-
Relational Algebra
The relational algebra consists of a set of operations that take one or two relations as input and produce a new relation as their result."인풋으로 1 or 2개의 관계를 가지고 새 관계를 생성하는 것"을 관계 대수라고 한다.사실 DB를 직접적으로 조회/제어함에 있어서 Relational Algebra를 쓸 수 있는건 아니고, 단지 SQL 쿼리를 던지는 데 있어서 Relational Algebra가 폭넓게 사용되는 것 뿐이다. 쨋든 여러가지 Operation과 Relational Algebra에 대해 알아보자. Select Operationselect operation은 말 그대로 주어진 술..
-
Introduction to DB...
데이터베이스 시스템은 큰 용량의 정보를 안전하게 담는데 있어서 적합하게 설계되어 있고, 이러한 데이터베이스를 관리해 주는 프로그램을 Database-management System(DBMS)라고 한다. 대표적인 DB로는 Oracle, MySQL, Porstge, Mongo등이 있겠다. 참고로 Supabase나 Firebase는 BaaS의 축에 들어감으로 DB라 하기에는 조금 거시기한 감이 있다. 쨋든 데이터베이스 시스템은 고가치/고용량/다수에 의해 접근 가능한 정보들을 저장 및 관리하는데 사용된다. 대게는 (상대적으로 작은 데이터를 불러오고 업데이트 하는) 온라인 처리를 하거나, 데이터 분석에 있어서 사용된다. 여기서 문득 드는 생각. 그냥 데이터를 JSON이나 CSV같은 파일에 때려박으면 안되는 것인..
-
[Linux] Permission and Ownership
리눅스 시스템의 모든 파일과 디렉터리에는, Permission과 Ownership이 부여된다. 이때 파일 속성은 ls -l을 사용하여 확인 할 수 있다.- rw-rw-r-- 1 rainyk users 22665 Feb/6/2026 coludflare~~의 경우, 처음 글자는 파일 유형 -> rwxrwxrwx (read/write/execution) 권한 여부 -> 물리적 파일 -> 소유자명 -> 그룹명 -> 크기(바이트) -> 마지막 변경 시간 -> 파일 명 과 같이 해석할 수 있다. 이때 퍼일의 허가권이나 소유권을 설정하려면, chmod/chown/chgrp/umask등을 사용할 수 있겠다. 세부적으로 들어가자면.... 1) 소유권과 관련 명령어소유권은 임의의 파일 또는 디렉터리에 대해 사용자와 그룹..
-
전기산업기사 취득 후기
필자는 26년 1회차 필기시험에 응시했고, 26년 2회차 실기시험에 응시했다.솔직히 필기는 그러려니 하는데, 실기 공부할때는 힘도 들고 왜 해야하는지도 의문이 들어서(단순히 태양광 사업으로 인생을 날로 먹겠다는 망상에서 스타트한 시험이었다.) 대충 봤는데.... 물시험으로 나와서 붙었다.정작 다음에 뭘 해야 할지 모르겠다.국가자격증 시험이 늘 그렇지만 특정 점수를 넘기는 것 자체는 다회 시도하거나 공략만 하면 크게 문제될 소지는 없어 보인다.
-
Heapsort
일단 대충 요약하자면 Heapsort는 O(nlogn)의 시간복잡도를 자랑한다. 근데 그전에 Heap이 뭔지는 설명해야 할거 아닌가? Heap데이터 구조인 Heap은 거의 CBT로 볼수있는 array object라고 할 수 있겠다. 위 사진에서 볼 수 있듯 어떤 노드의 요소는 배열의 어떤 요소에 대응될 수 있을 것이다. 대충 배열 이름을 A라고 해보면, 트리의 루트는 A[1]이 될 것이고 이런식으로 치면 아래와 같이 PARENT/LEFT/RIGHT NODE를 구할 수 있을 것이다. Parent : [ i/2 ]Left : 2iRight : 2i + 1when i is 0>=. 그리고 Binary한 Heap에는 두가지 종류가 있는데, 하나는 max-heap이고 다른 하나는 min-heap이 되..