2014년 4월 27일 일요일

visual studio 2012 글꼴 및 테마 설정

글꼴 :

 visual studio 2012로 프로그래밍 하던 중, 상당히 거슬리는 문제점을 하나 발견했다. 바로 '글꼴'. visual studio에서 기본적으로 제공하는 '돋움체'는 코드의 가독성과는 상당한 차이가 있었다.

<visual studio 2008 - 돋움체>

 사실 이제껏 별 문제 없이 사용해 왔으나, 문제를 인식하고 나니 그냥 사용하기 껄끄러워졌다. 사람 마음이란 참... 그래서 윤성우 저자의 책과 인터넷을 이리저리 뒤지고 다닌 결과, 마이크로 소프트에서 개발자용 글꼴로 'consolas'를 배포한다는 것을 알았다.

<visual studio 2008 - consolas>

  확실히 가독성이 좋다. 그러나, 영문에 중점을 맞춰 글꼴을 개발하다 보니 한글이 너무 보기 흉하다(나만 그렇게 느낄 수도). 그래서 구글링을 하다보니, 레지스트리에 접근해서 영문글꼴에 지원되는 한글 글꼴을 설정하는 방법이 있다. 하지만, 난 글꼴설정에 쏟을 시간에 프로그래밍 공부를 한자라도 더 하고 싶기 때문에(귀찮고, 게을러서) 더 간편한 게 없을까 뒤져봤다.

<visual studio 2008 - 나눔고딕코딩>

 그래서 찾은 글꼴이 네이버에서 무료로 제공하는 '나눔고딕코딩'. 가독성도 좋고, 한글도 위화감없이 잘 어울린다. 게다가 무료에 설치도 간편하기까지! 맘에 든다.


테마:

 글꼴을 바꾸고 신나게 사용하던 중, 윤성우 저자의 카페에서 신기한 것을 보았다. visual studio 2010버젼 이상에서 지원하기 시작한 '테마'. 기존의 흰 바탕에 검은 글씨가 눈 아프다(눈에 그다지 좋진 않겠다) 생각하고 있었는데, 이런 기능이 있었을 줄이야!

<visual studio 2012 - 색 테마 '어둡게', 글꼴 '나눔고딕코딩'>

 하루 정도 화면을 들여다 본 결과 눈이 좀 편한 느낌이 들긴 한다. 게다가 왠지 모르게 예쁘다. 하하하.

Etc:

 visual studio 6.0부터 사용된 'Fixedsys'부터 Linux에서 사용하는 'Bitstream Vera Mono', 'Courier New'등등. 다양한 글꼴이 존재하니 맘에 드는 글꼴을 골라 나만의 컴파일러를 세팅하는 재미를 느끼는 것도 괜찮을 듯.

Viper Wiki :
http://www.viper.pe.kr/cgi-bin/moin.cgi/%ED%94%84%EB%A1%9C%EA%B7%B8%EB%9E%98%EB%B0%8D%EC%9A%A9_%ED%8F%B0%ED%8A%B8



 테마 역시 많은 제작자들에 의해 다양하게 배포되고 있다. 인기 테마부터 최근 등록된 테마까지.

StudioStyles :
http://studiostyl.es/schemes



적용 방법은 많은 사람들이 스크린 샷을 통해 다양하게 소개하고 있으니 생략.

visual studio 테마 적용 :
https://www.google.co.kr/search?q=visual+studio+%ED%85%8C%EB%A7%88+%EC%A0%81%EC%9A%A9&oq=visual+studio+%ED%85%8C%EB%A7%88+&aqs=chrome.2.69i57j0l2j69i60j0l2.13764j0j7&sourceid=chrome&es_sm=93&ie=UTF-8

2014년 4월 20일 일요일

논어論語 : 안연顔淵 편 - 7 자공이 정치에 대해 묻다子貢問政

子貢問政, 子曰 "足食, 足兵, 民信之矣."

子貢曰 "必不得已而去, 於斯三者, 何先?"

