목록전체 글 (212)
개발자 끄적끄적
- 균형 이진검색 트리는 말단 노드가 모두 같은 레벨에 존재하는 형태 - 이진 트리에 대한 연산이 가장 효율적으로 이루어진다 - 불균형이 가장 심화된 상태(사향트리(skewed tree)의 경우 - 사향트리의 경우는 데이터값이 크기 순서대로 오름차순 또는 내림차순으로 입력될 때 나타난다 - 검색 트리가 불균형 상태 : 검색 성능의 저하 - 이러한 문제점을 해결한 구조로서 AVL 트리가 있다 이 이진 검색트리는 모든 노드에서 왼쪽과 오른쪽 부트리의 깊이의 차이가 1이하인 상태를 유지하도록 데이터의 삽입/삭제 시에 균형을 이루도록 노드를 재배치하는 구조를 가지고있다 - AVL트리는 이진 검색트리로서 트리의 균형을 유지한다 - 균형트리의 조건 - 트리의 균형을 유지하기 용이 - 트리의 깊이가 O(log2n)을..
- 기본키 무결성 제약 - 참조 무결성 제약 - NOT NULL - UNIQUE - CHECK - DEFAULT - 오라클의 권한 종류 - 시스템 권한(System privileges) - 사용자의 생성, 테이블이나 테이블 스페이스의 생성 등과 같이 주로 시스템의 자원을 관리할 수 있는 권한 - 데이터베이스 관리자 계정(sys, system)은 모든 시스템 권한을 가진다 - 객체 권한(object privileges) - 해당 객체에 대해 select, insert, delete, update 등과 같은 DML을 실행 할 수 있는 권한 - 객체 - 테이블이나 뷰 또는 사용자 정의 함수 등 1. 사용자 - create user : 사용자 계정을 생성할 수 있는 권한 - drop user : 사용자 계정을 ..
- 사용자가 특정 객체에 대해 특정 연산을 실행할 수 있는 권리 - 특정 객체 - 테이블 부, 필드 등 데이터베이스의 구성 요소 - 권한 제어가 가능한 연산의 종류 - 데이터의 접근권한 연산(DML) - SQL의 select, insert, delete, update 등 - 스키마 관련 연산(DDL) - 스키마를 수정하는 연산 - create table, alter table, drop table, create index 등 - 데이터베이스 관리자(DBA) - DBMS내의 모든 객체에 대해 모든 권한 - 객체에 대한 연산, 객체의 제거와 변경을 포함 - 다른 사용자에게 해당 객체에 대한 권한을 부여하거나 회수 - 객체 소유자(owner) - 특정 사용자가 객체를 생성한 사용자 - 생성한 객체에 대해 모든..
- 콘텐츠의 증가 - 콘텐츠의 증가로 인하여 사용자가 원하는 콘텐츠를 선택하기가 어려워짐 - 사용자의 패턴이나 구매 내역을 분석해서 사용자 취향에 맞는 콘텐츠를 필터링하여 자동으로 제공하는 것이 요구된다 - 적용분야 - 고품질의 추천 필요 - 인터넷 쇼핑몰에서의 상품 추천(상품, 도서, 영화) - 웹 환경에서의 웹 사이트, 웹 페이지 추천, SNS상의 추천 - 구글, YouTube, Facebook, LinkedIn, 포털사이트 - 각 사람에 맞는 추천을 해주기 위해서는 아래와 같이 여러 가지 정보들을 고려해야 한다 - 개인화된 추천을 제공하기 위해 고려할 수 있는 정보들 - 사용자의 인구통계학적 속성 정보(Demographic features) : 나이, 성별 주소 등 - 콘텐츠의 속성 정보(Conte..
- 현대 대칭키 블록 암호는 - n비트 평문 블록을 암호화 하거나 - n비트 암호문 블록을 복호화한다 - 암호화 혹은 복호화 알고리즘은 k비트 키를 사용한다 ex) 만약 인코딩 과정에서 8비트 ASCII 코드가 사용되고 64비트 블록 암호를 이용하여 암호화하기를 원한다면, 100개의 문자로 구성된 메시지는 몇 비트가 덧붙이기 되어야 하는가? Solution) 100개의 문자를 8비트 ASCII 코드로 인코딩하면 800비트의 메시지가 된다 평문은 64로 나누어야만 한다 만약 |M|과 |Pad|를 각각 메시지 길이와 덧붙이기 길이라고 한다면 |M| + |Pad| = 0 mod 64 -> |Pad| = -800 mod 64 -> 32 mod 64 - 현대 블록 암호는 대치 암호 혹은 전치 암호로 동작하도록 설..
- 암호에서는 자주 네 개의 연산(덧셈, 뺄셈, 곱셈, 나눗셈)을 필요로한다 다시 말해서, 암호에는 체가 필요하다 - 그러나 컴퓨터에서 체에 정의된 연산을 수행할 때, 양의 정수들은 컴퓨터에 n-비트 워드들로 저장된다 - N은 보통 8, 16, 32, 63 등의 배수형태를 취한다 이것은 정수들의 범위가 0에서 (2^n)-1 까지인 것을 의미한다. 즉, 모듈러는 2^n - 따라서 체를 사용할 때는 두 가지 방법이 있다 - n-bit 워드들을 표현하는 다항식들은 두 개의 체 GF(2)와 GF(2^n)를 사용한다 - GF(2^n)의 다항식들의 집합들에 대해서, 차수 n의 다항식의 어떤 집합은 군의 모듈러로서 정의된다 - 이 경우 모듈러는 소수 다항식(prime polynomial)으로서 행동하는데 다항식은 집..
- 마스크를 이동하여 처리하는 것으로서, 구형 마스크(홀수 길이) 또는 주어진 영상에 걸쳐 다른 형태의 마스크를 사용한다 마스크 함수와 결합은 필터의 기능을 가진다 새로운 그레이 값으로 계산되는 함수는 마스크 내의 모든 그레이 값의 선형함수이기 때문에 선형필터라고 한다 선형필터는 이웃하는 화소들을 대상으로 마스크 내에서 대응하는 모든 값들을 각각 곱한 후에 이들을 모두 더하기하는 기능이다 1. 현 화소에 걸쳐진 마스크의 위치 2. 이웃 화소들에 대응하는 값(화소의 값)과 필터의 해당 값(가중치)을 각각 서로 곱한다 3. 곱의 항들을 모두 더한다 이 과정을 영상의 모든 화소에 대하여 반복처리한다 - 3x3 마스크는 널리 사용되는 하나의 필터이고, 이는 마스크 내의 총 9개의 값들을 평균처리 하는 것이다 이..
- 기기마다 다른 크기, 해상도 비율 - 크기, 해상도에 따라 이미지 크기를 다르게 사용 - 화면 크기, 비율에 따라 레이아웃을 다르게 구성 - 태블릿은 폰 보다 더 큰 화면 - 더 많은 위젯을 포함할 수 있다 - 화면 크기에 따라 위젯 크기도 자동으로 조정 - 프래그먼트(Fragment)활용 - 기기 방향 변화에 따른 디자인 - 가로 보기와 세로 보기에 따라 다르게 디자인 - 또는 방향을 고정하여 한가지만 디자인 - UI를 구성하는 요소는 위젯과 레이아웃으로 나눌 수 있다 - 위젯 - 정보를 출력, 입력 받기 위한 UI 구성 요소 - TextView, Button, EditText, Checkbox 등 - 레이아웃 - 사용자 인터페이스에 대한 시작적 형태를 계층적 구조로 정의 - 레이아웃(부모)과 포함..
- 문자열에 대해서는 일부분만 일치하는 경우를 찾아야 할 때 사용 - '=' 연산자 대신에 'like 연산자'를 사용 - '='는 정확히 일치하는 경우에만 사용 - 형식 where like - 에 지정된이 들어 있는 지를 판단 - 문자열 패턴 종류 - _ : 임의의 한 개 문자를 의미 - % : 임의의 여러 개 문자를 의미 - ‘%서울%’ : ‘서울’이란 단어가 포함된 문자열 - ‘%서울’ : ‘서울’이란 단어로 끝나는 문자열 - ‘서울%’ : ‘서울’이란 단어로 시작하는 문자열 - ‘_ _ _’ : 정확히 세 개의 문자로 구성된 문자열 - ‘_ _ _%’ : 최소한 세 개의 문자로 구성된 문자열 - ex) student 테이블에서 김씨 성을 가진 학생들을 찾는 질의 select * from studen..
- SQL은 자연어와 유사하고 '비절차적 언어'이므로 사용하기 용이하다 비절차적 언어 : what to do - 표현력이 떨어진다 절차적 언어 : how to do - SQL은 크게 DDL과 DML로 구성된다 - 데이터 정의 언어(DDL : Data Definition Language) - 데이터 저장 구조를 명시하는 언어 - '테이블 스키마(table schema)'의 정의, 수정, 삭제 - 자동 commit 즉, rollback 불가 -> drop table - 데이터 조작 언어(DML : Data Manipulation Language) - 사용자가 데이터를 접근하고 조작할 수 있게 하는 언어 - '레코드(인스턴스)'의 검색(research), 삽입(insert), 삭제(delete), 수정(upd..