반응형

전체 648

GoF의 디자인 패턴 개정판 (2015) IT서적 다운 책

디자인 패턴에 관해 가장 처음 읽었던 책은 한빛미디어에서 나온 GoF 디자인 패턴 이렇게 활용한다. 라는 책이었다. 사실 그 당시는 디자인 패턴에 대해 생소하기도 했고 그냥 대충 골라서 읽었던 책이었는데, 그리 큰 감흥은 없었다. 그리고 이 책을 읽고서 많은 혼란을 느꼈었는데 싱글톤 패턴에 대한 내용이었다. 얼마전에도 이 책을 잠시 들쳐봤는데 싱글톤 패턴의 의미가 좀 의아했다. 이 책은 싱글톤 패턴을 최대 N개로 객체 생성을 제한하는 것 이라고 했다. 내가 알고 있는 싱글톤은 생성 객체를 오직 하나로 제한한다는 것이었기에 매우 혼란스러웠다. 오늘 소개할 책은 매우 유명한 책이다. "GoF의 디자인 패턴 개정판" 이 책은 디자인 패턴의 고전이다. 모른다면 꼭 읽어보길 권한다. 이 책에서 싱글톤 패턴의 사용..

관심사/도서 2017.03.31

텐서플로우 tensorflow 설치 파이썬, GPU 이용

앞서 아나콘다 설치와 GPU연산을 사용하기 위한 CUDA 툴킷을 설치했다. 이젠 텐서플로우만 설치하면 바로 실습에 들어갈 수 있다. 앞에서 아나콘다를 관리자 권한으로 설치하지 않았다면 문제가 발생할 수 있으므로 관리자 권한으로 설치하지 않았으면 재설치하도록 한다. 아나콘다에서 텐서플로우를 그냥 설치할 수도 있고 가상환경을 이용해서 설치할 수도 있다. 가상환경을 이용한 설치 방법은 여기를 참고하도록 하고 여기서에서는 그냥 텐서플로우를 설치하도록 하겠다. 윈도우 커맨드 창을 열도록 한다. 우선 아나콘다가 제대로 설치되었는지 확인한다. python 3.5.2 | Anaconda 4.2.0(64-bi)... 이렇게 나오면 제대로 설치된 것이다. quit() 또는 ctrl+z로 빠져나온 뒤에 다음과 같이 입력하자..

파이썬 아나콘다 설치하기

얼마 전부터 텐서플로우를 윈도우에도 설치할 수 있게 되어 해당 환경을 만드는 방법을 정리한다. 파이썬은 오픈소스인 만큼 다양한 배포판이 있다. 그 중에 수학이나 과학에 관련된 필수 라이브러리를 묶어서 배포하는 버전이 아나콘다 버전이다. 기존 설치된 파이썬으로도 가능하지만 필요한 라이브러리가 생길 때 마다 추가적으로 설치작업이 필요할 수 있으므로 아나콘다 버전을 설치하는 것이 깔끔하다. 그리고 두 번째로 쿠다를 설치할 것이다. 쿠다는 연산을 할 때 GPU를 사용할 수 있도록 해주는 기술인데, 인공지능이나 과학기술의 연산에서는 CPU보다 GPU를 이용함으로서 훨씬 높은 성능을 낼 수 있다. 여기서는 쿠다 Toolkit과 쿠다 GPU 가속 라이브러리를 설치할 것이다. 따라서 본인의 그래픽 카드가 NVIDIA그..

한붓그리기 이해하기

어떤 도형을 그릴 때 선을 떼지않고 한번에 그릴 수 있는 도형과 한번에 절대 못그리는 도형은 어떤 차이가 있을까? 오일러의 한붓그리기는 이런 차이에 대한 공식이다. 우선 한붓그리기에 있어서 점과 선(변)에 대한 정의를 명확히 할 필요가 있다. ▲ 위와 같은 모양은 선(변)의 개수는 4, 점의 개수는 4개가 된다. 그렇다면 다음 도형은 어떤가? 중간에 X의 선이 생겼고 그 교점이 추가되었다. ▲ 선은 점과 점 사이에 있어야한다. 비록 직선이더라도 선위에 점이 있을 수는 없다. 따라서 이 도형의 선의 개수는 8, 점의 개수는 5가된다. 그러면 이번에는 위 도형이 한붓그리기가 가능한지 실험해보자. 아무리 그려도 한붓그리기가 안될 것이다. 그렇다면 다음 도형은 어떤가. 아주 쉽게 한붓그리기가 가능할 것이다. 하..

수학 2017.03.30

파이썬3 개별 프로젝트를 위한 가상환경 설정(윈도우)

파이썬을 설치한 후 다양한 패키지들을 설치해봤을 것이다. 주로 pip으로 설치하는데 파이썬은 개발주기도 빠르고 패키지도 패키지 버전에 따라서 호환이 안되거나 하기 때문에 패키지 버전을 신경써줘야 한다. 예를 들어 여러개의 프로젝트를 하다가 어떤 프로젝트에서 특정 패키지의 최신 버전이 필요하다고 해서 함부로 업데이트를 한다면 해당 패키지를 사용하는 다른 프로젝트가 먹통이 될 수도 있을 것이다. 이 밖에도 다양한 이유로 파이썬에서는 가상환경이 유용하기 쓰인다. 파이썬 3.3부터인가? 그 전까지는 virtualenv를 설치해서 독립된 개발환경을 설정할 수 있다. 3.3이후로는 venv라는 표준라이브러리가 이 역할을 대신한다. 우선 간단히 사용방법을 정리해보자. 가상환경 만들기 명령 프롬프트에서 다음 명령을 입..

