현재 가지고 있는 책

C계열
- C언어 펀더맨탈 (한빛출판사)
- 12단계 C프로그래밍 연습(인포북)
- C언어 20일 OK(한국컴퓨터매거진)
- The C++ Programming Language(피어슨)
- C++ Standard Library(인포북)
- Efficient C++(인포북)
- Effective C++(에디슨 위즐리)
- More Effective C++(인포북)
- Effective STL(정보문화사)
- Accelerated C++(인포북)
- Modern C++ Design(인포북)
- C++코딩의 정석(정보문화사)
- C++기초부터 활용까지(박문각)
- 임베디드 프로그래밍 C코드 최적화(한빛미디어)
- GOF의 디자인 패턴(애디슨 위즐리)
- GOF의 디자인 패턴! 이렇게 활용한다(한빛미디어)
- 기타등등....

Java계열
- Head First Design Patten(한빛미디어)
- Head First Java(한빛미디어)
- Head First EJB(한빛미디어)
- Head First Object-Oriented Analysis&Design(한빛미디어)
- Head First Software Development(한빛미디어)
- 자바 웹 프로그래밍(한빛미디어)
- 모바일 자바 프로그래밍(한빛미디어)
- 뇌를 자극하는 자바 프로그래밍(한빛미디어)

게임프로그래밍
- 3D 게임프로그래밍(한빛미디어)
- DirectX 9 셰이더 프로그래밍(한빛미디어)
- Game Coding Complete(정보문화사)
- XNA Game Programming(정보문화사)
- DriectX9를 이용한 3D Game프로그래밍 입문(정보문화사)
- GPG1~6권(정보문화사)
- AI Programming Wisdom(정보문화사)
- C++과 DirectX 9를 이용한 실시간 3D 지형엔진(정보문화사)
- 온라인 게임서버 프로그래밍(한빛미디어)
- 3D 게임 프로그래밍 ALL IN ONE(구석에 쳐박혀서 보기 힘듬)
- Windows 게임프로그래머를 위한 X파일(사이버출판사)

웹프로그래밍 & DB
- ASP 프로그래밍 입문(한빛미디어)
- 아는 만큼 보이는 데이터베이스 설계와 구축(한빛미디어)
- 알기 쉽게 풀어 쓴 웹로직과 EJB(한빛미디어)
- Head First HTML(한빛미디어)

암호&정보보호
- 정보보안 이론과 실제(한빛미디어)
- 보안을 위한 효율적인 방법 PKI(인포북)
- 해킹 파괴의 광학(와이미디어)
- 구글해킹(에이콘)
- 사이먼 싱의 암호의 과학(영림카디널)
- 암호의 세계(이지북)

기타 프로그래밍 교양 & 수학
- 임백준님 5총사(한빛미디어)
- 실용주의 프로그래머(인사이트)
- 상대성이론의 아름다움(비타민북)
- 누가 소프트웨어의 심장을 만들었는가(한빛미디어)
- 세계 최고의 게임 크리에이터 9인의 이야기(대림)
- 수학자들의 전쟁(프로네시스)
- 수학의 확실성(사이먼스 북스)
- 수의신비(살림)
- E=MC^2(생각의나무)
- 기타등등...

경제학책
- 지금당장 환율 공부 시작하라(한빛비즈)
- 경제를 읽는 기술(리더스북)
- 자본주의 경제의 위기와 공황(SNU Press)
- 신 재무제표를 읽으면 기업이 보인다(새로운 제안)

-----------------------------------------------------------------
현재 정복률 약 70%

=================================================================

아직 들쳐보지도 않아서 분류조차 안되는 각종 서적 약 40~50권.

-----------------------------------------------------------------
현재 정복률 0%

by JetLi | 2009/03/07 05:26 | Cevin정보 | 트랙백 | 덧글(0)

C++을 C++스럽게 쓰기??

이펙티브 C++씨를 보면 이러한 내용이 나옵니다.
1. C++에 왔으면 C++의 법을 따릅시다. 라는 장에서 C++의 하위언어에 대한 설명이 나오네요.
C, 객체지향개념의 C++, 템플릿 C++, STL입니다.
여기서 주목해야 하는 부분이 C를 제외한 객체지향C++, 템플릿C++, STL이 삼총사 군입니다.
제가 처음에 C++책을 샀을때는 C스타일의 코드와 C++이 합쳐진 듯한 스타일의 C++책이 전부였던걸로 기억합니다.
그때는 번역서를 안보고 쉽게 설명되있고 한글도 딱딱한 번역서가 아닌 한글책을 보다보니 그런부분이 좀더 있었죠.
근데 재밌는데 비슷한시기에 나온 외국 번역서는 이미 템플릿과 STL이 들어가 있다는 점입니다.

