사용자 삽입 이미지

 

제목: Effective C++

원제: Effective C++: 50 Specific Ways to Improve Your Programs and Design

저자: Scott Meyers 
역자: 연승훈 
출판사: 대림


 

이책을 처음 접했을때 목차나 앞부분을 훑어본후 별로 감흥을 받지 못했다.
그도 그럴것이 책도 앏고 내용들고 뻔한 내용들 같았다.

 

그러나 이 책은 나의 뒷통수를 후려 갈긴 첫번째 책이 되었다.

 

다른 입문서와 틀리게 C++을 가르쳐 주는 책이 아니라 제대로 사용하기위한 기초(?) 지식들을 모아놓은 책이다.
C++은 문법을 알고 문법대로 코딩만 해서는 안된다고 가르쳐 주는 책이다.

 

번역된지는 좀 됬고 번역에 대해서는 나쁘지는 않지만 그리 썩 좋지도 않은 책으로 평가 되고 있다.
그러나 번역의 잘됨 여부에 관계없이 내용을 이해하는데에는 별 무리가 없는듯 하다.

 

C++ 고리타분한 입문서를 하나 읽었다면 바로 추천하는 바이다.

 

 


C에서 C++로의 전환
항목 1 #define보다는 const와 inline을 사용한다
항목 2 stdio.h 보다는 iostream을 사용한다.
항목 3 malloc과 free보다는 new와 delete를 사용한다.
항목 4 C++ 스타일의 주석을 지향한다.

 

이 챕터는 왠만한 C++책에는 다 있는 내용들이다.
뻔한 내용일수도 있지만 심호한 뜻이 있는 그런 챕터이다.

 

근본적인 주제는 C와 C++는 다르다 그러니 차이를 알아라 이다.

 


메모리 관리
항목 5 new와 delete의 사용시 동일한 형식을 이용한다
항목 6 소멸자에서 포인터 멤버에 대해 delete를 이용한 다.
항목 7 메모리가 모자랄 경우에 대비한다.
항목 8 operator new와 operator delete 작성시 관례를 따른다.
항목 9 new의 "정상" 형식을 감추지 않는다.
항목 10 operator new를 작성한다면 operator delete도 작성한다.


처음 이부분을 읽었을때 100% 이해 못하고 넘어갔다
그리고 이책의 후속작인 More Effective C++을 읽고 나서 이해하게된 챕터이다.

 

이 챕터의 주제는 new 키워드와 malloc 함수의 차이점을 이해하고 new를 사용함에 있어 이해하고 있어야 될것에대해 기술하고 있다.

그리고 사용자 형식(메모리 할당에 있어서)의 new 의 행동을 만드는것과
이책에서 처음으로 접했던 placement new 에 대해서도 선보이고 있다.

 

 

생성자, 소멸자, 그리고 치환 연산자
항목 11 동적으로 할당되는 메모리를 갖는 클래스를 위해서는 복사 생성자와 치환 연산자를 선언하라.
항목 12 생성자에서 치환보다는 초기화를 사용한다.
항목 13 클래스에 선언된 순서에 따라 멤버 초기화 리스트에 멤버들을 나열한다.
항목 14 베이스 클래스에서 소멸자는 가상 함수로 선언해야 한다.
항목 15 operator=이 *this에 대한 레퍼런스(reference)를 리턴(Return)하도록 한다.
항목 16 operator=에서 모든 데이터 멤버들로의 치환을 수행한다.
항목 17 operator=에서 재귀치환을 검사한다.


클래스를 설계함에 있어 기본이 되는 생성자, 소멸자, 그리고 치환연산사에 대한 내용이다.

생성자와 소멸자의 적절한 사용과 치환연산자에서 주의점에 대해 기술하고 있다.

 

여기서 중요한 내용은 "베이스 클래스용 소멸자는 가상이어야 한다"와 "생성자, 소멸자, 치환연산자는 같이 따로 생각할것이 아니라 같이 설계되어야 한다"는 점이다.

 


클래스와 함수: 설계 및 선언
항목 18 최소한의 완전한 클래스 인터페이스를 추구한다.
항목 19 멤버 함수, 비멤버 함수 및 프렌드 함수를 구별한다.
항목 20 데이터 멤버를 공용 인터페이스에 포함시키지 않는다.
항목 21 가능한 const를 이용한다.
항목 22 값에 의한 호출보다는 레퍼런스에 의한 호출을 선호한다.
항목 23 객체 반환시 레퍼런스를 반환하지 않는다.
항목 24 함수 오버로딩과 디폴트 인자값 중에서 주의깊 게 선택한다.
항목 25 포인터나 수치형 타입상의 오버로딩을 피한다.
항목 26 잠재적 모호성을 경계한다.
항목 27 의도하지 않은 내부 생성 멤버 함수의 이용을 명시적으로 막는다.
항목 28 전역 네임스페이스를 분할한다.


