[C/C++] 매크로 함수 (Macro)

프로그래밍 시험 결과가 좋지 않아서 공부하게 되었다. 새롭게 배우거나, 아직 익숙하지 않은 부분을 기록으로 남기려고 한다. 개인적으로 프로그래밍을 하다 보면 동일한 코드를 계속 작성하는 경우가 있는데, 이러한 습관이 실수를 늘린다고 한다. 그래서 매크로 함수를 사용하면 코드가 간결해져서 좋고, 실수를 줄일 수 있다고 한다. (모든 분이 선호하는 방법은 절대 아니라고 한다) #include<stdio.h> //MK: 매크로 함수 사용 … Read more

[C/C++] ”와 “”의 차이 (Difference between ” and “” in C)

개인적인 사정으로 프로그래밍 시험을 보게 되어서 예상 문제를 풀어보면서 하나의 char에 대해서 ” (Single Quote)와 “” (Double Quotes)를 사용하면 다른 결과 값이 나와서 인터넷에 검색해 보았다.  ”(Single quote)의 경우 하나의 char에 대해 사용한다. “”(Double quotes)의 경우 여러 개의 char (Array of Chars) 다시 말해서 string에 사용한다. “”를 사용하여 char를 비교하는 부분을 작성했는데 이 부분에서 ”를 사용하지 … Read more

[Android Studio] 파일 사이즈 제한 오류 (The File Size Exceeds Configured Limit)

그림 1: File Size Exceeds Configured Limit 에러 화면 안드로이드 스튜디오를 사용하여 OpenGL ES 예제를 작성하는 과정에 대용량 OBJ (Wavefront) 파일을 프로젝트에 추가하면 “File Size Exceeds Configured Limit”이라는 에러가 발생하는 경우가 있다. 그림 1은 File Size Exceeds Configured Limit 에러가 발생하는 화면이다. 그림 2: Edit Custom Properties 메뉴 이동 화면 그림 3: 파일 크기 변경 … Read more

[OpenGL ES] Create Window 설명

Learn OpenGL 홈페이지는 GLFW 라이브러리를 사용하여 OpenGL 예제를 실행하였다. 저는 OpenGL ES를 공부하고 있어서 안드로이드 스튜디오에서 코드가 실행되도록 변경하였다. 지금부터 작성하는 코드는 모두 안드로이드 스튜디오(Android Studio 3.0)에서 작성하였다. 가장 먼저 안드로이드 스튜디오를 열어서 새로운 프로젝트를 하나 생성한다. 프로젝터를 생성하면 MainActivity Class가 자동으로 만들어진다. 안드로이드는 Activity라는 개념을 사용하여 화면을 구성한다. 화면을 구성하는 파일은 일반적으로 XML 파일 … Read more

[Python] GUI와 Multi-Threading 사용 (GUI + Multi-Threading)

목적: GUI (tkinter)와 Multi-Threading (threading) 사용 환경: Linux (Ubuntu 16.04) Python Version: 3.5.2 import queue #MK: queue를 사용하기 위해 추가 import threading #MK: threading을 사용하기 위해 추가 import time #MK: time을 사용하기 위해 추가 import tkinter #MK: tkinter(GUI)를 사용하기 위해 추가 class mainThread: def __init__(self): self.tk = tkinter.Tk(); def beginThread(self): self.queue = queue.Queue(); #MK: queue를 … Read more

[OpenGL ES] OpenGL/OpenGL ES 설명

시작~ 개인적으로 대학원을 다니면서 공부했던 부분을 정리하지 않아서 후회를 많이 했다. 그래서 새롭게 공부하는 자료들은 최대한 정리할 예정이다. 처음이 OpenGL ES이다. 본 자료 내용 Learn OpenGL 홈페이지의 내용을 기반으로 작성하였다(아래 출처 참조). 모든 예제는 Android Studio에서 실행되도록 수정하였다. 처음 공부를 하는 부분이라 최대한 이해한 내용만 작성할 예정이다. 영어를 잘하시는 분은 이 글을 읽지 마시고 Learn … Read more

[Python] GUI 폴더 위치 선택 (GUI asking directory path)

목적: GUI화면에서 특정 폴더 위치를 선택하여 해당 path 값을 알기 위해 사용 환경: Linux 3.10 (Centos) Python Version: 3.4 from tkinter import filedialog from tkinter import * root = Tk() root.dirName=filedialog.askdirectory(); print (root.dirName); 설치 yum install python34-tkinter 설명 filedialog.askdirectory()함수를 사용하여 선택한 directory path값을 return으로 받을 수 있음 filedialog.askopenfile(initialdir=’path’, title=’select file’, filetypes=((‘jpeg files’, ‘*.jgp’), (‘all files’, … Read more

[Python] csv 파일 쓰기 (csv file writing)

목적: 특정 데이트 값은 csv 파일에 작성하기 위한 방법 환경: Linux 3.10 (Centos) Python Version: 3.6 #Writing data on csv file import csv f = open(‘output.csv’, ‘w’, encoding=’utf-8′, newline=”) wr = csv.writer(f) wr.writerow([1, ‘mkblog’]) wr.writerow([2, ‘co’]) wr.writerow([3, ‘kr’]) f.close() 설명 open 함수를 사용하여 파일을 생성함 csv.writer()와 writerow()를 사용하여 csv 파일에 데이터 값 작성을 진행함 writerow()의 함수 parameter에 list[]값을 … Read more

[Python] String 문자 나누기 (splitting string)

목적: String에서  특정 문자 기준으로 string을 나누기 위해서 사용 환경: Linux 3.10 (Centos) Python Version: 3.6 #Splitting string import re testString=’MKblog_.co_.kr’; splitStringList=re.split(‘_’, testString); print(splitStringList); 설명 Regular Expression (re)의 split()를 사용하여 기존 string을 나누는 작업을 수행함 String을 split하여서 string list를 결과값으로 return함

[Python] 역방향으로 파일 읽기 (reading file backwards)

목적: 특정 파일의 내용을 끝에서 부터 읽기 위해서 사용 환경: Linux 3.10 (Centos) Python Version: 3.6 #Reading file from the end (file backward reading) from file_read_backwards import FileReadBackwards #Replacing ‘/tmp/file’ from FileReadBackwards() with FileReadBackwards(‘/mkblog/output.log’, encoding=”utf-8″) as frb: for l in frb: print(l) 설명 file-read-backwards를 설치 후 FileReadBackwards를 사용하면 파일의 내용을 끝에서 부터 순서대로 읽음 설치방법 $pip3 install file-read-backwards … Read more