曰 "去兵."

子貢曰 "必不得已而去, 於斯二者, 何先?"

曰 "去食. 自古皆有死, 民無信不立."

  자공이 정치에 대해서 여쭙자, 공자께서 말씀하셨다. "식량을 풍족하게 하는 것. 군비를 넉넉히 하는 것, 백성들이 믿도록 하는 것이다."

  자공이 말하였다. "어쩔 수 없어서 한 가지를 버려야 한다면 세 가지 가운데 어느 것을 먼저 버려야 합니까?"

  "군대를 버린다."

  자공이 여쭈었다. "어쩔 수 없어서 한 가지를 버려야 한다면 어느 것을 먼저 버려야 합니까?"

  "식량을 버린다. 예로부터 모두에게 죽음은 있는 것이지만, 백성들의 믿음이 없으면 나라는 존립하지 못한다."

공자孔子 - 김형찬 옮김, <논어論語>, 홍익출판사

##########

  2014년 04월 21일. 마음이 무거운 이때에 와닿는다. 믿음은 있는가?

2014년 4월 7일 월요일

scanf 함수를 이용해 입력할 시 주의점 - 입력버퍼에 관하여



scanf(const * char format, ...);

 C언어를 배우면서 아마 처음으로, 대표적으로 배우는 입력에 관한 함수가 scanf함수일 것이다. 정해진 거 출력만 할 줄 알다가 이제 슬슬 입력 내용에 따라 출력물이 달라지게 할 수 있다는 데에 재미를 느끼기도 한다. 그런데 이 함수, 사용하는데 문제가 좀 있다.


 정말 구세주 같은 글이었다. 대체 왜!! 내 맘대로 출력이 안되는 것인가를 고민하고 고민하던 때에 접하게 된 글. 입력버퍼에 \n 이 남아있기 때문이었다니! 세상에나!!

 결국 scanf함수를 통해 사용자로부터 프로그래머가 원하는 값을 입력받으려면 입력버퍼를 비우거나, " %c"의 형태로 빈칸을 넣거나 해야 한다는 것. 아, 어려우면서도 놀랍다.

2014년 4월 1일 화요일

자료형 일치에 신경쓰자.



char <= short <= int <= long <= long long


 C언어를 배우면서 가장 기본이 되는 것은 역시 '자료형'이다. 인간의 생각으로 개발한 물건이라서 그런지 컴퓨터 역시 우선 '저장' 후에 '연산', '출력'을 한다. 이 3가지의 기본이 되는 것이 자료형. 0과 1만 입력 가능한 컴퓨터의 메모리에 '어떻게 쓰고, 어떻게 읽어올 것인가'를 결정해주는, 다양한 표현이 가능하게 하는 것이 자료형이라고 배운 것 같다.(... 가르쳐준 책과 선생님은 이렇게 생각 안하는데 나만 이렇게 생각하는 것일 수도?)

 이렇게 다양한 자료형이 존재하기 때문에, 표현의 범위도 넓어지지만 실수할 가능성(?)도 커지는 것 같다. 요즘은 컴파일러가 알아서 작은 자료형과 큰 자료형이 연산에 들어있을 경우, 큰 자료형에 맞춰주지만... 이런 똑똑한 컴파일러를 사용할 수 없는 환경에서 컴파일 했다면 아마 엄청난 에러를 발생시켰을 거 같다. 기본이고, 나름 단순하다 생각하는데 왜 이렇게 틀려대는 건지. 역시 수 없이 반복하는 수 밖에 없는 걸까.

2014년 3월 27일 목요일

