티스토리 툴바



AForge.NET Framework

유전 알고리즘(Genetic Algorithm)을 C#으로 구현해보려고 하는데, 3년전이나 지금이나 C#으로 된 유전 알고리즘 코드는 C++ 코드에 비해서 많지 않은 것 같습니다. C#을 지원하는 플랫폼들은 더 많아졌는데 말이죠. 예전에 MATLAB으로 짠 코드를 C#으로 바꿔보려고 했던 기억도 있고 해서, 이번에 다시 검색을 해봤더니, AForge.NET Framework 라는 것이 있네요.



http://www.aforgenet.com/framework/ 



AForge.NET is an open source C# framework designed for developers and researchers in the fields of Computer Vision and Artificial Intelligence - image processing, neural networks, genetic algorithms, fuzzy logic, machine learning, robotics, etc.



  홈페이지 메인의 설명에 따르면, 'AForge.NET은 컴퓨터 비전과 인공지능 분야의 개발자들과 연구자들을 위해 구상된 오픈 소스 C# 프레임워크'라는 군요. 이미지 프로세싱, 뉴럴 네트워크, 유전 알고리즘, 퍼지 로직, 머쉰 러닝, 로보틱스... 어디서 많이 들어본, 그리고 제가 좋아하는 단어들만 다 들어있는 것 같습니다.ㅎㅎ


  본 Framework가 어떻게 응용이 되었나, 쓸만한가 싶어서 검색해보니, AForge.NET Framework를 이용해서 C# 프로그래밍을 하신 분들이 많이 계셨습니다. 아쉽게도 대부분은 영상과 증강현실 쪽으로 많이 적용하셨고, 유전 알고리즘 쪽으로 이용하신 분들은 많지 않은 것 같습니다만... ㅜ_ㅜ


            [ AForge.NET Framework 적용 사례 ]
