반응형

분류 전체보기 209

파이썬 17. if문-1

이번 글에서는 프로그래밍에서 매우 중요한 조건문에 대해서 알아보도록 하겠습니다. 조건문 먼저, 조건문이란 프로그램에서 어떤 특정한 조건에 따라 그에 맞는 동작을 하도록 해주는 문법입니다. 예를 들어 "홍길동은 자신의 집에 들어가려고 한다." 라는 상황이 있다고 생각해봅시다. 보통 집에 들어가려면 도어락에 비밀번호를 입력하고, 이 비밀번호가 일치해야 문이 열립니다. 이때 비밀번호 입력 과정에서 사용하는 것이 바로 조건문입니다. "비밀번호가 일치하면 문을 열고, 틀리면 열지 않는다." 이렇듯 비밀번호가 일치하는가? 라는 조건에 따라서 '문을 연다' 또는 '열지 않는다'의 두 가지 행동을 취할 수 있습니다. 만약 이 조건문이 없다면 비밀번호가 틀리든 말든 문을 열어버릴태니 매우 위험한 상황이 되겠죠? 그럼 이..

파이썬 16. set관련 함수

이번 글에서는 set과 함께 사용할 수 있는 함수들에 대해서 알아보도록 하겠습니다. set관련함수 1. 값 1개 추가(add) add함수는 set자료형에 새로운 값 하나를 추가할 수 있습니다. 이때는 아래와 같이 코드를 작성해주시면 됩니다. set1 = {1, 2, 3, 4} print(set1) set1.add(10) print(set1) add뒤의 괄호 안에 추가하고 싶은 값을 입력하면, 기존의 set에 값이 추가된 것을 볼 수 있습니다. 2. 값 여러 개 추가(update) update함수는 add함수와 달리 여러 개의 값을 한 번에 추가하도록 해주는 함수입니다. set1 = {1, 2, 3, 4} print(set1) set1.update([10, 20, 30]) print(set1) 이때 주의해..

파이썬 15. set(집합)

