XSS란 cross site scripting의 약자로 웹페이지 내에서 사용자의 입력값에 대한 적절한 조치를 취하지 ...
저장소용량을 30GB로 늘리는 방법 1. 가상 크기 늘리기 2. 실제 크기 늘리기 2-1. Gparted설치 2-2. Gp...
docker는 가상화 container에 application 배포를 자동화 시켜주는 오픈 소스 엔진이다. 가상화 머신을 사...
1. 실행중인 컨테이너 내부로 들어가기 2. 컨테이너 로그 확인하기 * options --tail [숫자] : 밑에서 숫자...
RBAC(Role-Based Access Control)이란 사용자들이 가지는 역할을 기반으로 접근 결정을 내리는 제...
로드밸런싱이란? 컴퓨터 네트워크 기술의 일종으로 둘 혹은 셋 이상의 중앙처리장치 혹은 저장장치와 같은 ...
클러스터링이란? 클러스터링이란 여러 대의 컴퓨터를 서로 연결하여 하나의 컴퓨터처럼 사용하는 것을 말한...
Index란? MongoDB는 데이터를 검색할 때, 모든 데이터를 서치하는 형식으로 데이터를 찾아낸다. 이러한...
MongoDB는 database, collection, document로 이루어져 있다. 하나의 database안에는 여러개의 collecti...
HTTP method에는 GET, POST, PUT, PATCH, DELETE가 있습니다. 말 그대로 GET...
express-rate-limit이란 동일 ip에서 정해진 시간 동안 보낼수 있는 요청의 수를 제한할 수 있는 모듈이다....
1. 설치 2. mongodb 연결하기 MongoDB에 Test 데이터베이스와 연결 3. 스키마 정의 4. 모델 생성 5. D...
Mongoose는 Schema를 정의해 사용한다. - Schema의 특징 1. _id : Mongoose에서는 기본적으로 Schema...
https://www.npmjs.com/package/morgan express-generator로 express서버를 생성하게 되면 morgan이라는 미...
express-validator는 서버에 들어오는 요청에 대한 유효성을 쉽게 체크할 수 있도록 도와주는 미들웨어 입...
dotenv는 환경변수를 .env파일에 저장하고 process.env로 로드하는 모듈이다. 데이터베이스 서버주소, AP...
moment는 날짜 관련 모듈로 시간들의 연산이나 format을 바꾸거나 할 때 유용하다. 따라서 토큰을 생성할 ...
위와 같이 2개의 데이터베이스에 접근하고 있다고 했을 때 위와 같이 스키마가 구성되어 있다고 하자. 서로...
1. 생성한 모델 h5형식으로 저장하기 2. 모델 tflite형식으로 변환하기
1. 모델 저장하기 (h5형식) 2. tensorflowjs 설치 3. h5형식의 모델을 json형식으로 변환 ( 모델을 넣을 폴...
0. 모델 tflite 형식으로 변환 1. 안드로이드 스튜디오 실행 2. app/src/main/assets 폴더 생성 후 tflite...
1. 파이썬을 통해 만든 keras모델 저장하기(h5 형식으로 저장) 2. tensorflowjs 설치 3. h5형식의 모델을 j...
아나콘다에서 가상환경을 만들기 위해서 아래와 같이 입력했다. condaHTTPError: HTTP 000 CON...
1. csv 파일 읽어오기 2. 읽어온 데이터 확인하기 출처 : https://opentutorials.org/course/4570
imread(filename[, flags]) filename: 파일 경로 flags: 옵션 - IMREAD_COLOR : rgb 3가지 채널...
1. 구글 developer console로 이동해서 새로운 프로젝트 생성 2. OAuth동의화면 작성 3. 사용자 인증 정...
1. ec2 인스턴스 생성 및 .pem 파일 생성 2. 인스턴스에 보안그룹 SSH로 열어 접속 가능하게 하기 3. 연...
python-shell 설치 https://www.npmjs.com/package/python-shell index.js predict.py
에디터 종류리눅스에서 지원하는 편집기로는 vi, emacs, gedit, xedit 등이 있다.이들은 버퍼 기반 편집기 방식인데 이러한 형식의 장점은 사용자가 편집시 해당 내용의 기록 없이 중지할 수 있어 원본 파일을 보존할 수 있는 것이다. 그러나 다른 외부적인 원인으로 인해 편집기가 종료된 경우 변화된 내용을 모두 읽게 된다.- Pico유닉스 기반의 텍스트 에디터로 메모장과 유사하며 간단하다. 다른 편집기에 비해 사용하기 쉽고 편리하지만 기능이 부족하고 업데이트가 잘 되지 않는다.자유 소프트웨어가 아니므로 소스 수정이 불가능하다.- Emacs매크로 기능이 있는 텍스트 교정 및 편집기텍스트 처리를 위한 포괄적인 통합 환경을 제공실행.......
프로세스란?: CPU와 메모리를 할당받아 실행 중인 프로그램으로 각 프로세스마다 ID(PID)가 할당 되어 있다.프로세스의 유형- Foregroud process : 화면에 실행되는 것이 보이는 프로세스 ex) 계산기, 게임 등.- Backgroud process : 사용자에게 직접적으로 보이지 않고 뒤에서 돌아가고 있는 프로세스 ex) 시스템 프로그램, 데몬 등fork() 와 exec()- fork() : 기존 프로세스를 복제하여 새로운 프로세스를 만드는 방식으로 기존 프로세스는 기존 프로세스대로 새로운 프로세스는 새로운 프로세스대로 동작한다. 따라서 새로운 프로세스를 위해 메모리를 할당한다. 이 때, 기존 프로세스를 부모 프로세스, 복제하여 새롭게 만든 프로세스.......
공개키 인증서란?: 공개키를 안전하게 교환하기 위한 방법으로 사용되는 인증서공개키를 배분할 경우 고려해야 할 문제는 바로 내가 받은 공개키가 공격자의 공개키가 아닌 내가 원하는 사람의 공개키가 맞는지이다.기밀성은 공개키 이므로 고려할 필요가 없다.이러한 공개키가 그 사람의 공개키가 맞다는 것을 증명하기 위한 방법이 바로 공개키 인증서이다.이러한 공개키 인증서 내부에는 버전, 인증서 일련번호, 주체(subject)에 대한 정보, 주체의 공개키, 키생성 알고리즘, 매개변수, CA정보, CA서명 등이 들어있다.공개키 인증서는 서명을 이용한다.공개키 인증서 생성과 검증공개키 인증서 생성서명되지 않은 인증서( A의 ID정보, A.......
디지털 서명이란?: 메시지의 무결성, 부인방지, 송신자인증(소스 인증)을 위해 사용하는 방법.메시지의 출처와 내용에 대한 무결성이 필요한데, 메시지 전체를 암호화 하는 것은 상당히 비효율적이다.그로인해 메시지 전체를 암호화 하는 것이 아닌 인증자(authenticator)를 암호화한다.인증자란?: 문서의 기능을 대신하는 작은 비트블록으로 예를 들어 메시지를 hash하여 작게 만든 블록이 있다.이러한 인증자를 송신자의 개인키로 암호화했다면, 개인키를 통해 송신자인증(소스인증)이 가능하고 해시함수를 통해 메시지의 내용과 순서를 확인 할 수 있다.디지털 서명 생성과 검증디지털 서명 알고리즘에는 DSA, RSA디지털 서명 알고리즘, 타.......
Diffie-Hellman 키 교환: 두 사용자가 비밀키(대칭키)를 안전하게 교환하기 위한 목적으로 사용되며, 이산 대수 문제를 푸는 것이 어렵다는 것에 근거한다.키 교환을 왜 하느냐?단순한 통신을 통해 키를 주고 받을 경우 공격자가 이를 가로채어 볼 수 있으므로 Diffie-Hellman과 같은 방식이나 암호화를 통해 키를 교환하는 것.Diffie-Hellman 알고리즘양쪽 A와 B는 공통의 정보 소수 q와 q의 원시근 α를 알고 있다. (q의 원시근(primitive root) α라는 말은 α를 제곱해서 q와 서로소인 모든 a와 congruent하게 만들 수 있다 라는 말. 즉 여기서 q는 소수이므로 α를 제곱해서 모든 정수와 congruent하게 만들 수 있음을 의미)이 q와 α를.......
RSA란?:1978년 Rivest, Shamir, Adleman이 만들어낸 공개키 암호 알고리즘RSA의 키 생성 방식1. 소수 p,q 선택2. n = p * q 계산3. ф(n) = (p-1)(q-1) 계산4. ф(n)과 서로소이면서 1보다 크고 ф(n)보다 작은 정수 e 선택5. de ≡ 1 mod ф(n) 을 만족하는 ф(n)보다 작은 d를 선택6. 공개키 : {e,n} , 개인키 : {d,n}암호화 방식(평문 : M, 암호문 : C)암호화 : Me mod n = C복호화 : Cd mod n = MRSA공격 방법1. 수학적 공격 - 인수분해 → 키 길이를 길게 선택하여 예방2. 타이밍 공격 - 알고리즘 실행시간을 관측하여 공격3. 선택 암호문 공격 - 평문에 패딩 비트 추가, OAEP 활용.* 선택 암호문 공격이란? 선택된 암.......
공개키 알고리즘: 공개키 알고리즘은 공개키와 개인키 두개의 키쌍을 이용하여 암호화, 키분배, 인증 하는 방식이다.공개키는 공개되어 있는 키, 개인키는 개인만 알고 있는 키라고 생각하면 됨.공개키 암호의 조건1) 공개키와 개인키 키쌍 생성이 쉬워야 한다.2) 송진자는 수신자의 공개키와 평문을 이용하여 쉽게 암호화 할 수 있어야 한다.3) 수신자는 자신의 개인키로 암호문을 쉽게 복호활 수 있어야 한다.4) 공개키로 개인키를 알아내는 것은 불가능 해야한다.5) 공개키와 암호문을 알고 있는 공격자는 원문을 알아 낼 수 없어야 한다.공개키로 암호화 하기수신자 Alice의 공개키로 암호화 하여 전송함으로서 Alice만 자신의 개인키를 이.......
HMAC이란?: 암호적 해시코드를 이용한 메시지 인증 방법으로 키를 사용한다.대칭 암호를 통해 메시지 인증이 가능하지만 암호적 해시함수는 더 빠른 속도로 실행 가능하기 때문에 이를 이용한다.HMAC은 키와 메시지를 통해 해시값을 얻어내어 이를 통해 메시지 인증을 하는 알고리즘이다.A는 A와 B가 공유하고 있는 대칭키와 메시지를 HMAC알고리즘에 넣어 HMAC값을 얻어내어 메시지와 함께 B에게 전송한다.B는 받은 메시지와 A와 공유하고 있는 공유키를 이용해 HMAC값을 구해내어 받은 HMAC값과 비교하여 메시지 인증을 한다.MAC알고리즘 : HMAC알고리즘MAC : HAMCK : 공유키
해시함수란?: 메시지가 해시함수를 거쳤을 때, 어떠한 값으로 나오는 것을 말한다.일방향 해시함수란?: 해시값을 통해 데이터를 알아 낼 수 없는 해시함수를 말한다.일방향 해시함수는 대칭 암호, 공개키 암호, 비밀값과 함께 사용해서 메시지 인증이 가능하다.대칭 암호와 해시함수를 이용한 메시지 인증공개키 암호와 해시함수를 이용한 메시지 인증비밀값과 해시함수를 이용한 메시지 인증안전한 해시함수란?다음 조건을 만족하는 해시 함수를 안전한 해시 함수라고 한다.1. 임의 크기의 데이터 블록에 적용가능해야한다. 즉 메시지 크기에 관계없이 해시값을 찾을 수 있어야한다.2. 일정한 길이의 출력 - 입력으로 들어온 데이터 크기에 관.......
메시지 인증이란?: 메시지 인증은 2가지로 나뉜다.진짜 발신자로 표시된 사람으로 부터 온 것인가? (발신자 인증 : Source Authentication)과메시지가 변조된 것은 없는가 (메시지 무결성 : Message Integrity)즉 메시지 인증은 올바른 발신자로부터 중간에 메시지가 변조된 것이 없나 검증 하는 것이다.대칭암호, 공개키 암호, 메시지 인증 코드를 통해 메시지 인증이 가능하다.대칭암호 이용:A가 B에게 메시지를 서로 공유하고 있는 대칭키(비밀키)를 이용해서 보낸다면 B는 공유하고 있는 대칭키를 통해 복호화가 가능하다. 이를 통해 B는 A가 이 메시지를 보냈음을 알 수 있다.또한 암호문을 만약 변조 했다면 복호화가 제대로 이루.......
난수란?: 정의된 범위 안에서 무작위로 추출된 수를 말한다.난수의 역할1) RSA 암호 알고리즘 및 공개키 알고리즘 키 생성에 이용2) 대칭 스트림 암호 스트림 키 생성에 이용3) 임시 세션키 생성에 이용난수의 특성1) 무작위성 - 균등분포, 독립성* 균등분포 : 0과 1이 균등하게 나와야 한다.* 독립성 : 0과 1이 독립적으로 나온다.2) 예측불가능성 : 다음 수가 0일 확률 0.5 다음이 1일 확률 0.5 로 반반이어야한다. 만약 0일 확률이 0.51로 올라가면 안됨.이런 수를 진성 랜덤 넘버(true random number) 라고 한다.의사 난수란?(Pseudorandom number): 진성 난수와 유사한 통계적 특성을 갖는 난수로 seed값으로 부터 난수를 생성한다. see.......
DES- 64비트 블록암호- 16회전 Feistel 구조- 키 사이즈 64비트 ( 실제 키 사이즈는 56비트 8비트는 오...
SSL을 이용하여 서버와 클라이언트 사이의 연결을 하고 인증하여 간단한 메시지 전송하는 예제 만들기...
다항식(polynomial) 이란?정의1. R은 ring 이다.A polynomial f(x) with coefficients in R 이란 말은 f...
다항식의 division algorithm다항식의 division algorithm은 정수론에서 한 division algorithm과 비슷하다...
irreducible polynomial이란?정의 1. F: fieldf(x)가 F[x]의 속하는 1차 이상의 다힝식일때 f보다 낮은...
reducible과 irreducible이 무엇인지 모른다면 보고와주세요.Eijenstein Criterion 이란?인수분해가 가능...
SP 구조와 Feistel 구조 모두 Feistel이 만들었다.SP 구조: substitution과 permutaion의 약자로 대...
암호화 시에 key를 찾기 어렵게 하기위해서 또 알려진 평문 공격에 대해 강화하기위해서 암호문을 만들 때 ...
RecallUniformly CauchyDefinition.Theorem.(증명)
Recall특징1.(증명)*Examplefn(x) = 1-xnfor x in [0,1]. Does (fn) converge uniformly on [0,1]...
즉 먼저 입력받은 배열이 모두 0인지 1인지 확인후 4등분하여 다시확인 하는 방식으로 진행하면 된다.또한 ...
The Fundamental Theorem of Arithmetic: 1보다 큰 모든 정수는 prime의 곱을 나타낼 수 있고, 이 형태...
파일 시스템의 개요와 종류파일이나 자료를 쉽게 발견하고 접근하게 하기 위해 보관하는 체제.리눅스 파일 ...
RecallFree GroupDefinition 1.*ExampleDefinition 2.*ExampleDefinition 3.위 example에서 w&#x...
RecallGroup PresentationDefinition 1.*Example
RSA를 이용한 디지털 서명 생성과 검증서명 생성1. 메시지 준비2. 메시지를 해시함수를 통해 해시값을...
Numeical diffenentiation 이란?함수 f에 대해 f'을 찾는 방법간단한 approximation 방법으로 h를 작...
* 라이브러리 설치PYCRPYTO사용을 위해서는 먼저 PYCRPYTO를 설치해야한다$ pip3 install ...
전치 암호란?: 전치란 위치를 바꾸는 것을 말한다. 따라서 전치 암호란 순서를 바꾸어 암호화하는 것을 말...
에라토네스의 체란?: 소수를 구하기 위한 방법을 말한다.에라토네스의 체를 이용한 소수 구하는 방법.만약 ...
위협 : 보안에 문제를 가할 수 있는 환경, 능력, 행동, 사건과 같이 보안 취약점을 이용하려는 잠재적 위협...
핵심 컴퓨터 보안 목표기밀성이란?: 권한이 있는 사용자만 데이터를 확인 가능해야만 함을 의미한다. 권한...
소극적 공격(Passive Attack)소극적 공격은 도청이라고 생각할 수 있다. 메시지 내용을 갈취하거나 전...
Characteristic이란?ring R 이 있다고 하자. 이때 R에 속하는 모든 원소 a에 대해서 n*a=0이 되는...
동음이의 암호란?빈도가 높은 문자들을 하나의 문자로만 암호화 하는 것이 아닌 여러개의 문자로 암호화하...
시저 암호란?평문에 키값을 더해 암호화 하는 암호.다음과 같이 약속하자a b c d e f g h ... x y z1 2 3...
셸이란?사용자가 입력한 명령어를 해석해서 커널에게 전달하는 기능으로 사용자별 다른 셸을 사용 가능하다...
권한 및 그룹 설정 리눅스 터미널에서 ls -l을 입력하면 다음과 같이 나오게 된다.먼저 ① d는 파일 및 ...
1. 사용자 생성 및 계정 관리(1) 리눅스 명령어* which- 명령어의 경로를 확인하는 명령어- 형식 : which...
Integral Domain정의.(1)Zero divisorring의 원소 0이 아닌 원소 a,b에 대해서 ab=0이라면 a,b...
Uniromly converge란??Theorem 1(증명)위 링크의 특징1을 보면 (fn) 이 converges uniformly on S 하고 ...
RecallPointwise ConvergeDefinition*Example* '→'는 pointwise converge 함을 의미한다...
높은 차수의 방정식으로 interpolating 하면 점들 사이에서 들쑥날쑥이 심해진다. 끝으로 갈수록 더 심해지...
Definition.1보다 큰 정수들 중, 약수로 1과 자기자신을 갖는 것을소수(prime)그 밖의 수들을 합성수(co...
Mathematical Induction(1st principle)각각의 양의 정수 n에 대해 사실임을 증명하기 위한 증명 기술이...
Direct Proof*ExampleProve : Let m and n be integers. If both m and n are odd, then mn is odd...
Trapezoidal Rule: 적분을 interpolating 하는 방법 중 하나.Trapezoidal Rule은 Linear Lagrange ...
Congruentmodulo m 에서 a가 b와 congruent 하다 라는 말은이라고 쓰며 m이 (b-a)를 나눌때 그렇게 말한...
Arithmetic progression이란?Dirichlet's Theorem이를 이용하면 10000n+11111 형태는 무한개의 소...
Ricardson's Extrapolation:approximation할 때 낮은 차수의 식을 사용해 높은 정확성의 결과를 얻...
Theorem1 과 Cor 1의 다른 점은 Thm1 은 수렴반경안 닫힌구간에서는 uniformly converge 하고 uniformly...
RingDefinition.덧셈에 대해 abeliand group이고 곱셈에 대해 결합법칙을 만족하며 분배법칙을 만족하...
비즈네르 암호란?:비즈네르 암호는 키값을 이용한 반복키암호에 해당한다암호화예를 들어, P1P2P3P4...
Diophantine equationDiophantine equation 이란 ax+by=c 를 말한다.유클리드 알고리즘에 대해서...
RecallPower Series : ∑anxnpower series란 위 식을 말한다. 위 급수는 x값에 따라 수렴할수도 발산할...
ADFGVX 암호란?: 세계 1차 대전에서 독일이 사용하던 암호위 표를 이용하여 암호화한다. 총 26개의...
20세기 프리드만이라는 미국의 암호해독가는 동시발생지수라는 것을 고안해 냈다.동시발생지수(IC)란?:...
Field of quotients of Integral Domain란?integral domain을 잘 가공하여 field로 만들어 낸 것을 말한...
아핀 암호란?덧셈암호와 곱셈암호를 결합한 방식* 암호화아핀 암호는 위와 같이 덧셈암호와 곱셈암호를 ...
유클리드 알고리즘 : gcd(a,b)를 구하기위한 알고리즘유클리드 알고리즘의 단계( gcd(504,123) )gcd(50...
최대 공약수(greatest common divisor)Definition.gcd(a,b) 는 a와b를 나누는 정수들중 가장 큰 값을 말...
RSA: 공개키 암호화 방식중 하나. 최근 양자 컴퓨터에 발전으로 인해 RSA를 깰 수 있는 방법 등장...
HMAC: key와 message를 통해 Hsah값을 만드는 알고리즘이러한 HMAC은 무결성을 체크하는 과정에 ...
AES를 이용한 파일 암호화- 암호화할 파일 준비PYCRYPTO를 이용한 AES 암호화 코드 작성- 라...
Division Algorithmexistence 증명uniquness 증명Division Algorithm의 일반화즉, 이러한 Division A...
1. 구글 드라이브로 이동2. 새로만들기 → 더보기 → 연결할 앱 더보기 클릭3. colaboratory 검색 후 설치4...
Epoch란 모델이 전체 데이터 셋을 한번 학습하는 것을 말한다.batch size란 데이터를 학습시키고자 할 ...
독립 변수란 ? 원인이 되는 변수종속 변수란? 결과가 되는 변수예를 들어, 집값을 결정하는 요소는 여러...
github에 푸쉬했을 때, 위와같이 나오는 현상은 해당 폴더내에도 git이 존재하여 충돌하는 문제이다.이를 ...
일반적인 함수 선언예시화살표를 이용한 함수 선언(arrow function)예시바로 리턴하는 경우 아래와 같이 작...
그리디 알고리즘은 현재 상황에서 가장 좋은 것을 고르는 방법을 의미한다. 즉, 매번 가장 좋은 방법을 선...
react app 생성하기folder-name에 원하는 폴더이름을 설정하면 폴더가 생성됩니다.이후 해당 폴더로 이동해...
깃에서 파일명을 수정하기 위해서는 파일 이동 명령어인 mv를 사용해야한다.oldpath에 현재의 경로 newpath...
* 설치* express-session 미들웨어 불러오기* 사용secret은 session ID cookie에 사인하기 위한 값으로 ...
passport.js 는 로그인/로그아웃/인증 기능과 페이스북으로 로그인, 구글로 로그인과 같은 기능을 제공하는...
*git commit 하기git commit -m "커밋메세지"git log의 경우 q를 누르면 탈출 가능* git commi...
Http 쿠키는 서버가 사용자의 웹 브라우저에 전송하는 작은 데이터 조각으로 브라우저 에서는 해당 데이터...
* 쿠키 생성하기 - 결과위 와 같이 응답 헤더에 firstcookie 와 secondcookie가 추가되었고 application의 ...
express generator는 express기반의 프로젝트를 작성할 때 필요한 기본적인 코드와 파일을 자동으로 생성해...
* 추가-s : 해당 프로젝트에만 설치-g : 전역에 설치( 어느 프로젝트에서나 사용가능 )* 업데이트* 삭...
파이썬에서 heap기능을 위해 제공하는 라이브러리단순히 heap에 넣는 것 만으로 시간복잡도 O(NlogN)...
자료구조란 데이터를 표현하고 관리하고 처리하기 위한 구조를 말한다.스택과 큐는 자료구조 중 하나이다....
1. 쉬프트쉬프트에는 오른쪽 쉬프트, 왼쪽 쉬프트가 있다. 8은 2진법으로 나타내면 1000 으로 나타내어진다...
파이썬에서 문자하나를 ascii값으로 바꾸려면 ord()함수를 사용하면 된다.ord() 는 유니코드 글자를 하나 ...
1. 간단하게 입력받기2. " "로 나눠진 숫자들 입력받기( 코테 문제들에 많이 사용 )3. input함...
아래와 같이 list가 있다고 해보면위 리스트를 " "으로 나누어 값만 출력하고 싶다면 join함수를...
1. express-generator 와 pm2 설치하기 2. express 실행=> 하면 myapp 폴더가 생기며 기본 폴더들...
bootstrap을 이용하는 방법은 가장 간단한 CDN을 이용하는 것과 npm을 이용해서 설치하는 방법, 파일을 ...
부트스트랩 커스터마이징하기먼저 npm을 통해 부트스트랩을 설치해주거나 부트스트랩 홈페이지에서 파일...
1. npm init을 통해 package.json 생성2. express 와 mysql 설치3. express로 간단한 코드 작성4. MySQ...
Express에서 image나 css, javascript 파일을 load하기 위해서는 express.staic 을 이용하면 됩니다.1...
1. Nodejs 설치하기2. npm 설치하기3. npm init
한번씩 해주시면 감사합니다.
Nodejs에서 mysql을 연결하는 과정에서 다음과 같은 error가 나타난다면MySQL에 들어가과 같이 입력하면 해결된다 만약 위 명령어에 대해 ERROR 1819 (HY000): Your password does not satisfy the current policy requirements 과 같은 에러가 발생한다면 다음 내용을 확인해보면 좋다.password설정을 어떻게 해야하는지 알려주는 정보이다.validate_password.length는 8이므로 길이가 8이상.validate_password.mixed_case_count,validate_password.number_count ,validate_password.special_char_count 는 각각 대소문자, 숫자, 특수문자의 개수를 의미하므로 각각 1개 이상씩 들어가야 한다는 의미가 된다.validate_password.policy 는 이러.......
git을 설치해 원격 저장소와 연결하여 올리기1. git 설치2. git 개인 정보 등록3. 버전관리를 원하는 폴더로 이동4. git 시작하기5. 원격 저장소 등록 ( github 회원가입 후 repository 생성을 먼저 해야함 )6. 변경된 모든 파일 추가 ( -A를 주면 모든파일 추가, 다른 여러 옵션이 있음 )7. 커밋8. 원격저장소에 올리기자신의 원격 저장소에서 내려받기github 저장소 내용 다운받기
MySQL 데이터 베이스 구조는 Table, Database(schema), Database Server 로 나뉜다.Table이란 하나의 표를 의미한다. 이러한 Table이 여러 개가 생겨 연관이 있는 Table을 묶은 것이 Database(schema) 라고 한다.이러한 database는 여러개 생성 가능하다. 여러개의 Database를 묶은 것을 Database server라고 한다.MySQL을 다운받았다면 이는 Database Server를 만든 것이고 MySQL을 통해 내부 data를 구성해 나가는 것이다.
데이터 베이스 생성 코드데이터 베이스 제거 코드
https://blog.naver.com/username1103/222198913763먼저 Table을 생성하기 원하는 Database를 선택해야 한다.위 명령을 하게 되면 해당 Database로 이동하게 된다.table_name : 테이블 이름 입력c_n : Table의 목록. 즉 id나 title, description, created 등 설정DataType : 해당 목록에 들어갈 데이터의 타입 지정 ex) INT, VARCHAR, TEXT, DATETIME( 해당 링크에 DataType 목록 있음. ) PRIMARY KEY(c1) : primary key란 해당 테이블에서 각각의 레이블을 구별하기 위해 이용하는 식별자이다.따라서 안에 값은 각각의 레이블을 구별할 수 있는 데이터 값이 들어가야 한다. c1을 primary key로 지정하겠다는 말을 의미한다.https://blog.naver.c.......
1. netlify 홈페이지에 들어가 회원가입을 한다.https://www.netlify.com/2. sites 탭 선택3. index.html 파일이 들어있는 폴더를 드래그 해서 빨간 사각형 네모안에 올려 놓기4. 아래와 같이 빨간 네모 클릭하면 만들어진 웹사이트로 이동.5. 끝.
1. 위에 메뉴바에 Deploys 나 아래 큰 네모칸 클릭.2. 빨간 네모칸 안에 바뀐 index.html 파일이 들어있는 폴더를 드래그 하여 올려줍니다.3. 끝
https://blog.naver.com/username1103/2221989953371. 먼저 어떤 테이블이 있는지 확인합니다.2. 해당 테이블에 어떠한 값들이 저장될 수 있는지 확인합니다.DESC table_name; : 해당 table에 어떤 종류의 데이터가 들어가 있는지 알려줍니다.3. 필요한 값들을 토대로 테이블에 데이터를 추가합니다.INSERT INTO table_name(테이블의 들어갈 데이터 값들) VALUES (각 데이터에 맞는 데이터 값들)id값은 auto_increment 즉 알아서 1씩 증가하도록 설정되어있으므로 따로 값을 설정하지 않았습니다.title과 description created, author, profile 정보를 추가할 것인데 작성한 순서에 맞게 VALUES()안에 넣을 데이터 값들을 넣어줍니다.NOW() 는.......
https://blog.naver.com/username1103/222200199301· SELECT * FROM table_name : 테이블 전체 정보 얻어오기 · SELECT id,title,description,author FROM table_name : 테이블로 부터 id, title, description, author 정보만을 보여준다.· id값을 토대로 내림차순을 보여준다· author가 root인 데이터들을 id값을 기준으로 내림차순으로 보여준다 ( ORDER는 WHERE 뒤에 위치해야 한다.)· :LIMIT 2 : 위 데이터 들중 2개만 보여준다 ( 해당 링크를 통해 더 다양한 방법을 알 수 있다.[]대괄호가 있다면 생략이 가능하다는 말이다. 즉 첫줄에 [ALL | DISTINCT | DISTINCTROW ] 를 보면 이 부분은 생략이 가능하다는 말이다.가운데 ㅣ 를 기준으.......
· 현재 테이블 상태· UPDATE table_name SET 설정할 정보 [WHERE 어느 타켓] 만약 WHERE을 정하지 않는다면 table에 모든 정보가 설정한 정보로 변하게 되므로 주의할 것.https://blog.naver.com/username1103/222200228703https://blog.naver.com/username1103/222200257368
https://blog.naver.com/username1103/222200199301현재 데이터 상태DELETE FROM table_name [WHERE 삭제할 조건]WHERE을 생략한다면 table에 모든 데이터가 사라지므로 주의가 필요함.https://blog.naver.com/username1103/222200244264https://blog.naver.com/username1103/222200257368
https://blog.naver.com/username1103/222198995337· 테이블 column 추가하기 (ADD)ALTER TABLE table_name ADD 추가할column이름 datatype;addtable 이라는 column이 추가 되었음을 알 수 있음. 추가되는 위치는 수정이 불가함.· 테이블 column 제거하기 (DROP)ALTER TABLE table_name DROP COLUMN 삭제할column이름;https://blog.naver.com/username1103/222201234380
https://blog.naver.com/username1103/222198995337· 현재 테이블 상태· column 재정의 하기ALTER TABLE table_name MODIFY COLUMN 재정의할column 내용;· column 이름 수정하기 ALTER TABLE table_name RENAME COLUMN 변경할column TO 뭐로바꿀지; https://blog.naver.com/username1103/222200652652
위 내용 처럼 2개의 Table이 있다고 해보자. table1에 name_id 는 name table의 id와 맞추어 만들어졌다.그렇지만 지금처럼 본다면 가독성이 떨어지기 때문에 테이블을 합쳐서 보고싶다면 어떻게 해야할까?· LEFT JOINSELECT * FROM table_name LEFT JOIN 합칠table ON 규칙;LEFT JOIN은 왼쪽 테이블 즉 table1을 기준으로 다른 테이블 즉 name 테이블을 결합시키겠다는 것을 의미한다.마지막 줄처럼 해당 데이터가 없다면 NULL 을 나타낸다.만약 name_id 와 id값을 안보고 싶다면 * 대신에 원하는 column을 작성해주면 된다. 이때 주의할 점은 table1과 name에 모두 id column이 있으므로 어떤 테이블의 id값을 보고싶은지 명확히 작성해줘.......
Netlify를 통해 사이트를 생성하게 되면 다음과 같이 이상한 이름을 주소로하는 웹사이트가 생성됩니다. 이를 바꾸기 위해서는1. Site settings 선택2. change site name 선택3. 원하는 사이트 이름으로 변경4. 끝
파이썬을 이용해 개발하는 여러 환경에서 있어서 특정 버전의 파이썬과 특정 버전의 라이브러리가 필요한 경우가 있다. 이럴 경우 가상환경을 만들어 원하는 파이썬버전과 라이브러리 버전을 셋팅할 수 있다.즉, 어떠한 프로그램을 만들때에 A버전의 파이썬과 A버전의 라이브러리가 필요할 경우, 만약 다른 프로그램에서 B버전의 파이썬과 B버전의 라이브러리가 필요하여 설치한 경우 두 프로그램에서 충돌이 발생할 수 있다. 따라서 가상환경을 만들어 해당 환경에서는 A버전의 파이썬과 A버전의 라이브러리를, 다른 환경에서는 B버전의 파이썬과 B버전의 라이브러리를 이용한다면 이를 해결할 수 있다.파이썬 가상환경 만들기- venv1. 비쥬얼.......
비쥬얼 스튜디오에서 cmd터미널 열기1. ctrl + shift + p2. 터미널: 기본 쉘(Terminal : Select Default shell)을 선택.3. Command Prompt 선택.4. 이후 터미널을 닫았다가 다시 열어줍니다.끝.
VScode에서 PyQt5를 import하려하면 위와 같은 import error가 발생한다.이는 Pylint가 C익스텐션을 기본적으로 실행하지 않기 때문에 생기는 오류라고 합니다.해결하기 위해서는 1. ctrl + shift + p2. 기본 설정: 설정 열기(JSON)(Preference: Open Setting (JSON))을 클릭3. 아래에 내용을 열린 setting.json 파일 괄호안 마지막줄에 붙여넣기
자신이 작성한 python코드를 실행파일로 바꾸기 위해서는 pyinstaller가 필요하다pyinstaller 설치cmd 창을 열어 다음 명령어 입력.pip install pyinstallerpyinstaller를 이용해 실행파일 만들기1. cmd창을 열어줍니다.2. cmd창에서 해당 파일이 존재하는 폴더로 이동합니다.( cd 폴더경로 입력)3. pyinstaller 파일.py 입력→ 해당 폴더안에 dist폴더안에 실행파일이 생성됨을 확인할 수 있습니다.위와 같이 입력할경우, 콘솔창과 함께 실행이 되는데 만약 콘솔창을 보고 싶지 않다면 명령어에 -w 또는 --windowed 를 옵션으로 주어 실행파일을 생성합니다.ex) pyinstaller -w 파일이름.py실행파일 하나만 생성하고 싶은 경우명령어에 -F 또.......
style을 변경하기 위해서는 태그 내에서 지정하는 style, id 선택자, class 선택자, tag 선택자를 이용한다. #id는 id 선택자, .class는 클래스 선택자, a는 tag 선택자 이다.각 속성의 적용순서는 tag선택자의 속성이 적용되고 그 다음 class 선택자의 속성이 적용되고, 다음으로 id 선택자의 속성, 태그내에서의 속성이 적용되어 덧입힌다고 생각할 수 있다. 따라서 같은 속성의 경우 가장 나중에 덧입힌 속성이 적용되고 또한 겹치지 않는 속성들도 모두 적용되는 것이다.만약 같은 태그를 두 개의 class가 지정할 경우 먼저 작성된 class선택자의 속성이 적용되고 그위에 나중에 작성된 class 선택자의 속성이 적용된다.따라서 같은 속성을 변.......
CSS에 position에는 static, relative, absolute, fixed 가 있다.position:static기본적으로 우리가 생성하는 tag들은 모두 position : static으로 되어있다.이러한 경우 left:10px top:30px 이런식으로 지정하더라도 변경되는 것이 없다. 이유는 position이 static일때 left, right, top, bottom 은 비활성화 되기 때문이다.position:relativerelative의 경우 left:20px top:20px을 지정할 경우 자신의 원래 위치에서 왼쪽을 기준으로 오른쪽으로 20px, 위를 기준으로 아래로 20px이 움직이게 된다.중요한 특징으로는 부모태그 안에서 자신의 위치를 기억해놓는다는 것이다. 따라서 부모태그를 position:relative로 변경 후 부모를 움직일 경우.......
위와 같이 작성한 경우 해당 css selector의 속성을 가져온다.즉 예를 들어,일 경우 body 태그의 속성들을 가져온다.위 와 같이 작성할 경우 body태그의 backgroundcolor의 정보를 얻어올 수 있다.
UI( User Interface ) 란?말 그대로 user interface. 즉 user가 사용하는 interface를 말한다. 이 블로그 내에서도 여러가지 버튼들이 있다. 이러한 버튼들은 user인 우리가 이용하는 버튼들이다. 이러한 버튼들을 UI, User Interface라고 한다.API ( Application Programming Interface ) 란?Application을 만들기 위해 Programming시에 이용하는 Interface를 말한다. 즉 javascript에서 alert()함수는 경고창을 띄워주게 된다. alert()는 브라우저에 경고창을 띄우는 interface인 것이다. 이러한 것을 API, Application Programming Interface라고 한다.
local storage와 session storage는 둘 다 브라우저에 특정 정보를 키,값 쌍으로 저장하기 위해 사용됩니다.둘의 차이는 얼마 동안 그 정보를 유지하느냐의 차이입니다. local storage의 경우 브라우저를 껏다 켜도 데이터가 유지되는 반면,session storage는 탭이나 브라우저를 종료할 경우 데이터가 사라집니다. ( 새로고침시에는 유지됩니다. )( Cookie랑 다른점은 Cookie의 경우 서버로 전송되지만 storage의 경우 서버로 전송되지 않고 브라우저에 저장됩니다. 또 cookie보다 많은 양의 데이터를 저장해 놓을 수 있는 장점이 있습니다. )해당 정보는 브라우저에서 F12키를 눌러 Application 탭에 가보면 Storage에서 확인할 수 있습니다.......
JavaScript의 변수선언 방식에는 var, let, const 가 있다.varvar 을 이용해 변수를 선언할 경우 나중에 같은 이름의 변수를 선언하더라도 막지 않는다. 그렇기 때문에 코드가 복잡해질 경우, 해당 name이 무엇을 나타내는지 정확히 알 수 없고, 에러가 뜨지 않아 해당 변수가 이미 사용되었는지 알 수 없다.따라서 const 나 let 을 이용하는 것이 좋다.let과 constlet 을 이용하여 변수를 선언하는 경우 위처럼 같은 이름의 변수를 중복 선언한다면 error가 발생하여 막아준다. 따라서 같은 이름의 변수를 사용하는 일이 생기지 않는다.const 를 이용하여 변수를 선언해 줄때에도 마찬가지로 같은 이름의 변수를 중복 선언하면 error가 발생한다.......
JavaScript를 공부하다 보면 ES6, ES11이란 말이 나온다.이는 JavaScript의 버전이라고 할 수 있다.ES6은 ES2015라고도 하며 2015년에 출시된 JavaScript를 의미한다.ES11 은 ES2020을 말하며 2020년에 출시된 JavaScript를 의미한다.버전이 올라감에 따라 추가되는 문법들이 있으므로 확인하는 것이 좋다.
흔히 JavaScript를 사용하다 보면 다음과 같은 경우가 흔하다.위와 같이 작성하려면 띄어쓰기도 신경써야하고 여러모로 불편하다. 이를 해결하기 위한 방법이 Template literals이다.위 코드에서 ${text} 부분이 이를 적용한 것인데, 해당 부분에 text 즉, Template literals가 들어가게 된다.여기서 주의할 점은 양 끝에 '나 " 가 아닌 `을 이용한다는 점이다. ` 는 보통 키보드에서 1 key 옆, esc 아래에 있는 버튼이다.
CSS style에는 z-index라는 값이 있다. 화면위에 쌓이는 순서를 의미한다.이때 중요한점은 z-index사용시 position값이 지정되어있어야한다.( position에 대한 정보 )위 코드는 아래와 같이 나타나게 되는데 z-index를 유심히 살펴보면 z-index가 클수록 화면에 위쪽에 표시되는것을 알 수 있다.주의할 점z-index사용시 position값이 지정되어있어야한다.
AES: DES가 깨지고 3DES는 오래걸리는 문제 때문에 등장하게된 향상된 암호화 표준으로 대칭키 암호의 한 종류특징- 128비트를 한 블럭으로 하는 블럭 암호화 방식- 키의 길이는 128/192/256 비트 사용- SP Network 방식으로 키 값에 따라 각각 10, 12, 14 라운드로 구성- DES의 경우 64비트를 반으로 나누어 32비트씩 암호화 하는 방식이지만 AES는 한 라운드에서 128비트 전체를 암호화 함- 각 라운드는 SubBytes, ShiftRows, MixColumns, AddRoundKey 로 구성1. State(상태) 구성128비트의 입력받은 평문을 8비트(1바이트) 씩 쪼개어 State를 구성한다.예를 들어, 입력이 A1 11 13 15 14 1A BA 30 21 23 16 49 20 B3 AB 61 로 들어온다면 아.......
AESDES3. IDEA- 1990년 스위스에서 개발한 암호화 방식- 암호화 속도가 DES보다 빠름- 64비트 블록과 128비트 키를 이용- 8라운드에 Feistel 구조- 전자우편 보안 PGP에 이용- 유럽 표준RC5- 1994년 Rivest개발- 블록크기는 32, 64, 128 비트, 키 0~2040비트- 라운드 0~255 라운드- 키와 라운드가 가변적이어 사용자가 원하는 성능과 안전성 수치 조절 가능SEED- 1998년 KISA 개발- 128비트 블록을 암호화하고 128비트 키를 이용- 16라운드에 Feistel구조- 2009년 SEED 256개발 ( 128비트 블록, 256비트 키, 24라운드)- 인터넷 뱅킹, 전자상거래 이용ARIA- 128비트 블록을 암호화하고 128/ 192/ 256 비트의 키를 이용- SP Network 구조로 키 값에.......
LFSR: 주어진 초기 비트값(seed)와 정해진 방법을 통해 key stream을 생성하는 방법예시초기 비트 (seed) : 0001생성방법 : a4+i = ai + ai+2 ( + : XOR )위와 같은 조건일 경우 a5 = a1 + a3 = 0 + 0 = 0, a6 = a2 + a4 = 0 + 1 = 1 .. 쭉 구할 수 있다. ( + : XOR )따라서 000101.... 하면서 나아가게 된다.쭉 구해보면 000101000101... 해서 주기가 6인 key stream이 생성된다.다음 자리 수를 얻기 위해 초기에는 0001을 이용하고 그다음은 0010 그다음은 0101 식으로 우측으로 한칸씩 이동하여 다음 자리를 얻게 된다.이러한 특징때문에 시프트 레지스터 라고 한다.그림으로 표현하면 다음과 같이.......
A5/1: 3개의 LFSR을 합치고 클록을 이용하여 비선형성을 추가하여 key stream을 생성하는 방법위 그림처럼 19, 22, 23 길이의 seed를 갖는 LFSR 3개를 이용해 key stream을 생성한다. 따라서 64비트의 초기 비트(seed)값이 필요하다.LSFR 3개를 합쳐 key stream을 생성하므로 최대 주기는 (219-1)*(222-1)*(223-1)이 된다.이 때 주황색으로 색칠된 부분을 클록이라고 하는데, 이 부분에 있는 숫자에 따라 각 LFSR이 시프트할지 말지를 결정한다.만약 위에서 부터 각 클록의 값이 1, 0, 1 일 경우 1이 더 많으므로 1이 있는 부분은 시프트가 발생한다.즉 가운데 LFSR을 뺀 나머지 LFSR은 한칸씩 시프트 된다. 이러한 방식을 통해 LFSR에서 비선.......
스트림 암호: 대칭키 암호의 한 종류로 비트 또는 바이트 단위로 암호화 하는 것암복호화 방식평문 + 키스트림 = 암호문암호문 + 키스트림 = 평문 ( + : XOR )따라서 키스트림을 어떻게 잘 생성하느냐가 관건특징- 빠른 암호화 속도와 낮은 에러 전달- 군사 및 외교용, 무선통신기기에 이용- LFSR, A5/1, RC4 등이 있음
Factoring 이란 어떠한 수를 소수의 곱의 형태로 나타내는 것을 말한다.즉, 15 = 3 * 5, 24 = 23 * 3.어떠한 수 n = a0 + a1101+ a2102+ ... + ak10k의 형태로 쓸 수 있다.이 때 다음과 같은 성질들이 성립한다.즉 15946 가 2의 배수인지 5의 배수인지는 일의 자리 숫자가 2의배수인가 5의 배수인가만 보면 알 수 있다.3의 배수인지 9의 배수인지는 1+5+9+4+6 = 25가 3의 배수인지 9의 배수인지를 통해 알 수 있다.11의 배수인가는 6-4+9-5+1 = 7 이 11의 배수인지를 통해 알 수 있다. 7의 배수인지 13의 배수인지 11의 배수인지는 946-15=931이 7의 배수인지 13의 배수인지 11의 배수인지를 통해 알 수 있다.왜.......
페르마의 작은 정리1)p가 소수이고 gcd(a,p)=1 이면, ap-1≡1 (mod p) 이다.2) p가 소수이면 ap≡ a (mod p)이다.1) 증명먼저 complete residue system에 대해 알아야한다. a의 complete residue system은 집합인데 그안에 모든 원소들이 mod a에서 서로 incongruent하고 원소의 개수가 a개인 집합이다. 즉 예를 들어 5의 complete residue system은 {1,2,3,4,5}, {-3,-2,-1,0,1},{10,16,12,23,29} 등이 있다. 이 때 연속적인 a개의 수는 complete residue system이 됨을 확인할 수 있고, {0,1,2,3,4} 와 같은 집합을 the least complete residue system 이라고 한다.만약 a*k ≡ a*j mod p 라면 gcd(a,p)=1이므로 k ≡ j mod p 가.......