[C#] Aforge.NET 이용하여 동영상 재생(1) (블루네군 블로그)
[C#] Aforge.NET 이용하여 동영상 재생(2) (블루네군 블로그)
증강현실 - Marker Detection 구현 (<Whatisthat>, 김대욱님 블로그)





다운로드 및 설치 

유용하게 잘 쓰고 있는 것을 알았으니, 어떤 것인지 나도 한번 써보자~
다운로드 및 소스 확인 고고!!





홈페이지에서 DOWNLOAD를 클릭하여 AForge.NET Framework를 다운 받자


  포스팅 현재, AForge.NET Framework 버전은 2.2.4이며, 다운로드 및 설치는 4가지 다운로드 링크 중, 상위 두 가지링크를 통해 진행하실 수 있습니다. 설치는 'Next'신공으로 손쉽게 ^_^*






클릭 들어 간다~ 쭉~쭉~쭉쭉~ 쭉~쭉~쭉쭉~ ㅋㅋㅋ





설치 폴더 내용 확인 

  설치가 무난하게 잘 이뤄졌다면, C드라이브 내부의 'Program Files' 안에 [ AForge.NET ]폴더가 생성되었음을 확인할 수 있을 것입니다. 아래 그림처럼, C:\Program Files\AForge.NET\Framework\Sources 폴더 내부를 살펴보시면, Framework 중에 유전 알고리즘을 다루고 있는 'Genetic'폴더가 있습니다.








  Genetic 폴더를 열어보니, 제법 익숙하고 반가운 단어들이 많이 보이네요~
  Chromosome, Fitness Function, Properties, Selection Algorithm....

  Genetic 솔루션을 실행시켜보겠습니다.




  References에 'AForge'와 'AForge.Math'가 있다는 것을 주목합시다.
  이 파일들은 C:\Program Files
Forge.NET\Framework\Release\ 에 있고, 소스 또한 C:\Program Files\AForge.NET\Framework\Sources\Math\ 에 있으니, 내용을 확인해봅시다.

  이로써, AForge.NET Framework의 'Genetic' 부분(유전 알고리즘)을 사용하거나, 소스코드를 들여다 볼 수 있는 준비가 다 되었습니다!!

 
AForge.Genetic.dll : C#코드의 이해와 활용 

  이 프레임워크를 활용하기 위해서는, Framework 설치 이후에, 새 프로젝트 창을 열고, 참조(References)에 AForge.Genetic.dll 을 추가한 다음, 마음껏 함수를 써주시면 되겠습니다.

  다만, 안에 어떤 함수가 있는지를 잘 알고, 또 그 함수가 내부에서 어떻게 처리를 하는지 알아야 자기 입맛에 맞게 쓸 수 있을 것 같습니다. 저도 결국은 제가 짠 코드를 C#으로 변환하는 것이 목적이기 때문에, 본 코드를 그대로 사용하기 보다는, 조금씩 수정해서 사용해야 할 것 같습니다.
  참고로, Visual Studio Team Edition/Professional Edition 사용하고 계신분들은 프로젝트 폴더 위에서 우클릭하셔서 [ View Class Diagram ] 기능을 이용하시면, 좀더 빨리 프로그램 구조를 이해하실 수 있습니다. (클래스 다이어그램이 완벽하게 나오진 않습니다 ㅎㅎ)

  그래도, 대충 훓어보니, 메소드명만 봐도 많은 공을 기울인 작품이라는 생각이 들어요~ 주석도 충실합니다. 유전 알고리즘을 C#으로 구현하고 싶으신 분들께 유익한 코드가 될 것 같습니다. : )
 
 
저작자 표시 비영리 변경 금지
Creative Commons License
Creative Commons License


까탈스러운 개발환경, 안드로이드

  Windows 용 안드로이드 개발환경을 구축해보신 분들은 아시겠지만, 대부분의 사람들이 익숙한 one-click installation과는 달리, 다양한 프로그램들의 조합으로 개발환경이 구성되기 때문에 처음 접하시는 분들은 개발환경 설정과정을 많이 낯설어 하십니다.

  Windows OS 상에서의 안드로이드 개발환경은 대략 아래와 같은 순서로 이루어집니다.
(안드로이드 개발환경 설정에 관해서는 이미 많은 포스팅이 있기 때문에 생략하도록 하겠습니다.)

1. Eclipse 다운로드 및 압축해제
2. JDK(Java Development Kit) 다운로드 및 설치
3. 환경변수(시스템) PATH 설정
4. Android SDK 다운로드 및 압축해제
5. Eclipse 상에서 ADT (Android Development Tools) Plug-In 인스톨


  Windows Phone 7의 개발환경이 딱 두번의 인스톨로 끝난다는 것에 비하면 굉장히 까탈스러운 개발환경인 것입니다.



이클립스 버전과 충돌하는 안드로이드 개발툴, ADT

  그런데, 문제는 이렇게 정성스럽게(?) 완료해 둔 개발환경이 그렇게 오래가지 않는다는데 있습니다.
  시간이 흘러, 이클립스 업데이트와 ADT업데이트를  업데이트를 반복하다 보면 다양한 에러 메세지를 보이면서 업데이트나 개발환경이 정상적으로 유지 되지 않는, 소위 안드로이드 개발환경이 "깨지는" 현상이 발생합니다.

  저 같은 경우는, 헬리오스(Helios) 버전의 몇가지 문제 때문에 갈릴레오(Galileo)를 계속 쓰고 있었는데, 이번에 대규모 업데이트를 좀 했더니, 다음과 같은 에러 메세지가 뜨면서 더 이상 진행이 되지 않았습니다.

사무실 PC는 물론이고, 제 개인 PC, 노트북까지 모조리 동일한 증상이 뜨더군요~


Eclipse 갈릴레오(Galileo)버전일 때, ADT 업데이트 시, 에러화면



  상당시간 본 에러를 처리하기 위해서 업데이트 순서나 버전을 바꿔가며 정상화를 시도해보았지만, 모두 허사였습니다. '어떻게 해야할까....?'




  정답은 역시나 구글링에 있었습니다.


  'stackoverflow'에 < Galileo and Android Plugin Error >라는 제목으로 저와 완전히 동일한 현상에 대한 질문이 올라와 있었습니다.
  정답은 정말로 허무하게도 최소한 헬리오스 이상의 이클립스가 있어야 인스톨이 진행이 된다는 것!
  (You need to have at least Eclipse Helios to proceed with the ADT installation.)

 


단 한줄로 설명된 명료한 해결법!
이클립스 버전을 업데이트 하면 된다고 한다.
(출처 : http://stackoverflow.com/questions/8551188/gallieo-and-android-plugin-error)





좀더 쾌적한 개발환경이 제공되기를 기대하면서

  사실, 이클립스 그 자체는 안드로이드 개발을 지원하지 않습니다. 이클립스에 각종 'Plug-In'을 설치하고 세팅을 거쳐야만 안드로이드를 개발할 수 있는 환경이 됩니다. 따라서, 이클립스와 안드로이드 개발 툴(ADT, Android Development Tools)는 독립적으로 개발이 되고 릴리즈 됩니다.
  따라서, 새롭게 릴리즈 되는 안드로이드 개발 툴(ADT)이 모든 이클립스 버전에 호환이 되지 않을 수도 있습니다. 오히려 오픈진영의 특성을 감안할 때, 안드로이드 버전업의 빠른 속도를 오히려 잘 지원하고 있는 편일 수도 있습니다.

  그렇지만, 일반 사용자 입장에서는 한번 세팅한 개발환경은 단순한 업데이트 진행만으로도 유지가 되어줬으면 하는 바람이 있습니다. 적어도 새로운 업데이트나 인스톨을 수행할 때, 버전체크는 하지 않더라도 주요 공지사항을 알림으로라도 알려준다면, 사용자들이 자신에게 해당되지 않는 업데이트를 수행한 이후, 개발환경 복구가 안되서 완전히 새로 개발환경을 구축하는 시간낭비를 줄여주지 않을까 합니다.
  혹자는 안드로이드 개발 홈페이지를 참고하면 된다고 하실 수도 있지만, 그런 것들이 하나의 사용자에 대한 배려 아닐까 싶습니다. 더군다나 이클립스 메인메뉴 상의 <Install New Software>이나 <Android SDK Manager>를 통한 인스톨은 용량에 비해 엄청나게 느린 체감속도를 보여주고 있으니까요~ (새로 환경설정하자면, 업데이트와 ADT 인스톨에만 하루 일과가 날아가기도 합니다.)

  현재에도 안드로이드 생태계는 이미 성공적으로 구축되어 있지만, 앞으로 이런 개발자/사용자 편의 부분에 신경을 더 써준다면 좀 더 쾌적한 개발환경이 되지 않을까합니다.

저작자 표시 비영리 동일 조건 변경 허락
Creative Commons License
Creative Commons License

 

Google Syntax Highlighter

  웹서핑을 하시면서 프로그램 코드의 각 구문들이 가독성 좋게 색깔로 표현되어 있는 것을 보신 적 있으실 겁니다.

 이것이 
바로 < Google Syntax Highlighter >인데, 코드를 자주 포스팅에 삽입하시는 분들께는 거의 필수입니다.
 
저도 적용하는 법을 몰라서 많이 헤매었는데, 생각보다도 훨씬 간단하게 티스토리 블로그에 적용할 수 있는 방법이 있어 포스팅 합니다.

 
 사실, Syntax Highlighter를 티스토리에 적용하는 방법은 이미 많이 포스팅이 되어있는데요,
  검색을 해보면 대부분의 포스팅이 아래와 같은 순서를 소개하고 있습니다.

[ 기존 설치 & 적용법 ]
1. Syntax Highlighter 최신 버전을 다운
2. 티스토리에 업로드
3. 스킨에 반영

 

 그러나!! HTML/CSS 편집에서 코드 딱! 한줄만 추가하시면,
 이런 번거로운 절차 없이 바로 Google Syntax Highlighter를 적용해서 사용하실 수 있습니다.


초간단! 티스토리 Syntax Highlighter 적용법!!
1.  
우선, 티스토리 블로그 관리 화면에서, [ 스킨 >> HTML/CSS 편집 ]으로 갑니다.
2.  [ 
skin.html ] 에서 </head> 바로 앞 부분에 아래의 코드를 삽입합니다.(저장하고 끝~ -_-)

###js
<script type="text/javascript" src="http://tsyntax.googlecode.com/hg/release/tsyntax.js"></script> 



정말 간단하죠? ㅇ_ㅇ)a

이제부터 본문글 작성하면서 인용구(Ctrl+Q)를 선택하고, 그 안에 해당 언어의 종류를 적습니다.
그리고 보여주고 싶은 코드를 Ctrl+C / Ctrl+V 하고 저장~!
그러면 아래와 같이 구문강조가 된 모습으로 블로그에 저장이 됩니다.

 


이 방법은
띵구리야님의 초보얌 블로그에 정말 깔끔하게 정리되어 있습니다.
저도 제 블로그에 적용시킬 때, 띵구리야님 블로그에서 배웠습니다. ^_^
아래 
링크를 참조하세요

< 초보얌 > 블로그 by 띵구리야 님 
 http://choboyam.tistory.com/1

 
 
 

어떻게 이렇게 간단하게 되지?! 

  티스토리에서 이렇게 간단하게 한줄만 코드를 추가해서 쉽게 Syntax Highlighter를 쓸 수 있는 이유는 아래 그림처럼, 미리 단순화 작업을 해뒀기 때문입니다.

http://code.google.com/p/tsyntax/

 

  

티스토리 Syntax Highlighter의 고질적인 문제  

  문제는 티스토리의 게으름(?)으로, 많은 분들이 Syntax Highlighter를 적용시켜서 사용하실 때, 불편을 겪고 있다는 사실입니다. 대표적인 문제로는 코딩을 할 때 엔터 한번이 엔터 두번으로 인식이 된다던지, 코드를 긁어서 붙여넣었을 때 제대로 적용이 안된다는 점들이 있습니다.
 
  
저도 역시, 코드를 붙여넣을 때 마다 이런 일이 발생하여 애를 먹었으나, 다행히 이제는 약간의 노하우가 생겼습니다. 

티스토리 Syntax Highlighter 문제해결 꼼수
1. 붙여넣고 싶은 코드를 메모장에 붙여 넣는다.
2. 
찾아바꾸기 기능(Ctrl+H)을 이용해, </div>는 </br>로, <div>는 삭제시킨다.



  그러나, 이런 꼼수도 적용시킨 스킨에 따라 안되는 경우도 있습니다. ㅠㅠ
  조금 불편하기는 하지만, 주로 쓰는 C#과 Java 외에도  SQL, Python, PHP 등 지원하는 언어가 많기 때문에 애
용하고 있습니다.
  
많은 분들이 노력하고 계시므로, 곧 고수님들이 해결법을 내어 놓으실 거라 기대해봅니다. ^_^
 

Creative Commons License
Creative Commons License


널, 잘 모르겠어... DB..

DB는 무엇일까요?
DBMS는 무엇일까요?
오라클 DB는 무엇이고, MS-SQL은 무엇이고, MySQL은 무엇일까요?

이것은 모두 다 저에게 하는 질문입니다.


그동안 '디비, 디비, 디비'...
말은 많이 들었지만, 
데이터베이스를 따로 공부한적이 없었기 때문에
도무지 명확하게 개념이 잡히지 않았습니다.

무엇보다도 프로그램을 하면서 DB가 필요한 상황이 올때마다 혼란스러웠던 것은 바로 이것이었습니다.

'DB이름도 종류도 뭔가 많은 거 같긴한데...'
'뭔가 다른건가?'
'다르니까 다른 이름을 쓰고 있겠지?'
'그냥 운영체제를 골라쓰듯 선택의 문제일까? 아니면, 각각의 특징을 알고 상황에 따라 맞춰써야 하는 것일까?'


그냥 나무부터 배워도 되는데, 숲을 먼저 보지 못하면 좀 답답하고
항상 숲을 먼저 가르쳐줄 스승을 찾는 성격 탓에
또 작은 업무를 진행하기 전에 큰 숲을 보여줄 자료들을 찾아볼 수 밖에 없었습니다.

그러다 발견한 주옥같은 글!!
이 글을 읽고 많은 부분에 대해 개념을 정립할 수 있었습니다.


DBMS(Database Management System)
안젤리나죠리퐁 님의 <나는 할 수 있다 >블로그




DB는 데이터들의 묶음!
눈에 보이지 않아!


저를 비롯해서 많은 분들을 헷갈리게 하는 이유는

DB, Database가 원래의 의미인 데이터들의 집합, 데이터들의 묶음으로써의 의미 뿐만 아니라,
이런 데이터를 다루는 툴이나 시스템 전체를 일컫는 경우가 많기 때문입니다.
 

개념적인 정의인 'Database'는 눈에 보이지 않습니다.
이러한 데이터들의 묶음을 정의하고, 추출하고, 보여주고, 관리할 수 있게 해주는 툴이 있는데
이런 툴들을 < DBMS, Database Management System >라고 합니다.
말 그대로 데이터베이스 관리 시스템(프로그램)이죠.


이 데이터베이스 관리 시스템에 해당하는 것이 바로 ORACLE, MS-SQL, MySQL 등이고,
이것이 일반적으로 사람들이 DB의 종류라고 생각하는 것이 되겠습니다.

Database (DB)  =  Database Management System (DBMS)

이제는 '데이터베이스(DB)'와 '데이터베이스를 관리하는 프로그램(DBMS)'을 동일 수준에서 보고, 많은 분들께서 혼재해서 사용하고 있는 것 같습니다. 저도 이번 공부 전에는 마찬가지였구요. 아마도 데이터베이스나 데이터가 눈으로 볼 수 없는 것이기 때문에 관리하는 프로그램을 거의 DB와 동일시 하는 것 같습니다.
 


 

DBMS 언어의 종류


DBMS는 앞서 언급했듯이, 엄밀히 말해서 언어입니다.
DB에 접근하고 관리하는 언어죠.

수 많은 DBMS중에서 대표적으로 많이 사용하는 것으로는
ORACLE, MS-SQL, MySQL 등이 있고, SQLite도 최근 모바일 데이터베이스로 각광받고 있습니다.
ORACLE은 기업체에서 많이 이용하고 있고 전 세계적으로도 가장 많은 수요자 층을 확보하고 있습니다.
MS-SQL 또한, 많이 사용되고 있으나, MS Windows OS 계열에서만 사용가능하다는 단점이 있습니다.


각각의 특징은 아래 글을 참조하세요.


웹 서비스에 사용될 수 있는 DB의 종류와 특징
네이버 오픈백과



더 넓은 세상을 위해 Database가 필요해....
 



게시물이 도움이 되셨다면~ 추천을 꾹~ 눌러주세요!
댓글도 물론 환영합니다!!
저작자 표시 비영리 변경 금지
Creative Commons License
Creative Commons License

 


처음으로 사용한 Visual Studio를 기억하시나요?

제가 처음으로 쓴 Visual Studio가 Visual Studio 6.0 Enterprise 였던 것으로 기억합니다.

고등학교 독일어 선생님이 프로그래밍을 좋아하셔서 수업시간에도 독일어 대신에 이런 저런 컴퓨터 이야기도 해주시고, 프로그래밍을 배워보고자 하는 학생들한테는 불법 CD도 구워주셨습니다. 총 CD 4장이었는데, 그 당시에는 'MSDN'이 뭐인지도 모르고, '용량이 큰데 이것도 깔아야 하나?'하고 고민했던 기억이 나네요.. ^_^)a

부끄럽지만 그 이후로 정품을 사서 쓴 적이 한번도 없습니다. 

최근에 들어서야, 회사에서 사준 Visual Studio 2010 정품을 보면서 동료들과 함께 '와~!!!' 하고 탄성을 질렀죠. 정말이지, 처음으로 보는 비닐도 뜯지 않은 Visual Studio 정품이었습니다. 참 신기하죠? 제 주위에 프로그램을 하는 사람이 몇 명인데, 정품을 쓰는 건 처음이라니~ 여러분도 그런가요?

Touch_Diamond | 0.00 EV | ISO-0 | Flash did not fire | 2010:11:30 09:33:29

Visual Studio 2010 Professional Edition!!
동료들과 앞다투어 인증샷을 찍는 웃지 못할 헤프닝이~ㅎㅎ
 



대학생을 위한 무료 정품 사용 프로그램 - Dream Spark!!

많은 부를 쌓고나니, 봉사나 나눔의 정신에 눈을 뜬 걸까요?

자본주의 '소프트웨어'제국의 황제, Microsoft에서 2008년부터 세계의 대학생들을 위해, Microsoft의 정품들을 무료로 쓸 수 있게 해주는 드림스파크 'Dream Spark' 라는 프로그램을 오픈했습니다! 즉, 대학생 신분을 Dream Spark 홈페이지에서 인증만 받으면, 마이크로소프트의 수많은 정품들을 무료로 사용할 수 있는 거죠!

Wikipedia를 찾아보니, 빌 게이츠(Bill Gates) 씨가 2008년 2월 19일, 스탠포드 대학(Stanford University)에서 연설할 때, 발표된 것이라고 하는군요. 원래는 몇 개국에서 시행했다가 현재는 약 80여개국이 본 프로그램의 혜택을 받고 있다고 합니다. 물론, 우리나라도 그 중 하나구요!

* 빌 게이츠가 스탠포드 대학에서 Dream Spark에 대해 이야기 하는 연설 보기 (Feb. 19, 2008)

[ Bill Gate : College Tour 2008 - Standford University ]


Dream Spark 홈페이지의 모습



Dream Spark에 대학생 인증하러 GoGo!!


그럼, Dream Spark에 등록을 하러 가볼까요? Dream Spark의 공식 홈페이지는 아래 링크를 타면 바로 가실 수 있습니다.

Dream Spark, GoGo!!

홈페이지에 가기는 갔는데, 어떻게 등록하시는지 잘 모르시겠다구요? 검색을 해보면, 이미 많은 분들께서 글을 올려주셨는데, 그래도 혹시 모르시겠다면, 아래 블로그를 참고하세요.




대학생이 아니시라구요!? 방법은 있습니다~ -_-)/