상황에 따라 읽을 책을 고르자



 예측불가능성과 안전성을 동시에 가진 자연의 보편적 행태, 카오스에 관한 책 『카오스』를 약 2달(씩이나)에 걸쳐 읽었다. 길었다. 흥미진진할 수 있는 내용을 정말 힘겹게 '읽어냈다'.

 아무래도 책을 펼친 상황의 문제인 것 같다. (나에겐) 생소한 용어들로 가득한 이 어려운 책을 시끄러운 버스 안에서, 운동 후의 피곤한 상태로 읽었으니 힘들 수 밖에. 왠만하면 다시 읽지 않는 성격상, 괜히 책 한 권 아쉽게 땠다고 해야하나. 아이스크림 맛나게 먹고 있는데 누가 와서 툭 쳐 떨군 기분. 상쾌하지 못하다.

 그래서 이번에 배운 건, 카오스에 대한 이해도 있지만, 상황에 따라 책을 고르자는 교훈. 버스 안에서 읽을 책은 어렵지 않고, 가벼운 책으로 선정해야겠다.

2014년 3월 26일 수요일

태극권 수련기를 간만에 적어 봅니다.

정말 인간이 가장 센치해지는 새벽 2시이기 때문인가. 쓰다보니 많이 길어졌다.

##########

간만에 수련기를 쓰게 되네요.

'수련기'라는 거 원래는 매일매일 일기형식으로 남기고, 반성하고, 돌아보고 해야 도움이 되는 건데 말이죠. 하하하.


저는 가끔씩 태극권 관련한 꿈을 꿉니다.

태극권을 열심히 수련한 끝에 몸이 변하는 꿈입니다. 키도 크고, 어꺠도 넓어지고, 근육도 붙고...

역시 꿈은 욕망을 해소하는 곳인가봐요.

아무래도 태극권을 시작하면서 그 동안 얼마나 몸에게 미안한 짓거리를 했는지 알게 되었기 때문일 겁니다. 후회죠.

한창 육체적인 틀이 잡혀가는 2차 성징, 사춘기 때 정말 막 살았었습니다.

새벽에 잠들고, 먹는 건 부실하고, 책상에선 바른 자세로 있어 본 적이 없죠. 눈도 안경 쓰고 싶어서 일부러 혹사시키기도 했고.

지금 생각하면 미련하게 왜 그랬을까? 생각하지만... 아마 다시 돌아간다고 해도 똑같이 그러고 있을 꺼 같네요. 슬프게도. 하하.


이런 후회때문인지 가끔 생각에 잠기기도 합니다. 생각으로 구시렁 구시렁 대는 거죠.

태극은 우주만물생성원리, 진리, 법칙 등을 표현하는데...

그런 법칙에 어긋난 사춘기 시절의 행동들은 왜 불편하지 않았을까? 법칙에 어긋나면 힘들고 불편해야 하는 거 아닌가?

법칙에 어긋난 행동들이 힘들었다면... 아마 법칙에 맞게 행동했을텐데. 이 모양, 이 꼴이 되지는 않았을텐데...


본성에 맞게 너무 부정적인 글을 썼네요. 물론 이것은 사실이 아니라고 생각합니다. 제 투정일 뿐이죠. 하하하.

지금에서 드는 생각은 '<이것은 옳고, 이것은 그르다.>는 흑백논리식의 진리 접근법은 잘못 되었다.' 입니다.

진리(혹은 태극)은 모든 것을 포용하는, 상당히 넓은 개념이라는 생각이 듭니다.

어리게 생각했던 이거해라, 저거해라 등의 자잘한 규칙정도가 아닌 거죠.

모든 생명이 다르듯이 이것도 맞고, 저것도 맞는 겁니다. 단, 다른 것은 다른 결과를 낳을 뿐이죠.


사람이 가장 감수성에 젖어드는 새벽 2시가 다가오니 주저리 주저리 말이 길어지네요. '결국 내 탓이오.'라는 말인데. 하하하.

<상실의 시대(원제:노르웨이의 숲)>란 책에 소위 말하는 엄친아스러운 선배가 나옵니다.

그 선배는 작가가 죽은지 30년이 된 책만 읽습니다. 작가가 죽은 후, 제대로 된 평가를 받게 되고, 뛰어나면 살아남는다는 거죠.

