분류 전체보기
파이썬 강좌 5편. 조건문(Condition Statements)
파이썬 강좌 5편. 조건문(Condition Statements)
2013.09.241. 조건문(Condition Statements) 이번에는 조건문(Condition Statements)에 대해서 알아보도록 하겠습니다. 조건문이란 말 그대로 조건의 결과에 따라서 실행되는 문장이 결정됩니다. 파이썬에서의 조건문은 바로 if문으로, 이 if문을 사용하면 조건식이 참(True)이냐 거짓(False)이냐에 따라 실행되는 문장을 다르게 만들 수 있습니다. 우선은 if문의 구조부터 보도록 하겠습니다. if 조건식: 문장 위의 구조를 보시면, 조건식이 참(True)과 거짓(False)으로 나뉘는데 주로 논리 연산자나 산술 연산자 등이 많이 쓰입니다. 예를 들어서, '만약에 변수 a의 값이 5보다 클 경우~'라는 조건을 만들어주고 싶으시면 'if a > 5:'라고 써주시면 됩니다. 주의하실 점은,..
파이썬 강좌 4-6편. 부울(Bool)
파이썬 강좌 4-6편. 부울(Bool)
2013.09.121. 부울(Bool) 오늘은 부울(Bool)에 대해서 알아보도록 하겠습니다. 이 부울이란 녀석은 참과 거짓을 나타내는 자료형이며, 참은 True로, 거짓은 False로 표현이 됩니다. 이 부울을 보자니 도대체 어디에 사용되는 녀석인지 생각이 도저히 나지 않으시는 분들도 계실겁니다. 왜 부울이라는 개념이 존재할까요? 참과 거짓은 도대체 어디에 사용되는 것일까요? 이는 파이썬 내의 논리 연산자를 통한 논리 연산이나, 수치를 서로 비교할때 사용하는 비교 연산자의 결과로 사용됩니다. >>> 3 > 5 False >>> 4 >> 'a'=='b' False >>> 3.14!=3.14 False 위 예제에 쓰인 비교 연산자들을 차례대로 설명하자면, 1행과 3행에서는 어느게 더 큰가 작은가를 비교하는..
파이썬 강좌 4-5편. 사전(Dictionary)
파이썬 강좌 4-5편. 사전(Dictionary)
2013.09.081. 사전(Dictionary) 이번에는 사전(Dictionary)에 대해서 알아보도록 하겠습니다. 사전이란 우리가 흔히 알고있는 국어사전, 영어사전 등과 같이 단어와 뜻이 한 쌍이듯이 파이썬에서의 사전도 키(Key)와 값(Value)이 한 쌍으로 이루어져 있습니다. 이런 사전은 튜플이나 리스트와는 다르게 위치를 통한 인덱싱이 허용되지 않습니다. 그 대신, 키를 통해서 값을 찾을 수는 있습니다. 사전을 어떻게 만들 수 있는지 사전의 형식을 한번 보도록 합시다. >>> dic = {'name':'Smith', 'rank':1, 'average':97.5} >>> type(dic) >>> dic {'name': 'Smith', 'average': 97.5, 'rank': 1} 우선, 위 예제의 1행을 보시면..
파이썬 강좌 4-4편. 튜플(Tuple)
파이썬 강좌 4-4편. 튜플(Tuple)
2013.09.071. 튜플(Tuple) 이번에는 '튜플(Tuple)'에 대해 알아보도록 하겠습니다. 이 튜플이라는 녀석은 우리가 앞서 배웠던 리스트와 매우 비슷합니다. 튜플과 리스트가 서로 다른점이 있다면, 대괄호 대신에 소괄호로 묶어서 표현하며 리스트는 요소의 변경이 가능한 반면에 튜플은 요소의 변경이 불가능하다는 특징을 지니고 있습니다. 즉, 읽을 수는 있지만 쓸 수는 없는 것과 같은 것입니다. 우선, 아래의 예제를 통해 튜플이 어떠한 형태를 가지고 있는지 확인해보도록 합시다. >>> tuples = (1, 2, 3, 4, 5) >>> type(tuples) 위 예제의 1행을 보시면, 요소들을 소괄호로 묶었으며 쉼표(,)로 각각의 요소를 구분한다는 것을 확인하실 수 있습니다. 1행의 형식뿐만 아니라, 둘러싸고 있는 ..
파이썬 강좌 4-3편. 리스트(List)
파이썬 강좌 4-3편. 리스트(List)
2013.08.311. 리스트(List) 이번 편에서는 리스트(List)에 대해 알아 보도록 하겠습니다. 우리가 배울 파이썬에서의 리스트(List)란, 순서가 있는 값들의 나열이라고 할 수 있습니다. 리스트를 구성하는 값을 요소 혹은 원소라고 부르며 어떠한 타입의 값이든 리스트의 요소로 올 수 있습니다. 이는 한가지의 타입으로만 이루어진 리스트뿐만 아니라, 여러가지 타입의 데이터로 이루어진 리스트를 구성할 수 있다는 말입니다. 이러한 리스트를 만드는 방법은 간단합니다. 요소들을 대괄호로 둘러싸고, 요소와 요소의 사이에는 콤마(,)로 구분을 해주면 됩니다.>>> lst = [1, 2, 5, 'a', 'b'] >>> lst [1, 2, 5, 'a', 'b'] >>> type(lst) 리스트를 보니 왠지 모르게 편할것 같은 생..
파이썬 강좌 4-2편. 문자열(String)
파이썬 강좌 4-2편. 문자열(String)
2013.08.311. 문자열(String)이번에 알아볼 자료형은 문자열(String)이며, 문자열은 문자들의 모임, 문자를 나열한 것을 문자열이라고 합니다. 'a', 'b', 'c' 등과 같은건 문자라고 할 수 있지만 "abc"와 같이 문자들이 모이게 되면 이것을 문자열이라고 할 수 있습니다. 파이썬에서 문자열은 단일 인용부호(')나 이중 인용부호(")로 감싸주어 표현합니다. 주의하실 점은, 감싸줄 때는 단일 인용부호로 시작했으면 단일 인용부호로 끝나야 하며, 이중 인용부호로 시작했으면 이중 인용부호로 끝나야만 한다는 것을 기억하시기 바랍니다. 아래의 예는 모두 문자열이라고 할 수 있습니다. >>> type("ABCDEFGHI") >>> type('ABC') >>> type("1301##") 그리고 파이썬에서는 위 방법..
파이썬 강좌 4-1편. 수치 자료형(Numeric Data Type)
파이썬 강좌 4-1편. 수치 자료형(Numeric Data Type)
2013.08.261. 자료형(Data Type)은 무엇인가?이번 편에서는 자료형(Data Type)에 대해서 알아보도록 하겠습니다. 자료형은 말 그대로, 데이터의 형식을 말합니다. 파이썬에서는 수치 자료형부터 시작해서 문자 자료형, 튜플, 리스트, 사전 등 여러가지의 자료형이 존재하며, 자료형을 보고서 데이터가 어떠한 데이터의 형식인지 알 수 있습니다. 파이썬에 내장되어 있는 함수인 type이란 함수를 통해서 객체의 타입을 살펴보도록 하겠습니다. 이 type이란 함수는 객체의 타입을 보여주며, 아래와 같이 사용합니다. >>> type(33) >>> type(3.14) >>> type(['1', '2', '3']) >>> type(33331491491492) 위를 보시면 객체 33의 타입은 int로, 이는 정수(integ..
파이썬 강좌 3편. 변수(Variable)
파이썬 강좌 3편. 변수(Variable)
2013.08.241. 변수(Variable) 다른 언어들과 마찬가지로 파이썬에서도 변수(Variable)라는 개념이 당연히 존재하며, 이 변수라는 것은 임시로 혹은 영구적으로 값을 기억해두기 위한 저장소를 말합니다. 이러한 변수는 왜 필요한 것일까요? 이해를 돕기 위해 예를 하나 들어보도록 하겠습니다. 우리가 마을 근처의 마트에서 과자를 사려고 하여 천원 짜리 지폐를 들고 집 밖을 나섰다고 가정합니다. 근처 마트를 방문하고 나서 고른 과자의 가격이 600원이라고 하였을 때, 우리가 가지고 있는 돈인 1000원에서 600원을 뺀 나머지인 400원을 거스름돈으로 받게 됩니다. 이를 컴퓨터 상에서 표현한다고 한다면, 아래와 같을 것입니다.money = 1000 cookiePrice = 600 money = money - co..
파이썬 강좌 2편. 간단한 문법 살펴보기
파이썬 강좌 2편. 간단한 문법 살펴보기
2013.08.191. 간단한 출력 살펴보기 이번 편에서는 파이썬의 문법을 간단하게 살펴보도록 하고, 첫 시작은 간단하게 Hello, world!를 출력하는 코드를 살펴보도록 하겠습니다. 아래와 같이 IDLE에 입력하고 어떠한 결과가 출력되는지 유심히 살펴보도록 합시다. >>> print("Hello, world!") Hello, world! 코드만 보아도 어떠한 기능을 하는 코드인지 알 수 있을것 같죠? print는 말 그대로 출력 기능을 담당하는 함수입니다. 여기서 '함수'란 단어가 혹여나 수학 시간에 등장하는 함수를 일컫는게 아니냐는 의문이 들기도 하죠? 틀린 말도 아닙니다. 파이썬 상의 함수란 단어는 어떠한 입력 값을 넣어주면 그 입력 값에 대한 출력 값을 지닙니다. print 함수에 "Hello, world!"를..
파이썬 강좌 1편. 시작
파이썬 강좌 1편. 시작
2013.08.171. 시작이번에는 파이썬(Python) 강좌로 찾아뵙게 되었습니다. 다음 편부터 본격적으로 시작되는 파이썬 강좌에서는 어떠한 선행 지식도 필요 없이 아무것도 모르는 사람도 충분히 이해할 수 있도록 작성해 볼 생각입니다. 약간 무리가 있겠지만, 최대한 그러한 각오로 보다 쉽게 간단하게 설명하겠다는 것입니다. 작성되는 파이썬 강좌는 2.x 버전부터가 아닌 3.x 버전을 기준으로 설명되며, 필자가 파이썬을 누구에게 가르칠 실력은 되지 못하지만 그래도 최대한 이해하기 쉬운 내용으로 구성해보도록 노력하겠습니다. 서론이 길었네요. 우선은 파이썬에 대해 간략하게 알아보도록 하겠습니다. 파이썬은 1991년, 프로그래머인 귀도 반 로섬(Guido van Rossum)이 설계한 인터프리터식 언어입니다. 이 파이썬이라는 언..
리버스 엔지니어링 스터디 1편. PE(Portable Executable) 구조
리버스 엔지니어링 스터디 1편. PE(Portable Executable) 구조
2013.08.11[리버스 엔지니어링 스터디] Win32의 기본적인 파일 형식 PE(Portable Executable) 구조 오늘은 PE(Portable Executable)에 대해서 알아보도록 하겠습니다. PE라는 말을 들어보신 적이 있나요? 아마 이 글을 보고 계시는 분들 중에 리버싱 경험이 있으신 분들은 PE란 말을 이미 알고 계실겁니다. 우리가 쓰고 있는 윈도우즈 환경의 실행 파일 포맷을 PE라고 하며, "Portable"의 단어 뜻 그대로 의식성이 있으며 플랫폼에 독립적입니다. PE 파일은 굳이 확장자가 EXE인 파일만 일컫는게 아니며 SCR, SYS, DLL, OCX 등도 포함이 되고, 중간 파일인 OBJ 파일도 PE 파일이라고 간주합니다. PE 구조의 이해는 API 후킹, 압축 실행 파일 등과 같은 고급 리..
알고리즘 4-2강. 너비 우선 탐색(Breadth First Search)
알고리즘 4-2강. 너비 우선 탐색(Breadth First Search)
2013.08.07[탐색 알고리즘 강좌] 살펴보면서 전진하자! 너비 우선 탐색(BFS, Breadth First Search) 이번에는 너비 우선 탐색(BFS, Breadth First Search) 알고리즘에 대해 알아보려고 합니다. 우리가 전에 알게된 깊이 우선 탐색(DFS)과는 달리 스택을 이용하지 않고 큐를 이용하며, 너비 우선 탐색도 트리나 그래프에서의 탐색에 사용되는 알고리즘입니다. 이 너비 우선 탐색은 깊이가 1인 모든 정점을 방문하고 나서, 그 다음에는 깊이가 2인 모든 정점을, 깊이가 3인 모든 정점을 방문하는 식으로 계속 방문하다가 더이상 방문할 곳이 없으면 탐색을 마칩니다. 너비 우선 탐색은 깊이 우선 탐색과는 다르게 무작정 막힐때까지 탐색을 진행하는게 아니라, 이곳저곳 살펴보면서 탐색을 진행하는 것이..