SK shieldus Rookies 16기 (인프라 활용을 위한 파이썬 #01)

만두다섯개·2023년 10월 24일
0

SK 루키즈 16기

목록 보기
1/52
post-thumbnail

주요 정보

교육 과정명 : 클라우드기반 스마트융합보안 과정 16기
교육 정보 : '23. 10. 24. 인프라 활용을 위한 파이썬 과정 #1
교육 정리

교육 정리

1일차 : 파이썬 기초 및 환경구성

강사님의 첨언

  • 단일언어가 아닌 여러 언어로 보안 공부 접근할것
  • 프로그래밍 언어는 보안 공부의 기초가 된다
  • 파이썬 기반 취약점 진단 및 조치 추가 학습 예정

파이썬 특징(장단점, 특징)

  • 대화형 방식이라 원하는 내용 확인 가능
  • 풍부한 라이브러리 사용으로 확장성
  • 들여쓰기 방식
  • 웹 프로그래밍 - 웹 보안 부분이 보안분야 중점
  • 접착성 : 파이썬 매카니즘은 c로 구성되어 상호 접착 가능하다.
  • 변수 생성시 값을 입력하면 그 형태에 따라 변수 변경
  • 기본 라이브러리에 지원되지 않는 것들도 있음
  • 기존 단점이 느린 속도 3버전에서는 해결
  • 파이썬은 단일 스레드 사용. 해당 스레드에서만 자원 독점해 사용.
  • 멀티 스레드, 멀티 프레싱으로 구현해 극복 가능하지만, 타 언어에 비해 성능이 낮음. (라이브러로 해결한다)
  • 파이썬 공부할때 버전 확인(2버전과 최신 3버전의 호환 안될수 있음)
  • 파이썬 실행 방법 2가지 : 파이썬 직접 다운로드, 또는 플랫폼(아나콘다)에서 사용하기

다운로드 툴 목록

  1. 파이썬
    https://www.python.org/downloads/release/python-3120/
  • 64bit win ver 다운로드
  • path 설정 체크 후 설치
  • 장고, 웹 프로그래밍 사용시 – 파이썬 파이참(학생버전, 프로 버전 2개) 실습시 결재해 사용 추천
  1. 파이참 : 개발 툴
    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 실행
  1. Visual Studio Code
  • 무료 개발 플랫폼(파이참보다 불친절), 여러 확장자 설치 필요
  • 설치 전 파이썬 설치 필요
  • 파일 탐색기의 특정 위치에서 cmd 창 띄우기 - 파일 탐색기의 해당 위치의 주소 참에 cmd 엔터
  1. 아나콘다
  • 설치 (별다른 설정 없음)
  • 아나콘다 네비게이터에서 inall 표기된 것은 아직 설치가 안된 것, launch 설치된 것을 의미
  • 아나콘다에서는 주피터 노트북 설치 / 왜 파이참에서는 새로 주피터 노트북 생성시 실행하면 그때서야 다시 설치하는지? -> 파이참에서는 기본 주피터 노트북만 생성하고 가상 환경에서는 나머지 파일이 세팅이 안되서 그때서야 설치된다.
  • 아나콘다에서 만든 가상 환경 C 드라이브 저장 (C:\Windows\System32\cmd.exe)
  • 실행 방법
  1. Anaconda Prompt 실행 (아나콘다 가상황경 명령 프롬프트 실행)
  2. 아나콘다 가상환경 비활성화 명령어 cmd - conda deactivate
  1. 주피터 노트북
  • 주피터 노트북 설치
    (사전작업 : 파이썬 설치 및 프로젝트 생성 : python_study\pythonProject001)
  1. CMD - d: - cd python_study\pythonProject001
  2. 주피터 노트북 설치 pip install jupyter
  3. 주피터 랩 설치 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라는 변수는 서로 다른 변수

파이썬 인자 종류

  • 매개변수(Paramete) : 변수, 인자(Argument) : 호출 값
  • 인자 종류 : 디폴트 인수, 가변 인수, 키워드 가변인수, format 함수 (정리전까지 아래 블로그 참고(https://blog.naver.com/passionisall/221839121871)

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 된 상태를 의미한다. ????? 가상 환경 관련 추후 정리 예정

profile
磨斧爲針

0개의 댓글