전체 분류 보기 500

[python] 11. 정규 표현식 1

[python] 11. 정규 표현식 1 1. 정규 표현식 - 텍스트를 검색할 때 Ctrl + F 로 찾는 것을 좀더 발전 시킨 형태 - 글자 자체를 가지고 찾는게 아니라 패턴을 사용함 * 오피스 프로그램은 찾기(바꾸기)기능에서 정규식을 지원함 2. 정규식 사용 사례 1) 입력 유효성 체크 2) 테스트에서 특정 부분을 추출 3) 특정 텍스트 바꾸기 4) 큰 텍스트를 작게 쪼개기 - Ex) 콤마나 점으로 구분해서 문장 쪼개기3. 정규식 문법 - "/패턴/" : / 사이에 패턴을 표시 1) 숫자 관련 정규 표현식 표현식 설명 \d 0 부터 9까지 한자리 숫자를 표현 2) 발생 홧수 관련 정규 표현식 표현식 설명 ? 0 또는 1번 발생 * 0 또는 여러번 발생 + 1번 이상 발생 {n} n번 발생 {n,m} n..

[OPENSSL-1.0.2] SSL 연결 코드 구현

[OPENSSL-1.0.2] SSL 연결 코드 구현 1. SSL 연결 개요. - 일반 TCP 연결을 암호화로 감싸는 것이다. 2. SSL연결 내부 연결 성립 절차 1) TCP handshake(TCP 통신을 연결하는 과정을 진행) - TCP 3-way hand shake 진행 2) SSL handshake(SSL 통신을 연결하는 관정을 진행) - 클라이언트는 암호 목록 및 임의 값을 보냅니다. - 서버가 암호를 선택합니다. - 서버는 공개 키와 임의이 값과 함께 인증서를 보냅니다. - 클라이언트는 서버 인증서를 확인하고 클라이언트 개인 키로 암호화 된 개인 키 - 서버는 개인 키를 수락하고 자신의 개인 키를 보냅니다. 3. OpeSSL Server 코딩 1) OpenSSL 초기화 (1) 모든 알고리즘 불..

[OPENSSL-1.0.2] 코드로 알아보는 SSL 통신이해

[OPENSSL-1.0.2] 코드로 알아보는 SSL/TLS 통신이해 1. SSL 통신을 위해 필요한 구조체 1) SSL_CTX(SSL Context)(전역 구조체) (1) Global context 구조체 (2) SSL_CTX는 SSL 응용프로그램당 1개면 충분합니다. (3) SSL 구조체들에 대한 기본값을 저장하며, 연결을 위해 만들어집니다. (4) 연결과 세션에 대한 기본 정보를 갖고 있습니다. - SSL 연결 개수, 재협상, 세션 재개 (5) ssl.h 에 정의 되어 있습니다. - 버전별 정의 - OpenSSL_1_0_2 - 선언 - ssl/ssl.h : typedef struct ssl_st SSL; - OpenSSL_1_1_1-stable cadb6f0e32 - 선언 - include/opens..

[python] 10. 문자열 다루기 2탄 (pyperclip)

[python] 10. 문자열 다루기 1. 문자열 관련 함수 1) 문자열 길이 len() - 문자열 길이 반환 2) 문자열 나누기 split() - 문자열을 특정 문자를 중심으로 분리하는 함수- 결과를 리스트로 제공한다. 3) 문자열 결함 join() - 특정 문자를 사이사이에 넣어 리스틀 문자열로 결함합니다. 4) in, not in 연산자 - 단어가 문자열에 존재하는 확인- 대소 문자를 구분한다. 5) upper(), lower(), isupper(), islower() - upper(), lower() 대/소 문자로 변경 - isupper(), islower() 대/소 문자 확인 6) isX 계열 문자열 함수 7) statwith(), endwith() - statwith() 특정 문자열로 시작하는..

[python] 9. 모듈과 패키지

[python] 9. 모듈과 패키지 1. 모듈 - 코드의 특정 부분을 분리해서 따로 모아놓은 것 - 파일 하나를 1개의 모듈로 본다. - import 문을 통해 모듈 사용이 가능하다. - 가독성을 위해서 맨위에 import문을 넣는다.2. 모듈의 필요성 - 프로그램을 구조화 하기 위해서 필요하다. 3. 모듈 import 방법 1) 모듈을 통째로 import - import 파일명 - 일반 적으로 모듈은 파일명과 일치한다. 2) 모듈에서 특정 함수를 사용 하는 방법 - from 모듈이름 import 함수- from 모듈이름 import 클래스명 3) 모듈 이름 별칭하기 - import os as winos-> os 모듈을 winos으로 변경하여 사용 4. 사용자 모듈 만들기 - 모듈을 만든다는 것을 pyt..