이 챕터는 클래스의 제대로된 설계를 위한 지침이다.

인터페이스를 설계시 주의 사항에 대해 기술하고 있다.

 

"최소한의 완전한 클래스 인터페이스를 추구한다"

 


클래스와 함수: 구현
항목 29 내부 데이터에 대한 "핸들"을 리턴하는 것을 피해라.
항목 30 접근하기 어려운 멤버에 대한 비상수 포인터나 레퍼런스를 리턴하는 멤버 함수 사용을 피하라.
항목 31 지역 객체에 대한 참조나 함수 내에서 new를 이용해 초기화된 포인터를 가리키는 참조를 리턴하지 말라.
항목 32 변수 정의는 가능한 뒤로 늦춰라.
항목 33 인라인을 선별적으로 사용하라.
항목 34 파일간의 컴파일 의존성(dependency)을 최소화하라.


이 챕터는 클래스의 특징중 은닉성에 대한 부분을 기술하고 있다.
그리고 몇개의 C++사용에 관한 지침들 ...

 

 

인스턴스와 객체지향 설계
항목 35 public 계승이 "isa"를 모델링하도록 하라.
항목 36 인터페이스 계승과 구현 계승의 차이점을 이해하라.
항목 37 계승된 비가상 함수를 재정의하지 않도록 한다.
항목 38 계승된 부재 인자값을 재정의하지 않도록 한다.
항목 39 계층도의 아래쪽 클래스로 다운캐스트(downcast )하지 않도록 한다.
항목 40 레이어링(layering)을 통해 "가지고 있는" 것과 "사용하여 구현된" 것을 모델링하도록 한다.
항목 41 계승과 템플릿과의 차이점을 이해한다.
항목 42 private 계승을 바르게 사용하라.
항목 43 다중 계승을 바르게 사용하도록 하라.
항목 44 의미하는 바를 표현하도록 하라; 자신이 표현한 것의 의미를 이해하도록 하라.

 

상속에 관한 내용이다.
목적에 맞는 제대로된 상속을 사용 할것과 상속시 지침에 대해 설명하고 있다.

 

그리고 템플릿과 상속의 차이점을 이해해 적절히 사용하라고 한다.

 

"인터페이스 계승과 구현 계승의 차이점을 이해하라."

 

 


미묘한 부분
항목 45 C++가 은밀하게 어떤 함수를 만들어주고 호출 하는지 이해하기
항목 46 실행 시간 에러보다는 컴파일 시간과 링크 시간 에러가 좋다.
항목 47 비지역 정적(Non-local static) 객체는 사용되기 전에 초기화되도록 해야 한다.
항목 48 컴파일러의 경고(warning)에 주의를 기울여라.
항목 49 표준 라이브러리를 잘 알아두어라.
항목 50 C++에 대한 이해를 넓혀라.
 

그리고 기타 못다한 얘기들이다.

주로 컴파일과 링크 그리고 C++의 표준이 되면서 (ISO C++) 추가된 것들에 대한 내용이다.

 

"C++에 대한 이해를 넓혀라"

 

 

 

이 책은 시작에 불과하다..

음하하

 

'책읽기' 카테고리의 다른 글

Exceptional C++ Style  (0) 2005.05.16
C++ Coding Standards: Rules, Guidelines, and Best Practices  (0) 2005.04.20
Modern C++ Design  (0) 2004.12.04

회사사람 송별회중 과일소주 집

술먹는 중이라 많이는 못찍었다.

 

 

사용자 삽입 이미지

 

그 다음날 머리를 괴롭히는키위소주

여기에다 박xx대리가 소주 한병을 더 섞었다.

 

 

사용자 삽입 이미지


오뎅탕

보기엔 어떨지 모르나 맛은 별로다.

아까운 오뎅 ...

 

 

사용자 삽입 이미지

 

영수씨가 사진찍는 샷


 

사용자 삽입 이미지

 

윤정씨, 여전히 카메라를 가지고 노는영수

 

 

사용자 삽입 이미지

 

수빈

'일상' 카테고리의 다른 글

비오는 토욜..  (0) 2004.12.05
인간관계  (0) 2004.12.03
2001.03  (0) 2004.12.01
작은 인형  (0) 2004.12.01
WA BAR 습격사건  (0) 2004.11.26
사용자 삽입 이미지


