목록분류 전체보기 (212)
개발자 끄적끄적
- 이진트리를 순회하는 방법은 이진트리를 크게 루트 노드, 왼쪽 부트리, 오른쪽 부트리의 세 부분으로 나누고 이 세 부분을 방문하는 순서는 3의 조합의 개수인 모두 6가지가 된다 1. 루트노드 -> 왼쪽 부트리 -> 오른쪽 부트리(D->L->R) //전순위 2. 루트노드 -> 오른쪽 부트리 -> 왼쪽 부트리(D->R->L) //전순위 3. 왼쪽 부트리 -> 루트노드 -> 오른쪽 부트리(L->D->R) //중순위 4. 오른쪽 부트리 -> 루트노드 -> 왼쪽 부트리(R->D->L) //중순위 5. 왼쪽 부트리 -> 오른쪽 부트리 -> 루트노드(L->R->D) //후순위 6. 오른쪽 부트리 -> 왼쪽 부트리 -> 루트노드(R->L->D) //후순위 이 중에서 2,4,6번은 1,3,5번과 중복되므로 제외 - 1..
- 연결리스트에 의한 방법 - 배열에 의한 트리의 표현은 상당히 제한적인 기능을 갖는다 - 특히 트리 구조는 데이터 양의 가변적인 경우에 주로 많이 사용하므로 데이터의 양을 미리 예측하기 힘들다 - 트리가 포화이진 또는 완전 이진의 구조가 아니라 중간에 노드가 비어있는 경우가 발생할 때 메모리의 낭비가 일어난다 - 따라사 실제의 응용분야에서는 포인터를 사용한 연결리스트 방법이 주로 사용되며, 연결리스트 역시 메모리 기반이 아닌 파일기반으로 구현된다 - 이진트리는 하나의 데이터 필드에 두 개의 자식노드를 연결하는 연결필드가 필요하다 : 이중 연결리스트 - 구조체는 사용자가 혼합하기에 따라서 무한대에 가까운 조합(정수형, 실수형, 문자형 등)을 갖는다 즉, 사용자가 구조체를 직접 만들어야한다 ex) stru..
- 가장 기초적인 Matlab 함수 : image >> c=imread('cameraman.tif'); >> image(c) -> color가 적절치 않다 - imshow() 함수로는 Graylevel을 조절할 수 없다 하지만 >>colormap(gray(256)); >>image(c);를 하면 제대로 보인다 - truesize - 디스플레이에 사용할 수직과 수평의 스크린 화소수를 나타낸다 실제 영상의 size로 display된다 - axif off - 축의 라벨링을 off한다 - colormap(gray(level 수)) - colormap을 그레이 음영으로 조정한다 - >>image(c), truesize, axif off, colormap(gray(247)) -> 적절한 그레이 영상 생성 1) >>..
- LPAD(값, 총 문자길이 , 채움문자) : 왼쪽 기준으로 지정된 문자, 공백을 채운다는 의미 ex) LPAD(123, 5, '0') -> 결과 : 00123 LPAD(123, 8, '0') -> 결과 : 00000123 - 총 문자길이 - Length(값) = 채움문자수 - RPAD(값, 총 문자길이, 채움문자) : 오른쪽을 기준으로지정된 문자, 공백을 치운다 - LEVEL : 계층적 질의문에서 검색된 결과에 대해 계층별로 레벨 번호를 표시한다 루트 노드는 1이며 하위 레벨로 갈수록 1씩 증가한다 즉, 오라클에서 실행되는 모든 쿼리 내에서 사용 가능한 가상 '열'로써 트리 내에서 어떤 단계(LEVEL)에 있는지를 나타내 는 정수값이다 계층적인 쿼리가 아니라면 모든 값이 0, 즉 같은 단계를 가진다 ..
- 테이블에 데이터가 이미 존재하면 업데이트하고, 존재하지 않으면 입력을 해야하는 경우가 종종 있는데 오라클에서 이런 작업을 한 번에 할 수 있는 쿼리이다 1. 동일한 테이블 구조에서 가지고 있는 B 테이블로부터 데이터를 옮기는 예 MERGE 변경될 테이블명 AS A USING 기준 테이블 명 AS B ON A.컬럼명 = B.컬럼명 WHEN MATCHED THEN 일치할 때 쿼리문 WHEN NOT MATCHED THEN 불일치할 때 쿼리문 1.1 추가 조건 지정을 할 때 MARGE 변경될 테이블명 AS A USING(SELECT 컬럼명 FROM 기준 테이블명) AS B ON(A.컬럼명 = B컬럼명 AND A.컬럼명 = B.컬럼명) WHEN MATCHED AND 조건 THEN INSERT(A.컬럼명) VA..
1. Index Unique Scan - 인덱스를 사용한 검색 방식 중 가장 빠른 방식 - 이 방식을 사용하기 위해서는 키본 키 또는 Unique Index가 생성되어 있어야 하며 인덱스를 구성하고 있는 모든 컬럼이 조건절에서 '='로 비교되어야 한다 - 조인되는 Inner Table 과의 조인 조건에도 Unique index 또는 기본 키 컬럼이 모두 조인에 참여했을 때만 Index Unique Scan을 할 수 있다 2. Index Range Scan - 인덱스를 사용해 인덱스가 생성된 컬럼에 대해 범위를 검색하는 방법 - Unique Index를 사용하지 않거나, 비교연산자를 사용한 대다수의 경우가 이 방식으로 처리되며 비교 연산자로는 =, between, like 등이 사용된다 3. Index S..
jquery + mybatis jquery > 1) selector(선택자), 2)ajax( $.post(), $.get, $load() ) mybatis > sql문장 -> xml 코드에 삽입, sql과 관련된 문장의 90%가 사라진다 www.jquery.com>download> Download the uncompressed, development jQuery 3.6.0 -(1) Download the compressed, production jQuery 3.6.0 -(2) *(1), (2)는 용량차이이며, '클릭'이 다운하는게X >버튼 우클릭>다른이름으로 링크 저장>Using jQuery with a CDN에서 https://code.jquery.com 클릭> jQuery 3.x의 minified>복..
- 크기가 mXm인 정방행렬 A의 행렬식은 det(A)로 표기되며 다음과 같이 귀납적으로 계산되는 스칼라 값 1. If m = 1, det(A) = a11 2. If m>1, det(A) = 시그마 i=l...m일 때 (-1)^(i+j) * aij * det(Aij) Where Aij is a matrix obtained from A by deleting the ith row and jth column - 행렬식은 정방행렬에서만 정의된다 - 소행렬(Minor matrix) Aij - 행렬 A에서 i행과 j열의 모든 원소를 제거한 행렬 - 행렬 A의 크기가 mXm이면, 소행렬 Aij의 크기는 (m-1) X (m-1)이 된다 - 곱셈에 대한 역행렬은 정방행렬에서만 정의된다 - 암호는 잉여 행렬, 즉 모든 행..
- 앞 절에서 논의된 나눗셈 관계식 (a = q*n+r)은 두 개의 입력값 (a, n)과 두 개의 출력값 (q, r)을 가진다 - 모듈러 연산에서는 하나의 결과 값, 즉 나머지 r에만 관심이 있고 몫 q는 신경쓰지 않는다 - 이진 연산자를 모듈러 연산자라고 하고, mod로 표기한다 - 두 번째 입력값(n)은 모듈러(Modulus)라고 하고, 결과값 r은나머지(Residue)라고 한다 - 모듈러 n을 이용하는 모듈러 연산의 결과는 항상 0과 n-1사이의 정수 값 즉, a mod n의 결과값은 항상 n보다 작은 음이 아닌 정수 값이 된다 - 모듈러 연산자는 하나의 집합을 생성하는데, 모듈러 연산에서 이 집합을 모듈러 최소 잉여 집합 또는 Zn이라고 한다 - 두 정수가 합동(Congruence)임을 보이기 위..
- 편리함을 추구하는 언어 - 간결함을 추구하는 언어 - 명령형 언어, 객체지향 언어에 함수형 언어 개념 - 실용성 - 이미 검증되고 많이 사용되는 언어 기능을 채택 - 간결성 - 타입 추론(타입을 명시하지 않아도 된다), getter/setter - 안정성(Null Safety) - Interoperability(자바와 100%호환) - 다양한 플랫폼 지원 - JVM 기반의 서버, 안드로이드, 코틀린 자바스크립트, 코틀린-native IOS, MacOS, AndroidNDK, Windows, Linux - 정적 타입 언어 - statically typed lang. (java, kotlin) - dynamically typed lang. (python) - 함수형 언어(Functional Lang) -..
- 물리적 혹은 추상적으로 존재하는 '현실세계를 단순화(추상화)'하고 '정형화된 형태(데이터가 애매모호하지 않은, 즉 누군가에게 질문을해도 동일한 답을 낼 수 있는)로 표현'하는 하나의 방식 또는 규범 - 실제 데이터가 갖는 특성을 살리면서, 목적에 맞게 '관심있는 정보만'을 '단순화'하여 표현하는 방식 - 데이터에 대한 '조작이 가능'해야한다 - 관계형 데이터 모델(Relational data model) - 테이블 형식을 이용하여 데이터들을 정의하고 설명한 모델 - 실세계의 데이터가 누구나 직관적으로 이해할 수 있는 형태로 기술할 수 있는 간단한 방식을 제공 - 테이블(Table)을 릴레이션(Relation)이라고 부른다. 즉, 독립적인 테이블이 여러 개가 있을 때 연관성이 있는 집합을 테이블로 구성..
- Matlab - 매드릭스와 매트릭스 연산을 강력하게 지원하는 데이터 해석용 소프트웨어 패키지 - 명령어 및 처리 방법 >> >> w=imread('wombats.tif'); - ';' : 데이터를 억제하는 기능 - '>>' : prompt - 명령어 및 처리방법(디스플레이) imshow('wombats.tif') -> wombats.tif는 파일명 >> figure, imshow(w), pixval on 1. On-line 상에서 3개의 명령이다 2. Matlab은 다른 명령들을 분리하기 위해 콤마(,)를 이용한다 3. Figure : 스크린에 그림을 만든다(여러개 영상을 띄워놓고 비교가 가능하다) 4. Imshow(g) : 영상으로서 매트릭스를 디스플레이한다 5. Pixval on : 그림에 해당 ..
- 1 : 인간의 인식을 위해 그림정보를 개선하거나 - 2 : 자동화 기계의 인식을 위해 보다 적절하게 표현하기 위해 영상의 성질을 변화시키는 것을 의미한다 - 인간의 인식을 위해 그림정보를 개선 1. 샤프닝 처리(Sharpening) - 보다 샤프(Sharp)하게 나타내기 위해 영상의 에지를 강조한다 에지의 샤프닝처리는 프린트를 하는데 필수적인 요소이다 영상을 프린트하는데 최적으로 하기 위해 보통 샤프닝 처리를 한다 2. 잡음 제거 - 영상에서 잡음을 제거한다 - 잡음은 영상에서 불규칙한 오차를 유발하게된다 - 잡음은 데이터전송에 매우 공통적인 문제가 야기되는데, 데이터가 모든 종류의 전자부품들을 통해 전송되고, - 이 과정에서 원하지 않는 결과를 주게 된다 잡음은 여러 가지 다른 형태를 가지고, 이들..
- 이진트리는 많은 응용프로그램에서 사용되며 트리의 대표적인 구조로서 트리의 기본을 이룬다 - 이진트리의 특성 - 모든 노드의 자식 노드의 개수가 2개 이하 - 엄격한 이진트리(Strictly binary tree) - 말단 노드를 제외한 모든 노드의 차수가 2인 트리 - Knuth binary tree - 노드의 차수가 0, 1, 2인 tree로 일반적인 binary tree - 포화 이진트리(Full binary tree) - 깊이가 k인 이진트리에서 노드의 수가 (2^k)-1(k>0)로서 모든 말단 노드는 k번째 레벨이 존재 - 완전 이진트리(Complete binary tree) - 깊이가 k인 이진 트리에서 k-1 레벨까지는 포화 이진트리(Full binary tree)이고, 각 노드들이 깊이 ..
- 만일 노드 A의 자식 노드가 B와 C인 경우 A(B, C)로 표현한다면 -> A(B(D(G, H), E(I, J)), C(F(K, L, M, N))) - 트리 내의 모든 Node를 한 번씩 정해진 순서로 방문하는 것을 말한다 - 트리의 순회에는 모두 5가지 방식이 있다 1. Level Order - 위에서 아래로, 왼쪽에서 오른쪽으로 2. Family Order - 부모노드에서 시작 자식노드를 왼쪽부터 모두 방문하고 가장 오른쪽 노드에 대해 동일한 과정을 반복 3. 전위순회(Preorder) - 부모노드가 우선 방문하고, 왼쪽 부 트리가 오른쪽 부 트리에 우선하는 방식 4. 중위순회(Inorder) - 왼쪽 부 트리를 모두 방문한 뒤 부모노드를 방문하고 오른쪽 부 트리를 방문하는 방식(Binary T..
- 파이썬은 들여쓰기가 매우 중요하다 - if문 다음에 '실행할 문장'은 if문 다음 줄에서 들여쓰기를 해서 작성 - 들여쓰기를 할 때는 Tab보다 Space Bar를 눌러 4칸정도 들여쓰기 권장 - 대화형 모드에서는 '실행할 문장' 모두 끝나고 Enter 2번 눌러야 if문이 끝나는 것으로 간주 ex) a = 99 if a >>hungry = True >>>if hungry : ... print("i'm hungry") ... i'm hungry >>>hungry = False >>>if hungry : print("i'm hungry") ... ... else : print("i'm not hungry") print("i'm sleepy") ... i'm not hungry i'm sleepy - i..
정의 - 의미 있는 패턴이나 법칙을 찾기 위해 다량의 데이터를 탐구하거나 분석하는 과정 - 대량의 데이터로부터 그 안에 숨어있는(implicit) 새롭고(previously unkown), 가치있고(non-trivial), 의사결정에 유용한(potentially useful)정보를 찾는 작업 목적 - Business - 소비자를 더 잘 이해함으로써 판매량과 이윤 그리고 회사의 가치와 경쟁력을 높이는 것 - 새로운 서비스 창출 데이터마이닝 - 데이터로부터 비즈니스에 관련 있는 중요한 정보/함의를 유도하는 과정 - 다량의 데이터를 분석하기 위한 일련의 강력한 알고리즘/모델들 배경 - 다량의 데이터를 생성(Internal, Mobile, IoT(Internet of Things 사물인터넷), POS, GPS ..
~bin>mysql -u root -p Enter password : (비밀번호입력)1111 mysql>show databases; or mysql>show schemas; *database와 schema는 같은 말 mysql>use mysql; : Reading table information for completion of table and column names mysql>show tables; mysql>desc 테이블명; mysql>insert into 테이블명 values(100, 'hong', null); (values값은 모두 작성해야하며 null이면 null을 써야한다 int는 ''를 붙이지 않고, varchar만 붙인다) mysql>select*from 테이블명; (select*from..
- 지정한 컬럼들 기준으로 일종의 목차를 생성하는 것이며 데이터 검색 속도 향상을 위해 사용되는 기술이다 1. 데이블 행의 갯수가 많은 경우 2. 인덱스를 적용한 컬럼이 where절에서 많이 사용되는 경우 3. 검색 결과가 원본 테이블 데이터에 비해 적을 경우 4. 해당 컬럼이 null을 포함하는 경우 1. 테이블의 행의 갯수가 적음 2. 검색결과가 원본테이블 데이터의 많은 비중 3. 원본 테이블의 insert, delete, update가 빈번할 때 1. 인덱스 생성 문법 1) 단일 인덱스 CREATE INDEX 인덱스 명 ON TABLE_NAME(컬럼1); 2) 복합 인덱스 CREATE INDEX 인덱스 명 ON TABLE_NAME(칼럼1, 칼럼2, 칼럼3); 2. 인덱스 조회 문법 SELECT* F..
1. 원자성(Atomicitiy) - 트랜잭션은 데이터베이스 연산의 전부 또는 일부(ALL OR NOTHING)실행 만이 있으며, 일부 실행으로 트랜잭션의 기능을 갖지 않느다 - 즉, 트랜잭션의 처리가 완전히 끝나지 않았을 경우는 전혀 이루어지지 않는 것과 같아야 한다 - Commit, Rollback 2. 일관성(Consistency) - 트랜잭션 실행 결과로 데이터베이스의 상태가 모순되지 않아야 한다 - 트랜잭션 실행 후에도 일관성이 유지되어야 한다 3. 고립성(Isolation) - 트랜잭션이 실행 중에 생성하는 연산의 중간 결과는 다른 트랜잭션이 접근할 수 없다 - 즉, 부분적인 실행 결과를 다른 트랜잭션이 볼 수 없다 4. 지속성(Durability) - 트랜잭션이 그 실행을 성공적으로 완료하면..