이 대목을 읽을 때 번쩍!했습니다. 무언가를 고르는 데에 내 시간을 덜 소비해도 되겠구나 싶었죠.

그런 의미에서 태극권은 정말 검증된 운동이라는 생각이 듭니다. 대체 몇 년을 살아남으며 변화한 건지!! 대단합니다.


음... 그런 고로, 올바른 결과를 낳을 수 있도록, 검증된 무술인 태극권, 팔극권을 관장님께 '열심히!' 배워야겠다는 생각입니다.

뭔가 흔하고, 시시하고, 재미없는, 그러나 불변인 결론이네요. 아하하하하.

##########

왠지 모르게 낯 부끄러워 이런 거 잘 안쓰는데... 왜 썼을까.

2014년 3월 20일 목요일

프로그래밍에 필요한 재능:논리력





 프로그래머로서 필요한 재능은 무엇일까? 현재로서는 스스로 대답을 내기 어렵다. 뭐 해봤어야지. 여러모로 프로그래머로서의 재능에 대해 물어봤다. 얼마전 다녀온 GDG Daejeon에서 한 세션을 담당하신 '김정'님은 재능보다 포기하지 않는 끈기가 중요하다고 말하셨다. 끈기라... 끈기도 어찌보면 재능이 아니려나? 마지막 세션의 '유명환'님은 프로그래머의 능력을 [(구현 + 삽질) * 표현]/고정관념이라고 설명하셨다. 흠. 이런 것도 사실 어찌보면 재능에 들어가는 범주가 아닐까 싶은데... 잘 모르겠다.

 포프님은 포프TV에서 논리력이라고 대답했다. 논리력. 맞는 말이라고 생각한다. 인문학은 개인의 역량에 따라 개인이 있는 곳에서 발전한다면, 과학은 누군가 쌓아올린 탑위로 다른 누군가가 쌓아올리는 탑이니까. 누구나 받아들일 수 있는, 논리로 쌓아올린 탑의 정점에 있는 것이 컴퓨터. 그 컴퓨터를 통해 무엇인가를 구현하는 사람이 프로그래머니까. 논리력!

 논리(logic)는 조금 다르게 표현하자면 범주(category)다. 대학교 때 들었던 강의 시간에도 그렇게 배웠고, 개인적으로 사 봤던 칼뱅의 <논리학 입문>에서도 범주, 집합을 빼놓고 논리를 설명할 수 없으니까. 사과인 것 or 사과가 아닌 것. 사과 or ~사과. TRUE or FALSE. 1 or 0. 배운 거 써먹어야지, 전압이 있는가 or 전압이 없는가. 이 단순한 구분으로 이루어진, 엄청난 양의 연산을, 어마무시하게 빠른 속도로 해내는 것이 바로 컴퓨터니까.

 졸려서인지 글이 산으로 가는 것 같지만, 결국 나는 논리력이 있는가?에 대해 의문을 가지게 된다. 난 논리적인 인간인가. 논리적인 인간이어야 늦은 나이에 선택한 프로그래머의 길에서 재미나게 살 수 있지 않은가. 논리력이 있었는지는 모르겠다. 그러나 논리력을 학습한 효과는 방금 프로그래밍 문제를 풀면서 느꼈다. 호오, 학습이 가능하다라. 그럼 계속 학습을 해야지!

2014년 3월 18일 화요일