대학생이 아니어도 방법은 있습니다. 대표적인 방법은 아래와 같습니다.

1. 대학 시절에 썼던, 휴면계정의 이메일을 살린다.
2. 일반인에게 발급해주는 대학교 이메일을 발급 받는다.


대학생을 인증하는 중요한 자료가 '대학 이메일'이기 때문에, 저처럼 휴면상태에 들어가 있던 대학 이메일 계정을 살리거나, 일반인들도 계정을 생성할 수 있는 대학교에서 이메일을 발급받으시면 됩니다. 홈페이지에는 대학교에 대학생 여부를 문의한다, 체크한다 이렇게 적혀있지만 전혀 그렇지 않은 듯 합니다. Microsoft에 등록된 각국의 대학과 대학의 이메일, 그리고 그 이메일로 발송되는 인증메일에 대한 회신 여부만 체크하는 것 같습니다.

일반인을 위한, 대학 이메일 계정 발급 및 드림스파크 등록은 아래 글을 참조하세요!!





이 시대의 귀차니스트들을 위하여...

'정품까지 쓸 필요있어? 인증이고 뭐고 다 귀찮아~'라고 하시는 분들이 언제나 계십니다~ -_-)b
물론, 귀찮지 않더라도, 자격요건이 안되어서 등록못하시는 분들이 계실 것 같은데... 그런 분들은 아래 홈페이지에 들어가셔서, 정식평가판을 다운로드하시거나, Visual Studio Express Edition을 사용하시면 됩니다.