사용자 삽입 이미지

 

2001년도 3월경의 회사 작업 환경이다.

이때 이후부터 점점 열약한 환경(일명 닭장)으로 변해 갔다.

 

지금도 닭장이다. 젠장 ...

 

ps. ryangchi님의 사진으로 기억 ..

 

'일상' 카테고리의 다른 글

인간관계  (0) 2004.12.03
송별회  (0) 2004.12.01
작은 인형  (0) 2004.12.01
WA BAR 습격사건  (0) 2004.11.26
WA BAR  (0) 2004.11.25
사용자 삽입 이미지

 
전에 강남의 교촌치킨에서 뽑은 애들이다.

원래 3개가 있었는데 한넘은 핸드폰 새로 산 사람한테 시집 보냈다.

 

좀 있으면 이넘중에 한넘도 딴 사람한테 시집을 갈지도 모른다.

처음에는 준다고 했는데 정들어서 그런지 보내기가 싫어지는 넘들이다.

 

크하..

 

'일상' 카테고리의 다른 글

송별회  (0) 2004.12.01
2001.03  (0) 2004.12.01
WA BAR 습격사건  (0) 2004.11.26
WA BAR  (0) 2004.11.25
내가 키우는 나무  (0) 2004.11.24

사용자 삽입 이미지

 

모 백화점 지하에서 맘마를 먹고 1층에서 공익광고 수상작을 전시하는 곳을 발견.

잠깐 들러 몇장의 사진 찰칵 했다.

 

 

사용자 삽입 이미지

이것은 미국광고 였는데 가정의 총기 보유로 인한 총기사고에 대한 내용이었다.

어린이들에게 무방비적으로 노출되어 있는 총기 관리에 대해 조심하라는 내용이다.

 

요즘 우리나라 지하철에서도 게임 중독으로 인한 폭력성 문제에 대한 공익 광고를 본적 있다.

내 지론중 하나.. 애들의 모든 안전과 잘못은 어른들의 책임이다.

 

이 광고를 본후 가장 처음으로 떠오른 것은 "BEAVIS & BUTT - HEAD EXP" 의 OST에 실렸던 "99 Ways To Die" 란 곡의  Megadeth 뮤직 비디오 이다.

비슷한 내용을 담고 있다.


 

 

사용자 삽입 이미지

"당신은 누구의 딸을 클릭 하고 있습니까"

원조교제에 관한 내용이다.

자기 딸이라도 저러겠는가?


 

사용자 삽입 이미지

"이웃집은 천리길"

약간은 상투적이긴 하지만 서도 ...


 

사용자 삽입 이미지

무리한 각성제 다이어트 오남용에 관한 일본 광고 이다.

다른 환경오염 광고 사이에 있던것. 

카펜터스의 여자 보컬도 각성제 남용으로 죽었다. 쩝.


 

사용자 삽입 이미지

담배피우는 권리도 있지만 아기를 건강하게 키울 권리도 더 많이 있다.

 

 

사용자 삽입 이미지

나와 다른 것에 대해 터부시 하거나 무시할 필요는 없다고 본다.

그들이 보기엔 내가 별종 일수도 ...

 

'Dev' 카테고리의 다른 글

Visual Studio Code, Python 개발환경 구축  (0) 2020.01.27
OS 커널 관련된 글들..  (0) 2008.09.01
요즘, 단상..  (0) 2006.03.28
Subversion 아직은...  (0) 2004.12.06
버전관리툴  (0) 2004.11.24
올만에 또 WA BAR를 습격했다.
그래서 맛나는 듕켈 한잔 때려줬다.
 
 
사용자 삽입 이미지
병뚜껑이 거의 막바지로 다다른다 . 음하하 ^^


 

사용자 삽입 이미지

내가 좋아하는 듕켈이다.

WA BAR는 듕켈을 담아주는 컵이 예뿌당.

650ml 짜리 컵 ..

 

 

사용자 삽입 이미지

기네스


 

'일상' 카테고리의 다른 글

2001.03  (0) 2004.12.01
작은 인형  (0) 2004.12.01
WA BAR  (0) 2004.11.25
내가 키우는 나무  (0) 2004.11.24
정종  (0) 2004.11.23

사용자 삽입 이미지

 

회사가 강남으로 이사한 이후에 자주가는 맥주집이다.

 

전에 그 자리에는 무슨 독일식 쏘시지 집이 였는데 정말 장사 안되고 비싸고 그저 그런 가계였다.