이번 글에서는 Set자료형에 대해서 알아보도록 하겠습니다. set(집합) Set자료형은 기본적으로 우리가 수학에서 배웠던 집합과 같은 속성을 가지고 있다고 볼 수 있습니다. 집합의 가장 큰 특징은 아무래도 중복이 없다는 점과, 집합 안의 값들 간에 순서가 없다는 점을 들 수 있을 것입니다. 때문에 파이썬의 set자료형도 마찬가지로 위와 같은 특징을 가지고 있습니다. 그럼 이제 실제로 코드를 통해서 set을 선언해보도록 합시다. set1 = {1,123,4214,10,20,30,2,3,4,5,6, 6, 6, 6, 3, 3, 3} set2 = set("hello") print(set1) print(set2) print(type(set1), type(set2)) 일단 set자료형은 딕셔너리와 동일하게 중괄호(..

파이썬 14. 딕셔너리 관련 함수

이번 글에서는 딕셔너리와 함께 사용할 수 있는 함수에 대해서 알아보도록 하겠습니다. 딕셔너리 관련 함수 Key리스트 생성(keys) keys함수는 딕셔너리 내의 Key들을 모아서 하나의 객체를 반환합니다. dic1 = {'name':'홍길동', 'age':20, 'gender':'male'} print(dic1.keys()) 이 함수를 사용해서 Key들을 출력하면, 위와 같이 dict_keys라는 객체를 반환하게 됩니다. 이 객체를 리스트로 변환해서 사용할 수 있는데, 이때에는 아래와 같이 사용해주시면 됩니다. Value 리스트 생성(values) Key의 리스트를 생성하는 함수가 있으니 Value들을 모아주는 함수도 있을 것입니다. values함수는 딕셔너리 내의 value들을 모아서 하나의 객체로 만..

Buffer OverFlow 대응방안

Buffer OverFlow로 인한 프로그램의 비정상적인 실행을 막기 위한 대응 방안. 1. 스택 쉴드(Stack Shild) 함수 호출시 스택에 저장되는 return address를 Global RET이라는 특수 스택에 저장한다. 그리고 함수 종료시에 이 Global RET에 저장되어 있는 값과 스택의 return address를 비교해서 두 값이 다르면, 프로그램을 종료시키는 방법이다. 2. ASLR(Address Space Layout Randomization) 메모리공격을 어렵게 하기 위해서 스택, 힙, 라이브러리 등 데이터영역 주소들을 랜덤으로 프로세스 주소 공간에 배치하여 실행시마다 데이터 주소가 바뀌도록 하는 방법이다. 3. 스택 가드(Stack Guard) 스택내에서 return addre..

정보보안 2020.10.04

파이썬 13. 딕셔너리

이번 글에서는 딕셔너리 자료형에 대해서 알아보도록 하겠습니다. 딕셔너리 이전에 배웠던 리스트, 튜플들은 여러개의 데이터들을 한 곳에 저장하는 용도로 사용했습니다. 딕셔너리도 기본적으로는 이와 동일한 용도로 사용됩니다. 다만 두 자료형과 다른점은 딕셔너리는 key와 value가 한 쌍이 되어 이루어진다는 것입니다. 예를 들어 어떤 한 사람이 있다고 가정해봅시다. 이 사람에게는 이름, 나이, 성별, 주소 등등 여러가지 정보가 있을 것입니다. 이때 이사람의 이름이 홍길동, 나이가 20세라고 한다면 '이름'과 '나이'가 실질적인 이 사람의 정보, Value인 '홍길동'과 '20세'를 나타내는 Key가 되는 것입니다. 이 딕셔너리의 특이한 점은 리스트와 튜플이 인덱싱으로 값을 가져오는데 반해 Key값으로 Valu..

파이썬 12. 튜플

이번 글에서는 튜플에 대해서 알아보도록 하겠습니다. 튜플 튜플은 기본적으로 몇 가지 부분을 제외하면 리스트와 비슷한 자료형입니다. 먼저, 리스트와 튜플은 모두 여러 개의 자료들을 한 군데에 모아서 저장할 수 있습니다. 그리고 리스트는 데이터를 대괄호([ ])로 묶지만 튜플은 그냥 괄호( )로 묶습니다. 가장 큰 차이점은, 리스트는 안에 들어있는 값들을 수정, 삭제 등 내부 값을 바꿀 수 있지만 튜플은 내부의 값을 바꿀 수가 없습니다. 코드를 통해 튜플의 값을 변경하려고 시도해봅시다. tu1 = (1, 2, 3) tu1[1] = 10 이렇게 리스트에서처럼 인덱싱을 사용해 튜플의 값을 변경하려고 하면, 위와 같은 오류가 발생합니다. 이외에도 몇 가지 차이점이 더 있는데, 코드를 보면서 알아봅시다. #tu1 ..

파이썬 11. 리스트 관련 함수

이번 글에서는 리스트에 관련된 함수에 대해서 알아보겠습니다. 리스트 관련 함수 요소 추가(append) append함수는 리스트의 맨 뒤에 새로운 요소를 추가시키는 함수입니다. list1 = [3, 3.02, "123"] print(list1) list1.append(4) print(list1) list1.append(["asd", 123]) print(list1) 위와 같이 하나의 값을 추가할 수도 있고, 리스트를 새로 추가할 수도 있습니다. 요소 삽입(insert) insert함수도 append함수처럼 리스트에 새로운 요소를 추가하는 함수입니다. 다른점은 요소를 추가할 위치를 지정할 수 있다는 점입니다. list1 = [3, 3.02, "123"] list1.insert(2, "asd") print(..

파이썬 10. 리스트

이번 글에서는 리스트에 대해서 알아보도록 하겠습니다. 리스트 리스트는 파이썬에서 지원하는 자료형 중 하나로, 숫자, 문자 등의 데이터들을 한곳에 모아두는 자료형입니다. list1 = [1, [3, "123"], 3.03, "qwe"] 위와 같이 하나의 리스트 안에 정수, 실수, 문자열 등을 저장할 수 있습니다. 또한 또 다른 리스트 자체를 저장할 수도 있는데, 이것을 이중, 그 리스트안에 또 리스트를 저장하면 삼중 리스트라고하며 이러한 구조를 다중 리스트라고 합니다. 리스트를 만들 때에는 각각의 데이터들(이들을 요소라고 합니다.)을 쉼표로 구분하고, 전체를 대괄호([ ])로 묶어주시면 됩니다. 리스트는 여러가지 부분에서 문자열과 닮은 점이 있습니다. 리스트 연산자 먼저, 리스트는 문자열과 마찬가지로 연산..

반응형