맺으면서

  정품 무료 사용 기회의 확대(Dream Spark 프로그램)와 프로그램 Lite 버전 무료배포(Visual Studio Express)!!
  Microsoft의 이러한 Free Software 정책이 많은 사람들에게 고가의 소프트웨어 접근성을 높여주기는 했지만, 이러한 Microsoft의 정책를 바라보는 시각은 다양합니다. 특히, 이것이 일류기업의 진정한 나눔과 사회적 기여 차원에서 이루어지는 것으로 바라봐야하는지에 대해서는 더욱 그렇습니다.
  혹자는 좋은 일하는데 왜그러냐고 비판적 시선을 보내는 사람들을 꼬인 마음씨를 가진 사람으로 폄하하고, 또 다른 사람들은 좋은 말로 포장을 했지만, 결국, Microsoft Software와 개발환경에 일찍 노출을 시켜서 점유율을 유지하고 또 높이려는 또 다른 고등전략 일 뿐이라고 말합니다. 21세기에 들어서 많은 일류기업들이 기업의 사회적 기여나 환경보호를 앞장서서 표방하며 다양한 활동을 하였지만, 순수한 목적이라기 보다는 기업의 마케팅 및 브랜드 구축이 대을 위한 것이 많았던 것은 사실이죠.

  시대의 흐름인지, Microsoft의 전략적 행보인지는 아직 명확하지 않지만, 우리는 어렵게 찾아온 Microsoft Software 정품사용의 기회를 누리면서, 앞으로의 Microsoft의 행보를 느긋하게, 때로는 날카롭게 지켜보면 될 것 같습니다. 엣헴!  ^_^)s

