목록전체 글 (212)
개발자 끄적끄적
- Common algebraic structures 1. Groups 2. Rings 3. Fields - 군(Group, G)은 네 개의 성질(혹은 공리)을 만족하는 이항연산이 정의된 원소들의 집합이다 - 가환군(Commutative group)혹은 아벨군(Abelian group)은 군에 대한 네 개의 성질에 교환법칙을 추가로 만족하는 집합니다 - 닫힘(Closure) - 결합법칙(Associativity) - 교환법칙(Commutativity) - 항등원의 존재(Existence of identitiy) - 역원의 존재(Existence of inverse) - 하나의 군에는 한 개의 연산만이 정의되지만, 그 연산에 대한 성질들은 그 연산과 역함수 관계에 있는 연산의 사용을 허용한다 - ex) 정..
- 전치암호는 한 기호를 다른 기호로 대체시키지 않고 대신에 그 기호의 위치를 바꾼다 - 즉, 전치암호는 기호를 재정렬시킨다 - 과거에 사용된 간단한 전치암호는 키가 없다 ex)rail fence암호 - 키가 없는 암호는 한쪽 방향으로(예를 들어, 행 순서로) 평문을 기록하고 역 방향으로(예를 들어, 열 순서로)그것을 읽음으로써 문자를 치환한다 - 전체 암호문을 생성하기 위하여 전체 평문에 치환이 적용된다 - 다른 방법은 블록(block)이라고 하는 사전에 정의된 크기로 평문을 나눈 뒤, 각각의 블록에 독립적으로 키를 사용하여 문자를 치환하는 것이다 1. 행렬의 사용(Using Matrices) - 전치암호의 암호화/복호화 과정을 살표보기 위하여 행렬을 이용 - ex) Representation of t..
- 이진 트리는 노드에 저장된 데이터의 크기와 무관히 데이터가 노드에 위치되었다 - 그러나 이진트리의 응용에서는 이진트리를 사용하여 데이터를 트리 내에 저장하고 검색, 삭제하는 연산이 많이 사용 - 이진 검색 트리 - 데이터의 크기에 따라 트리 내부에 저장되는 위치가 결정되고 검색이나 삭제 시에도 데이터의 크기에 따라서 검색의 경로가 결정되는 구조 - 이진 검색트리에서 데이터를 크기에 따라 저장될 위치를 결정하기 위한 조건이 먼저 지정되어야 한다 - 조건 1. 루트 노드의 데이터값은 왼쪽 부트리의 모든 노드보다 크거나 같다 2. 로트 노드의 데이터값은 오른쪽 부트리의 모든 노드의 데이터 값보다 작다 3. 모든 부트리에서 위의 두 조건을 만족한다 struct list{ strunct list*left; i..
- 화소(pixel)의 그레이 값의 변환을 의미한다 1. 변환 - Time Domain 또는 주파수 도메인 칼라 도메인 변경 등 2. 주위 화소처리 : 영역처리 - 주어진 화소의 그레이레벨을 변환하기 위해 주어진 화소를 둘러싸고 있는 주위 화소를 이용하여 해당 화소의 그레이레벨 값을 처리하는 방법 3. 점처리 - 한 화소의 그레이레벨 값이 주위의 어떤 것도 이용하지 않고 변환하는 방법 4. 연산처리 - y = f(x) //함수 또는 알고리즘을 적용시킨다 함수의 값은 0~255의 범위에 있는 정수값으로 주어지는 함수 y = x +- C(C는 상수) y - Cx 또는 y=x/C - 각 경우 대하여 그 결과가 주어진 범위 0~255에서 정수 값이 되도록 조정할 필요가 있다 그리고 결과가 아래 식와 같이 범위를..
- 함수형 프로그래밍이란 - 자료 처리를 수학적 함수의 계산으로 다루고 - 상대 변경(Changing state)과 가변 데이터(Mutable data)를 쓰지 않는 프로그래밍 패러다임 - 명령형 프로그래밍(Imperative programming)에서는 상태를 바꾸는 것을 강조하는 것과 달리 함수형 프로그래밍은 함수의 응용을 강조 - 1930년대에 계산가능성, 결정문제, 함수정의, 함수응용과 재귀를 연구하기 위해 개발된 형식체계인 람다 대수(Lambda-calculus)에 근간을 두고 있다 - 수학적 함수와 명령형 프로그래밍에서 사용되는 함수 - 명령형 프로그래밍의 함수 - 프로그램의 상태 값을 바꿀 수 있는 부수 효과가 생길 수 있다 - 참조 투명성이 없고, 같은 코드라도 실행되는 프로그램의 상태에 ..
어떤 클래스가 더 중요할 때 많은 경우에 하나의 클래스 멤버들을 찾는 게 더 중요할 수 있다(클래스의 중요성이 불균등한 경우 성능평가) - 세금 사기 - 신용 부도 - 판촉 행사물에 대한 응답 - 전자 네트워크 침입 감지 - 비행지연 예측 이러한 경우에, 전체 정확도가 낮아지더라도 좀 더 관심을 갖는 중요한 클래스를 더 잘 찾도록 해주는 평가 척도가 필요하고, 그러한 척도들의 균형을 맞추는 기준값 설정이 중요 - 만약 “C1”이 중요한 클래스라면 (C1, C2) - 민감도(Sensitivity )= “C1” 클래스가 정확하게 분류될 확률, 즉 중요 집단의 소속 레코드를 정확하게 판별하는 능력=𝑛_1,1∕〖(𝑛_1,1+𝑛_1,2)〗 - 특이도(Specificity )= “C2” 클래스가 정확하게 분류될 확..
- 나이브 규칙(Naive Rule) - 예측 변수의 정보를 무시하고 모든 레코드를 빈도가 자주 발생하는 우세한(Prevalent)클래스의 일원으로 분류 혹은 평균값으로 예측 - 때때로 벤치마크로 사용된다 - 분류기의 성능이 나이브 규칙을 적용한 결과보다 우수하기를 희망 - ex : (수치형) 예측변수는 무시하고 결과변수의 평균값을 사용, R-square - 예외 - 가치가 높지만 희귀한 결과를 내는 것을 찾는 것이 목표일 때, 나이브 규칙보다 더 나쁘게 함으로써 성능이 더 좋을 수 있다 - 분류기는 학습 데이터로부터 구축 - 학습과 검증과 성능상 큰 차이는 과적합을 암시 - 정확도(Accurancy) = 1-err - 클래스가 많다면, 오분류율은 다음과 같다 - (잘못 분류된 레코드의 총합)/(전체 레..
- 공격자 Eve는 항상 암호/복호 알고리즘을 알고 있다고 가정한다 - 암호의 안전성은 키의 안전성에만 바탕을 둔다 - 바꾸어 말하면, 키를 알아내는 것이 매우 어려워서 암호/복호 알고리즘을 비공개로 할 필요가 없어야 한다 - 현대 암호에서는 각각의 알고리즘의 매우 큰 키 공간(Key domain)을 가져서, 공격자가 키를 찾기 어렵게 한다 - 암호(Cryptanaly)가 비밀 코드를 생성하는 과학이자 예술인 것처럼, 암호 분석(Cryptanalysis)은 그런 코드를 깨는 과학이자 예술이다 - 암호 기술을 공부하는 것도 필요하지만, 암호 분석 기술을 연구하는 것도 필요하다 - 암호 분석 기술은 다른 사람의 코드를 깨는 데 사용되는 것이 아니라, 우리가 사용하는 암호 시스템이 얼마나 취약한지 측정하는데..
- 단순한 클래스 정의 - class 클래스_이름(생성자 인자 리스트) - 생성자 인자들 중 val/var이 붙은 것은 클래스의 속성이 된다 - 자바와 다르게 - 코틀린은 기본적으로 public class - 객체를 생성할 때 new 키워드를 쓰지 않는다 - 속성 접근 메소드를 자동으로 만들어주며, 커스텀 접근 메소드를 만들 수도 있다 - 자바의 인터페이스와 비슷하다 - 구현이 있는 메소드 정의 가능 - 자바처럼 default를 붙이진 않는다 - 인터페이스 구현 클래스의 메소드 구현에서 override를 반드시 써야한다 - 클래스르 상속받을 때에도 메소드 오버라이드할 때 override를 쓴다 - interface, abstract class는 기본적으로 상속(구현), 메소드 오버라이드 가능 - clas..
- 네트워크 환경 지원 - 다양한 운영체제 지원 - 대용량 데이터 처리 지원 - 여러 사용자의 동시 접속 지원 - 신뢰성 높은 보안 기능 제공 - 오류 및 장애에 대한 대비책 지원 - 논리적 구성요소 - 데이터 블록(data block) - 익스텐트(extent) - 세그먼트(segment) - 테이블스페이스(tablespace) - 물리적 구성요소 - 데이터파일 - 컨트롤 파일 - redo 로그 파일 - 매개변수 파일 - alert/trace 로그 파일 - 백업 파일 1. 테이블보기 - 현재 사용자 계정에서 사용하는 테이블 정보 - 형식 : select* from tab; //tab은 table이름 2. 직전에 실행했던 며령문 보기 및 실행 - list, run - list : 바로 직전에 사용한 명령..