Reco Everything you wanna value. 자세히보기

[IT|Programming]/Algorithm|Database 15

한글 초성검색 in Javascript

# 한글 초성검색 in Javascript한글의 위대함을 한껏 활용하기 위해 초성검색을 구현해 봅시다.문서 오른쪽 위의 Fuzzy search 버튼을 누르시면, 초성검색 (엄밀히는 fuzzy search 이지만) 구현이 어떻게 되어 있는지 아실 수 있습니다.## TOC## 한글 Encoding in Javascript자바스크립트의 문자열은 내부적으로 16비트 유니코드로 처리 .유니코드에서 한글은 코드값 OxAC00부터 시작하며, 초성 19 / 중성 21 / 종성 28 개의 조합 순으로 코드가 배열. 유니코드에 대한 공식 설명은 에서...초성, 중성, 종성의 자모 순서는 에서... (Hangul Syllables 부분에 한글 음절에 대한 유니코드표)Hangul Array초성 "ㄱ", "ㄲ", "ㄴ",..

MySQL SQLException in Ubuntu, Linux

# MySQL SQLException in Ubuntu, Linux우분투, 리눅스에서 MySQL 을 써서 서버를 돌릴일이 생겼는데, 문제가 생긴걸 공유하려고 글 작성.윈도우즈나 맥에서는 MySQL 의 Table name (테이블 이름) 이 대소문자를 구분 안했는데, 우분투/리눅스에서는 대소문자를 기본적으로 구분한다고 함.그래서 초기에 설치할때부터 대소문자를 무시하도록 설정되도록 설치해야 함.이거 때문에 MySQL DB Server 에 접속은 됐는데, 특정 Table 을 찾을 수 없다는 등의 SQLException 이 계속 났음.## PH2025-04-04 : First posting.## TOC## MySQL의 Global Variables 중에는 lower_case_table_names 라는 속성이 있..

Learning SQL (Structured Query Language) | MySQL (SQL | MySQL 을 배워보자.) :: MySQL, JDBC (Java DataBase Connector)

# Learning SQL (Structured Query Language) | MySQL (SQL | MySQL 을 배워보자.) :: MySQL, JDBC (Java DataBase Connector)Database library라고 보면 될듯. 공부하면서 정리해놨던 것 포스팅. 정말 최적화하려면 상용 SQL보다 직접 database를 구축해서 쓰는게 (search에 hash를 쓸 것인지, tree를 쓸 것인지 등도 결정하면서) 프로그램이 돌아갈 때 더 적은 resource와 더 적은 시간이 걸릴거 같지만, 오래 걸리고 노력을 많이 필요로하니 그냥 보급된 SQL을 잘 골라서 쓰는게 맘 편할듯도. Select, Join 같은거 구현하려면 짱나긴 할듯.정리하기 귀찮다;;;; 대충만 해놓고 다음에 다시.....

prisma with PostgreSQL - cursor based pagination

# prisma with PostgreSQL - cursor based pagination페이지값을 넘겨주어 글들을 가져오는 offset based pagination 과는 달리 넘겨준 마지막 아이템을 이용해서 pagination을 하는 방식. Offset based 에 비해 장점을 많이 가지고 있어서 사용법을 정리할 겸 포스팅.## PH2024-09-25 : First posting.## Cursor based pagination 의 장단점장점1. 데이터 양이 커져도 영향을 적게 받는다. (@@index 필수적)2. 데이터가 중간에 만들어지거나 사라져도 영향을 적게 받는다. (Cursor 에 해당하는 entity 가 사라지면 안됨.)단점1. 키가 정렬이되 있는 숫자여야 한다. (@@index 필수적)2..

DATABASE setup of Panda Market by kipid

# DATABASE setup of Panda Market by kipid판다마켓을 위한 DATABASE 를 구축해 봅시다.## PH2024-09-24 : First posting.## TOC## 기본: npx prisma init```[.scrollable]npx prisma init --datasource-provider postgresql```/명령을 실행해서 다음과 같은 파일을 얻자.```[.scrollable]generator client { provider = "prisma-client-js"}datasource db { provider = "postgresql" url = env("DATABASE_URL")}```/.env 파일 설정을 다음과 같이 하자.```[.scrollab..

prisma with PostgreSQL 를 배워봅시다.

# prisma with PostgreSQL 를 배워봅시다.## PH2024-09-15## TOC## Prisma 초기화```[.scrollable]npx prisma init --datasource-provider postgresql```/.env 파일 설정하기. 아이디는 자동으로 postgres 로 정해지고 아래에 [password] 는 자신이 설정한 비밀번호를 넣어주고 (비번에 특수문자가 들어간 경우 encodeURIComponent kipid's blog :: Encode/Unescape and Decode/Escape URI Component 함수로 한번 처리해 준 뒤 넣어줘야 함. #, ? 같은게 URL 에선 특수하게 쓰이니...), [database_name] 에는 사용할 DB name 을 ..

Java Serializable Object to Byte Array (byte[] or SQL BLOB)