[python] 8. 함수

[python] 8. 함수 1. 함수는 왜 필요한가? - 코드의 재사용 - 재 사용성 때문에 코드의 생상성과 품질이 향상된다. 2. 함수의 정의 - 함수 선언은 def로 시작 - 함수의 시작과 끝은 들여쓰기로(indentation)로 구분 - 시작과 끝을 명시하지 않음, 들여쓰기가 사라지면 끝난 것이다. 일반적으로 2줄을 뛰어 주는 것으로 구분한다. - 함수 이름 뒤에오는()안에 파라미터를 생성, 파라미터는 존재 하거나, 존재 하지 않아도 된다. - 함수 끝에 return 문은 있어도 되고 없어도 된다. 없으면 none이 리턴 된다. 3. 함수에 파라미터 및 return 1) 파라미터 넘기는 방법 (1) 위치 파라미터 - 정해진 파라미터 위치에 맞게 인자를 넘겨야 한다. (2) 키워드 파라미터 - 파라미..

[python] 7. 코드 구조2 및 zip ,딕셔너리 setdefault, range 사용

[python] 7. 코드 구조2 및 zip ,딕셔너리 setdefault, range 사용 1. 사전 퀴즈 - 스트링의 구성요소인 문자 하나하나를 반복적으로 접근할 때 사용하는 키워드는 if문이다(x) for ~in 을 상용한다. - 무한반복을 이용한 데몬 프로그램을 작성할때 while True: 문법을 사용한다 (0) 2. 반복문 - while문 - if문과 유사하다. - 조건이 맞으면 코드를 수행한다. 3. zip()함수 - zip()함수를 사용하여 여러 시퀀스 병령로 순회를 한다. - 여러개의 리스트를 병렬로 묶어서 표현된다. - 가장 짧은 리스트의 시퀀스에서 멈춘다. 4. range()함수 - 특정 범위의 값을 생성 할때 사용합니다. - range(start, stop, step) - start..

[python] 6. 코드의 구조1

[python] 6. 코드의 구조1 1. 코드의 구조 - 프로그램의 3가지 구조로 이루어진다, 이것을 구조적 프로그래밍 이라고 한다. - 3가지 구조(순차구조, 선택 구조, 반복 구조) 2. 비교 연산자 3. 논리 연산자 - 결과는 True 와 False - 연산자는 : 1) and : 곱하기와 같다. 2) or : 더하기와 같다.(첫번째 값이 True이면 뒤값은 보지 않는다) 3) not : 반전이다. 3. 선택 구조에서 사용되는 구문 1) if 문 - 참일 때만 수행 되는 구문이다. Ex) score = 100if score >= 90:print('grade A') 2) if ~ elif ~ else 다중 구문- 여러개의 조건문을 사용 하기 위해서 사용된다. Ex) score = 100if score..

[python] 5. 딕셔너리(Dictionary)

[python] 5. 딕셔너리(Dictionary) 1. 사전 테스트 - 여러 데이터를 하나로처리 할수 있는 자료 구조를 컬렉션이라고 한다. - 파이썬에서 컬렉션은 대표적으로 리스트와 딕셔너리가 있다. - 키/값 쌍으로 데이터를 표현하는 방식은 일반적으로 데이터를 다루는 형식으로 널리 사용되고 있다. - 딕셔너리 아이템낀리는 순서가 없다 2. 딕셔너리(Dictionary) 1) 정의 - 키/값 쌍으로 데이터를 관리 - 리스트와 유사하지만 익덱스 대신 키를 통해 값을 찾는다. 2) 형태 - key : value 쌍으로 데이터 리스트를 만든다. >> convert = {'mother':'엄마', 'father':'아빠'}>> convert['mohter']엄마 3. 딕셔너리에서 제공하는 메소드 사용법 1) ..

[python] 4. 리스트와 튜플

[python] 4. 리스트와 튜플 1. 리스트 1) 리스트의 특징 - 파이썬에서 리스트는 원하는 모든 데이터를 담는 컨테이너 - 리스트의 아이템은 변경이 가능하다. - 리스트의 아티템 형태는 정해 지지 않는다. - 리스트의 아이템은 0부터 시작하는 인덱스로 순서를 가진다. - 리스명[0:1]을 통해서 문자열 처러 sublist 추출이 가능하다 2) 리스트 아이템 조작 함수 (1) 리스트 아이템 삽입 - insert() - 리스트명.insert(index, data)함수를 통해서 데이터 변경이 가능하다 (2) 리스트 아이템 추가 - append() - 리스트명.append(data)함수로 데이터를 마지막에 추가 (3) 리스트에서 아이템 삭제 - remove() - 리스트명.remove(data) - de..