전체 글 (30) 썸네일형 리스트형 자료형과 연산의 관계 피연산자의 자료형 일반적으로 연산을 하기 위해서는 피연산자가 필요하다. 덧셈과 같은 이항 연산자의 경우에는 두 개의 피연산자가 필요하다. C언어에서는 피연산자의 자료형을 제대로 알아야 해당 피연산자 간에 오류없는 연산이 가능하다. 지금부터 피연산자의 종료에 따른 연산 형태를 먼저 알아보겠다. 상수와 상수 상수와 상수 연산은 컴파일되면서 기계어 명령으로 변환되지 않고, 연산 결과에 해당하는 숫자로 변경된다. 간단하게 예를 들어서 확인해보자. 아래와 같은 연산이 있다면 이 연산은 덧셈 명령어로 기계어 번역이 되지 않고 10이라는 숫자로 변환된다. 5 + 5 따라서 상수와 상수 연산은 컴파일러에 의해 연산이 이루어지기 때문에 실제 프로그램 실행 시 연산이 이루어지는 다른 연산들과 차이가 있다. 하지만, 컴파일.. 프로그래밍 기초 프로그램(Program) 프로그램은 보통은 확장자가 '.exe'인 파일을 의미한다. 이러한 파일을 실행 파일이라고 하며, 실행 파일은 컴퓨터가 작업할 내용을 컴퓨터가 이해할 수 있도록 기계어로 만들어졌다. 기계어란 2진 숫자로 이루어져 있으며, CPU가 직접 사용할 수 있는 형태의 명령문이다. 프로그래밍 언어(Programming Language) 실행 파일은 기계어로 만들어졌다고 했다. 하지만, 기계어는 사람이 이해하기는 너무 어렵기 때문에 기계어를 사용하여 프로그램을 작성하는 것은 어려운 일이다. 그래서 사람이 사용하기 쉬운 언어를 사용하기로 했는데, 이것이 바로 프로그래밍 언어이다. 프로그래밍 언어로 코드를 작성하고, 코드를 컴파일러(Compiler)를 사용하여 기계어로 번역한다. 컴파일러가 일종의.. C언어 기초 with Do It C언어 입문 내가 프로그래밍 언어로서 처음 접하게 된 언어는 C언어이다. 처음 접했을 때에는 어떻게 공부해야 할지, 어떤 교재를 사용해야 할 지 막막하기만 했다. 그래서 처음 시도한 공부 방법은 아무 책이나 구매하여 무작정 읽고 무작정 예제를 치는 방식으로 공부하는 것이었다. 이러한 방법으로 조금은 C언어의 문법이 무엇인지 알게 되었다. 하지만, 그것만으로는 부족했다. 내가 원하는 건 C언어를 뿌리 깊이부터 이해하고 그 이해를 바탕으로 문법을 제대로 활용하는 것이었다. 그러기 위해서는 컴퓨터 구조와 연계하여 C언어를 이해할 필요가 있다고 느꼈고, 그에 맞는 교재를 열심히 찾은 끝에 'Do It C언어 입문'을 만나게 되었다. 처음 정독을 하면서 느낀 점은 다른 교재들과는 다른 깊이 있는 설명, 뿌리부터 이해시켜주는 .. TIPS 무료 강의 정리 2018년도 Microsoft C++ MVP 김성엽 대표님께서 진행하시는 TIPS 무료강의를 수강하였다. 이 강의를 듣기 전과 듣기 후로 나의 C언어의 깊이가 달라졌다. 정말 알찬 내용과 C언어를 뿌리부터 이해할 수 있도록 해주는 명강의였다. 이 강의는 앞으로도 계속 된다고 한다. C언어를 알고 있더라도 이 강의를 듣게되면 새롭게 느껴질 것이다. 그렇기 때문에 이 강의를 적극 추천하는 바이다. 말로만 하면 어떻게 C언어의 깊이가 깊어졌는지 모를수도 있기에 매 강의마다 강의 내용을 정리해놓은 글을 적은 네이버 블로그를 남겨놓겠다. https://blog.naver.com/parkour0071 Basic of Genetic Programing 유전 프로그래밍에 대한 기초 정보이다. 이는 유전 알고리즘과도 밀접한 관계가 있는 분야로 기초 정리 및 발표를 위한 ppt, pdf를 만들었다. ※ 참고 문헌 : 1) http://www.aistudy.com/biology/genetic/genetic_programming_hwang.htm2) https://ko.wikipedia.org/wiki/%EC%9C%A0%EC%A0%84_%ED%94%84%EB%A1%9C%EA%B7%B8%EB%9E%98%EB%B0%8D3) http://www.genetic-programming.com/ 7. 악성코드 진단/치료 모듈 분리 7.1 악성코드 진단 모듈 만들기 앞서 정리한 글에서 악성코드는 꾸준히 증가하고 있다고 하였다. 그렇다면 악성코드 패턴 또한 증가한다는 말이다. 만약에 악성코드 패턴이 백신 프로그램 내부에 존재한다면 악성코드가 증가할때마다 백신 프로그램을 수정하여 재배포하여야 하는 불편함이 존재한다고 했다. 이를 방지하기 위하여 악성코드 패턴을 'virus.db' 파일로 따로 분리하였다. 백신 프로그램에는 악성코드 패턴 말고도 자주 수정이 되어야 하는 것들이 존재한다. 가장 빈번한 수정이 필요한 것은 바로 악성코드 진단/치료 기능이다. 이번 글에서는 악성코드 진단/치료 기능을 분리하는 방법을 알아보겠다. 7.1.1 MD5 진단 모듈 만들기size = os.path.getsize(fname) if vsize.count(s.. 6. 악성코드 패턴 분리하기 6.1 악성코드 패턴을 별도 파일로 분리6.1.1 virus.db 파일 생성 'antivirus.py'의 VirusDB에 담긴 내용을 별도의 파일인 'virus.db'로 분리한다. 파일에 저장된 악성코드 패턴의 구성은 '악성코드 파일 크기:MD5 해시:악성코드 이름'이다. 이렇게 별도의 파일로 만듦으로써 기존의 VirusDB에 저장되어 있던 악성코드 패턴을 필요없으므로 다 지운다. 6.2 virus.db 파일에서 악성코드 패턴 로딩6.2.1 virus.db 파일에서 VirusDB로 악성코드 패턴 로딩 'virus.db' 파일에는 악성코드 패턴이 한 줄 단위로 저장되어 있다. 이 파일로부터 악성코드 패턴을 로딩하는 함수를 따로 만든다. 아래의 'LoadVirusDB()'이다.def LoadVirusDB().. 5. 다양한 악성코드 진단/치료 5.1 새로운 악성코드 준비 이전에 전용백신 테스트를 위해 'eicar.txt' 파일을 만들어 사용하였다. 지금부터는 하나의 악성코드가 아닌 다양한 악성코드를 사용하여 백신 테스트를 해볼 것이기 때문에 또 다른 악성코드 파일을 준비해야 한다. 실제로 사용하는 악성코드 또는 실시간 감지기에 탐지되는 악성코드 테스트 파일은 사용하지 않고, 별도로 만들어서 사용하도록 하겠다. 파일 이름은 책에서 사용한 파일과 같은 'dummy.txt'이다. 'dummy.txt' 파일은 63바이트로 MD5 해시값을 미리 알아두어야 한다. MD5 해시값을 찾아주는 코드는 따로 'hmake.py'라는 이름으로 만들어 두었다. import hashlib import sys def hmake(): if len(sys.argv) != .. 이전 1 2 3 4 다음