# Java Serializable Object to Byte Array (byte[] or SQL BLOB)MySQL 에 Java Serializable Object 를 byte[] data 로 저장해 뒀다가 필요할때마다 꺼내쓰고 싶어서 알아보는 중 .그냥 string 형태로 변환한 뒤에 저장했다가 string 으로 읽어들이고 분석해서 처리하도록 짤수도 있긴한데... 속도면이나 프로그램 가독성 면에서 안좋을듯?그리고 그림 파일이나 비디오 파일도 어떻게 BLOB 형태로 저장할 수 있는지 좀 공부해봐야겠음.## TOC## Using StreamsException 처리나 close() 처리해야해서 좀 짜증나긴 하는듯.### To byte[]```[.scrollable.lang-java]ByteArrayOut..

week8 위클리 페이퍼 (데이터베이스 정규화에 대해 설명, 관계형 데이터베이스를 사용하는 이유를 설명)

# week8 위클리 페이퍼 (데이터베이스 정규화에 대해 설명, 관계형 데이터베이스를 사용하는 이유를 설명)## PH2024-09-03 : First posting.## TOC## 데이터베이스 정규화에 대해 설명데이터베이스 정규화 (Normalization) 는 관계형 데이터베이스에서 데이터의 중복을 최소화하고 데이터의 일관성 (Consistency) 과 무결성 (Integrity) 을 유지하기 위해 데이터를 구조화하는 과정입니다. 정규화는 여러 단계로 나뉘며, 각 단계는 특정한 규칙을 따릅니다.### 제1정규형 (1 Normal Form)모든 속성이 원자값을 가져야 합니다. 즉, 각 열은 하나의 값을 가져야 합니다.테이블의 컬럼이 원자값 (Atomic Value, 하나의 값) 을 갖도록 테이블을 분해하..

Regular Expression (정규 표현식), and match/replace method in JavaScript, JAVA, and Python

# Regular Expression (정규 표현식), and match/replace method in JavaScript, JAVA, and Python정규 표현식 테스트. replace, match, split 등에 쓰임. 꽤나 유용. 새로운 프로그래밍 언어(?)를 만들때에도 필수적으로 쓰일듯한. JavaScript 말고도 대부분의 언어 (Java, C, C++, LabVIEW, PHP, Perl 등등등) 에서 이런게 다들 비슷하게 구현되어 있음.그런데 비슷하긴한데, 다들 조금씩은 달라서 헷갈리는게 많긴 한듯. 특히 JAVA, Python 이... JavaScript 가 제일 깔끔한듯한 느낌적인 느낌.## PH2024-02-24 : Python 추가.2024-01-07 : Small edit. (?..

RSA 암호가 Big brother (국가기관 및 최상위 계급층들) 들에게 쉽게 깨지는 이유. (보안이 안되는 이유.) - And 그 보완책으로서의 개인적인 solution 제안 (Hash with salt multiple times and reduce the number of hashing).

# RSA 암호가 Big brother (국가기관 및 최상위 계급층들) 들에게 쉽게 깨지는 이유. (보안이 안되는 이유.) - And 그 보완책으로서의 개인적인 solution 제안 (Hash with salt multiple times and reduce the number of hashing).큰 수의 소인수 분해가 어렵다는 것을 이용한 것이 RSA 암호인데, 애초에 소수를 찾는 것 부터 시작해서 두 소수의 곱을 알아내고 소수에 대한 정보는 지운다는게 핵심인데... 잘 생각해보면 소수에 대한 정보를 절대 안지울거라는걸 알 수 있음.그냥 Hash Rainbow Table 로 두 소수의 곱셈 = A, B 의 곱 이라고 만들어 놓으면 어떠한 두 큰 소수의 곱도 어떻게 소인수 분해 해야 하는지 order(1..

이진 탐색 트리 (Binary Search Tree, BST) 의 중위 순회 (Inorder), 전위 순회 (Preorder), 후위 순회 (Postorder) 에 대해 알아보자.

# 이진 탐색 트리 (Binary Search Tree, BST) 의 중위 순회 (Inorder), 전위 순회 (Preorder), 후위 순회 (Postorder) 에 대해 알아보자. 먼저, 이진 탐색 트리(Binary Search Tree, BST)는 다음과 같은 특성을 가지는 이진 트리입니다: 각 노드는 최대 두 개의 자식 노드를 가질 수 있습니다. 왼쪽 서브트리의 모든 노드는 해당 노드보다 작거나 같은 값을 가지며, 오른쪽 서브트리의 모든 노드는 해당 노드보다 큰 값을 가집니다. ```[.linenums.lang-py] class TreeNode: def __init__(self, val=0, left=None, right=None): self.val = val self.left = left sel..

Data ENCRYPT (정보 암호화)

# Data ENCRYPT (정보 암호화) 여러군데에 쓰이는 데이터 암호화. 암호를 암호화해서 저장할때도 쓰이고. 개인정보 보호할때도 쓰이고. 통신을 암호화하고 싶을때에도 쓰이고. 단방향 암호화 (원래의 정보를 확인할 필요가 없는 경우) 는 그냥 hash function 쓰면 되는듯도. 보통 단방향 암호화는 input 이 예전 input 과 일치하는지를 확인하는 용도로 자주 쓰이는듯. (즉 password 확인 같은거.) ## PH 2014-12-21: 예전에 썼던 글이긴 한데, 조금 더 정리해서 posting. ## TOC ## In MySQL MySQL 에서의 암호화 . 대충만 정리. ```[.scrollable.lang-sql] DROP TABLE IF EXISTS `TestUsers`; CREAT..

반응형