Category Archives: Programming

MKBlog 관리자 입니다.
Python, C, C++, bash등 간단한 예제를 정리할 계획입니다.
인터넷에 매번 검색하기가 힘들어서 한번 찾은 정보를 짧게 정리할 계획입니다.
감사합니다.

[C/C++] 레퍼런스(참조자) vs. 포인터 (Reference vs. Pointer)

전문가를 위한 C++(출처1) 책을 읽다가 Reference(레퍼런스, 참조) 변수에 대해서 알게 되어서 정리하였다. 개인적인 느낌이지만 Reference 변수를 잘 사용하면 Pointer를 사용할 때 보다 실수를 적게 하면서 프로그램을 작성할 수 있을 것 같다. Pointer와 Reference 변수를 선언해서 사용하는 방법은 아래와 같다. 기본적으로 함수를 호출하면 변수를 복사해서 사용한다. 하지만 Pointer와 Reference를 사용하면 변수를 복사하지 않고 참조 전달 방식(Pass… Read More »

[C/C++] 수행 시간 측정 방법 (clock_gettime() 함수)

실험환경 OS: Ubuntu 18.04 코드를 작성하고 정확한 동작 시간을 확인해야 하는 경우가 있다. 이러면 clock() 함수를 사용해서 시간을 측정해도 되지만 Multi-Threads 프로그램을 사용하는 경우 잘못된 결과가 출력되는 경우가 발생한다. 이런 경우 clock_gettime(…) 함수를 사용해서 수행 시간을 측정하면 된다. 아래 코드 1은 clock_gettime(…) 함수를 사용해서 시간을 측정하는 예제 코드이다. 코드 1: 실행 시간을 측정하기 위한 코드… Read More »

[Python] Google Sheets 읽기

실험 환경 OS: Ubuntu Linux 18.04 Python Version: 3.7 gspread, oauth2client 설치 필요 $pip install gspread oauth2client 인증 과정 먼저 API를 사용하기 위해서 구글 개발자 콘솔에 접속해서 몇 가지 설정을 진행해야 한다. 아래 사이트에 접속한 다음에 그림에 따라서 인증 과정을 진행하면 된다. Web: https://console.developers.google.com/ 그림 2 Step 3의 Project Name은 원하는 이름을 선택하면 된다. 그림… Read More »

[Bash] 함수(Function) 사용하기

목적: 함수를 사용해서 결과 Return 하기 환경: Ubuntu 18.04 결과 설명 Bash에서 Function은 FUNC_NAME() { …코드… } 형태로 작성을 하면 됨 “$1”, “$2” 순서로 Function Parameter를 받을 수 있음  “$?”를 사용해서 함수 Return 값을 가져옴 Return의 경우 정수만 Return 할 수 있는 것으로 판단됨. String을 Return 하고 싶은 경우 Global Variable을 생성해서 결과를 저장하는 방식을… Read More »

[Bash] 현재 시간 출력하기

목적: 현재 시간을 알기 위해서 사용 환경: Ubuntu 18.04 코드 결과 설명 date +’FORMAT’ 을 사용해서 원하는 시간, 날짜 등을 확인 할 수 있음 (주의 사항) “date” 다음에 Space가 있어야 하며 +’FORMAT’에는 Space가 있으면 안 됨 FORMAT의 종류는 년도, 월, 일, 시간, 초 등 아주 다양함 (상세한 Format 종류는 출처 2 참조) 출처 https://www.cyberciti.biz/faq/how-to-read-time-in-shell-script/ https://www.cyberciti.biz/faq/unix-linux-getting-current-date-in-bash-ksh-shell-script/

[Bash] If/Else 조건문(Condition) 사용 방법

목적: if/else Condition(조건문)을 사용하는 방법 정리 환경: Ubuntu 18.04 코드 결과 설명 while true, if [ … ], 다음에 있는 “;”은 줄 바꿈을 하지 않고 사용하기 위해서 사용함. “do”, “then”을 줄바꿈해서 사용하는 경우 “;”를 제거해도 됨 if, elif, else 순서로 작성을 해야 함. if, elif 다음에는 “then”을 추가 후 코드를 작성해야 함  Condition(조건문)은 [ ]… Read More »

[Python] argparse 사용 예제

Python으로 작성한 코드를 실행할 때 특정 Argument를 추가해야만 실행이 가능하도록 코드를 작성하고 싶은 경우가 발생한다. Python에서 “argparse”를 사용하면 쉽게 Argument를 추가할 수 있다. Argparse 사용하기 아래 코드1은 Argparse를 사용하는 예제 코드이다. argparse.ArgumentParser(…): argparse를 사용하기 위해서 가장 먼저 해당 코드를 사용해서 Variable을 생성한다. VARIABLE.add_argument(…): 생성된 Variable에 add_argument(..)를 사용해서 Argument 옵션을 하나씩 추가한다. 위 2가지가 Argparse를 사용하는… Read More »

[Python] namedtuple (네임드튜플) 사용 (Struct like C)

namedtuple은 C언어 Struct와 같이 Value를 여러 개 저장해서 Variable 이름으로 접근이 가능하다. 개인적으로 C Struct와 비슷해서 사용하게 되었다. 출처 1에 따르면 namedtuple은 Python 기본자료형이 아니라고 한다. namedtuple을 사용하기 위해서는 아래와 같이 Collections를 추가해야 한다. from collections import namedtuple namedtuple 사용하기 출처 1에 제공하는 예제를 조금 변경하여서 아래 예제 코드를 하나 작성하였다.

그림1: namedtuple Example… Read More »

[Python] “cURL” CMD를 Python Request 모듈에서 로딩하기

“client URL (cURL: curl)은 다양한 통신 프로토콜을 이용하여 데이터를 전송하기 위한 라이브러리와 명령 줄 도구를 제공하는 컴퓨터 소프트웨어 프로젝트이다” (출처 1). 간단히 설명하면 Linux Terminal 등에서 데이터를 전송하기 위해서 사용된다는 의미이다. curl을 사용하여 특정 사이트에서 정보를 가져오는 작업을 Python을 사용하여 자동화하려고 하였다. 그 과정에서 curl CMD를 Python Requests 모듈이 사용할 수 있도록 변경하는 작업이 필요하다. curl… Read More »

[Python] 주식 종목 코드 및 가격 로딩 (Loading Stock Price and Code Number using Requests Module)

목적 네이버와 한국증권금융 홈페이지에서 주식 종목 코드 및 주식 종목 가격 읽기 Request 모듈 사용 방법을 알고 싶어서 만들어본 예제 코드 환경: Ubuntu 16.04 + Python3 Prerequisite Module(s): reqeusts, bs4, BeautifulSoup

설명 reqeusts.get() + reqeusts().post() 함수를 사용하면 웹사이트의 HTML을 로딩할 수 있음. POST에 해당하는 Data 값을 찾는 방법은 출처 2에 설명되어 있음. BeautifulSoup를 사용하면… Read More »