저작자 표시 비영리 동일 조건 변경 허락
Creative Commons License
Creative Commons License

2010년….

써보고 싶은 주제에 대해서 제목과 키워드만 적어놓고 게시(발행)하지 못했던 글이 도대체 몇 개였는지 셀 수도 없습니다. 이 어쩔 수 없는 귀차니즘;;

2011년에는 좀더 활발한 블로깅을 해보고자, 예전부터 생각했던 ‘오프라인에서 블로깅’을 할 수 있게 해주는 프로그램’을 검색해 보았습니다. 그 동안은 온라인을 통해 블로깅을 했었으나, 글을 한편 쓸 때, 생각보다 시간을 많이 들이는 편이라, 임시저장을 자주해야 했고, 인터넷이 안 되는 환경에서는 글을 따로 쓸 수가 없어, 워드를 이용하거나 메모에 글을 적어야 했습니다. 이 또한, 실제 블로그 환경과 폭이 맞지 않으므로, 결국 차후에 글을 붙여 넣고 배치나 띄워 쓰기 등을  손을 봐줘야 하기 때문에, 실용성이 조금 떨어졌던 것도 사실입니다.

저와 같은 생각을 하신 분들이 많으셨던지, 검색을 해보니 괜찮은 서비스들이 몇 있네요~

 

