목록Code (32)
Data Analysis for Investment & Control
본 내용은 도서 의 내용을 참고하였습니다. 상태관리(State management)란 웹 페이지 요청과정에서 저장 유지되어야 할 상태 정보를 관리하는 프로세스이다. 상태 정보는 웹 페이지 요청 과정에서 생성되는 정보로서 웹 페이지가 정해진 로직대로 정상적으로 동작하는 데 필요한 모든 형태의 정보를 말한다. 예를들면, 다음과 같은 것들이 있다. - 인증 정보- 권한 정보- 회원 정보 상태 관리 옵션은 상태 정보의 저장 위치에 따라 클라이언트 측 상태 관리 옵션과 서버 측 상태 관리 옵션으로 나뉜다. 클라이언트 측 상태 관리 옵션 다음과 같다. - 숨겨진 필드, Hidden Field- 뷰 상태, View State- 컨트롤 상태, Control State- 쿠키, Cookie- 쿼리 문자열, Query S..
MySQL에서 사용하는 Table의 Columne 속성이 DateTime 형일 경우 Null이 허용되도록 해 놓았다면, 데이터가 삽입 되었을 때 DateTime 항목이 Null로 삽입될 경우 MySQL Connector로 .Net에서 읽어올 때 에러가 발생한다. Unable to convert MySQL date/time value to System.DateTime 이 문제를 해결하기 위해 구글링을 하면 Connection 설정에서 'Allow Zero Time=TRUE'를 추가하라고 조언해주어 그대로 따라하면 해결되는 것 처럼 보인다. 하지만 Connector를 통해 MySQL 테이블을 읽어 오게되면 DateTime 속성은 .Net의 System.DateTime으로 읽혀지는 것이 아니라 MySqlDat..
이 포스트는 개인적으로 Python을 공부하는 과정에서 추후 리마인드를 위해 작성합니다. Python을 이용해서 웹 크롤링하고 유효한 정보를 추출하게 된다면 이를 정리해서 DB에 저장해야 한다. 이번 포스트에서는 Python에서 MySQL 서버에 접속하여 데이터를 입출력하는 내용을 다룰 것이다. MySQL은 C/C++이나 C# 등의 언어로 접근할 수 있도록 하는 Connector를 제공한다. 마찬가지로 Python에도 Connector를 제공하는데, 이에 대한 설명이나 설치 방법, 설치 파일 등은 다음의 링크를 참조하자. >> MySQL Connector/Python Developer Guide 다운로드 사이트에서 설치된 Python 버전과 OS를 확인하여 적당한 것을 받아 설치한다. 나는 Windows..
이 포스트는 개인적으로 Python을 공부하는 과정에서 추후 리마인드를 위해 작성합니다. 이번 포스트는 지난 글에서 언급했었던 클래스의 사용이라는 주제로 작성하고자 한다. 다른 프로그래밍 언어와 마찬가지로 Python을 배울 때, 언어의 특징, 자료형, 제어문, 입출력 등을 배우게 되는데 클래스 형태의 프로그래밍도 다른 기초 내용과 같이 잘 정리되어 있는 사이트들이 많다. 그 중 하나를 추천하자면 다음의 링크를 통해 클래스에 대한 기초적인 내용을 학습하기 바란다. >> 파이썬 프로그래밍의 핵심, 클래스 여기서는 클래스를 코딩할 때 다음과 같이 유의해야 할 사항들을 중심으로 정리하려고 한다. - 기본 인자(Parameter) self- 생성자 __init__(self)- 멤버변수 선언 기본 인자 self ..
이 포스트는 개인적으로 Python을 공부하는 과정에서 추후 리마인드를 위해 작성합니다. 이번 포스트는 지난 포스트(BeautifulSoup4를 이용한 크롤링 준비하기)의 연장으로 웹 크롤링을 하기위해 기본이 되는 HTML 문서의 특정 태그 파싱에 대해 알아보고자 한다. 이를 위한 HTMLParser라는 모듈을 사용할 것이다. HTMLParser가 Python 기본 라이브러리인지 헷깔리는데, 만약 C:\Python27\Lib\site-packages\ 에 HTMLParser.py가 없다면 다음과 같이 PIP를 이용해 설치하자 이미 어느 정도 작성이 되어있는 코드를 가지고 설명을 할 건데, 이 코드는 class 형태로 작성이 되어 있다. Python의 class에 대한 설명은 따로 포스트를 작성할 예정이니..
이 포스트는 개인적으로 Python을 공부하는 과정에서 추후 리마인드를 위해 작성합니다. 이번 글에서는 평소부터 관심 있었던 웹 크롤링Web Crawling이라는 주제를 가지고 Python을 이용하여 구현해 보는 것을 다루어 보는데, 그 과정에서 필요한 몇 가지 라이브러리를 소개하고자 한다. 구글링을 통해 Python 웹 크롤링이라는 것을 검색해 보면 나오는 라이브러리가 BeautifulSoup과 Scrapy라는 것이 있다. Scrapy에 대해서는 나중에 기회가 되면 따로 다루기로 하고, BeautifulSoup이라는 것은 웹 페이지의 Html 포맷 문서를 처리하기 쉽게 전처리 해주는 라이브러리라고 알려져 있는데 이를 이용해 특정 웹 사이트의 웹 문서를 얻어오는 것을 다루어 보고자 한다. 우선 PIP를 ..
이 포스트는 개인적으로 Python을 공부하는 과정에서 추후 리마인드를 위해 작성합니다. 지난 글(Python 개발환경 설정)에 이어 Python을 개발하기 위한 환경을 설정하는 작업을 해보자. 지난 시간에 한대로 Python을 설치하면 기본적으로 Python 명령 코드를 실행하기 위한 콘솔 창과 기본적인 에디트 환경(IDLE)을 제공하지만 본격적으로 프로그래밍을 하기에는 많이 부족해 보인다. 그래서 보통 다른 통합 개발 환경을 많이들 사용하는데, 대표적으로 이클립스Eclipse를 설치하고 Python 개발에 맞춰서 세팅을 한다. 여기서는 PyCharm이라는 Python을 위한 전용의 프로젝트 레벨의 프로그래밍 에디터를 설정하는 법을 기록해 둔다. 우선 다운로드는 다음의 링크를 통해 받는다 : https..
이 포스트는 개인적으로 Python을 공부하는 과정에서 추후 리마인드를 위해 작성합니다. 사실 Python을 처음 접했을 때를 떠올려보자면 2007년도 석사 1년차에 AI 수업을 들었을 때 Python을 이용한 과제 제출이 있었기 때문이다. 당시 교수님은 버클리 공대에 일년 정도 가게시면서 제어 공학의 트렌드가 AI 쪽으로 흘러가고 있다라는 걸 인지하시고 학교로 돌아와 비선형 제어에서 인공지능 쪽으로 선회하셨는데, 그 당시에는 Python이라는게 그저 학교에서 장난처럼 가볍게 느껴져서 이렇게 까지 활용도가 높아질 거라곤 생각하지 못했다. (그러니 내 통찰력이 그 정도 수준인 거지.ㅋㅋ) 원래부터 인공지능에는 관심이 있었지만 익숙해 지는 속도가 너무 느려 금방 흥미를 잃었는데, 지금 생각하면 그 때 꾸준히..
프로그램을 개발하다보면 특정 설정값을 저장시켜야 할 때가 있는데 C++에서는 *.ini 파일에 Window API 함수를 이용해서 기록하거나, 따로 txt 파일을 생성하여 기록할 수도 있다. 또한 xml을 핸들링 할 수 있는 라이브러리를 이용해서 저장하기도 하는데, C#에서는 System.Configuration을 추가하여 사용하는 방법이 있다. 파일은 *.config의 확장자를 가지고 xml 포맷으로 저장이 되는데, 간단히 사용법을 정리해 본다. 사용하고자 하는 cs 파일에 다음과 같이 참조 추가를 한다. using System.Configuration; 솔루션 탐색기에서도 참조 트리에서 [마우스 우클릭] - [참조 추가] - [.NET] 탭 - [System.Configuration] 선택 후, 확인..
프로그램을 구현하다보면, 각종 설정파일이나 dll 파일들의 프로젝트의 기본출력 경로인 실행파일 폴더에 같이 놓아야 하는 경우가 종종있다. 이 경우 해당 경로를 얻어와야 하는 일이 가끔 생기고는 하는데, 이를 얻어오는 함수를 정리하고자 한다. ATL의 CString 클래스를 사용하여 다음과 같이 구현한다. CString get_exe_path() { CString strPath; GetModuleFileName(NULL, strPath.GetBuffer(MAX_PATH), MAX_PATH); strPath.ReleaseBuffer(); return strPath.Left(strPath.ReverseFind('\\' )+1); } 물론 CString 대신에 char 배열을 사용할 수도 있을 것이다.