예비군-향방기본훈련

 예비군 훈련을 다녀왔다. 5년차, 대학에서 가지 않은 첫 번째 예비군 훈련. 사람이 적어서 인지, 5년차라서 그런지 몰라도 대학생때에 비교하면 상당히 편하다. 짬(?)을 인정해 주는 건가.




 M1 Cal. 칼빈 소총. 이번 예비군에서 처음 보고, 처음 쏴본 총이다. 현역일 때는 K1, K2를 사용했고 작년 예비군까지는 M16을 사용했으니. 탄이 어마무시하게 많이 남았는데 쓸 곳이 없나. 쏴본 결과 느낌이 의외로 나쁘지 않았다. 흠, 괜찮아. 2차 대전, 6-25 때 쓰던 총이라던데 이렇게 잘 나갈 수 있나 싶을 정도.

 작년에 이어 올해도 조기퇴소를 했다. 속한 분대에서 그냥 저냥 따라갈 뿐인데 분대운이 좋은 가 보다. 일찍 끝나는 건 참 좋은 거다. 그것도 남들 보다 일찍이라면...

 동원미지정이니 앞으로 향방작계 2번 남았다. 그런데 받아 본 적이 없어서 대체 뭘하는 건지 모르겠는데. 그리 번거롭게, 불편하게는 안했으면 좋겠다. 에이, 설마.

2014년 3월 15일 토요일

이진 코드(binary code바이너리 코드)는 기계어인가?



 '내가 이렇게 C언어에 익숙한가? 왜 궁금한 게 없지?' <난 정말 C~>를 보면서 살짝 의심스럽긴 했다. 혹시나 했더니 역시나라니. 궁금한 것도 역시 뭘 좀 알아야 생기는 거 같다.

 이진 코드(binary code바이너리 코드)는 자연어를 컴파일러가 어셈블리어로, 어셈블리어를 어셈블러가 CPU가 연산 가능한 0과 1로 표현한 것이다... 제길, 그런데 컴퓨터가 숫자 0과 1을 알리가 없잖아?! 정확히 말하면 자연어라고도 말할 수 있는 0과 1을 CPU가 알아먹을 수 있도록 '전압'으로 바꾸는 거였다. 그래, 듣고 보니까 '이게 맞다!!' 싶다... 확신을 못하겠다. 제대로 알질 못하니.

? . !

 초등학교 다닐 적에 누군가 나에게 꿈이 뭐냐고 물어보면 '과학자'라고 말했다. 왜 그랬는지는 잘 모르겠다. 멋있어 보였나? 아님 본능적으로? 어찌됐든 간에 과학을 좋아하기도 했다. 현상을 눈으로 보고, 왜 그럴까 생각하는 게 재미있었으니까. 아마 중학교 때까지 과학자가 꿈이라고 말하고 다녔던 거 같다.

 고등학교 올라가서는 적성분야, 관심분야 같은 거 잘 모르겠고 '컴퓨터 쪽 일'을 하고 싶다고 말했었다. 학교가서 수업시간에 졸고, 야자시간엔 판타지&무협 쭈욱 읽다가, 집에 와서는 새벽까지 컴퓨터 게임하는 게 일상이었다. 그래서 막연하게 그냥 컴퓨터와 관련된 일이 하고 싶었었나보다.

 수능에서 실패를 맛보고, 대학에서 시간 낭비하고, 군대를 다녀온 후, 난감했다. 대체 난 뭘하고 살아야 하는 건가. 이리 저리 고민하면서 적성검사를 꽤 많이 했다. 홀랜드 검사는 5번 정도 했으니. 그렇게 적성과 꿈을 탐색하다보니 어렸을 적 생각이 났다. 태어나서 딱 한 번, 어머니께 사달라고 때썼던 과학상자, 과학자가 꿈이라고 당당히 말했던 때, 아무리 혼나도 놓지 않았던 키보드와 마우스. 적성검사도 딱 맞게 INTJ, IRA, 5번. 이 모든 것을 연결해 '프로그래머'라는 결론을 내렸다.

 그래서 현재. 나름 열심히 공부하고 있다고 생각했는데... 확실히 예전 같지 않다. 오늘 마지막 세션 시간에 깨달았다. 예전만큼 궁금해하고 있지 않다는 걸. 나름 탐구를 사랑하는 성격이라고 생각했는데, 그냥 머리 속에 구겨넣고 있는 것은 아닌가 반성한다. 물음표로 시작해서 마침표로 끝낸다. 느낌표까지 목표로 하면 더 좋고!


http://daejeon.gdg.kr/helloworld/