그러던 어느날 뜯어 고치기 시작하더니 WA BAR로 변신 하였다.

 

여기에는 내가 좋아하는 듕켈(흑백주)을 판다.

건너편 하우스 맥주집인 퓨전스타에도 듕켈을 팔지만 그것보다 더 부드러운 맛이 좋다.

그리고 세계맥주 전문점 답게 많은 병맥주들을 팔아댄다.

 

요즘 삿뽀로먹는 재미도 있지만 ...

 

그리고 여기선 기다란 프라스틱 통에 병맥주 뚜껑를 모아서 가득 차면 양주를 주는 서비스를 하고 있다.

반신반의 하며 먹어준 결과 드뎌 하나를 다채웠고 자그마한 양주를 하나 먹게 되었다.

그리고 지배인형(나이로봐선 내가 많아보이지만 서도 ...)이 다음에 한번 더 채우면 한단계 높은 걸로 준단다.

현재 5분의 3정도가 채워진 상태이다.

아마 연말이 지나면 또 하나의 양주가 기달리고 있을것이다. 음하하.

 

회사 바로 뒷편에 있는 관계로 어제 퇴근하다가 고객사은행사라는 현수막을 보았다.

(울 회사건물은 저녁 7시가 넘으면 앞문의 셧더를 내린다. -_- )

그래서 한방 찍어줬다.

 

ps. 여름에는 저 창문들을 다 접어버리고 아주 션하게 먹을수 있다.

 

 

 

 

밑에는 어제 집에가서 물을 먹으려 냉장고를 열었는데 두 넘이 애처롭게 쳐다보고 있었다.

그래서 혼내줬다. -_-

가쓰오 크래빌 .. 저거 다른 게살 종류의 맛살을 많이 먹어봤지만 당연 최고 인거 같다.

부드럽고 맛나다.

혹시 슈퍼에서 발견 하시면 바로 사서 혼내주기 바란다.

사용자 삽입 이미지

'일상' 카테고리의 다른 글

작은 인형  (0) 2004.12.01
WA BAR 습격사건  (0) 2004.11.26
내가 키우는 나무  (0) 2004.11.24
정종  (0) 2004.11.23
핸드폰  (0) 2004.11.23

내가 키우는 나무 아니 식물이다.

 

전에 키우던 넘들을 다들 삐쩍 말라 죽어 갔는데 신경써서 적어도 일주일에 2번씩 물을 주려고 노력해서 그런지 이넘들은 꽤 잘 버틴다.

 

물론 첫번째 넘은 한동한 소흘 했더니 푸른빛이 없어지고 흰색으로 많이 바래졌다.

 

그러나 이번엔 같은 실수를 반복하지 않기로 ...

머 그래바야 물주고 쳐다봐주는거 밖에 없겠지만 서도...

 

사용자 삽입 이미지

은사철

 

사용자 삽입 이미지

멕시코소철

'일상' 카테고리의 다른 글

WA BAR 습격사건  (0) 2004.11.26
WA BAR  (0) 2004.11.25
정종  (0) 2004.11.23
핸드폰  (0) 2004.11.23
시작  (0) 2004.11.23
예전에는 버전관리툴의 필요성을 못느꼈었다.

못느꼈다기 보다  유용함을 못느꼇다는게 맞을것이다.

 

그런데 ASP.NET 프로젝트를 하면서 여러사람이 같은 프로젝트 파일을 관리를 해야할 일이 생기다 보니 자연스럽게 버전관리툴의 필요성을 느낀것이다.

물론 StandAlone 환경에서도 탁월한 선택이다.

 

 

간단히 끄적 거리는 정도의 사용이지만 지금까지 사용해본것을 나열 하자면 ...

 

 

- VSS(Visual Source Safe)

이것은 MS에서 Visual Studio에 번들로 나와 MS 툴과 궁합이 잘 맞지만 그다지 평이 좋은거 같지도 않고 별로 끌리지 않는 툴이다.

 

http://msdn.microsoft.com/vstudio/previous/ssafe/

 

 

- CVS

아마 가장 전통있고 유명한 툴일것이다.

플랫폼관계없이 사용할수 있고 사용자 층도 가장 두껍고 그리고 가장 중요한 오픈 소스 프로젝트 이다.

 

클라이언트 툴로 WinCVS를 사용해본 결과 설정 해줘야 할것도 좀있고 많이 불편하다는 생각이 들었다. (물론 내가 무지한 탓도 있다)

 

https://www.cvshome.org/

http://www.wincvs.org/

http://www.tortoisecvs.org/

 

 

