주요 정보
교육 과정명 : 클라우드기반 스마트융합보안 과정 16기
교육 정보 : '23. 10. 24. 인프라 활용을 위한 파이썬 과정 #1
교육 정리
교육 정리
1일차 : 파이썬 기초 및 환경구성
강사님의 첨언
- 단일언어가 아닌 여러 언어로 보안 공부 접근할것
- 프로그래밍 언어는 보안 공부의 기초가 된다
- 파이썬 기반 취약점 진단 및 조치 추가 학습 예정
파이썬 특징(장단점, 특징)
- 대화형 방식이라 원하는 내용 확인 가능
- 풍부한 라이브러리 사용으로 확장성
- 들여쓰기 방식
- 웹 프로그래밍 - 웹 보안 부분이 보안분야 중점
- 접착성 : 파이썬 매카니즘은 c로 구성되어 상호 접착 가능하다.
- 변수 생성시 값을 입력하면 그 형태에 따라 변수 변경
- 기본 라이브러리에 지원되지 않는 것들도 있음
- 기존 단점이 느린 속도 3버전에서는 해결
- 파이썬은 단일 스레드 사용. 해당 스레드에서만 자원 독점해 사용.
- 멀티 스레드, 멀티 프레싱으로 구현해 극복 가능하지만, 타 언어에 비해 성능이 낮음. (라이브러로 해결한다)
- 파이썬 공부할때 버전 확인(2버전과 최신 3버전의 호환 안될수 있음)
- 파이썬 실행 방법 2가지 : 파이썬 직접 다운로드, 또는 플랫폼(아나콘다)에서 사용하기
다운로드 툴 목록
- 파이썬
https://www.python.org/downloads/release/python-3120/
- 64bit win ver 다운로드
- path 설정 체크 후 설치
- 장고, 웹 프로그래밍 사용시 – 파이썬 파이참(학생버전, 프로 버전 2개) 실습시 결재해 사용 추천
- 파이참 : 개발 툴
https://www.jetbrains.com/ko-kr/pycharm/download/?section=windows
- 다운로드 (전문 개발자용 python ide 다운로드 30일 무료 평가판)
- 설정 - 플러그인 - korean (한글)
- Vue.js / Node.js / Django 다운로드
- 프로젝트 생성 시 : 파이썬 코어 버전에 맞는 파일 + 라이브러리 가져온다.
- cmd - python 명령어 실행 : 전역 파이썬 / 파이썬 cmd 에서 커맨드창 생성 : 로컬 파이썬
- Shift + F10 : main.py 실행
- Visual Studio Code
- 무료 개발 플랫폼(파이참보다 불친절), 여러 확장자 설치 필요
- 설치 전 파이썬 설치 필요
- 파일 탐색기의 특정 위치에서 cmd 창 띄우기 - 파일 탐색기의 해당 위치의 주소 참에 cmd 엔터
- 아나콘다
- 설치 (별다른 설정 없음)
- 아나콘다 네비게이터에서 inall 표기된 것은 아직 설치가 안된 것, launch 설치된 것을 의미
- 아나콘다에서는 주피터 노트북 설치 / 왜 파이참에서는 새로 주피터 노트북 생성시 실행하면 그때서야 다시 설치하는지? -> 파이참에서는 기본 주피터 노트북만 생성하고 가상 환경에서는 나머지 파일이 세팅이 안되서 그때서야 설치된다.
- 아나콘다에서 만든 가상 환경 C 드라이브 저장 (C:\Windows\System32\cmd.exe)
- 실행 방법
- Anaconda Prompt 실행 (아나콘다 가상황경 명령 프롬프트 실행)
- 아나콘다 가상환경 비활성화 명령어 cmd - conda deactivate
- 주피터 노트북
- 주피터 노트북 설치
(사전작업 : 파이썬 설치 및 프로젝트 생성 : python_study\pythonProject001)
- CMD - d: - cd python_study\pythonProject001
- 주피터 노트북 설치 pip install jupyter
- 주피터 랩 설치 pip install jupyterlab (브라우져 자동 실행)
- 주피터 랩 파일 : example.ipynb 형식
- 주피터 서버가 실행되고 있어야 실행 가능 (추후 접속시 주피터 노트북 앱 실행)
코딩 관련 내용
변수 표기법 종류
1. 카멜 표기법 : AcidDream (클래스, 함수 표기시)
2. 스네이크 표기법 : acid_dream
파이썬 입문
- 변수 타입설정 안함
- '' 과 "" 동일
- 변수 선언시 빈칸이 없어야 한다.
- String 타입 변수 선언 [ spam = "spamString" ]
- bool 타입 변수 선언 [ my_bool = True ]
- 시스템 변수 중복 변수 선언 불가
- print 명령어 사용하지 않으면 항상 마지막 값만 출력됨
- 주석 표기 : Ctrl + / (싱글라인, 짧은 주석), """ ~ """ (멀티라인 주석)
- 함수 또는 세부내용 확인 : Ctrl + 해당 함수 클릭
- .lsalnumn() : 특수문자 존재시 False 출력
- .isupper() : 모두 대문자라면 True 출력
- input 함수는 string 으로 인자를 받는다
- 함수를 모으면 모듈, 모듈을 모으면 패키지, 패키지가 모이면 프레임워크가 된다
-함수 선언 def functionName :
- 함수 리턴 값 다중으로 넘겨 받기 가능
- 함수 반환 시 서로다른 형태 가능
- 함수 선언 후 동명으로 변수 생성시 해당 변수에 값이 덮여씌여진다
- 함수 선언 후 추후 내용 추가시 pass 입력해라
- 함수 return 값 뒤 아무것도 없으면 none 리턴된다 (타입이 none)
- 함수 선언 내부 변수 A와 해당 함수 밖의 A라는 변수는 서로 다른 변수
파이썬 인자 종류
1. 디폴트 인수 : 순서 고정된 인수
2. 가변 인수 : 다중 인수 얻을 수 있다. args 형태작성, 튜플 형태로 입력된 값을 받아온다. ( : 언패킹 기능)
- 형식
def functionName(* 매개변수):
___ 함수내용 ~
-예시
3. 키워드 가변인수 : 값을 딕셔너리로 받아온다. ** 사용
포맷 함수란? {}안에 할당한 값을 전달한다. 디폴트 : 입력 순서
- 튜플이란? 읽기전용 리스트. 배열과 다른점은 튜플은 읽기전용에 수정 불가
패킹이란? 한 변수에 여러 데이터를 넣는 것 (깔때기 같은것)
그럼 언패킹은? 한 변수의 값을 여러 변수에 넣는 것 (뒤집어서 깔때기 사용)
ex) testArg = 1, 2, 3 # testArg는 튜플 타입이 된다.
A, B, C = testArg # A, B, C에 1, 2, 3이 들어간다
추후 수정 예정
- 클래스, 상속(?)
- 자료구조 (#2 추가 예정)
- 전역변수, 지역 변수 차이 및 구분 법?
- 아나콘다 : cmd 창에서 쉘 맨 앞의 (base)는 activate 된 상태를 의미한다. ????? 가상 환경 관련 추후 정리 예정