엑셀 RANK 함수 이해하기

주어진 데이터들 간에 순위를 구하고 싶을 때 RANK함수로 쉽게 구할 수 있다. 그런데 RANK 함수는 엑셀 2007 이전 버전에서 순위를 구하는 함수였고 2007이후로는 RANK.EQ와 RANK.AVR함수 두 가지로 나뉘었다. (그래도 여전히 RANK함수는 사용할 수 있다.) 이 두 가지 함수 RANK.EQ와 RANK.AVG은 순위 표기법만 차이가 있고 동일한 함수다. 따라서 RANK.EQ만 이해해 놓은 후 RANK.AVG의 순위 표기법만 정리해 주면 되겠다. RANK.EQ(number, ref, [order]) 상식적으로 이해하기 쉽다. 쉽게 말해 ref로 지정된 목록에서 number가 가지는 순위를 반환해 준다. 우선 간단한 예를 들어보겠다. 위 표는 사람들의 키를 기록해 놓은 표다. 각 사람들의 ..

엑셀 2017.03.28

정규표현식 탐욕적 수량자에 대한 이해

탐욕적 수량자, 또는 욕심쟁이(greedy) 수량자라고도 한다. 이와 반대되는 것은 게으른(lazy) 수량자이다. 수량자에 대해서는 이전에 잠깐 언급했었다. 말 그대로 몇 개를 선택할지 결정하는 것으로 *, +, ?, {n}, {n,}, {n,m}등이 있다. 이런 수량자는 기본적으로 탐욕적(greedy) 수량자이다. 그렇다면 탐욕적이란 의미가 수량자에 어떻게 적용되는지 알아보자. 여기서 탐욕적이라 함은 백트래킹(backtracking) 알고리즘을 사용한다. 설명하자면 우선 정규 표현식을 검사할 문자열에서 전체를 한 덩어리로 보고 정규표현식과 매치되는지를 검사한다. 만약 매치되지 않는다면 끝에서 한 문자를 뺀후 다시 검사한다. 이렇게 뒤에서 하나씩 빼가면서 맞을 때 까지 검사해 나간다. 탐욕적 수량자 *이..

스타크래프트 무료로 풀린다네요.

간만에 반가운 소식입니다. 스타크래프트가 이번달 31일(2017년 3월31)부터 무료로 블리자드 홈페이지 다운로드 받을 수 있게 되었습니다. 정말 한국에서 역사적인 게임인데 이렇게 무료로 풀린다니 세월이 많이 흘렀구나 하는 생각이 듭니다. 벌서 20여년이 흘렀으니까 강산이 두번이나 바뀌었네요. 그런데 무료로 풀린데는 다 그럴만한 이유가 있습니다. 바로 업그레이드 판(스타크래프트 리마스터(startcraft remastered))가 올 여름에 나올 예정이라고 하네요. 그럼 리마스터드 버전이 무엇인가하면 기존 스타크래프트에서 크게 바뀌는 부분은 4K UHD를 지원하게 된다는 것입니다. 스타크래프트가 처음 나올 당시 해상도는 15인치, 17인치에 맞춰서 나왔습니다. 지금은 대부분의 모니터가 기본 20인치가 넘..

관심사/게임 2017.03.27

구조체 멤버 맞춤(struct member alignment) C++

아시는 분들도 계시고 모르시는 분들도 계실테지만 오늘은 구조체에 대한 내용을 분석해 보려합니다. 구조체는 일종의 데이터의 집합입니다. 그리고 클래스가 구조체의 업그레이드라고 아시고 계실 겁니다. 따라서 여기서 다루는 내용은 클래스에도 해당되는 내용입니다. 구조체 멤버 맞춤이란 구조체에 선언되는 멤버들이 메모리에 할당될 때 어떻게 할당되는가를 말합니다. 비유하자면 필통에 연필, 자, 지우개 등을 넣을 때 어떤 순서로 어떻게 넣는지에 대한 것과 비슷합니다. 데이터 구조 정렬의 정의 우선 한가지 실험을 먼저 해보겠습니다. Visual Studio c++ 환경입니다. 구조체의 크기 실험 ▼다음은 위 코드의 결과입니다. 코드에 정위된 두 구조체는 멤버의 선언 순서만 다르지 멤버 구성은 동일합니다. 그럼에도 구조체..

프로그래밍/cpp 2017.03.26

엑셀 OFFSET 함수 활용하기

여기서 OFFSET이란 말은 기준으로부터 얼마나 떨어져 있는지를 나타내는 의미로 쓰입니다. 공학쪽에서는 편차라고도 하죠. 아마 표준 편차라는 말은 많이 들어보셨을 겁니다. 아무튼 엑셀에서도 이 의미대로 이해해 주면 될 겁니다. 이 함수에 전달되는 인수가 좀 많은데 크게 염려하실 필요 없습니다. 그냥 이해하면 됩니다. OFFSET(Reference, Rows, Cols, Height, Width) 우선 이 함수의 하는 일은 어떤 기준이 되는 셀로부터 전달된 Rows값과 Cols값 만큼 떨어진 셀을 반환해 줍니다. Rows는 행이고 Cols는 열이죠. 이 행과 열의 값은 절대값이 아닌 상대적인 편차(OFFSET)을 의미합니다. 즉 얼만큼 떨어졌냐를 지정하는 것이죠. 그럼 예를 들어보겠습니다. OFFSET 기..

엑셀 2017.03.25
반응형