뭐 이건 시간되면 따로 쓰고싶은 주제이긴 합니다만 참 재밌는게 우리나라는 필요한 기술에 도입은 빠른데 그 이후에 좀더 잘 만들기 위한 기술에 도입은 생각이상으로 느리다는 점입니다.
간단한 예를 몇개 들어보자면 미국번역서의 C++책은 아무렇지 않게 템플릿 코드가 나오는부분입니다.
그것도 1990년대 후반책에서요....
또한 JAVA 3D책을 발견하고 뒤적거리던중 미국 아마존에서는 이미 1~5위를 Java 3D군이 휩쓸고 있더군요. 그때 우리나라에 딱 한권이 있었고..음..지금은 2~3권쯤 되던것 같습니다만..오프라인에서는 제가 봤었던 한권 외에는 본적이 없습니다.
하여튼..이런식으로 추가적인 신기술에서는 조금 굼뜬것 같은 느낌이 듭니다.
잘난체를 할려는건 아니고..그냥 근무환경등의 복합적인 문제로 생각해 주시면 감사하겠습니다.

하여튼 외국사람들이 그렇게 템플릿C++과 STL을 고집하는걸 보면 아마도 템플릿의 좀 난애한 가독성과 이해하기 위한 머릿속의 스택들을 뛰어넘은 장점이 있는것이라 생각을 하고 있습니다.

조금 이야기가 벗어났네요. 결론적으로 말씀드리고 싶은건 Ansi C++이 나온이상 최대한 표준스럽게 사용하는게 좋겠다는 뜻입니다. 물론 자기 마음대로 쓸수 있다는게 C++의 가장큰 장점이라고 할 수 있긴 하지만 적어도 그러한건 표준내에서 이루어짐이 맞지 않을까 하는 생각이 들어서 조금 건방져 보이게 글을 쓰게 됬습니다.

C++을 C++스럽게 쓰는건 이펙티브 씨리즈에서 가슴에 와닫도록 잘 설명하고 있으니 스윽 읽으시면 제가 제대로 표현못한 부분을 이해하시게 되지 않을까 싶습니다.

by JetLi | 2009/03/07 04:44 | C++ | 트랙백 | 덧글(0)

특수 라이브러리보다는 STL을 사용해야 하는 이유에 대한 간단한 제 생각

1. 기존 함수기반프로그래밍이었던 C에서는 입력과 출력에 대한 구조가 간결하였으나 (파라메터와 리턴값) 추가적으로 포인터를 이용한 레퍼런스를 따라하기 시작하였습니다. 그러한식으로 객제지향도 발달하고 그로 인해서 블랙박스식의 이용이라 할지언정 서로 알고 있어야 하는 규약들이 늘어났죠. (이건 저번에 템플릿을 좋아하는 이유의 글에서도 잠깐 적었던 적이 있습니다.)
그렇기 때문에 서로 알고 있는 부분이 많은것일수록 빨리 그리고 쉽게 개발을 할수 있겠다는 뜻입니다. 즉 서로가 가장 잘 알고 있는 공통분보로 개발을 하는것이 좋기 때문에 STL을 쓰면 좋다고 저는 생각합니다.

2. STL에서 만들어주는 각종 라이브러리를 사용할수 있으며, 우리가 손대지 않아도 계속 버전업 되고 가장 재밌는건 컴파일러 최적화에 가장 부합될수 있도록 각종 컴파일러들 및 STL구현자들이 노력하고 있다는 부분입니다.
특히 각종 만들어진 알고리즘들과 가장 궁합이 잘맞는(속도 및 안정성)것은 STL이라고 할수 있습니다.
마지막으로, 컴파일러 옵션과 머신에 따라서 프로그램 속도의 차이가 변하는 마당인데 오히려 한곳에서 만든 코드는 컴파일러가 바뀔때마다 틀려질수 있다고 생각합니다.

3. 엄청나게 많은 개발자들이 친절하게 QA를 열심히 해주고 있습니다. 덕분에 어지간한 환경 어지간한 문제는 거의 테스트 되고 있고 만일 되지 않더라도 곧 해결이 가능하다는 점이 있겠습니다.

4. 어떠한 라이브러리보다 일반적인 성능을 기대할 수 있습니다. 위에 컴파일 최적화나 머신에 따른 최적화랑 상당히 겹치는게 아닐까도 싶습니다만 STL만큼 생각보다 각종 변수가 많은 개발환경에서 일정한 성능을 기대할수 있는 라이브러리는 STL이라고 생각하구요, 혹시나 STL구현자가 다르더라도 우리가 숙지하고 있는 명세에 맞춰서 프로그래밍만 하면 STL은 반드시 그 부분을 만족시켜 줄꺼라 생각합니다.

그 외에도 이것저것 많을텐데....제가 생각하는 강력한 장점은 이정도인것 같습니다.

by JetLi | 2009/03/07 04:26 | C++ Template | 트랙백 | 덧글(0)

객체지향...