MS Windows Live Writer 2011, 오프라인에서도 블로그에서 글을 적는 느낌으로!

검색 후, 많은 사람들이 추천해주는 프로그램은 크게 아래 두 가지가 있었습니다.

MS Windows Live Writer와 블로거 스페이스는 두 가지 프로그램 모두, 오프라인에서 작성한 글을 블로깅 할 수 있게 해준다는 점은 동일합니다. 그러나, 블로거 스페이스는 로컬 PC에 깔려있는 사용자의 워드 프로그램(한글, MS Office Word 등)을 웹에서 구동해서 블로그에 게시할 글을 작성하는 것으로, 해당 기능은 MS Office Word 2007 버전부터 자체적으로 지원하고 있습니다. 그 외에도 오프라인에서 작성한 워드 파일을 불러와서 게시할 수 있는 ‘오프라인 글쓰기’를 지원하지만, 아무래도 웹에서 실제 발행될 글의 모습을 반영해서 글 쓰기는 다소 어려워 보입니다.

그래서, 일단 MS Windows Live Writer 2011을 사용해보기로 하고, 다운로드 후 설치해보았습니다.

MS Windows Live Writer 2011 다운받으러 가기!

* Windows Live Writer 만 따로 다운 받을 수도 있고, MS Windows Live Essential 패키지를 다운 받아서 원하는 프로그램만 설치할 수도 있습니다. 저는 다른 기능들은 관심이 없어서 Writer만 다운받아 설치했습니다~


MS Windows Live Writer 2011은 오프라인에서, 블로거가 실제 운영하고 있는 블로그 스킨을 다운 받아서 오프라인에서 제공함으로써, 실제 웹에서 글을 작성하고 있는 듯한 느낌을 줍니다. 사용자 환경은 역시 프로그램을 많이 만들어본 MS가 잘 만드는 것 같아요. 실제로 지금 이 글을 Windows Live Writer로 작성하고 있는데, 웹 환경에 구애 받지 않으니, 상당히 글쓰기가 즐겁네요~

앞으로 이런 저런 기능들을 활용해서 즐거운 블로그 활동을 해봐야겠습니다 ^_^*

 

MS Windows Live Writer 2011 설치 및 이용 방법 소개글

 

MS Windows Live Writer 2011 다운로드 비하인드 스토리

더보기

 

저작자 표시 비영리 동일 조건 변경 허락
Creative Commons License
Creative Commons License


   C#을 처음 접했을 때, 포인터가 없다는 소리를 듣고 잔잔한 감동(?)을 느낀 적이 있습니다. 전 C언어를 많이 해보지도 않았지만, 사실 C를 접한 사람들 중 많은 수가 포인터 부분에서 머리를 쥐어 뜯어야 한다는 얘기를 많이 들었었죠.