- TeamSource

볼랜드 툴에 번들로 제공되는 것이다.

윈도우 환경에서 사용할 수있고 서버가 필요하지 않는 환경이다. (원격은 네트워크 드라이브를 이용..)

사용 해본것중 가장 많이 사용해봤으며 심플하고 성능면에서도 괜찮다고 생각이 들었다.

그러나 번들로 제공된것이다 보니 더이상의 버전업을 없고 볼랜드에서도 StartTeam 이란 툴을 인수해 밀고 나가는것 같다.

 

 

- Subversion

CVS의 단점을 개선하고자 나온 차세대 버전관리 오픈소스 프로젝트 이다.

 

클라이언트 툴인 TortoiseSVN를 통해 사용해 봤는데 CVS와 비슷하면서도 프로젝트를 관리하는데 좀더 편하게 사용할수 있게 만들었다.

 

그리고 TortoiseSVN는 윈도우 탐색기를 통해 관리를 할수 있게 되어 있어 다른 툴보다는 사용하기가 편하다는 장점이 있고 TeamSource처럼 TortoiseSVN는 개인저장소를 만들수 있어 서버없이도 사용할수 있다 ^^ 

(CVS도 TortoiseCVS 클라이언트 툴이 있다)

 

앞으로 좀더 사용해 봐야 알겠지만 주로 사용하게 될 툴이 아닐까 생각이다.

 

Subversion에 대한 내용 :http://wiki.kldp.org/wiki.php/Subversion?action=show

 

http://subversion.tigris.org/

http://tortoisesvn.tigris.org/

 

사용자 삽입 이미지

 

 

'Dev' 카테고리의 다른 글

Visual Studio Code, Python 개발환경 구축  (0) 2020.01.27
OS 커널 관련된 글들..  (0) 2008.09.01
요즘, 단상..  (0) 2006.03.28
Subversion 아직은...  (0) 2004.12.06
공익 광고 ..  (0) 2004.11.29
사용자 삽입 이미지

사용자 삽입 이미지

요즘 많이 부쩍 즐겨하는 술이 정종이다.

 

겨울이라 그런지 따뜻한 정종이 좋다.

몸을 릴렉스 하게 하고 마실때 느낌이 너무좋다.

 

여기 회사근처(강남)에도 2군데 뚤어 놨고 사당 근처에도 조그마하지만 오뎅 맛도 아주 일품이고 아주 색다른 분위기의 오뎅바를 뚤어놨다.

 

물론 나중에 가면 오뎅을 먹는지 정종을 먹는지 모르게 먹지만 서도 ..

 

 

 

아래는 강남 와바에서 삿뽀로 골드 먹고 받은 삿뽀로 저금통이다.

개인적으로 실버가 더 맛있다.

 

사용자 삽입 이미지

'일상' 카테고리의 다른 글

WA BAR 습격사건  (0) 2004.11.26
WA BAR  (0) 2004.11.25
내가 키우는 나무  (0) 2004.11.24
핸드폰  (0) 2004.11.23
시작  (0) 2004.11.23
사용자 삽입 이미지

사용자 삽입 이미지

핸드폰이 오래되다 보니 배터리수명을 둘째치고 몇몇 NT서버와 같이 자동으로 리부팅을 한다.

그리고 가끔씩 수신 불능 ...

 

그러다 정작 중요할때 전화를 못받고 나서 열받아서 그 담날로 바꿔버렸다.

 

나의 통산 3번째 핸드폰이자 3번째 에버폰 (가격대비 성능이 좋다 -_-)

일명 에슬(에버슬라이드)라고 불린다.

 

정식 모델명은 에버 X5200

 

ps. 왜 내가 사면 거의 때깔이 붉은색 계통인지 ..

 

'일상' 카테고리의 다른 글

WA BAR 습격사건  (0) 2004.11.26
WA BAR  (0) 2004.11.25
내가 키우는 나무  (0) 2004.11.24
정종  (0) 2004.11.23
시작  (0) 2004.11.23

시작이다.

 

이글루의 블로그를 버리고 네이버로 왔다.

이유는 ... 음 ...

네이버 블로그의 에디터가 html을 지원하는것도 있고 사진도 많이 올라가고  ...

그냥 사람들이 많이 쓰니까 ...

 

...

 

 

'일상' 카테고리의 다른 글

WA BAR 습격사건  (0) 2004.11.26
WA BAR  (0) 2004.11.25
내가 키우는 나무  (0) 2004.11.24
정종  (0) 2004.11.23
핸드폰  (0) 2004.11.23

+ Recent posts