오랜만에 글을 쓰네요.
프로그래밍말고 이것저것 생각할게 정말 많아서 블로그는 버려두고 살았네요.

09년 새해를 맞아서 좀더 준비해야겠다는 생각이 드네요.

하여튼 오늘은 객체지향에서 객체라는 놈에 대해서 좀 설명드릴까 합니다.
대부분 책을 보면 꼭 객체지향에서 절차지향을 설명하고, 객체지향에 대해
설명하고 있더군요.

저런 설명에 대한 제 의문점은 절차지향에서 객체지향이 나온것인지에
대해 생각해 봐야한다는 점입니다.
객체지향은 모든 문제의 근원을 객체라는 단위로 보는것이고,
절차지향은 모든 문제를 하나의 흐름으로 보자는 것이지요.

객체지향으로 보는건 저번에 썼던 내용처럼 모든것을 나로 간주하면 가장 좋은
접근법이 나올수 있겠습니다.
사람들이 자주 쓰는 말인 "나라면 그랬겠다.."를 모든 객체에 저장한다는 뜻이지요.
내가 키보드라면, 내가 모니터라면, 내가 검사라면, 내가 괴물이라면...
라는 식으로 보는겁니다.

"내가 키보드라면 상대가 ㄱ을 눌렀을때 ㄴ이라고 해주겠어..ㅋㅋㅋ"라고
하면
class CKeyBoard
{
public:
  void Input(char c) { if(c == 'ㄱ') ㄴ으로 처리; }
};
※ 'ㄱ'은 정확히 문법에 맞진 않습니다.(유니코드면 될것같네요.)
하여튼 이런식으로 내가 무엇이라면 어떻다라고 생각해서 접근하는 방식입니다.
개념이 절대로 어려운게 아닙니다.

그럼 다음으로 객체지향 하면 꼭 나오는 3대속성이 있지요.
예전글에 3대속성을 간단히 정리했지만 이번 설명에 곁들여서 좀더 추가적인
설명을 해보도록 하겠습니다.

우선 다형성부터 설명드리면 다형성은 객체는 여러가지 모습으로
보일수 있다는 것입니다.
간단하게 설명하면
나 - 프로그래머                    - 회사에서
    - 시민                             - 대한민국에서
    - 똥만 만들어 내는 기계     - 화장실에서
    - 밥만축내는 식충             - 음식점에서
이런식으로 나누어지겠죠?
나라는 객체가 "회사", "대한민국", "화장실", "음식점" 에서 전혀 다른 객체로 인식되고 있습니다.
이런식이 다형성인데요, cpp코드설명보다는 java문법이 명확할듯해서 적어보면
☞ class CMe extends 시민 implementsIProgrammingable, I똥싸기가능, I음식먹을줄암
(참고로 I는 Interface의 약자입니다.)
식으로 표현가능하겠네요. CMe는 시민으로도 I똥싸기가능으로도 업캐스팅가능하며
CMe는 시민 ,IProgrammingable, I똥싸기가능, I음식먹을줄암 로 다양한 모습으로 변신 가능합니다.
즉 다형성이 되는것이죠.

그럼 캡슐화에 대해서 설명해 보도록 하겠습니다.
캡슐화는 내꺼를 보호하자 라는건데 class에는 public, private, protected, (자바에 한해서)공백, 이 있습니다.
지갑을 가지고 다닐때 돈이 많이 들어서 신경쓰이면 가방에 넣고 가방을 가슴에 끌어안고 다니죠?
이게 캡슐화입니다. 감싼다는 뜻인데요,
class CMe
{
private:
    지갑 m_내지갑;
};
이제 외부에서는 무슨수를 쓰더라도 지갑에 엑세스가 불가능하겠습니다. 물론 내부(내 자신)은 액세스가 가능하죠.
public, protected, private, 공백은 각각의 특징이 있지만 지금 설명에는 필요하다고 생각치 않아
생략토록 하겠습니다. (공부하시는 책에 아마 잘 나와있을껍니다.)

그럼 마지막으로 상속이 있는데....어라..?? 아까 했군요.
다형성에서 상속을 다루어 버렸네요..하하하;;

하여튼 간단한 객체의 개념을 이렇게 설명드릴수 있겠네요.
요즘 주변에서 프로그래밍 공부하시는 분이 계셔서 설명드리다가 적게 되었습니다.

또 생각나면 설명드릴깨요~

by JetLi | 2009/01/02 00:07 | C++ | 트랙백 | 덧글(0)

개그경제 2기.



==============================================================================================================
웃기긴 한데 눈물이 나네요.
정말로 세계불황이라서 이따위로 떨어지는걸까요??
전 그렇게 생각 안되네요.

by JetLi | 2008/10/27 14:22 | 썩은세상 | 트랙백 | 덧글(0)

◀ 이전 페이지 다음 페이지 ▶