메모리 참조를 프로그래머가 직접 다룰 수 있어 때로는 매우 강력하면서도 때로는 매우 위험한 포인터. 포인터는 유용하기는 해도 너무 위험하기 때문에 C#은 포인터를 기본적으로 지원하지 않는다고 합니다. 그러나 포인터 자체가 필요한 상황은 여전히 있다고 하네요.

 

공부하던 중에, C#에서 포인터가 필요한 상황은 어떤 상황이 있는지 정리된 구절이 있어 발췌해 올립니다.

 


 

[  C#에서 포인터 사용이 필요한 상황  ]

 

  • 포인터를 사용하는 다른 언어와 함께 동작해야 할 때는 어쩔 수 없이 포인터가 필요하다. 특히 윈도우의 API가 포인터를 자주 사용하며 COM 라이브러리도 마찬가지이기 때문에 이 상황을 피할 수는 없다.
     
  • 디버깅 목적으로 메모리 내부를 직접 들여다보고 싶을 때는 포인터만큼 확실한 것이 없다. 포인터를 쓰면 스택을 통째로 덤프해 볼 수도 있고 메모리를 철저하게 감시하면서 저수준에서 디버깅할 수 있다.
     
  • 학습 목적으로 컴파일러나 프레임워크의 동작을 분석할 때도 포인터는 아주 요긴한 수단이 된다. 포인터를 직접 사용하지 않더라도 내부 동작을 포인터 관련 코드로 풀어보면 확실하게 이용되는 경우가 많다. 특히 C 언어에 익숙한 사람들이 이런 방법을 많이 사용한다.
     
  • 극단적으로 성능을 높여야 할 때는 참조 타입보다 포인터를 직접 쓰는 것이 유리하다. 그러나 이는 사실 그다지 설득력이 없는데 C# 자체가 워낙 느리기 때문에 포인터를 써 봐야 성능 개선 효과는 미미하다. 성능이 그토록 중요하다면 c#을 사용해서는 안 되며 Native 코드로 DLL을 만든 후 C#에서 불러 쓰는 것이 더 좋다.

 

[출처] .NET 프로그래밍 정복(김상형 저)

저작자 표시 비영리 변경 금지
Creative Commons License
Creative Commons License

.NET (닷넷)

from Lunarian/IT, Programming 2009/08/17 21:12

요즘은 그동안 제가 MATLAB으로 개발해왔던 간단한 알고리즘을 다른 언어를 이용해 구현해보려고 하고 있습니다. (이것은 어떤 곳에서 C 계열의 언어로 된 코딩을 원했기 때문이지만, 자세한 내용은 생략하겠습니다.)

아무튼, C++, JAVA 등을 맛만 본 지라, 무엇으로 할까~ 고민하고 있던 차에 C#이 눈에 들어왔습니다. 주위의 의견을 물어보니, 평가가 다양하고, 특히, MFC를 잘 다루는 분들은 MFC가 다른 코딩 소스가 많으며, 실무에도 많이 쓰인다며 C#으로 프로그래밍을 시작하려는 저의 기를 팍팍 죽였습니다.

그런데, 이 프로그래밍 초짜의 귀를 팔랑거리게 하는 바가 있었으니....
그것은 바로, 닷넷 프로그래밍은 '소프트웨어는 딱 한번만 작성하여 모든 플랫폼에 두루 실행할 수 있다'는 것이었습니다!!!

그야 말로, 플랫폼 독립성과 언어 독립성이 확보되어 있다는 것인데, 그동안 짧은 시간동안, C++, JAVA, FORTRAN 등을 맛만 보며, 이 모든 것들을 왜 다 배워야 되나~ 하며 게으름을 보였던 나에게는 무척이나 솔깃한 말이었죠. 거기다, 내 자신도 '기껏 알고리즘을 MATLAB으로 개발했는데, 이걸 또 옮겨야 하나...' 하는 소위 <호환성>에 관한 불만이 있었던 지라 조금 고민을 한 후에 C#을 배워 알고리즘을 이식하기로 했습니다.


지금 참고하려고 하는 책은 다음과 같습니다.

닷넷 프로그래밍 정복: C#. 윈폼. ADO
카테고리 컴퓨터/IT
지은이 김상형 (가메, 2008년)
상세보기

 
VISUAL C# 2.0
카테고리 컴퓨터/IT
지은이 조호묵 (가메, 2007년)
상세보기


그리고, 다음은 제가 관련 카페 등에서 추천 받은 책들~

EFFECTIVE C#
카테고리 컴퓨터/IT
지은이 빌 와그너 (한빛미디어, 2007년)
상세보기


C# 과 닷넷 플랫폼 (2판)
카테고리 컴퓨터/IT
지은이 ANDREW TROELSEN (사이텍미디어, 2004년)
상세보기


C# LINQ
카테고리 컴퓨터/IT
지은이 천호민 (대림, 2008년)
상세보기


소설같은 C#
카테고리 컴퓨터/IT
지은이 최영관 (자북, 2009년)
상세보기


NET FRAMEWORK 3.0
카테고리 컴퓨터/IT
지은이 박경훈 (영진닷컴, 2007년)
상세보기


참 많군요~
 컴퓨터 계열은 항상 느끼는 것이, 제가 공부하고 있는 분야와는 다르게, 공부하려고 하면 언제든지 그 분야에 관한 책을 찾을 수 있다는 겁니다. 그것도 1달 안에는 결코 해치우지 못할 정도의 무서운 양으로요~ (개발의 최전선에서 일반 유저는 결코 모를 고민을 하고 계실 분들께는 죄송합니다^^)

다음 포스팅에서는 저를 솔깃하게 만들었던!! 닷넷의 플랫폼 독립에 관한 내용을 중심으로 간단한 닷넷의 등장 배경과 개발환경에 대해서 정리해보도록 하겠습니다.


저작자 표시 비영리 변경 금지
Creative Commons License
Creative Commons License

어제 YES24를 통해서 주문한 책이 오늘 실험실로 도착했습니다.

< 프로그래밍 심리학 >과 < 실용주의 프로그래머 >라는 책인데요~
특정한 프로그래밍 언어를 다룬 책이 아닌, 프로그래밍의 왕도(王道)를 다룬 책을 읽고 싶어서 알아보던 차에 구입하게 되었습니다.

Touch_Diamond | 0.00 EV | ISO-0 | Flash did not fire | 2009:08:05 12:13:41


  저는 '이거 하나는 다룰줄 안다~!'라고 말할만한 프로그래밍 언어도 없는, 이른바 '프로그래밍 언어 초짜'입니다. 그나마 알고리즘 연구를 위해 쓰고 있는 공학툴 MATLAB과 고등학교 때, 프로그래밍 잘하는 친구와 친하게 지내면서 접하게 된 Visual Studio 6.0에서 맛만 조금 본 Visual Basic을 할 줄 아는 정도였습니다. 특히, 대학에서 수업 시간에 배운 C++, JAVA는 어찌나 재미가 없던지... 공대생인데도 불구하고, 학과의 특성상 실제로 쓸 일이 그리 많지 않아 그저그렇게 배우다가 졸업했습니다. 그나마 요즘에는 예전에 직관적으로 Window 폼을 만들고 이벤트를 지정하는 방식의 Visual Basic을 배우며 즐거웠던 기억이 떠올라서, C#을 즐겁게 공부하고 있습니다.

  어찌되었든, 이렇던 제가 요즘 들어 갑자기 프로그램이란 무엇인가~? 어떻게 하면 효율적으로 프로그래밍 할 수 있을까? 하고 고민하게 되었습니다. 제가 MATLAB으로 구현한 알고리즘도 시간이 지나면서 많은 부분이 수정되고 추가되었고, 결과적으로 제가 구현한 알고리즘을 C#이나 C++ 언어를 이용해 작성하고, 국가 연구소에 넘겨주어야 하기 때문입니다. 덕분에 아무 생각없이 쓰던 코딩도 다시 한번 들여다 보게 되었던 것입니다.

  그냥 계속 생각없이 쓰던 변수명도 조금 길어지더라도, 직접적으로 의미를 파악할 수 있도록 수정도 해야 했고, 또한 변수가 많아지자, 각각이 무엇을 의미하는지 본인도 모르게 되는 경우가 많아서 엑셀을 이용해 뒤늦게 정리하고 있습니다. 스스로는 무언가 일을 진행할때, 정리도 잘하고 문서화도 잘시킨다고 생각했는데 그 동안 프로그래밍의 분야에서는 전혀 그런 것을 고려하지 않고 주먹구구식으로 알고리즘을 개발했다는 생각이 많이 들었습니다. 프로그래밍의 효율에 대해서도 이제서야 다시 한번 생각하게 되었구요. 부끄러운 일입니다. 아무튼, 스스로를 프로그래머라고 생각해본적이 없는 단순한 연구생이었는데, 이번 기회에 프로그램의 효율성과 방법론에 관심이 많이 생겼다고나 할까요~ 그래서 책을 검색해보다가 이 두 책의 목차를 보고 내가 찾던 책이라는 생각이 들어 구입하게 된 것이지요.

  알고리즘 혹은 프로그램이라는 주제어로 검색을 하니, 대부분 특정 프로그래밍 언어를 염두에 두거나 그것을 이용한 책, 혹은 해당 언어를 가르치는 책이 대부분이었습니다. 이런 류의 책을 찾을 때 어떤 주제어를 써야 되는지 몰라 검색하면서 막막했던 것 같습니다.

  주먹구구식으로 배워서 나중에 정리하면 더 오랜 시간이 걸린다고 생각하는 편이기 때문에, 거창하게 사버린 책~

  마음은 이미 프로그래머 인것 같군요~




[ 목차 및 서평 읽으러 가기 ]

프로그래밍 심리학
http://www.yes24.com/24/goods/2789240

생각하는 프로그래밍
http://www.yes24.com/24/goods/329227
저작자 표시 비영리 동일 조건 변경 허락
Creative Commons License
Creative Commons License